![第7章80C51單片機(jī)常用接口電路設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/666005c30b26d04bc0e99696ec08f6c5/666005c30b26d04bc0e99696ec08f6c51.gif)
![第7章80C51單片機(jī)常用接口電路設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/666005c30b26d04bc0e99696ec08f6c5/666005c30b26d04bc0e99696ec08f6c52.gif)
![第7章80C51單片機(jī)常用接口電路設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/666005c30b26d04bc0e99696ec08f6c5/666005c30b26d04bc0e99696ec08f6c53.gif)
![第7章80C51單片機(jī)常用接口電路設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/666005c30b26d04bc0e99696ec08f6c5/666005c30b26d04bc0e99696ec08f6c54.gif)
![第7章80C51單片機(jī)常用接口電路設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/666005c30b26d04bc0e99696ec08f6c5/666005c30b26d04bc0e99696ec08f6c55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章80C51單片機(jī)常用接口電路設(shè)計(jì)顯示器接口原理及應(yīng)用7.1鍵盤接口原理及應(yīng)用7.280C51單片機(jī)的模擬量接口7.32023/2/61
在單片機(jī)應(yīng)用系統(tǒng)中,顯示器是最常用的輸出設(shè)備。常用的顯示器有:
發(fā)光二極管(LED)
液晶顯示器(LCD)。
發(fā)光二極管(LED)又分為七段LED顯示器(數(shù)碼管)和LED點(diǎn)陣顯示屏。液晶顯示器(LCD)又分為字符液晶與圖形液晶。7.1 顯示器接口原理及應(yīng)用2023/2/627.1.1七段LED顯示器(數(shù)碼管)
LED的工作原理多位LED顯示問題的解決
2023/2/63LED的工作原理
七段式LED顯示部件(a)典型的七段式LED器件(b)共陽(yáng)極LED(c)共陰極LED2023/2/64
LED的主要部分是七段發(fā)光管,分別為a、b、c、d、e、f、g。有的產(chǎn)品還附帶有小數(shù)點(diǎn)DP。通過發(fā)光段的不同組合,可以顯示0~9和A~F共16個(gè)字母數(shù)字。LED可分為:(1)共陽(yáng)級(jí)結(jié)構(gòu)(2)共陰極結(jié)構(gòu)
2023/2/65
共陰極LED顯示器的發(fā)光二極管的陰極連在一起,通常此公共陰極接地。當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極為高電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。
共陽(yáng)極LED顯示器的發(fā)光二極管的陽(yáng)極連在一起,通常此公共陽(yáng)極接正電壓,當(dāng)某個(gè)發(fā)光二極管的陰極接低電平時(shí),發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示。2023/2/66數(shù)字到段碼的譯碼方法將一個(gè)4位二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為L(zhǎng)ED的7位顯示代碼(段碼)的方法有:
(1)專用芯片譯碼(2)軟件譯碼2023/2/67用專用芯片完成段譯碼的示意(共陽(yáng)極)2023/2/68軟件譯碼法①將0~F(或0~9)對(duì)應(yīng)的段碼組成一個(gè)表,存在存儲(chǔ)器中;②查表得段碼2023/2/69多位LED顯示問題的解決
(1)問題的提出實(shí)際使用時(shí),往往用幾個(gè)顯示管實(shí)現(xiàn)多位顯示,如果每一個(gè)LED占用一個(gè)獨(dú)立的輸出端口,則占用的輸出端口就很多。一個(gè)端口一個(gè)端口一個(gè)端口一個(gè)端口一個(gè)端口2023/2/610(2)問題的解決方法硬件:采用公用的驅(qū)動(dòng)電路軟件:采用掃描方法
2023/2/6112023/2/612
一個(gè)數(shù)據(jù)通道作為位控制,該端口輸出的選擇信號(hào)使某一位為高電平(共陽(yáng)極)時(shí),該位對(duì)應(yīng)的LED便顯示數(shù)據(jù)。
另一個(gè)數(shù)據(jù)通道輸出段碼,盡管所有的LED均收到了段碼,但只有被位選擇信號(hào)選中的那個(gè)LED才顯示數(shù)據(jù),其他并不發(fā)光。
2023/2/613
在程序中,軟件按一定頻率循環(huán)輸出位選擇信號(hào)和對(duì)應(yīng)的顯示數(shù)據(jù),利用眼睛的視覺慣性,從LED顯示器上便可見到相當(dāng)穩(wěn)定的數(shù)字顯示。2023/2/614七段LED數(shù)碼管實(shí)驗(yàn)硬件連接情況
在實(shí)驗(yàn)學(xué)習(xí)板中,有8個(gè)共陰極的LED,位選信號(hào)通過P0口,再通過74HC573驅(qū)動(dòng)LED。段碼通過74HC595(串行輸入,并行輸出,節(jié)約并口)輸出至LED.
實(shí)際上為了節(jié)約并口資源,P0口連接兩個(gè)74HC573,另一片驅(qū)動(dòng)點(diǎn)陣及交通燈電路。兩個(gè)驅(qū)動(dòng)芯片的轉(zhuǎn)換通過一個(gè)波段開關(guān)控制。當(dāng)開關(guān)撥到上邊時(shí),點(diǎn)陣驅(qū)動(dòng)電路起作用,相反當(dāng)撥到下邊時(shí),數(shù)碼管驅(qū)動(dòng)電路起作用。2023/2/615實(shí)驗(yàn)1在左邊第一個(gè)LED上顯示數(shù)字5步驟:(1)通過74HC595送5的段碼(2)通過P0口送位選信號(hào)2023/2/616include<reg51.h>#defineucharunsignedcharsbitclk=P2^7; //595時(shí)鐘信號(hào)輸入管腳sbitst=P2^6; //595鎖存信號(hào)輸入管腳sbitio=P2^5; //595數(shù)據(jù)信號(hào)輸入管腳2023/2/617voidwr595(ucharucdat){ uchari; clk=1; st=1; for(i=8;i>0;i--) //循環(huán)八次,寫一個(gè)字節(jié)
{ io=ucdat&0x01; //發(fā)送BIT0位
clk=0; clk=1; //時(shí)鐘上升沿
ucdat=ucdat>>1; //要發(fā)送的數(shù)據(jù)右移,準(zhǔn)備發(fā)送下一位
} st=0; st=1; //鎖存數(shù)據(jù)}//名稱:wr595()向595發(fā)送一個(gè)字節(jié)的數(shù)據(jù)//功能:向595發(fā)送一個(gè)字節(jié)的數(shù)據(jù)(先發(fā)低位)2023/2/618Voidmain(){ while(1) { uchark=0xb6;//5的段碼wr595(k);P0=0XFEH; }}2023/2/619實(shí)驗(yàn)2讓8位數(shù)碼管顯示1、2、3、4、5、6、7、82023/2/620#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineSLED_BITP0//LED位選信號(hào)輸入管腳
sbitclk=P2^7; //595時(shí)鐘信號(hào)輸入管腳
sbitst=P2^6; //595鎖存信號(hào)輸入管腳
sbitio=P2^5; //595數(shù)據(jù)信號(hào)輸入管腳ucharcodeuc7leds[]={0xfc,0x60,0xda,0xf2, 0x66,0xb6,0xbe,0xe0,0xfe};
//定義0-8段碼uchardisplay_7leds[8]={1,2,3,4,5,6,7,8};2023/2/621//功能:向595發(fā)送一個(gè)字節(jié)的數(shù)據(jù)(先發(fā)低位)voidwr595(ucharucdat){ uchari; clk=1; st=1; for(i=8;i>0;i--) //循環(huán)八次,寫一個(gè)字節(jié)
{ io=ucdat&0x01; //發(fā)送BIT0位
clk=0; clk=1; //時(shí)鐘上升沿
ucdat=ucdat>>1;/ /要發(fā)送的數(shù)據(jù)右移,準(zhǔn)備發(fā)送下一位
} st=0; st=1; //鎖存數(shù)據(jù)}2023/2/622延遲程序delay(uintdat){ while(dat--) {; }}2023/2/623//顯示display_7leds[]中的數(shù)據(jù)voidwr7leds(void){ uchari,ch; ch=0x01; //位選信號(hào)初始化
for(i=0;i<8;i++) //循環(huán)8次寫8個(gè)數(shù)據(jù)
{ wr595(uc7leds[display_7leds[i]]);//顯示數(shù)據(jù)
SLED_BIT=~ch; //送位選信號(hào)
ch<<=1;//位選信號(hào)右移,準(zhǔn)備在下一個(gè)數(shù)碼管顯示下一個(gè)數(shù)字 delay(300); //延時(shí)
}}2023/2/624Voidmain(){ while(1) { wr7leds(); }}2023/2/625實(shí)驗(yàn)3
利用實(shí)驗(yàn)系統(tǒng)相關(guān)資源,在LED上(左邊第1、2兩個(gè))顯示秒信息(60秒計(jì)時(shí)),要求左邊第一個(gè)LED顯示秒的高位值、第2個(gè)顯示秒的低位值。初始值為00。2023/2/626①總體設(shè)計(jì)思路設(shè)置二個(gè)變量存儲(chǔ)秒值,初值皆為0,設(shè)置一計(jì)數(shù)變量進(jìn)行中斷次數(shù)計(jì)數(shù),初值為0。使用定時(shí)器/計(jì)數(shù)器(工作在方式1)每0.025秒(25ms)產(chǎn)生一次中斷,每次中斷時(shí),先中斷次數(shù)加1,并判斷是否已達(dá)40次,若沒有達(dá)40次,直接顯示原秒值,若達(dá)40次,即,時(shí)間已過1秒,改變秒值,然后顯示。2023/2/627#include<reg52.h> //包含頭文件#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharnum=0,shijian=0,miao1=0,miao2=0;//74HC595與單片機(jī)連接口sbitclk=P2^7; //595時(shí)鐘信號(hào)輸入管腳sbitst=P2^6; //595鎖存信號(hào)輸入管腳sbitio=P2^5; //595數(shù)據(jù)信號(hào)輸入管腳//定義P0口sbitP00=P0^0;sbitP01=P0^1;2023/2/628ucharcodeuc7leds[16]={0xfc,0x60,0xda,0xf2 0x66,0xb6,0xbe,0xe0, 0xfe,0xe6,0xee,0x3e, 0x9c,0x7a,0x9e,0x8E};voidtime0_init();voidwr595(ucharucdat);voidwrleds(void);voiddelay(uintdat);
2023/2/629voidmain()//主函數(shù){time0_init();//調(diào)用定時(shí)器0初始化子函數(shù)
while(1);//等待中斷}2023/2/630voidtimer0()interrupt1//每中斷一次num加1,若num到40,改變miao1,miao2{TH0=(65536-23040)/256; //定時(shí)器賦初值,每0.025秒中斷一次
TL0=(65536-23040)%256; num++;if(num==40){num=0;shijian++;miao1=shijian/10;miao2=shijian%10;if(shijian==60)shijian=0;}wrleds();//顯示miao1,miao2
}2023/2/631voidtime0_init(){TMOD=0X01; //定時(shí)器0方式1TH0=(65536-23040)/256;//定時(shí)器賦初值,每0.025秒中斷一次
TL0=(65536-23040)%256; EA=1; //開總中斷
ET0=1; //開定時(shí)器0中斷
TR0=1; //啟動(dòng)定時(shí)器0}2023/2/632voidwr595(ucharucdat)//寫595函數(shù){ uchari; clk=1; st=1; for(i=8;i>0;i--) //循環(huán)八次,寫一個(gè)字節(jié)
{ io=ucdat&0x01; //發(fā)送BIT0位
clk=0; clk=1; //時(shí)鐘上升沿
ucdat=ucdat>>1; //要發(fā)送的數(shù)據(jù)右移,準(zhǔn)備發(fā)送下一位
} st=0; st=1; //鎖存數(shù)據(jù)}2023/2/633voidwrleds(void){ ucharch1,ch2; ch1=0xfe;ch2=0xfd;//位選信號(hào)初始化
wr595(uc7leds[miao1]);//傳送顯示數(shù)據(jù)
P0=ch1; //送位選信號(hào)
delay(500); //延時(shí),(決定亮度,和閃爍)
wr595(uc7leds[miao2]);//傳送顯示數(shù)據(jù)
P0=ch2; //送位選信號(hào)
delay(500); //延時(shí),(決定亮度,和閃爍)}
voiddelay(uintdat){ while(dat--);}
2023/2/6347.1.2LED點(diǎn)陣顯示屏
LED顯示屏是一種由半導(dǎo)體發(fā)光二極管構(gòu)成的顯示點(diǎn)陣.通過控制每個(gè)LED的亮滅實(shí)現(xiàn)圖形或字符的顯示。由于LED顯示屏亮度高、視角廣、工作電壓低、功耗小、壽命長(zhǎng)、耐沖擊、性能穩(wěn)定,因而被廣泛應(yīng)用于機(jī)場(chǎng)、商場(chǎng)、醫(yī)院、賓館等公共場(chǎng)所。根據(jù)連接情況,可分為共陽(yáng)極、共陰極。2023/2/6352023/2/636顯示原理
如果采用動(dòng)態(tài)掃描方式,掃描電路就可以實(shí)現(xiàn)多行發(fā)光二極管共用一套驅(qū)動(dòng)器。動(dòng)態(tài)掃描,簡(jiǎn)單說就是逐行輪流點(diǎn)亮。(類似于多位LED,可以把LED點(diǎn)陣顯示屏看成是多位LED的特殊形式)。具體以8×8點(diǎn)陣模塊為例顯示字符“B”的過程2023/2/637即先送出對(duì)應(yīng)于第一行發(fā)光二極管亮滅的列數(shù)據(jù)0FFH并鎖存,然后選通第一行,即送行數(shù)據(jù)80H,延時(shí)一段時(shí)間后,送行數(shù)據(jù)00H,第一幀顯示結(jié)束;再送第二行的列數(shù)據(jù)87H并鎖存,然后選通第二行,即送行數(shù)據(jù)40H,點(diǎn)亮相同時(shí)間后,送行數(shù)據(jù)00H,相應(yīng)二極管熄滅,第二幀顯示結(jié)束;以此類推,第8行顯示之后,又重新點(diǎn)亮第一行,周而復(fù)始。當(dāng)這樣輪回的速度足夠快(每秒24次以上)時(shí),就能看到顯示屏上穩(wěn)定的字符B了。2023/2/6382023/2/639實(shí)驗(yàn)1在LED點(diǎn)陣上顯示52023/2/640#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineSLED_BITP0//LED位選信號(hào)輸入管腳
sbitclk=P2^7; //595時(shí)鐘信號(hào)輸入管腳
sbitst=P2^6; //595鎖存信號(hào)輸入管腳
sbitio=P2^5; //595數(shù)據(jù)信號(hào)輸入管腳ucharcodeuc7leds[]={0x00,0x00,0x72,0x51,0x51,0x51,0x4E,0x00};//5的字模碼(共陰極)2023/2/641//功能:向595發(fā)送一個(gè)字節(jié)的數(shù)據(jù)(先發(fā)低位)voidwr595(ucharucdat){ uchari; clk=1; st=1; for(i=8;i>0;i--) //循環(huán)八次,寫一個(gè)字節(jié)
{ io=ucdat&0x01; //發(fā)送BIT0位
clk=0; clk=1; //時(shí)鐘上升沿
ucdat=ucdat>>1;/ /要發(fā)送的數(shù)據(jù)右移,準(zhǔn)備發(fā)送下一位
} st=0; st=1; //鎖存數(shù)據(jù)}2023/2/642延遲程序delay(uintdat){ while(dat--) {; }}2023/2/643//顯示display_7leds[]中的數(shù)據(jù)voidwr7leds(void){ uchari,ch; ch=0x01; //位選信號(hào)初始化
for(i=0;i<8;i++) //循環(huán)8次寫8個(gè)數(shù)據(jù)
{ wr595(uc7leds[i]);//顯示數(shù)據(jù)
SLED_BIT=~ch; //送位選信號(hào)
ch<<=1;//位選信號(hào)右移,準(zhǔn)備在下一個(gè)數(shù)碼管顯示下一個(gè)數(shù)字 delay(300); //延時(shí)
}}2023/2/644Voidmain(){ while(1) { wr7leds(); }}2023/2/645voidwr595(ucharucdat){ uchari; clk=1; st=1; for(i=8;i>0;i--) //循環(huán)八次,寫一個(gè)字節(jié)
{ io=ucdat&0x01; //發(fā)送BIT0位
clk=0; clk=1; //時(shí)鐘上升沿
ucdat=ucdat>>1; //要發(fā)送的數(shù)據(jù)右移,準(zhǔn)備發(fā)送下一位
} st=0; st=1; //鎖存數(shù)據(jù)}2023/2/646實(shí)驗(yàn)2以1s間隔循環(huán)顯示0-9#include<reg52.h>#include<intrins.h>#defineucharunsignedchar//#############管腳定義#######################sbitclk=P2^7; //595時(shí)鐘信號(hào)輸入管腳sbitst=P2^6; //595鎖存信號(hào)輸入管腳sbitio=P2^5; //595數(shù)據(jù)信號(hào)輸入管腳2023/2/647
//要顯示的數(shù)據(jù)代碼
ucharcodeled_88seg[80]={0x00,0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,//0 0x00,0x00,0x01,0x21,0x7F,0x01,0x01,0x00,//10x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00,//20x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00,//30x00,0x00,0x0C,0x14,0x24,0x7F,0x04,0x00,//40x00,0x00,0x72,0x51,0x51,0x51,0x4E,0x00,//50x00,0x00,0x3E,0x49,0x49,0x49,0x26,0x00,//60x00,0x00,0x40,0x40,0x40,0x4F,0x70,0x00,//70x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00,//80x00,0x00,0x32,0x49,0x49,0x49,0x3E,0x00};//92023/2/648uchari=0; uchart=0; //點(diǎn)陣顯示函數(shù)時(shí)間//延時(shí)函數(shù)voiddelay(uchari){ucharj;for(;i>0;i--)for(j=0;j<125;j++){;}}2023/2/649//名稱:wr595()向595發(fā)送一個(gè)字節(jié)的數(shù)據(jù)voidwr595(ucharucdat){ uchari; clk=1; st=1; for(i=8;i>0;i--) //循環(huán)八次,寫一個(gè)字節(jié)
{ io=ucdat&0x01; //發(fā)送BIT0位
clk=0; clk=1; //時(shí)鐘上升沿
ucdat=ucdat>>1; //要發(fā)送的數(shù)據(jù)右移,準(zhǔn)備發(fā)送下一位
} st=0; st=1; //鎖存數(shù)據(jù)}2023/2/650voidtime0_init()//T0初始化函數(shù){TMOD=0X01; //定時(shí)器0方式1TH0=(65536-23040)/256; //定時(shí)器賦初值,每0.025秒中斷一次
TL0=(65536-23040)%256; EA=1; //開總中斷
ET0=1; //開定時(shí)器0中斷
TR0=1; //啟動(dòng)定時(shí)器0}2023/2/651voidmain(void){ucharj;ucharwx; //位選信號(hào)控制
time0_init();while(1){wx=0x01;for(j=i;j<i+8;j++){wr595(led_88seg[j]);P0=~wx;delay(2);wx<<=1;}}2023/2/652//定時(shí)器中斷0服務(wù)子函數(shù)
voidtimer0()interrupt1{TH0=(65536-23040)/256;TL0=(65536-23040)%256; //定時(shí)器賦初值,每0.025秒中斷一次
t++;if(t==40){t=0;i+=8; //顯示下一列的段碼值
if(i==80)i=0;}}2023/2/653漢字字模的生成
由于要顯示內(nèi)容的不確定性,漢字字模的生成僅靠用戶自己構(gòu)建是不可能的。如果依靠單片機(jī)完成字模的創(chuàng)建和顯示控制,則由于單片機(jī)運(yùn)算能力有限,是無(wú)法實(shí)現(xiàn)漢字的選定和實(shí)時(shí)顯示。為此利用PC機(jī)和相關(guān)軟件,預(yù)先生成所要顯示漢字的字模。通??梢岳肬CDOS的漢字庫(kù)構(gòu)造需要顯示的字模。2023/2/654
在UCDOS漢字庫(kù)中漢字均以行字模的形式存儲(chǔ),只要確定了漢字在字庫(kù)中的位置和字模的長(zhǎng)度,就可以將需要漢字的行字模讀出。漢字在字庫(kù)中的位置可以通過漢字的機(jī)內(nèi)碼根據(jù)如下公式加以確定:Offset=(94×m_H+m_L)×32式中:m_H代表以16進(jìn)制表示的漢字機(jī)內(nèi)碼的高8位,m_L代表機(jī)內(nèi)碼的低8位。字模的長(zhǎng)度則是由顯示所用的點(diǎn)陣決定的,以常用的16×16點(diǎn)陣字模為例一個(gè)漢字字模需要16×16÷8=32B。因此從字模的開始依次讀取32個(gè)。2023/2/655采用PCtoLCD2002字模軟件,可以方便地生成字模數(shù)據(jù),如圖3所示。將生成的字模數(shù)據(jù)復(fù)制到系統(tǒng)源.2023/2/6562023/2/657液晶顯示器是單片機(jī)應(yīng)用系統(tǒng)中一種常用的人機(jī)接口形式。液晶顯示器(LCD),的主要原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面并配合背部燈管構(gòu)成畫面。各種型號(hào)的液晶通常是按顯示字符的行數(shù)或液晶點(diǎn)陣的行、列數(shù)來(lái)命名。如1602:每行16個(gè)字符,可以顯示2行。類似的命名有0802、1601
7.1.3
LCD16022023/2/658如12232液晶屬于圖形液晶,該液晶由122X32個(gè)點(diǎn)來(lái)顯示各種圖形??梢酝ㄟ^程序控制每個(gè)點(diǎn)顯示或不顯示。類似的命名有:12864,根據(jù)客戶需要,廠家可以設(shè)計(jì)出任意數(shù)組合的點(diǎn)陣顯示。液晶顯示器具有體積小、重量輕、功耗低、顯示操作簡(jiǎn)單等特點(diǎn)。2023/2/659弱點(diǎn):溫度范圍窄。通用型液晶正常工作溫度為0℃~+55℃,存儲(chǔ)溫度范圍:-20℃~+60℃寬溫級(jí)液晶,正常工作溫度為-20℃~+70℃,存儲(chǔ)溫度范圍:-30℃~+80℃2023/2/660
液晶顯示器可分為三類:字段式、字符點(diǎn)陣式和點(diǎn)陣圖形式液晶顯示器。
字符點(diǎn)陣式:LCD1602(單片機(jī)應(yīng)用系統(tǒng)中廣泛使用)2023/2/661LCD1602模塊的外形與引腳
共16根引腳,引腳01:VSS,接地引腳引腳02:VDD,接+5V電源引腳03:VL,對(duì)比度調(diào)整端引腳04:RS,數(shù)據(jù)/命令寄存器選擇端,1:數(shù)據(jù);0:命令引腳05:RW,讀/寫選擇端,1:讀;0:寫引腳06:E,使能端,高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令引腳07~14:D0~D7,8位雙向數(shù)據(jù)總線引腳15:BLA,背光正極引腳16:BLK,背光負(fù)極2023/2/662結(jié)構(gòu)框圖LCD1602模塊的組成
HD44780是典型的液晶顯示控制器,集控制與驅(qū)動(dòng)于一體,本身可以驅(qū)動(dòng)單行16字符或2行8字符,對(duì)于2行16字符的顯示要增加HD44100驅(qū)動(dòng)器2023/2/663HD44780
由字符發(fā)生器CGROM、自定義字符發(fā)生器CGRAM和顯示緩沖區(qū)DDRAM組成。CGROM存儲(chǔ)了不同的點(diǎn)陣字符圖形(包括數(shù)字,英文字母的大小寫,常用的符號(hào)等),每一個(gè)字符都有一個(gè)固定的代碼(數(shù)字,英文字母的大小寫為其ASCII碼)。2023/2/664DDRAM有80個(gè)單元,但第1行僅用00H~0FH單元,第2行僅用40H~4FH單元。DDRAM單元存放的是要顯示字符的編碼(ASCII碼),控制器HD44780以該編碼為索引,到CGROM(或CGRAM)中取點(diǎn)陣字形送液晶板顯示。2023/2/665LCD1602模塊的命令
序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清屏00000000012光標(biāo)歸位000000001*3輸入模式設(shè)置00000001I/DS4顯示與不顯示設(shè)置0000001DCB5光標(biāo)或屏幕內(nèi)容移位選擇000001S/CR/L**6功能設(shè)置00001DLNF**7CGRAM地址設(shè)置0001CGRAM地址8DDRAM地址設(shè)置001DDRAM地址9讀忙標(biāo)志和計(jì)數(shù)器地址設(shè)置01BF計(jì)數(shù)器地址10寫DDRAM或CGROM10要寫的數(shù)據(jù)11讀DDRAM或CGROM11讀出的數(shù)據(jù)2023/2/666命令說明命令1:清屏(DDRAM全寫空格)。光標(biāo)回到屏幕左上角,地址計(jì)數(shù)器設(shè)置為0命令2:光標(biāo)回到屏幕左上角.命令3:輸入模式設(shè)置,設(shè)置每寫入一個(gè)數(shù)據(jù)字節(jié)后,光標(biāo)的移動(dòng)方向及字符是否移動(dòng)。I/D=1,S=0,光標(biāo)右移一格且計(jì)數(shù)器加1(常用)2023/2/667命令4:顯示與不顯示設(shè)置。D=1,開顯示;D=0,關(guān)顯示。C=1,有光標(biāo);C=0,無(wú)光標(biāo)。B=1,光標(biāo)閃爍,B=0光標(biāo)不閃爍。命令5:光標(biāo)或屏幕內(nèi)容移位選擇。S/C=1,移動(dòng)屏幕內(nèi)容,S/C=0,移動(dòng)光標(biāo)。R/L=1,右移,R/L=0,左移。命令6:功能設(shè)置。DL=0:4位數(shù)據(jù)接口,DL=1:8位數(shù)據(jù)接口。N=0,單行顯示,N=1,雙行顯示。F=0:5x7點(diǎn)陣,F(xiàn)=1:5X10點(diǎn)陣2023/2/668命令7:CGRAM地址設(shè)置命令8:DDRAM地址設(shè)置命令9:讀忙標(biāo)志和計(jì)數(shù)器地址,BF=1,忙,此時(shí)模塊不能接收命令或數(shù)據(jù)。BF=0,不忙(理論上,在向模塊寫命令或數(shù)據(jù)時(shí),先要檢測(cè)為不忙狀態(tài)。實(shí)際中,可通過適當(dāng)延遲,而不需檢測(cè))命令10:寫DDRAM或CGROM.要配合地址設(shè)置命令。命令11:讀DDRAM或CGROM.要配合地址設(shè)置命令。2023/2/669LCD1602的初始化LCD1602在使用前先進(jìn)初始化:1、清屏2、功能設(shè)置3、顯示與不顯示設(shè)置4、輸入模式設(shè)置2023/2/670接口電路LCD1602模塊的接口示例
2023/2/671實(shí)驗(yàn)1LCD1602顯示#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitrs=P2^7;sbitlcden=P2^5;sbitlcdrw=P2^6;uchartable1[]="Iamastudent";uchartable2[]="Ilikestudying";2023/2/672//延遲程序voiddelay(uintx){ uinta,b; for(a=x;a>0;a--) for(b=10;b>0;b--);}2023/2/673//寫命令至LCD1602voidwrite_com(ucharcom){ P0=com; rs=0; lcden=0; delay(10); lcden=1; delay(10); lcden=0;2023/2/674//寫數(shù)據(jù)至DDRAMvoidwrite_date(uchardate){ P0=date; rs=1; lcden=0; delay(10); lcden=1; delay(10); lcden=0;}2023/2/675//LCD1602初始化voidinit(){lcdrw=0; write_com(0x01);delay(20);write_com(0x38); delay(20); write_com(0x0e); delay(20); write_com(0x06); delay(20);}2023/2/676voidmain(){ uchara; init(); write_com(0x80); delay(20); for(a=0;a<14;a++) { write_date(table1[a]); delay(2000);//控制
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 噴槍在科技館互動(dòng)設(shè)備涂裝的應(yīng)用考核試卷
- 創(chuàng)業(yè)工作合同范本
- 樂器修理合同范本
- 2025-2030年房車內(nèi)部豪華裝修定制企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 塑料擠出機(jī)的振動(dòng)抑制技術(shù)考核試卷
- 農(nóng)村底樓整修合同范例
- 農(nóng)田土地租用合同范本
- 2025-2030年數(shù)據(jù)清洗自動(dòng)化平臺(tái)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年塑料口風(fēng)琴企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 刷墻施工合同范例
- JJF 1069-2012 法定計(jì)量檢定機(jī)構(gòu)考核規(guī)范(培訓(xùn)講稿)
- 最新如何進(jìn)行隔代教育專業(yè)知識(shí)講座課件
- 當(dāng)前警察職務(wù)犯罪的特征、原因及防范,司法制度論文
- 計(jì)算機(jī)文化基礎(chǔ)單元設(shè)計(jì)-windows
- 創(chuàng)建動(dòng)物保護(hù)家園-完整精講版課件
- 廣東省保安服務(wù)監(jiān)管信息系統(tǒng)用戶手冊(cè)(操作手冊(cè))
- DNA 親子鑒定手冊(cè) 模板
- DB33T 1233-2021 基坑工程地下連續(xù)墻技術(shù)規(guī)程
- 天津 建設(shè)工程委托監(jiān)理合同(示范文本)
- 部編一年級(jí)語(yǔ)文下冊(cè)教材分析
- 火炬及火炬氣回收系統(tǒng)操作手冊(cè)
評(píng)論
0/150
提交評(píng)論