»ùÓÚµ¥Æ¬»úÉè¼Æ¿Î³ÌÉè¼ÆÂÛÎÄ - ͼÎÄ ÏÂÔØ±¾ÎÄ

#endif

£Ã£È£Á£Ò £Ì£Ã£Ä£®£Ã #include #include #include \// ³õʼ»¯³ÌÐò

// º¯Êý¹¦ÄÜ: LCD³õʼ»¯ // Èë¿Ú²ÎÊý: ÎÞ // ·µ»Ø²ÎÊý: ÎÞ // È«¾Ö±äÁ¿: ÎÞ

// µ÷ÓÃÄ£¿é: lcd_wcmd(); delay(); void lcd_init() {

lcd_wcmd(0x38); delay(1);

lcd_wcmd(0x0c); delay(1);

lcd_wcmd(0x06); delay(1);

lcd_wcmd(0x01); }

//----------------------------------------------------------------- // ¹¦ÄܳÌÐò // bit lcd_bz() //

// º¯Êý¹¦ÄÜ: ¼ì²âLCD BFµÄ״̬ // Èë¿Ú²ÎÊý: ÎÞ // ·µ»Ø²ÎÊý: ÎÞ // È«¾Ö±äÁ¿: ÎÞ

// µ÷ÓÃÄ£¿é: ÎÞ

// ×¢ÒâÊÂÏî: ÿ´Î¶ÁдLCM²Ù×÷֮ǰ,Ó¦Ê×Ïȼì²âæ±êÖ¾BF,È·ÈÏBF=0ºó,·ÃÎʹý³Ì²ÅÄܽøÐÐ

//----------------------------------------------------------------- bit lcd_bz() {

bit busy; rs=0; rw=1; ep=1; _nop_(); _nop_(); _nop_(); _nop_();

busy=(bit)(P1&0x80); ep=0; return busy; }

25

//----------------------------------------------------------------- // void lcd_wcmd(unsigned char cmd)

//----------------------------------------------------------------- //

// º¯Êý¹¦ÄÜ: дLCMµÄÖ¸Áî´úÂë // Èë¿Ú²ÎÊý: LCMÖ¸Áî // ·µ»Ø²ÎÊý: ÎÞ // È«¾Ö±äÁ¿:

// µ÷ÓÃÄ£¿é: lcd_bz(); // ×¢ÒâÊÂÏî:

//----------------------------------------------------------------- void lcd_wcmd(unsigned char cmd) {

while(lcd_bz());//ÅжÏLCDÊÇ·ñæµ rs=0; rw=0; ep=0; _nop_(); _nop_(); P1=cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep=1; _nop_(); _nop_(); _nop_(); _nop_(); ep=0; }

//----------------------------------------------------------------- // void lcd_pos(unsigned char pos)

//----------------------------------------------------------------- //

// º¯Êý¹¦ÄÜ: д£Ì£Ã£ÄµÄÖ¸ÁîµØÖ· // Èë¿Ú²ÎÊý:£Ì£Ã£ÄÖ¸ÁîµØÖ· // ·µ»Ø²ÎÊý: ÎÞ // È«¾Ö±äÁ¿:

// µ÷ÓÃÄ£¿é: lcd_wcmd(); // ×¢ÒâÊÂÏî:

//----------------------------------------------------------------- void lcd_pos(unsigned char pos) {

lcd_wcmd(pos|0x80); }

//----------------------------------------------------------------- // void WrCLcdD (uchar lcddata)

26

//----------------------------------------------------------------- //

// º¯Êý¹¦ÄÜ: дLCMÒªÏÔʾµÄÊý¾Ý // Èë¿Ú²ÎÊý: ´ýдµÄÊý¾Ý // ·µ»Ø²ÎÊý: ÎÞ // È«¾Ö±äÁ¿:

// µ÷ÓÃÄ£¿é: lcd_bz(); // ×¢ÒâÊÂÏî:

//----------------------------------------------------------------- void lcd_wdat(unsigned char dat) {

while(lcd_bz());//ÅжÏLCDÊÇ·ñæµ rs=1; rw=0; ep=0; P1=dat; _nop_(); _nop_(); ep=1; _nop_(); _nop_(); ep=0;

_nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); }

//----------------------------------------------------------------- // ÑÓʱ³ÌÐò

//----------------------------------------------------------------- void delay(uchar ms) {

uchar i; while(ms--) {

for(i=0; i<250; i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } }

£Ã£È£Á£Ò £Ì£Ã£Ä£®£È #ifndef __char_lcd_h__ #define __char_lcd_h__

//-----------------------------------------------------------------

27

// Êý¾ÝÀàÐͺ궨Òå

//----------------------------------------------------------------- #define uchar unsigned char #define uint unsigned int

//----------------------------------------------------------------- // I/O¿Ú¶¨Òå:¿ØÖÆ/Êý¾ÝÏß½Ó¿Ú

//----------------------------------------------------------------- sbit rs=P2^2; //¼Ä´æÆ÷Ñ¡Ôñ¶Ë¿Ú sbit rw=P2^1; //¶ÁдѡÔñ¶Ë¿Ú sbit ep=P2^0; //ʹÄÜÐźŶ˿Ú

//----------------------------------------------------------------- // Íⲿ±äÁ¿ÉùÃ÷

//----------------------------------------------------------------- //----------------------------------------------------------------- // Íⲿº¯ÊýÉùÃ÷

//----------------------------------------------------------------- extern void lcd_init(void); // LCD³õʼ»¯

extern bit lcd_bz(void); // ¼ì²âLCD BFµÄ״̬ extern void lcd_wcmd(uchar cmd); // дLCDµÄÖ¸Áî´úÂë extern void lcd_wdat(uchar dat); // дLCDÏÔʾµÄÊý¾Ý

extern void lcd_pos(uchar pos); // дLCDµÄÖ¸Áî´úÂëµØÖ·//extern void CG_Write (void);

extern void delay(uchar ms); // ÑÓʱ #endif

4.1 ʱÖÓ²¿·ÖÈí¼þÉè¼Æ

£Ä£é£ó£ð£ì£á£ù£®£ã

#include #include \//#include \#include \

uchar code dis4[] = {\

uchar code initdisp[] = {\//uchar code DT_place[] = {7,10,13,21,24,27};

uchar code DT_lcdplace[] = {0x07,0x0a,0x0d,0x45,0x48,0x4b}; uchar code DTdata_addr[] = {9,8,7,4,2,0}; uchar DTdata_tab[] = {0,0,0,0,0,0};

uchar code chars[8][6] = {{\ \ \{\ day \{%uchar data_h,data_l; void data_wr() {

uchar i;

for(i=5; i>=0; i--) {

*(ds_addr+(DTdata_addr[i]))=DTdata_tab[i];

28