PIC16F877A Lab Manual
-
Upload
vijaygurumani -
Category
Documents
-
view
146 -
download
8
description
Transcript of PIC16F877A Lab Manual
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
PIC16F877A Lab Manual
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
MPLAB Program
What is MPLAB? MPLAB is a software program that runs on your PC to provide a development
environment for your embedded system design. In other words it is a Windows program
package that makes writing and developing a program easier. It could best be described as
developing environment for a standard program language that is intended for
programming microcontrollers.
• Get started to MPLAB
1. Open the program by double clicking on its icon on the desktop.
2. From the project menu choose project wizard.
3. Choose PIC 16F84A.
4. Brows and name the project.
5. From view menu choose project; to view the project.
6. Then add a file to the source files by right clicking on source files, and
7.choose add files and then name the file anyName.c.
Blinking Led
/********************************************************************************************
* ¹¦ ÄÜ£ºLEDÇý¶¯ÊµÑé³ÌÐò
* CPUÐͺŠ£ºPIC16F877A
* ¾§Õñ£º 4MHz
* ˵Ã÷:
* ×÷ ÕߣºMCU2000
* ÈÕ ÆÚ£º2012Äê10ÔÂ19ÈÕ
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
±¾Àý³ÌÔÚ<<BK300 PICʵÑé°å>>Éϵ÷ÊÔͨ¹ý
*********************************************************************************************/
#include <pic.h> //°üº¬PICÍ·Îļþ Èí¼þ×Ô´øµÄÍ·Îļþ¿ÉÒÔÓÃ< >
#include "BoardConfig.h" //°üº¬¿ª·¢°åÓ²¼þ³õʼ»¯Í·Îļþ ×ÔÒÑдµÄÍ·ÎļþÓÃ" "
·ñ²âPICC±àÒë»á³ö´í
__CONFIG(0x3F32); //оƬÅäÖÃ×Ö
void delay(uchar a,uchar i); //ÑÓʱ×Óº¯ÊýÉùÃ÷
void main (void)
{
uchar timer;
uchar temp=0xff;
Board_init(); //µ÷Óÿª·¢°åÓ²¼þ³õʼ»¯º¯Êý
RC5=1;
//ÉèÖÃU5²»Ëø´æ£¬Êä³öËæÊäÈë¶Ë±ä»¯LEDÊÜPORTD¿Ú¿ØÖÆʹPORTD¿ÉÒÔ¿ØÖÆLED
while(1)
{
temp=0xFF;
for(timer=0;timer<9;timer++)
{
PORTD=temp; //tempµÄÖµËÍLEDÏÔʾ
delay(20,200); //µ÷ÓÃÑÓʱ
temp>>=1; //×óÒÆһλ
}
}
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
}
////////////ÑÓʱ×Óº¯Êý/////////////////
void delay(uchar a,uchar i)
{
uchar s;
while(--a)
while(--i)
{
s=10;
while(s--);
}
}
Seven Segment Display
/********************************************************************************************
* ʵÑéÈý: ÊýÂë¹ÜÇý¶¯ÊµÑé
* CPUÐͺţº PIC16F877A
* ¾§Õñ£º 4MHz
* ˵Ã÷: ËÄλÊýÂë¹ÜʵÏÖ0-9999¼ÆÊý
* ×÷ ÕߣºMCU2000
* ÈÕ ÆÚ£º2012Äê10ÔÂ19ÈÕ
±¾Àý³ÌÔÚ<<BK300 PICʵÑé°å>>Éϵ÷ÊÔͨ¹ý
*********************************************************************************************/
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
#include <pic.h> //°üº¬PICÍ·Îļþ Èí¼þ×Ô´øµÄÍ·Îļþ¿ÉÒÔÓÃ< >
#include "BoardConfig.h" //°üº¬¿ª·¢°åÓ²¼þ³õʼ»¯Í·Îļþ ×ÔÒÑдµÄÍ·ÎļþÓÃ" "
·ñ²âPICC±àÒë»á³ö´í
__CONFIG(0x3F32); //оƬÅäÖÃ×Ö
#define uchar unsigned char
#define uint unsigned int
void LED_DISPLAY(void);
void delay(uchar a,uchar i);
//¹²ÑôÊýÂë¹ÜÏÔʾ´úÂë
uchar LED_DIS[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff};
uchar DIS_NUM[4]; //ÊýÂë¹ÜλÂë¼Ä´æÆ÷
void main (void)
{
uint counter;
Board_init(); //µ÷Óÿª·¢°åÓ²¼þ³õʼ»¯º¯Êý
while(1)
{
for(counter=0;counter<9999;counter++)
{
DIS_NUM[0]=(uchar)(counter/1000); //¼ÆËãÊýÖµµÄǧλ
DIS_NUM[1]=(uchar)((counter%1000)/100); //°Ùλ
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
DIS_NUM[2]=(uchar)((counter%100)/10); //ʮλ
DIS_NUM[3]=(uchar)(counter%10); //¸öλ
LED_DISPLAY(); //µ÷ÓÃÊýÂë¹ÜÏÔʾ
}
}
}
//ÊýÂë¹ÜÏÔʾ×Óº¯Êý
void LED_DISPLAY(void)
{
uchar i,TEMP,k;
RA3=0; //U3Êä³öʹÄÜ
for(k=0;k<50;k++)
for(TEMP=0X80,i=0;i<4;i++)
{
//****************ÊýÂë¹ÜλÂë****************************************************
RC4=1; //U3Ëø´æ¶ËÉèΪ¸ßµçƽÊä³ö¶ËµçƽËæÊäÈë¶Ë¶ø±ä»¯
PORTD=TEMP; //ËÍÊýÂë¹ÜλÂë
RC4=0; //U3Ëø´æ¶ËÉèΪµÍµçƽÊä³ö¶Ë²»±ä
//******************************************************************************
//****************ÊýÂë¹Ü¶ÎÂë****************************************************
RC3=1;
PORTD=LED_DIS[DIS_NUM[i]];
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
RC3=0;
//******************************************************************************
TEMP>>=1; //ÓÒÒÆһλ׼±¸ÏÂһλÊýÂë¹ÜÏÔʾ
delay(10,10); //ÑÓʱһ»áÌá¸ßÊýÂë¹ÜÏÔʾÁÁ¶È
//****************¹Ø±ÕÊýÂë¹ÜÏÔʾ************************************************
RC4=1;
PORTD=0X00;
RC4=0;
delay(1,10);
//******************************************************************************
}
}
////////////ÑÓʱ×Óº¯Êý/////////////////
void delay(uchar a,uchar i)
{
while(--a)
while(--i);
}
Serial Communication
/********************************************************************************************
* ʵÑéÆß: RS232´®ÐÐͨѸʵÑé
* CPUÐͺţº PIC16F877A
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
* ¾§Õñ£º 4MHz
* ˵Ã÷: ´®¿Úµ÷ÊÔÈí¼þ²¨ÌØÂÊÉèΪ9600
ͨ¹ý´®¿Úµ÷ÊÔÖúÊÖÏòµ¥Æ¬»ú·¢ËÍÊý¾Ý
µ¥Æ¬»ú»á·µ»ØÊý¾Ý¸ø¼ÆËã»ú
* ×÷ ÕߣºMCU2000
* ÈÕ ÆÚ£º2012Äê10ÔÂ19ÈÕ
±¾Àý³ÌÔÚ<<BK300 PICʵÑé°å>>Éϵ÷ÊÔͨ¹ý
*********************************************************************************************/
#include <pic.h> //°üº¬PICÍ·Îļþ Èí¼þ×Ô´øµÄÍ·Îļþ¿ÉÒÔÓÃ< >
#include "BoardConfig.h" //°üº¬¿ª·¢°åÓ²¼þ³õʼ»¯Í·Îļþ ×ÔÒÑдµÄÍ·ÎļþÓÃ" "
·ñ²âPICC±àÒë»á³ö´í
__CONFIG(0x3F32); //оƬÅäÖÃ×Ö
void main()
{
Board_init(); //µ÷Óÿª·¢°åÓ²¼þ³õʼ»¯º¯Êý
TRISC|=0XC0; //
SPBRG=0X19; //ÉèÖò¨ÌØÂÊΪ9600BPS
TXSTA=0X24; //ʹÄÜ´®¿Ú·¢ËÍ£¬Ñ¡Ôñ¸ßËÙ²¨ÌØÂÊ
RCSTA=0X90; //ʹÄÜ´®¿Ú¹¤×÷£¬Á¬Ðø½ÓÊÕ
RCIE=0X1; //ʹÄܽÓÊÕÖжÏ
GIE=0X1; //¿ª·ÅÈ«¾ÖÖжÏ
PEIE=0X1; //ʹÄÜÍⲿÖжÏ
while(1); //µÈ´ýÖжÏ
}
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
//´®¿Ú½ÓÊÕÖжÏ
void interrupt usart(void)
{
if(RCIE&&RCIF) //ÅжÏÊÇ·ñΪ´®¿Ú½ÓÊÕÖжÏ
TXREG=RCREG; //°Ñ½ÓÊÕµ½µÄÊý¾Ý·¢ËÍ»ØÈ¥
}
Buzzer
/********************************************************************************************
* ʵÑéʮһ: Ä£Äⱨ¾¯Òô
* CPUÐͺţº PIC16F877A
* ¾§Õñ£º 4MHz
* ˵Ã÷: ·æÃùÆ÷Ä£Ä⾯µÑÉù
* ×÷ ÕߣºMCU2000
* ÈÕ ÆÚ£º2012Äê10ÔÂ19ÈÕ
±¾Àý³ÌÔÚ<<BK300 PICʵÑé°å>>Éϵ÷ÊÔͨ¹ý
*********************************************************************************************/
#include <pic.h> //°üº¬PICÍ·Îļþ Èí¼þ×Ô´øµÄÍ·Îļþ¿ÉÒÔÓÃ< >
#include "BoardConfig.h" //°üº¬¿ª·¢°åÓ²¼þ³õʼ»¯Í·Îļþ ×ÔÒÑдµÄÍ·ÎļþÓÃ" "
·ñ²âPICC±àÒë»á³ö´í
__CONFIG(0x3F32); //оƬÅäÖÃ×Ö
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
#define SPEAK RE0
void delayUS(uchar i);
void delayMS(uchar a);
void baojing(void);
////////////Ö÷º¯Êý////////////////////////////////
void main(void)
{
Board_init(); //µ÷Óÿª·¢°åÓ²¼þ³õʼ»¯º¯Êý
ADCON1=0X07; //ÉèÖÃRE¿ÚΪÆÕͨÊý×ÖÊäÈëÊä³ö¶Ë¿Ú
while(1)
baojing();
}
////////////±¨¾¯×Óº¯Êý/////////////////////////
void baojing(void)
{
uint m=400;
while(--m){SPEAK=!SPEAK;delayUS(99);}m=200;
while(--m){SPEAK=!SPEAK;delayUS(199);}
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
}
////////////10msÈ¥¶¶¶¯ÑÓʱ×Óº¯Êý//////////////////
void delayUS(uchar i)//US¼¶ÑÓʱ×Óº¯Êý
{
while(--i);
}
void delayMS(uchar a)//MS¼¶ÑÓʱ×Óº¯Êý
{
do
{delayUS(199);}while(--a);
}
PWM
/********************************************************************************************
* ʵÑéÊ®¶þ: PWM²¨ÐÎÊä³öʵÑé
* CPUÐͺţº PIC16F877A
* ¾§Õñ£º 4MHz
* ˵Ã÷: 1:PWMµ÷½ÚLEDÁÁ¶È
ʹÓð´¼üK18ºÍK19À´µ÷½ÚLED10µÄÁÁ¶È
¸ÃʵÀý³ÌÐòÒ²¿ÉÒÔÓÃÓÚµ÷½ÚÖ±Á÷µç»úתËÙ
2:PWM¿ØÖÆÖ±Á÷µç»úתËÙ
ÏȽ«¸Ã³ÌÐòÏÂÔص½µ¥Æ¬»ú£¬È»ºó½«Ö±Á÷µç»ú½Óµ½¿ª·¢
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
°åµÄÓÒϽǵÄJ5²å×ù£¬°´K18ºÍK19¿É¿ØÖÆÖ±½Óµç»ú¼Ó¼õËÙ¡£
×¢Ò⣺ÐèÏÂÔØÍê³ÌÐòºóÔÙ½ÓÖ±Á÷µç»ú£¬ÒòΪµç»úºÄµçÁ¿±È½Ï
´ó·ÂÕæÆ÷»ò±à³ÌÆ÷¸ø¿ª·¢°åÌṩµÄµÄµçÔ´¿ÉÄܲ»¹»Óã¬
×öÖ±Á÷µç»ú»ò²½½øµç»úʵÑéʱÐèÁíÍâÓÃÒ»¸ùUSBÏ߸ø
¿ª·¢°å¹©µç¡£
* ×÷ ÕߣºMCU2000
* ÈÕ ÆÚ£º2012Äê10ÔÂ19ÈÕ
±¾Àý³ÌÔÚ<<BK300 PICʵÑé°å>>Éϵ÷ÊÔͨ¹ý
*********************************************************************************************/
#include <pic.h> //°üº¬PICÍ·Îļþ Èí¼þ×Ô´øµÄÍ·Îļþ¿ÉÒÔÓÃ< >
#include "BoardConfig.h" //°üº¬¿ª·¢°åÓ²¼þ³õʼ»¯Í·Îļþ ×ÔÒÑдµÄÍ·ÎļþÓÃ" "
·ñ²âPICC±àÒë»á³ö´í
__CONFIG(0x3F32); //оƬÅäÖÃ×Ö
#define u8 unsigned char
u8 a;
void CCP1INIT(void) ;
void delayUS(u8 i);
void delayMS(u8 a);
void anjian(void);
/*¸Ã³ÌÐòÓÃÓÚʹCCP1Ä£¿é²úÉú·Ö±æÂÊΪ10λµÄPWM²¨ÐΣ¬Õ¼¿Õ±ÈΪ50%*/
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
/*CCP1Ä£¿éµÄPWM¹¤×÷·½Ê½³õʼ»¯×Ó³ÌÐò*/
/*Ö÷³ÌÐò*/
void main(void)
{
Board_init(); //µ÷Óÿª·¢°åÓ²¼þ³õʼ»¯º¯Êý
CCP1INIT(); /*CCP1Ä£¿éµÄPWM¹¤×÷·½Ê½³õʼ»¯*/
T2CON=0X04; /*´ò¿ªTMR2£¬ÇÒʹÆäÇ°·ÖƵΪ0£¬*/
/*ͬʱ¿ªÊ¼Êä³öPWM²¨ÐÎ*/
do
{
anjian();
}while(1); /*ϵͳ¿ªÊ¼Êä³öPWM²¨ÐÎ,Èç¹û*/
/*ϵͳÊǶàÈÎÎñµÄ,Ôò¿ÉÒÔÔÚ´ËÖ´ÐÐÆäËüÈÎÎñ,*/
/*¶ø²»»áÓ°ÏìPWM²¨ÐεIJúÉú*/
}
void CCP1INIT(void)
{
PORTB=0xff;
TRISB=0xff;
RBPU=0;
a=0XE0;
CCPR1L=a;
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
CCPR2L=a;
CCP1CON=0X3C; /*ÉèÖÃCCP1Ä£¿éΪPWM¹¤×÷·½Ê½£¬ÇÒÆ乤×÷*/
/*Ñ»·µÄµÍ2λΪ11£¬¸ß8λΪ01111111=7F*/
CCP2CON=0X3C; /*ÉèÖÃCCP1Ä£¿éΪPWM¹¤×÷·½Ê½£¬ÇÒÆ乤×÷*/
/*Ñ»·µÄµÍ2λΪ11£¬¸ß8λΪ01111111=7F*/
INTCON=0X00; /*½ûÖ¹×ÜÖжϺÍÍâΧÖжÏ*/
PR2=0XFF; /*ÉèÖÃPWMµÄ¹¤×÷ÖÜÆÚ*/
TRISC=0XF8; /*ÉèÖÃCCP1 CCP2 RC1 RC2Òý½ÅΪÊä³ö·½Ê½*/
}
//ͨ¹ýK18 K19·Ö±ðµ÷´óºÍµ÷С(ͨ¹ýʾ²¨Æ÷¹Û¿´PWM²¨Ðεı仯)
//Èç¹ûÄãûÓÐʾ²¨Æ÷Ò²¿É°´K18ºÍK19°´¼üʱ¹Û¿´LED10ÁÁ¶ÈµÄ±ä»¯
void anjian(void)
{
TRISB=0xff;
if(RB1==0){delayMS(10);
if(RB1==0){a+=50;CCPR1L=a;CCPR2L=a;}
while(RB1==0);}
if(RB2==0){delayMS(10);
if(RB2==0){a-=50;CCPR1L=a;CCPR2L=a;}
while(RB2==0);}
}
////////////10msÈ¥¶¶¶¯ÑÓʱ×Óº¯Êý//////////////////
void delayUS(u8 i) //US¼¶ÑÓʱ×Óº¯Êý
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
{ while(--i);}
void delayMS(u8 a) //MS¼¶ÑÓʱ×Óº¯Êý
{
do{delayUS(199);}while(--a);
}
LCD Display
/********************************************************************************************
* ʵÑéÊ®ËÄ: LCD1602ÏÔʾʵÑé
* CPUÐͺţº PIC16F877A
* ¾§Õñ£º 4MHz
* ˵Ã÷:
* ×÷ ÕߣºMCU2000
* ÈÕ ÆÚ£º2012Äê10ÔÂ19ÈÕ
±¾Àý³ÌÔÚ<<BK300 PICʵÑé°å>>Éϵ÷ÊÔͨ¹ý
*********************************************************************************************/
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
#include <pic.h> //°üº¬PICÍ·Îļþ Èí¼þ×Ô´øµÄÍ·Îļþ¿ÉÒÔÓÃ< >
#include "BoardConfig.h" //°üº¬¿ª·¢°åÓ²¼þ³õʼ»¯Í·Îļþ ×ÔÒÑдµÄÍ·ÎļþÓÃ" "
·ñ²âPICC±àÒë»á³ö´í
__CONFIG(0x3F32); //оƬÅäÖÃ×Ö
#define ulint unsigned long int
#define LCD_DATA_PORT PORTD //¶¨ÒåLCDµÄD0-D7ËùÔڶ˿Ú
#define LCD_DATA_POUT TRISD=0x00 //¶¨ÒåLCDÊý¾Ý¶Ë¿ÚΪÊä³ö
#define LCD_DATA_PIN TRISD=0xFF //¶¨ÒåLCDÊý¾Ý¶Ë¿ÚΪÊäÈë(ÔÚ¶ÁLCD״̬ʱÓõ½)
#define LCD_Control_IN TRISC|=0XFF
#define LCD_Control_OUT TRISC&=0X00
#define LCD_EN_1 RC5=1
#define LCD_EN_0 RC5=0
//LCD¶Áд¿ØÖÆÒý½Å
#define LCD_RW_1 RC4=1
#define LCD_RW_0 RC4=0
//LCDÖ¸Áî»òÊý¾ÝÑ¡ÔñÒý½Å
#define LCD_RS_1 RC3=1
#define LCD_RS_0 RC3=0
void nus_delay(uint nus);
void nms_delay(uint nms);
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
void lcd_init(void);
void LCD_en_write(void);
void wait_LCD_Ready(void);
void set_LCD_xy(uchar x, uchar y );
void LCD_write_onechar(uchar COMM,uchar DAT);
void LCD_write_string(uchar X,uchar Y,uchar *string);
/****************************************************
º¯ÊýÃû³Æ:main
¹¦ÄÜÃèÊö:Ö÷º¯Êý
Êä¡¡Èë: ÎÞ
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
*****************************************************/
void main(void)
{
uchar START_DISPLAY1[]={" PIC BK300 "};
uchar START_DISPLAY2[]={" LCD162 TEST"};
Board_init(); //µ÷Óÿª·¢°åÓ²¼þ³õʼ»¯º¯Êý
RA3=1; //¹Ø±ÕLEDºÍÊýÂë¹ÜµÄÊä³ö
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
lcd_init();
nms_delay(2);
while(1)
{
LCD_write_string(0,0,START_DISPLAY1);
LCD_write_string(0,1,START_DISPLAY2);
nms_delay(200);
}
}
/****************************************************
º¯ÊýÃû³Æ:lcd_init
¹¦ÄÜÃèÊö:LCD³õʼ»¯
Êä¡¡Èë: ÎÞ
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
˵Ã÷:×¢Òâ³õʼ»¯¹ý³Ì²¢¼ÓÉÏÊʵ±ÑÓʱ
ºóÃæLCDµÄÏÔʾ·½Ê½¿É°´Êµ¼ÊÐèÒªÐÞ¸Ä
*****************************************************/
void lcd_init(void)
{
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
nms_delay(15);
LCD_DATA_POUT;
LCD_Control_OUT;
LCD_write_onechar(0x38,0);
nms_delay(1);
LCD_write_onechar(0x38,0);
nms_delay(1);
LCD_write_onechar(0x38,0);
nms_delay(1);
LCD_write_onechar(0x38,0);
LCD_write_onechar(0x08,0); /*ÏÔʾ¹Ø±Õ*/
LCD_write_onechar(0x01,0); /*ÏÔʾÇåÆÁ*/
LCD_write_onechar(0x06,0); /*ÏÔʾ¹â±êÒƶ¯ÉèÖÃ*/
nms_delay(1);;
LCD_write_onechar(0x0C,0); /*ÏÔʾ¿ª¼°¹â±êÉèÖÃ*/
}
/****************************************************
º¯ÊýÃû³Æ:LCD_en_write
¹¦ÄÜÃèÊö:EN¶Ë²úÉúÒ»¸öÂö³å£¬Ð´LCD
Êä¡¡Èë: ÎÞ
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
*****************************************************/
void LCD_en_write(void)
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
{
LCD_EN_1;
nus_delay(150); //EÂö³åÖÜÆÚ×îС150ns
LCD_EN_0;
}
/****************************************************
º¯ÊýÃû³Æ:wait_LCD_Ready
¹¦ÄÜÃèÊö:ÅжÏLCDæ±êÖ¾
Êä¡¡Èë: ÎÞ
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
*****************************************************/
void wait_LCD_Ready(void)
{
uchar temp1;
LCD_DATA_PORT=0XFF;
LCD_DATA_PIN; //D7ÉèΪÊäÈ룬׼±¸ÅжÏLCDæ±êÖ¾
//1Ϊæ 0Ϊ¿ÕÏÐ
LCD_RS_0;
LCD_RW_1; //¶Á
LCD_EN_1;
nus_delay(2);
while((temp1=PORTD & 0X80));
LCD_EN_0;
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
LCD_RS_1;
LCD_DATA_POUT;
}
/****************************************************
º¯ÊýÃû³Æ:LCD_write_onechar
¹¦ÄÜÃèÊö:дһ¸ö×Ö½Úµ½LCD
Êä¡¡Èë: COMM(Ö¸Áî) DAT£¨ÏÔʾÊý¾Ý)
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
*****************************************************/
void LCD_write_onechar(uchar COMM,uchar DAT)
{
wait_LCD_Ready(); //µÈ´ýLCD¿ÕÏÐ
LCD_RW_0; //д
//дÊý¾Ý
if(COMM==0)
{
LCD_RS_1; //RS¸ßµçƽÏòLCDдÊý¾Ý
LCD_DATA_PORT=DAT;
}
//дÃüÁî
else
{
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
LCD_RS_0;
LCD_DATA_PORT=COMM;
}
LCD_en_write();
nus_delay(2);
LCD_RW_1;
LCD_RS_1;
}
/****************************************************
º¯ÊýÃû³Æ:LCD_write_string
¹¦ÄÜÃèÊö:LCD×Ö·û´®ÏÔʾº¯Êý
Êä¡¡Èë: x/y£¨XÓëY×ø±ê) *string£¨×Ö·û´®Ê×µØÖ·)
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
*****************************************************/
void LCD_write_string(uchar X,uchar Y,uchar *string)
{
set_LCD_xy( X, Y ); //ÉèÖÃLCDÏÔʾ×ø±ê
while (*string)
{
LCD_write_onechar(0,*string );
string ++; //Ö¸ÏòÏÂÒ»ÏÔʾ×Ö·ûµØÖ·
}
}
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
/****************************************************
º¯ÊýÃû³Æ:set_LCD_xy
¹¦ÄÜÃèÊö:ÉèÖÃÏÔʾ×ø±ê
Êä¡¡Èë: x/y£¨XÓëY×ø±ê)
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
˵Ã÷: LMB1602µÚÒ»ÐÐÊ×µØַΪ0x80
µÚ¶þÐÐΪ0xC0
ÈÕÆÚ£º2009-4-7
*****************************************************/
void set_LCD_xy(uchar x, uchar y )
{
uchar DIS_address;
if (y == 0)
DIS_address = 0x80 + x; //µÚÒ»ÐÐXÁÐ
else
DIS_address = 0xc0 + x;
LCD_write_onechar( DIS_address, 0 ); //µÚ¶þÐÐXÁÐ
}
/****************************************************
º¯ÊýÃû³Æ:nus_delay
¹¦ÄÜÃèÊö:΢Ã뼶ÑÓʱ×Ó³ÌÐò
Êä¡¡Èë: ÎÞ
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
˵Ã÷:
¾§ÕñΪ11.0592Mʱ
ÈÕÆÚ£º2009-4-7
*****************************************************/
void nus_delay(uint nus)
{
int j=10;
while(nus--)
{
while(j--);
j=10;
}
}
/****************************************************
º¯ÊýÃû³Æ:nms_delay
¹¦ÄÜÃèÊö:ºÁÃ뼶ÑÓʱ×Ó³ÌÐò
Êä¡¡Èë: ÎÞ
Êä¡¡³ö: ÎÞ
ÈÕÆÚ£º2009-4-8
˵Ã÷:
¾§ÕñΪ4Mʱ
*****************************************************/
void nms_delay(uint nms)
Trident Techlabs Pvt. Ltd., S7, Mamanji Center, Thiru Vi Ka Industrial Estate, Guindy, Chennai – 32 Phone No: 044 43358483/84, www.tridenttechlabs.com
{
while(nms--)
nus_delay(1000);
}