HOLTEK單片機(jī)-LCD
16X2 的字符型LCD顯示“LCD TEST OK”
本文引用地址:http://www.ex-cimer.com/article/201611/323309.htm電路說(shuō)明:
電路圖如下圖所示:
HT48R50A-1 的端口A接到字符型LCD的D0-D7(數(shù)據(jù)總線),使用字符型LCD的8位數(shù)據(jù)接口。
將HT48R50A-1的PC1接到LCD的讀/寫(xiě)引腳。當(dāng)LCD的讀/寫(xiě)引腳為高電平時(shí),表示將從LCD內(nèi)部讀取數(shù)據(jù),當(dāng)LCD的讀/寫(xiě)引腳為低電平時(shí),表示將數(shù)據(jù)寫(xiě)入LCD中。
將HT48R50A-1的PC2接到LCD的E引腳。當(dāng)LCD的E引腳為高電平時(shí),LCD的D0-D7引腳上的數(shù)據(jù)將會(huì)被寫(xiě)入LCD中,平時(shí)LCD的E引腳保持在低電平。
將HT48R50A-1的PC0接到LCD的RS引腳。當(dāng)LCD的RS引腳為低電平并對(duì)LCD做讀寫(xiě)操作時(shí),可以把LCD的指令寫(xiě)入LCD的指令寄存器,若對(duì)LCD做讀寫(xiě)操作,可以讀取LCD的忙標(biāo)志位及地址計(jì)數(shù)器。LCD的忙標(biāo)志位為1位,地址計(jì)數(shù)器為7位,合計(jì)8位。當(dāng)LCD的RS引腳為高電平時(shí),可以對(duì)LCD的數(shù)據(jù)寄存器做讀/寫(xiě)操作。
將字符型LCD的CO引腳接到GND。VO引腳是字符型LCD的亮度調(diào)整電壓輸入引腳,通常VO引腳接地時(shí)字符型LCD上的字符最清晰,也可以把VO引腳接一個(gè)可變電阻作為字符型LCD的對(duì)比度調(diào)整。
完整版本的程序源碼下載地址:http://www.51hei.com/f/htlcd.rar,以下列出main.c文件:
#include "HT46F49E.H"#define lcd_en _pc1#define lcd_rs _pc0#define lcd_date _paunsigned char table1[]="LCD 1602";unsigned char table2[]="TEST IS OK!";unsigned char num;void delayms(unsigned int n)//ms 延時(shí){while(n>0){_delay(984);n--; } }void write_com(unsigned char com)// 寫(xiě)命令{lcd_rs=0;//lcdrs=0 ,選擇寫(xiě)命令模式delayms(5);lcd_date=com;// 命令字送到數(shù)據(jù)總線delayms(5);lcd_en=1;//lcden=1 ,使能,init初始化中已經(jīng)置低delayms(5);lcd_en=0;}void write_date(unsigned char date)// 寫(xiě)數(shù)據(jù){lcd_rs=1;delayms(5); lcd_date=date;delayms(5);lcd_en=1;delayms(5);lcd_en=0;}void lcd_init(){ write_com(0x38);delayms(2);write_com(0x0c);delayms(2);write_com(0x06);deleyms(2);write_com(0x01);delayms(2);}void main(){ lcd_init();write_com(0x80);for(num=0;num<8;num++){write_date(table1[num]);delayms(2); }write_com(0x80+0x40);for(num=0;num<11;num++){write_date(table[num]);delayms(2); }while(1);}
評(píng)論