




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
會(huì)計(jì)學(xué)1C單片機(jī)常用接口電路設(shè)計(jì)實(shí)用2023/1/1727.1.1七段LED顯示器(數(shù)碼管)
LED的工作原理多位LED顯示問題的解決
第1頁/共89頁2023/1/173LED的工作原理
七段式LED顯示部件(a)典型的七段式LED器件(b)共陽極LED(c)共陰極LED第2頁/共89頁2023/1/174
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)共陽級(jí)結(jié)構(gòu)(2)共陰極結(jié)構(gòu)
第3頁/共89頁2023/1/175
共陰極LED顯示器的發(fā)光二極管的陰極連在一起,通常此公共陰極接地。當(dāng)某個(gè)發(fā)光二極管的陽極為高電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。
共陽極LED顯示器的發(fā)光二極管的陽極連在一起,通常此公共陽極接正電壓,當(dāng)某個(gè)發(fā)光二極管的陰極接低電平時(shí),發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示。第4頁/共89頁2023/1/176數(shù)字到段碼的譯碼方法將一個(gè)4位二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為LED的7位顯示代碼(段碼)的方法有:
(1)專用芯片譯碼(2)軟件譯碼第5頁/共89頁2023/1/177用專用芯片完成段譯碼的示意(共陽極)第6頁/共89頁2023/1/178軟件譯碼法①將0~F(或0~9)對(duì)應(yīng)的段碼組成一個(gè)表,存在存儲(chǔ)器中;②查表得段碼第7頁/共89頁2023/1/179多位LED顯示問題的解決
(1)問題的提出實(shí)際使用時(shí),往往用幾個(gè)顯示管實(shí)現(xiàn)多位顯示,如果每一個(gè)LED占用一個(gè)獨(dú)立的輸出端口,則占用的輸出端口就很多。一個(gè)端口一個(gè)端口一個(gè)端口一個(gè)端口一個(gè)端口第8頁/共89頁2023/1/1710(2)問題的解決方法硬件:采用公用的驅(qū)動(dòng)電路軟件:采用掃描方法
第9頁/共89頁2023/1/1711第10頁/共89頁2023/1/1712
一個(gè)數(shù)據(jù)通道作為位控制,該端口輸出的選擇信號(hào)使某一位為高電平(共陽極)時(shí),該位對(duì)應(yīng)的LED便顯示數(shù)據(jù)。
另一個(gè)數(shù)據(jù)通道輸出段碼,盡管所有的LED均收到了段碼,但只有被位選擇信號(hào)選中的那個(gè)LED才顯示數(shù)據(jù),其他并不發(fā)光。
第11頁/共89頁2023/1/1713
在程序中,軟件按一定頻率循環(huán)輸出位選擇信號(hào)和對(duì)應(yīng)的顯示數(shù)據(jù),利用眼睛的視覺慣性,從LED顯示器上便可見到相當(dāng)穩(wěn)定的數(shù)字顯示。第12頁/共89頁2023/1/1714七段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)電路起作用。第13頁/共89頁2023/1/1715實(shí)驗(yàn)1在左邊第一個(gè)LED上顯示數(shù)字5步驟:(1)通過74HC595送5的段碼(2)通過P0口送位選信號(hào)第14頁/共89頁2023/1/1716include<reg51.h>#defineucharunsignedcharsbitclk=P2^7; //595時(shí)鐘信號(hào)輸入管腳sbitst=P2^6; //595鎖存信號(hào)輸入管腳sbitio=P2^5; //595數(shù)據(jù)信號(hào)輸入管腳第15頁/共89頁2023/1/1717voidwr595(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ā)低位)第16頁/共89頁2023/1/1718Voidmain(){ while(1) { uchark=0xb6;//5的段碼wr595(k);P0=0XFEH; }}第17頁/共89頁2023/1/1719實(shí)驗(yàn)2讓8位數(shù)碼管顯示1、2、3、4、5、6、7、8第18頁/共89頁2023/1/1720#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};第19頁/共89頁2023/1/1721//功能:向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ù)}第20頁/共89頁2023/1/1722延遲程序delay(uintdat){ while(dat--) {; }}第21頁/共89頁2023/1/1723//顯示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í)
}}第22頁/共89頁2023/1/1724Voidmain(){ while(1) { wr7leds(); }}第23頁/共89頁2023/1/1725實(shí)驗(yàn)3
利用實(shí)驗(yàn)系統(tǒng)相關(guān)資源,在LED上(左邊第1、2兩個(gè))顯示秒信息(60秒計(jì)時(shí)),要求左邊第一個(gè)LED顯示秒的高位值、第2個(gè)顯示秒的低位值。初始值為00。第24頁/共89頁2023/1/1726①總體設(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秒,改變秒值,然后顯示。第25頁/共89頁2023/1/1727#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;第26頁/共89頁2023/1/1728ucharcodeuc7leds[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);
第27頁/共89頁2023/1/1729voidmain()//主函數(shù){time0_init();//調(diào)用定時(shí)器0初始化子函數(shù)
while(1);//等待中斷}第28頁/共89頁2023/1/1730voidtimer0()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
}第29頁/共89頁2023/1/1731voidtime0_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}第30頁/共89頁2023/1/1732voidwr595(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ù)}第31頁/共89頁2023/1/1733voidwrleds(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--);}
第32頁/共89頁2023/1/17347.1.2LED點(diǎn)陣顯示屏
LED顯示屏是一種由半導(dǎo)體發(fā)光二極管構(gòu)成的顯示點(diǎn)陣.通過控制每個(gè)LED的亮滅實(shí)現(xiàn)圖形或字符的顯示。由于LED顯示屏亮度高、視角廣、工作電壓低、功耗小、壽命長、耐沖擊、性能穩(wěn)定,因而被廣泛應(yīng)用于機(jī)場(chǎng)、商場(chǎng)、醫(yī)院、賓館等公共場(chǎng)所。根據(jù)連接情況,可分為共陽極、共陰極。第33頁/共89頁2023/1/1735第34頁/共89頁2023/1/1736顯示原理
如果采用動(dòng)態(tài)掃描方式,掃描電路就可以實(shí)現(xiàn)多行發(fā)光二極管共用一套驅(qū)動(dòng)器。動(dòng)態(tài)掃描,簡單說就是逐行輪流點(diǎn)亮。(類似于多位LED,可以把LED點(diǎn)陣顯示屏看成是多位LED的特殊形式)。具體以8×8點(diǎn)陣模塊為例顯示字符“B”的過程第35頁/共89頁2023/1/1737即先送出對(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了。第36頁/共89頁2023/1/1738第37頁/共89頁2023/1/1739實(shí)驗(yàn)1在LED點(diǎn)陣上顯示5第38頁/共89頁2023/1/1740#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的字模碼(共陰極)第39頁/共89頁2023/1/1741//功能:向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ù)}第40頁/共89頁2023/1/1742延遲程序delay(uintdat){ while(dat--) {; }}第41頁/共89頁2023/1/1743//顯示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í)
}}第42頁/共89頁2023/1/1744Voidmain(){ while(1) { wr7leds(); }}第43頁/共89頁2023/1/1745voidwr595(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ù)}第44頁/共89頁2023/1/1746實(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)輸入管腳第45頁/共89頁2023/1/1747
//要顯示的數(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};//9第46頁/共89頁2023/1/1748uchari=0; uchart=0; //點(diǎn)陣顯示函數(shù)時(shí)間//延時(shí)函數(shù)voiddelay(uchari){ucharj;for(;i>0;i--)for(j=0;j<125;j++){;}}第47頁/共89頁2023/1/1749//名稱: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ù)}第48頁/共89頁2023/1/1750voidtime0_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}第49頁/共89頁2023/1/1751voidmain(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;}}第50頁/共89頁2023/1/1752//定時(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;}}第51頁/共89頁2023/1/1753漢字字模的生成
由于要顯示內(nèi)容的不確定性,漢字字模的生成僅靠用戶自己構(gòu)建是不可能的。如果依靠單片機(jī)完成字模的創(chuàng)建和顯示控制,則由于單片機(jī)運(yùn)算能力有限,是無法實(shí)現(xiàn)漢字的選定和實(shí)時(shí)顯示。為此利用PC機(jī)和相關(guān)軟件,預(yù)先生成所要顯示漢字的字模。通??梢岳肬CDOS的漢字庫構(gòu)造需要顯示的字模。第52頁/共89頁2023/1/1754
在UCDOS漢字庫中漢字均以行字模的形式存儲(chǔ),只要確定了漢字在字庫中的位置和字模的長度,就可以將需要漢字的行字模讀出。漢字在字庫中的位置可以通過漢字的機(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位。字模的長度則是由顯示所用的點(diǎn)陣決定的,以常用的16×16點(diǎn)陣字模為例一個(gè)漢字字模需要16×16÷8=32B。因此從字模的開始依次讀取32個(gè)。第53頁/共89頁2023/1/1755采用PCtoLCD2002字模軟件,可以方便地生成字模數(shù)據(jù),如圖3所示。將生成的字模數(shù)據(jù)復(fù)制到系統(tǒng)源.第54頁/共89頁2023/1/1756第55頁/共89頁2023/1/1757液晶顯示器是單片機(jī)應(yīng)用系統(tǒng)中一種常用的人機(jī)接口形式。液晶顯示器(LCD),的主要原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面并配合背部燈管構(gòu)成畫面。各種型號(hào)的液晶通常是按顯示字符的行數(shù)或液晶點(diǎn)陣的行、列數(shù)來命名。如1602:每行16個(gè)字符,可以顯示2行。類似的命名有0802、1601
7.1.3
LCD1602第56頁/共89頁2023/1/1758如12232液晶屬于圖形液晶,該液晶由122X32個(gè)點(diǎn)來顯示各種圖形。可以通過程序控制每個(gè)點(diǎn)顯示或不顯示。類似的命名有:12864,根據(jù)客戶需要,廠家可以設(shè)計(jì)出任意數(shù)組合的點(diǎn)陣顯示。液晶顯示器具有體積小、重量輕、功耗低、顯示操作簡單等特點(diǎn)。第57頁/共89頁2023/1/1759弱點(diǎn):溫度范圍窄。通用型液晶正常工作溫度為0℃~+55℃,存儲(chǔ)溫度范圍:-20℃~+60℃寬溫級(jí)液晶,正常工作溫度為-20℃~+70℃,存儲(chǔ)溫度范圍:-30℃~+80℃第58頁/共89頁2023/1/1760
液晶顯示器可分為三類:字段式、字符點(diǎn)陣式和點(diǎn)陣圖形式液晶顯示器。
字符點(diǎn)陣式:LCD1602(單片機(jī)應(yīng)用系統(tǒng)中廣泛使用)第59頁/共89頁2023/1/1761LCD1602模塊的外形與引腳
共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ù)極第60頁/共89頁2023/1/1762結(jié)構(gòu)框圖LCD1602模塊的組成
HD44780是典型的液晶顯示控制器,集控制與驅(qū)動(dòng)于一體,本身可以驅(qū)動(dòng)單行16字符或2行8字符,對(duì)于2行16字符的顯示要增加HD44100驅(qū)動(dòng)器第61頁/共89頁2023/1/1763HD44780
由字符發(fā)生器CGROM、自定義字符發(fā)生器CGRAM和顯示緩沖區(qū)DDRAM組成。CGROM存儲(chǔ)了不同的點(diǎn)陣字符圖形(包括數(shù)字,英文字母的大小寫,常用的符號(hào)等),每一個(gè)字符都有一個(gè)固定的代碼(數(shù)字,英文字母的大小寫為其ASCII碼)。第62頁/共89頁2023/1/1764DDRAM有80個(gè)單元,但第1行僅用00H~0FH單元,第2行僅用40H~4FH單元。DDRAM單元存放的是要顯示字符的編碼(ASCII碼),控制器HD44780以該編碼為索引,到CGROM(或CGRAM)中取點(diǎn)陣字形送液晶板顯示。第63頁/共89頁2023/1/1765LCD1602模塊的命令
序號(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ù)第64頁/共89頁2023/1/1766命令說明命令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(常用)第65頁/共89頁2023/1/1767命令4:顯示與不顯示設(shè)置。D=1,開顯示;D=0,關(guān)顯示。C=1,有光標(biāo);C=0,無光標(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)陣第66頁/共89頁2023/1/1768命令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è)置命令。第67頁/共89頁2023/1/1769LCD1602的初始化LCD1602在使用前先進(jìn)初始化:1、清屏2、功能設(shè)置3、顯示與不顯示設(shè)置4、輸入模式設(shè)置第68頁/共89頁2023/1/1770接口電路LCD1602模塊的接口示例
第69頁/共89頁2023/1/1771實(shí)驗(yàn)1LCD1602顯示#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitrs=P2^7;sbitlcden=P2^5;sbitlcdrw=P2^6;uchartable1[]="Iamastudent";uchartable2[]="Ilikestudying";第70頁/共89頁2023/1/1772//延遲程序voiddelay(uintx){ uinta,b; for(a=x;a>0;a--) for(b=10;b>0;b--);}第71頁/共89頁2023/1/1773//寫命令至LCD1602voidwrite_com(ucharcom){ P0=com; rs=0; lcden=0; delay(10); lcden=1; delay(10); lcden=0;第72頁/共89頁2023/1/1774//寫數(shù)據(jù)至DDRAMvoidwrite_date(uchardate){ P0=date; rs=1; lcden=0; delay(10); lcden=1; delay(10); lcden=0;}第73頁/共89頁2023/1/1775//LCD1602初始化voidinit(){lcdrw=0; write_com(0x01);delay(20);write_com(0x38); delay(20); write_com(0x0e); delay(20); write_com(0x06); delay(20);}第74頁/共89頁2023/1/1776voidmain(){ uchara; init(); write_com(0x80); delay(20); for(a=0;a<14;a++) { write_date(table1[a]); delay(2000);//控制起初顯示的速度
}第75頁/共89頁2023/1/1777write_com(0xc0); delay(50); for
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技企業(yè)如何通過優(yōu)化知識(shí)產(chǎn)權(quán)管理提升競爭力
- 珠寶營銷合同范本
- 磁頭在辦公自動(dòng)化中的角色與市場(chǎng)推廣
- 2025至2030年中國流水陶藝數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 拆除商鋪合同范本
- 出資協(xié)議履約金條款
- 2024年濰坊昌邑市招聘事業(yè)單位考試真題
- 科技農(nóng)業(yè)大豆種植技術(shù)的創(chuàng)新實(shí)踐
- 社交媒體對(duì)青少年心理健康的影響及應(yīng)對(duì)策略研究報(bào)告
- 2024年贛市機(jī)關(guān)事務(wù)管理中心招聘制工作人員考試真題
- 【MOOC】英語口語進(jìn)階-南京大學(xué) 中國大學(xué)慕課MOOC答案
- 時(shí)間規(guī)劃局中文版
- 2024-2030年中國干細(xì)胞美容產(chǎn)業(yè)競爭格局及投資戰(zhàn)略研究報(bào)告
- 《霉菌的形態(tài)和結(jié)構(gòu)》課件
- 人群聚集或集會(huì)事故應(yīng)急處理預(yù)案(5篇)
- 陜西省咸陽市2023-2024學(xué)年高一上學(xué)期期末考試 數(shù)學(xué) 含答案
- 《腦梗死護(hù)理常規(guī)》課件
- 貴州省2025年初中學(xué)業(yè)水平考試數(shù)學(xué)模擬訓(xùn)練卷(五)
- 《大學(xué)生勞動(dòng)教育》課件第一章 新時(shí)代大學(xué)生的勞動(dòng)價(jià)值觀
- 期末試題-2024-2025學(xué)年人教PEP版英語六年級(jí)上冊(cè) (含答案)
- 知識(shí)產(chǎn)權(quán)師招聘面試題及回答建議(某大型央企)
評(píng)論
0/150
提交評(píng)論