版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2022-2-221第第7 7章章 80C5180C51單片機常用接口電路設計單片機常用接口電路設計顯示器接口原理及應用顯示器接口原理及應用7.1鍵盤接口原理及應用鍵盤接口原理及應用7.280C5180C51單片機的模擬量接口單片機的模擬量接口7.32022-2-222 在單片機應用系統(tǒng)中,顯示器是最常用的輸出設在單片機應用系統(tǒng)中,顯示器是最常用的輸出設備。常用的顯示器有:備。常用的顯示器有: 發(fā)光二極管(發(fā)光二極管(LED) 液晶顯示器液晶顯示器(LCD) 。 發(fā)光二極管(發(fā)光二極管(LED)又分為)又分為七段七段LED顯示器(數(shù)顯示器(數(shù)碼管)和碼管)和LED點陣顯示屏。 液晶顯示器液晶顯
2、示器(LCD)又分為又分為字符液晶與圖形液晶。字符液晶與圖形液晶。v7.1 7.1 顯示器接口原理及應用顯示器接口原理及應用2022-2-2237.1.1 七段七段LED顯示器(數(shù)碼管)顯示器(數(shù)碼管)v LED的工作原理的工作原理v多位多位LEDLED顯示問題的解決顯示問題的解決 2022-2-224LEDLED的工作原理的工作原理 七段式七段式LED顯示部件顯示部件(a)典型的七段式典型的七段式LED器件器件 (b) 共陽極共陽極LED (c) 共陰極共陰極LED2022-2-225 LEDLED的主要部分是七段發(fā)光管,分別為的主要部分是七段發(fā)光管,分別為a a、b b、c c、d d、e
3、 e、f f、g g。有的產品還附帶有小數(shù)點有的產品還附帶有小數(shù)點DPDP。通通過發(fā)光段的不同組合,可以顯示過發(fā)光段的不同組合,可以顯示0 09 9和和A AF F共共1616個字母數(shù)字。個字母數(shù)字。 LED LED可分為:可分為:(1 1)共陽級結構)共陽級結構(2 2)共陰極結構)共陰極結構 2022-2-226 共陰極共陰極LED顯示器的發(fā)光二極管的陰極連在一起,顯示器的發(fā)光二極管的陰極連在一起,通常此公共陰極接地。當某個發(fā)光二極管的陽極通常此公共陰極接地。當某個發(fā)光二極管的陽極為高電平時,發(fā)光二極管點亮,相應的段被顯示。為高電平時,發(fā)光二極管點亮,相應的段被顯示。 共陽極共陽極LED顯
4、示器的發(fā)光二極管的陽極連在一起,顯示器的發(fā)光二極管的陽極連在一起,通常此公共陽極接正電壓,當某個發(fā)光二極管的通常此公共陽極接正電壓,當某個發(fā)光二極管的陰極接低電平時,發(fā)光二極管被點亮,相應的段陰極接低電平時,發(fā)光二極管被點亮,相應的段被顯示被顯示 。2022-2-227數(shù)字到段碼的譯碼方法將一個將一個4 4位二進制數(shù)據(jù)轉換為位二進制數(shù)據(jù)轉換為LEDLED的的7 7位位顯示代碼顯示代碼(段碼段碼)的方法有:的方法有: (1)專用芯片譯碼)專用芯片譯碼 (2) 軟件譯碼軟件譯碼2022-2-228用專用芯片完成段譯碼的示意用專用芯片完成段譯碼的示意(共陽極共陽極)2022-2-229軟件譯碼法軟件
5、譯碼法將將0F(或或09)對應的段碼組成一個表,存)對應的段碼組成一個表,存在存儲器中;在存儲器中;查表得段碼查表得段碼2022-2-2210多位多位LEDLED顯示問題的解決顯示問題的解決 (1 1)問題的提出)問題的提出 實際使用時,往往用幾個顯示管實現(xiàn)多位顯示,實際使用時,往往用幾個顯示管實現(xiàn)多位顯示,如果每一個如果每一個LEDLED占用一個獨立的輸出端口,則占用一個獨立的輸出端口,則占用的輸出端口就很多占用的輸出端口就很多。一個端口一個端口一個端口一個端口一個端口一個端口一個端口一個端口一個端口一個端口2022-2-2211(2)(2)問題的解決方法問題的解決方法硬件:采用公用的驅動電
6、路硬件:采用公用的驅動電路 軟件:采用掃描方法軟件:采用掃描方法 2022-2-22122022-2-2213 一個數(shù)據(jù)通道作為位控制,該端口輸出的選擇信一個數(shù)據(jù)通道作為位控制,該端口輸出的選擇信號使某一位為高電平(共陽極)時,該位對應的號使某一位為高電平(共陽極)時,該位對應的LED便顯示數(shù)據(jù)。便顯示數(shù)據(jù)。 另一個數(shù)據(jù)通道輸出段碼,盡管所有的另一個數(shù)據(jù)通道輸出段碼,盡管所有的LED均收均收到了段碼,但只有被位選擇信號選中的那個到了段碼,但只有被位選擇信號選中的那個LED才顯示數(shù)據(jù),其他并不發(fā)光。才顯示數(shù)據(jù),其他并不發(fā)光。 2022-2-2214 在程序中,軟件按一定頻率循環(huán)輸出位選擇信在程序
7、中,軟件按一定頻率循環(huán)輸出位選擇信號和對應的顯示數(shù)據(jù),利用眼睛的視覺慣性,號和對應的顯示數(shù)據(jù),利用眼睛的視覺慣性,從從LED顯示器上便可見到相當穩(wěn)定的數(shù)字顯示。顯示器上便可見到相當穩(wěn)定的數(shù)字顯示。2022-2-2215七段七段LED數(shù)碼管實驗數(shù)碼管實驗v硬件連接情況硬件連接情況 在實驗學習板中,有在實驗學習板中,有8個共陰極的個共陰極的LED,位選信位選信號通過號通過P0口,口,再通過再通過74HC573驅動驅動LED。段段碼通過碼通過74HC595(串行輸入,并行輸出,節(jié)約(串行輸入,并行輸出,節(jié)約并口)輸出至并口)輸出至LED.v 實際上為了節(jié)約并口資源,實際上為了節(jié)約并口資源,P0口連接
8、兩個口連接兩個74HC573,另一片驅動點陣及交通燈電路。兩,另一片驅動點陣及交通燈電路。兩個驅動芯片的轉換通過一個個驅動芯片的轉換通過一個波段開關控制波段開關控制。當開。當開關撥到上邊時,點陣驅動電路起作用,相反當撥關撥到上邊時,點陣驅動電路起作用,相反當撥到下邊時,數(shù)碼管驅動電路起作用。到下邊時,數(shù)碼管驅動電路起作用。2022-2-2216實驗實驗1v在左邊第一個在左邊第一個LED上顯示數(shù)字上顯示數(shù)字5步驟:步驟:(1)通過)通過74HC595送送5的段碼的段碼 (2)通過)通過P0口送位選信號口送位選信號2022-2-2217include #define uchar unsigned
9、charsbit clk=P27; /595時鐘信號輸入管腳時鐘信號輸入管腳sbit st =P26;/595鎖存信號輸入管腳鎖存信號輸入管腳sbit io =P25;/595數(shù)據(jù)信號輸入管腳數(shù)據(jù)信號輸入管腳2022-2-2218void wr595(uchar ucdat)uchar i;clk=1;st=1;for(i=8;i0;i-) /循環(huán)八次,寫一個字節(jié)循環(huán)八次,寫一個字節(jié)io=ucdat&0 x01; /發(fā)送發(fā)送BIT0 位位clk=0;clk=1; /時鐘上升沿時鐘上升沿 ucdat=ucdat1; /要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位st=
10、0;st=1; /鎖存數(shù)據(jù)鎖存數(shù)據(jù)v/名稱:名稱:wr595()wr595()向向595595發(fā)送一個字節(jié)的數(shù)據(jù)發(fā)送一個字節(jié)的數(shù)據(jù)v/功能:向功能:向595595發(fā)送一個字節(jié)的數(shù)據(jù)(先發(fā)低位)發(fā)送一個字節(jié)的數(shù)據(jù)(先發(fā)低位)2022-2-2219Void main()while(1) uchar k=0 xb6; /5的段碼的段碼 wr595(k); P0=0XFEH;2022-2-2220實驗實驗2 v讓讓8位數(shù)碼管顯示位數(shù)碼管顯示1、2、3、4、5、6、7、82022-2-2221#include #include #define uchar unsigned char#define uin
11、t unsigned int#define SLED_BIT P0 /LED位選信號輸入管腳位選信號輸入管腳 sbit clk=P27; /595時鐘信號輸入管腳時鐘信號輸入管腳sbit st =P26;/595鎖存信號輸入管腳鎖存信號輸入管腳sbit io =P25;/595數(shù)據(jù)信號輸入管腳數(shù)據(jù)信號輸入管腳uchar code uc7leds=0 xfc,0 x60,0 xda,0 xf2, 0 x66,0 xb6,0 xbe,0 xe0, 0 xfe; /定義定義0-8段碼段碼uchar display_7leds8=1,2,3,4,5,6,7,8;2022-2-2222/功能:向功能:向
12、595發(fā)送一個字節(jié)的數(shù)據(jù)(先發(fā)低位)發(fā)送一個字節(jié)的數(shù)據(jù)(先發(fā)低位)void wr595(uchar ucdat)uchar i;clk=1;st=1;for(i=8;i0;i-) /循環(huán)八次,寫一個字節(jié)循環(huán)八次,寫一個字節(jié)io=ucdat&0 x01; /發(fā)送發(fā)送BIT0 位位clk=0;clk=1; /時鐘上升沿時鐘上升沿 ucdat=ucdat1;/要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位st=0;st=1; /鎖存數(shù)據(jù)鎖存數(shù)據(jù) 2022-2-2223延遲程序延遲程序delay(uint dat)while(dat-);2022-2-2224/顯示顯示dis
13、play_7leds中的數(shù)據(jù)中的數(shù)據(jù)void wr7leds(void)uchar i,ch; ch=0 x01; /位選信號初始化位選信號初始化for(i=0;i8;i+) /循環(huán)循環(huán)8次寫次寫8個數(shù)據(jù)個數(shù)據(jù)wr595(uc7ledsdisplay_7ledsi); /顯示數(shù)據(jù)顯示數(shù)據(jù)SLED_BIT=ch; /送位選信號送位選信號ch=1;/位選信號右移,準備在下一個數(shù)碼管顯示下一個數(shù)字位選信號右移,準備在下一個數(shù)碼管顯示下一個數(shù)字delay(300); /延時延時2022-2-2225Void main()while(1) wr7leds();2022-2-2226實驗實驗3 利用實驗系
14、統(tǒng)相關資源,在LED上(左邊第1、2兩個)顯示秒信息(60秒計時),要求左邊第一個LED顯示秒的高位值、第2個顯示秒的低位值。初始值為00。2022-2-2227v總體設計思路總體設計思路v設置二個變量存儲秒值,初值皆為設置二個變量存儲秒值,初值皆為0,設置一計,設置一計數(shù)變量進行中斷次數(shù)計數(shù),初值為數(shù)變量進行中斷次數(shù)計數(shù),初值為0。使用定時。使用定時器器/計數(shù)器(工作在方式計數(shù)器(工作在方式1)每)每0.025秒秒(25ms)產生一次中斷,每次中斷時,先中斷次數(shù)加產生一次中斷,每次中斷時,先中斷次數(shù)加1,并判斷是否已達并判斷是否已達40次,若沒有達次,若沒有達40次,直接顯次,直接顯示原秒值
15、,若達示原秒值,若達40次,即,時間已過次,即,時間已過1秒,改變秒,改變秒值,然后顯示。秒值,然后顯示。2022-2-2228#include /包含頭文件包含頭文件#include #define uchar unsigned char#define uint unsigned intuchar num=0,shijian=0,miao1=0,miao2=0;/74HC595與單片機連接口與單片機連接口sbit clk=P27; /595時鐘信號輸入管腳時鐘信號輸入管腳sbit st =P26;/595鎖存信號輸入管腳鎖存信號輸入管腳sbit io =P25;/595數(shù)據(jù)信號輸入管腳數(shù)據(jù)信
16、號輸入管腳/定義定義P0口口sbit P00=P00;sbit P01=P01;2022-2-2229uchar code uc7leds16=0 xfc,0 x60,0 xda,0 xf2 0 x66,0 xb6,0 xbe,0 xe0, 0 xfe,0 xe6,0 xee,0 x3e, 0 x9c,0 x7a,0 x9e,0 x8E;void time0_init();void wr595(uchar ucdat); void wrleds(void);void delay(uint dat); 2022-2-2230void main() /主函數(shù)主函數(shù) time0_init(); /調
17、用定時器調用定時器0初始化子函數(shù)初始化子函數(shù) while(1); /等待中斷等待中斷2022-2-2231void timer0() interrupt 1 /每中斷一次每中斷一次num加加1,若,若num到到40,改,改變變miao1,miao2 TH0=(65536-23040)/256; /定時器賦初值定時器賦初值,每每0.025秒中斷一次秒中斷一次 TL0=(65536-23040)%256;num+; if(num=40) num=0; shijian+; miao1=shijian/10; miao2=shijian%10;if(shijian=60) shijian=0; wrl
18、eds(); /顯示顯示miao1,miao2 2022-2-2232void time0_init() TMOD=0X01;/定時器定時器0方式方式1 TH0=(65536-23040)/256; /定時器賦初值定時器賦初值,每每0.025秒中斷一次秒中斷一次 TL0=(65536-23040)%256; EA=1;/開總中斷開總中斷 ET0=1;/開定時器開定時器0中斷中斷 TR0=1; /啟動定時器啟動定時器02022-2-2233void wr595(uchar ucdat) /寫寫595函數(shù)函數(shù)uchar i;clk=1;st=1;for(i=8;i0;i-) /循環(huán)八次,寫一個字節(jié)
19、循環(huán)八次,寫一個字節(jié)io=ucdat&0 x01; /發(fā)送發(fā)送BIT0 位位clk=0;clk=1; /時鐘上升沿時鐘上升沿 ucdat=ucdat1;/要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位位st=0;st=1; /鎖存數(shù)據(jù)鎖存數(shù)據(jù)2022-2-2234void wrleds(void)uchar ch1,ch2; ch1=0 xfe;ch2=0 xfd; /位選信號初始化位選信號初始化wr595(uc7ledsmiao1); /傳送顯示數(shù)據(jù)傳送顯示數(shù)據(jù)P0=ch1; /送位選信號送位選信號delay(500); /延時,(決定亮度,和閃爍)延時,(決定亮度,
20、和閃爍) wr595(uc7ledsmiao2); /傳送顯示數(shù)據(jù)傳送顯示數(shù)據(jù)P0=ch2; /送位選信號送位選信號 delay(500); /延時,(決定亮度,和閃爍)延時,(決定亮度,和閃爍) void delay(uint dat) while(dat-);2022-2-22357.1.2 LED點陣顯示屏點陣顯示屏 LED顯示屏是一種由半導體顯示屏是一種由半導體發(fā)光二極管發(fā)光二極管構成的構成的顯顯示點陣示點陣.通過控制每個通過控制每個LED的亮滅實現(xiàn)的亮滅實現(xiàn)圖形圖形或或字符字符的顯示。由于的顯示。由于LED顯示屏亮度高、視角廣、工顯示屏亮度高、視角廣、工作電壓低、功耗小、壽命長、耐沖
21、擊、性能穩(wěn)定作電壓低、功耗小、壽命長、耐沖擊、性能穩(wěn)定,因而被廣泛應用于機場、商場、醫(yī)院、賓館等公因而被廣泛應用于機場、商場、醫(yī)院、賓館等公共場所。共場所。 根據(jù)連接情況,可分為根據(jù)連接情況,可分為共陽極共陽極、共陰極共陰極。2022-2-22362022-2-2237顯示原理顯示原理如果采用動態(tài)掃描方式如果采用動態(tài)掃描方式,掃描電路就可以實現(xiàn)多行發(fā)掃描電路就可以實現(xiàn)多行發(fā)光二極管共用一套驅動器。動態(tài)掃描光二極管共用一套驅動器。動態(tài)掃描,簡單說就是簡單說就是逐行輪流點亮。(逐行輪流點亮。(類似于多位類似于多位LED,可以把,可以把LED點陣顯示屏看成是多位點陣顯示屏看成是多位LED的特殊形式的
22、特殊形式)。)。具體以具體以88點陣模塊為例顯示字符點陣模塊為例顯示字符“B”的過程的過程2022-2-2238v即先送出對應于第一行發(fā)光二極管亮滅的列數(shù)據(jù)即先送出對應于第一行發(fā)光二極管亮滅的列數(shù)據(jù)0FFH并鎖存并鎖存,然后選通第一行然后選通第一行,即送行數(shù)據(jù)即送行數(shù)據(jù)80H,延時一段時間后延時一段時間后,送行數(shù)據(jù)送行數(shù)據(jù)00H,第一幀顯示結束第一幀顯示結束;再送第二行的列數(shù)據(jù)再送第二行的列數(shù)據(jù)87H并鎖存并鎖存,然后選通第二然后選通第二行行,即送行數(shù)據(jù)即送行數(shù)據(jù)40H,點亮相同時間后點亮相同時間后,送行數(shù)據(jù)送行數(shù)據(jù)00H,相應二極管熄滅相應二極管熄滅,第二幀顯示結束第二幀顯示結束;以此類推以
23、此類推,第第8行顯示之后行顯示之后,又重新點亮第一行又重新點亮第一行,周而復始。當周而復始。當這樣輪回的速度足夠快這樣輪回的速度足夠快(每秒每秒24次以上次以上)時時,就能就能看到顯示屏上穩(wěn)定的字符看到顯示屏上穩(wěn)定的字符B了。了。2022-2-22392022-2-2240實驗實驗1 在在LED點陣上顯示點陣上顯示52022-2-2241#include #include #define uchar unsigned char#define uint unsigned int#define SLED_BIT P0 /LED位選信號輸入管腳位選信號輸入管腳 sbit clk=P27; /595時
24、鐘信號輸入管腳時鐘信號輸入管腳sbit st =P26;/595鎖存信號輸入管腳鎖存信號輸入管腳sbit io =P25;/595數(shù)據(jù)信號輸入管腳數(shù)據(jù)信號輸入管腳uchar code uc7leds=0 x00,0 x00,0 x72,0 x51,0 x51,0 x51,0 x4E,0 x00;/5的字模碼(共陰極)的字模碼(共陰極)2022-2-2242/功能:向功能:向595發(fā)送一個字節(jié)的數(shù)據(jù)(先發(fā)低位)發(fā)送一個字節(jié)的數(shù)據(jù)(先發(fā)低位)void wr595(uchar ucdat)uchar i;clk=1;st=1;for(i=8;i0;i-) /循環(huán)八次,寫一個字節(jié)循環(huán)八次,寫一個字節(jié)i
25、o=ucdat&0 x01; /發(fā)送發(fā)送BIT0 位位clk=0;clk=1; /時鐘上升沿時鐘上升沿 ucdat=ucdat1;/要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位st=0;st=1; /鎖存數(shù)據(jù)鎖存數(shù)據(jù) 2022-2-2243延遲程序延遲程序delay(uint dat)while(dat-);2022-2-2244/顯示顯示display_7leds中的數(shù)據(jù)中的數(shù)據(jù)void wr7leds(void)uchar i,ch; ch=0 x01; /位選信號初始化位選信號初始化for(i=0;i8;i+) /循環(huán)循環(huán)8次寫次寫8個數(shù)據(jù)個數(shù)據(jù)wr595(u
26、c7ledsi); /顯示數(shù)據(jù)顯示數(shù)據(jù)SLED_BIT=ch; /送位選信號送位選信號ch0;i-) /循環(huán)八次,寫一個字節(jié)循環(huán)八次,寫一個字節(jié)io=ucdat&0 x01; /發(fā)送發(fā)送BIT0 位位clk=0;clk=1; /時鐘上升沿時鐘上升沿 ucdat=ucdat1; /要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位st=0;st=1; /鎖存數(shù)據(jù)鎖存數(shù)據(jù)2022-2-2247實驗實驗2 以以1s間隔循環(huán)顯示間隔循環(huán)顯示0-9#include #include #define uchar unsigned char/#管腳定義管腳定義#sbit clk=P27
27、; /595時鐘信號輸入管腳時鐘信號輸入管腳sbit st =P26;/595鎖存信號輸入管腳鎖存信號輸入管腳sbit io =P25;/595數(shù)據(jù)信號輸入管腳數(shù)據(jù)信號輸入管腳2022-2-2248/要顯示的數(shù)據(jù)代碼要顯示的數(shù)據(jù)代碼uchar code led_88seg80= 0 x00,0 x00,0 x3E,0 x41,0 x41,0 x41,0 x3E,0 x00, /0 0 x00,0 x00,0 x01,0 x21,0 x7F,0 x01,0 x01,0 x00, /1 0 x00,0 x00,0 x27,0 x45,0 x45,0 x45,0 x39,0 x00, /2 0 x0
28、0,0 x00,0 x22,0 x49,0 x49,0 x49,0 x36,0 x00, /3 0 x00,0 x00,0 x0C,0 x14,0 x24,0 x7F,0 x04,0 x00, /4 0 x00,0 x00,0 x72,0 x51,0 x51,0 x51,0 x4E,0 x00, /5 0 x00,0 x00,0 x3E,0 x49,0 x49,0 x49,0 x26,0 x00, /6 0 x00,0 x00,0 x40,0 x40,0 x40,0 x4F,0 x70,0 x00, /7 0 x00,0 x00,0 x36,0 x49,0 x49,0 x49,0 x36,0
29、x00, /8 0 x00,0 x00,0 x32,0 x49,0 x49,0 x49,0 x3E,0 x00; /92022-2-2249uchar i=0;uchar t=0;/點陣顯示函數(shù)時間點陣顯示函數(shù)時間/延時函數(shù)延時函數(shù)void delay(uchar i) uchar j; for(;i0;i-) for(j=0;j0;i-) /循環(huán)八次,寫一個字節(jié)循環(huán)八次,寫一個字節(jié)io=ucdat&0 x01; /發(fā)送發(fā)送BIT0 位位clk=0;clk=1; /時鐘上升沿時鐘上升沿 ucdat=ucdat1; /要發(fā)送的數(shù)據(jù)右移,準備發(fā)送要發(fā)送的數(shù)據(jù)右移,準備發(fā)送下一位下一位st=
30、0;st=1; /鎖存數(shù)據(jù)鎖存數(shù)據(jù)2022-2-2251void time0_init() /T0初始化函數(shù)初始化函數(shù) TMOD=0X01;/定時器定時器0方式方式1 TH0=(65536-23040)/256; /定時器賦初值定時器賦初值,每每0.025秒中斷一次秒中斷一次 TL0=(65536-23040)%256; EA=1;/開總中斷開總中斷 ET0=1;/開定時器開定時器0中斷中斷 TR0=1; /啟動定時器啟動定時器02022-2-2252void main(void) uchar j; uchar wx;/位選信號控制位選信號控制 time0_init(); while(1) w
31、x=0 x01; for(j=i;ji+8;j+) wr595(led_88segj); P0=wx; delay(2); wx=1; 2022-2-2253/定時器中斷定時器中斷0服務子函數(shù)服務子函數(shù)void timer0() interrupt 1 TH0=(65536-23040)/256; TL0=(65536-23040)%256;/定時器賦初值定時器賦初值,每每0.025秒秒中斷一次中斷一次 t+; if(t=40) t=0; i+=8;/顯示下一列的段碼值顯示下一列的段碼值 if(i=80) i=0; 2022-2-2254漢字字模的生成漢字字模的生成 由于要顯示內容的不確定性由
32、于要顯示內容的不確定性,漢字字模的生成僅靠漢字字模的生成僅靠 用戶自己構建是不可能的。如果依靠單片機完成用戶自己構建是不可能的。如果依靠單片機完成字模的創(chuàng)建和顯示控制字模的創(chuàng)建和顯示控制,則由于單片機運算能力有則由于單片機運算能力有限限,是無法實現(xiàn)漢字的選定和實時顯示。為此利用是無法實現(xiàn)漢字的選定和實時顯示。為此利用PC機和相關軟件機和相關軟件,預先生成所要顯示漢字的字模。預先生成所要顯示漢字的字模。 通常可以利用通??梢岳肬CDOS的漢字庫構造需要顯示的的漢字庫構造需要顯示的 字模。字模。2022-2-2255 在在UCDOS漢字庫中漢字均以行字模的形式存儲漢字庫中漢字均以行字模的形式存儲
33、,只要確只要確定了漢字在字庫中的位置和字模的長度定了漢字在字庫中的位置和字模的長度,就可以將需要漢就可以將需要漢字的行字模讀出。字的行字模讀出。 漢字在字庫中的位置可以通過漢字的機內碼根據(jù)如下公式漢字在字庫中的位置可以通過漢字的機內碼根據(jù)如下公式加以確定加以確定: Offset = (94m_H+m_L)32 式中式中:m_H代表以代表以16進制表示的漢字機內碼的高進制表示的漢字機內碼的高8位位,m_L代表機內碼的低代表機內碼的低8位。位。 字模的長度則是由顯示所用的點陣決定的字模的長度則是由顯示所用的點陣決定的,以常用的以常用的1616點陣字模為例一個漢字字模需要點陣字模為例一個漢字字模需要
34、16168=32 B。因此從字模的開始依次讀取。因此從字模的開始依次讀取32個。個。2022-2-2256v采用采用PCtoLCD 2002字模軟件字模軟件,可以方便地生成可以方便地生成字模數(shù)據(jù)字模數(shù)據(jù),如圖如圖3所示。將生成的字模數(shù)據(jù)復制到所示。將生成的字模數(shù)據(jù)復制到系統(tǒng)源系統(tǒng)源.2022-2-22572022-2-2258 液晶顯示器是單片機應用系統(tǒng)中一種常用的人機液晶顯示器是單片機應用系統(tǒng)中一種常用的人機接口形式。接口形式。 液晶顯示器(液晶顯示器(LCD),的主要原理是以電流刺激),的主要原理是以電流刺激液晶分子產生點、線、面并配合背部燈管構成畫液晶分子產生點、線、面并配合背部燈管構成
35、畫面。面。 各種型號的液晶通常是按顯示字符的行數(shù)或液晶各種型號的液晶通常是按顯示字符的行數(shù)或液晶點陣的行、列數(shù)來命名。如點陣的行、列數(shù)來命名。如1602:每行:每行16個字個字符,可以顯示符,可以顯示2行。類似的命名有行。類似的命名有0802、1601 7.1.3 LCD16022022-2-2259v如如12232液晶屬于圖形液晶,該液晶由液晶屬于圖形液晶,該液晶由122X32個點來顯示各種圖形??梢酝ㄟ^程序控個點來顯示各種圖形??梢酝ㄟ^程序控制每個點顯示或不顯示。類似的命名有:制每個點顯示或不顯示。類似的命名有:12864,根據(jù)客戶需要,廠家可以設計出任意數(shù)組合的點根據(jù)客戶需要,廠家可以設
36、計出任意數(shù)組合的點陣顯示。陣顯示。v液晶顯示器具有液晶顯示器具有體積小、重量輕、功耗低、顯示體積小、重量輕、功耗低、顯示操作簡單操作簡單等特點。等特點。2022-2-2260v弱點:溫度范圍窄。通用型液晶正常工作溫度為弱點:溫度范圍窄。通用型液晶正常工作溫度為0+55 ,存儲溫度范圍:,存儲溫度范圍:-20 +60 v寬溫級液晶,正常工作溫度為寬溫級液晶,正常工作溫度為-20+70 ,存儲溫度范圍:存儲溫度范圍:-30 +80 2022-2-2261 液晶顯示器可分為三類:液晶顯示器可分為三類:字段式字段式、字符點陣式和字符點陣式和點陣圖形式點陣圖形式液晶顯示器。液晶顯示器。 v字符點陣式:字
37、符點陣式:LCD1602(單片機應用系統(tǒng)中廣泛單片機應用系統(tǒng)中廣泛使用)使用)2022-2-2262LCD1602LCD1602模塊的外形與引腳模塊的外形與引腳 共共1616根引腳,根引腳,引腳引腳0101:VSSVSS,接地引腳,接地引腳引腳引腳0202:VDDVDD,接,接+5V+5V電源電源引腳引腳0303:VLVL,對比度調整端,對比度調整端引腳引腳0404:RS,RS,數(shù)據(jù)數(shù)據(jù)/ /命令寄存器選擇端,命令寄存器選擇端,1 1:數(shù)據(jù);:數(shù)據(jù);0 0:命令:命令引腳引腳0505:RWRW,讀,讀/ /寫選擇端,寫選擇端,1 1:讀;:讀;0 0:寫:寫引腳引腳0606:E E,使能端,高
38、電平跳變成低電平時,液晶模塊執(zhí)行,使能端,高電平跳變成低電平時,液晶模塊執(zhí)行命令命令引腳引腳07071414:D0D0D7D7,8 8位雙向數(shù)據(jù)總線位雙向數(shù)據(jù)總線引腳引腳1515:BLABLA,背光正極,背光正極引腳引腳1616:BLKBLK,背光負極,背光負極 2022-2-2263v結構框圖結構框圖 LCD1602LCD1602模塊的組成模塊的組成 HD44780HD44780是典型的液晶顯示控制器,集控制與驅動于是典型的液晶顯示控制器,集控制與驅動于一體,一體,本身可以驅動本身可以驅動單行單行1616字符字符或或2 2行行8 8字符,字符,對于對于2 2行行1616字符字符的顯示的顯示要
39、增加要增加HD44100HD44100驅動器驅動器 2022-2-2264vHD44780 由字符發(fā)生器由字符發(fā)生器CGRCGRO OM M、自定義字符發(fā)生器、自定義字符發(fā)生器CGRCGRA AM M和顯示和顯示緩沖區(qū)緩沖區(qū)DDRAMDDRAM組成。組成。 v CGROMCGROM存儲了不同的點陣字符圖形(包括數(shù)字,英文字母存儲了不同的點陣字符圖形(包括數(shù)字,英文字母的大小寫,常用的符號等),每一個字符都有一個的大小寫,常用的符號等),每一個字符都有一個固定的固定的代碼代碼(數(shù)字,英文字母的大小寫為其(數(shù)字,英文字母的大小寫為其ASCIIASCII碼)。碼)。 2022-2-2265v DDR
40、AMDDRAM有有8080個單元,但第個單元,但第1 1行僅用行僅用00H00H0FH0FH單元,第單元,第2 2行僅用行僅用40H40H4FH4FH單元單元 。DDRAMDDRAM單元存放的是要單元存放的是要顯示字符的編碼顯示字符的編碼(ASCIIASCII碼),控制器碼),控制器HD44780HD44780以該編碼為以該編碼為索引索引,到,到CGROMCGROM(或(或CGRAM)CGRAM)中中取取點陣字形點陣字形送液晶板顯示。送液晶板顯示。 2022-2-2266 LCD1602 LCD1602模塊的命令模塊的命令 序號序號指令指令RSR/WD7D6D5D4D3D2D1D01清屏清屏0
41、0000000012光標歸位光標歸位000000001*3輸入模式設置輸入模式設置00000001I/DS4顯示與不顯示設置顯示與不顯示設置0000001DCB5光標或屏幕內容移位光標或屏幕內容移位選擇選擇000001S/CR/L*6功能設置功能設置00001DLNF*7CGRAM地址設置地址設置0001CGRAM地址地址8DDRAM地址設置地址設置001DDRAM地址地址9讀忙標志和計數(shù)器地讀忙標志和計數(shù)器地址設置址設置01BF計數(shù)器地址計數(shù)器地址10寫寫DDRAM或或CGROM10 要寫的數(shù)據(jù)要寫的數(shù)據(jù)11讀讀DDRAM或或CGROM11 讀出的數(shù)據(jù)讀出的數(shù)據(jù)2022-2-2267v命令說
42、明命令說明命令命令1:清屏(:清屏(DDRAM全寫空格)。光標回到屏全寫空格)。光標回到屏幕左上角,地址計數(shù)器設置為幕左上角,地址計數(shù)器設置為0命令命令2:光標回到屏幕左上角:光標回到屏幕左上角.命令命令3:輸入模式設置,設置每寫入一個數(shù)據(jù)字節(jié):輸入模式設置,設置每寫入一個數(shù)據(jù)字節(jié)后,光標的移動方向及字符是否移動。后,光標的移動方向及字符是否移動。I/D=1,S=0,光標右移一格且計數(shù)器加光標右移一格且計數(shù)器加1(常用)(常用)2022-2-2268v命令命令4:顯示與不顯示設置。:顯示與不顯示設置。D=1,開顯示;開顯示;D=0,關顯示。關顯示。C=1,有光標;有光標;C=0,無光標。,無光
43、標。vB=1,光標閃爍,光標閃爍,B=0光標不閃爍。光標不閃爍。v命令命令5:光標或屏幕內容移位選擇。:光標或屏幕內容移位選擇。S/C=1,移,移動屏幕內容,動屏幕內容,S/C=0,移動光標。,移動光標。R/L=1,右右移,移,R/L=0,左移。左移。v命令命令6:功能設置。:功能設置。DL=0:4位數(shù)據(jù)接口,位數(shù)據(jù)接口,DL=1:8位數(shù)據(jù)接口。位數(shù)據(jù)接口。N=0,單行顯示,單行顯示,N=1,雙行顯示。雙行顯示。F=0:5x7點陣,點陣,F(xiàn)=1:5X10點陣點陣2022-2-2269v命令命令7:CGRAM地址設置地址設置v命令命令8:DDRAM地址設置地址設置v命令命令9:讀忙標志和計數(shù)器地
44、址:讀忙標志和計數(shù)器地址,BF=1,忙,此時忙,此時模塊不能接收命令或數(shù)據(jù)。模塊不能接收命令或數(shù)據(jù)。BF=0,不忙不忙(理論上,在向模塊寫命令或數(shù)據(jù)時,先要檢測為(理論上,在向模塊寫命令或數(shù)據(jù)時,先要檢測為不忙狀態(tài)。實際中,可通過適當延遲,而不需檢不忙狀態(tài)。實際中,可通過適當延遲,而不需檢測)測)命令命令10:寫:寫DDRAM或或CGROM.要配合地址設置要配合地址設置命令。命令。命令命令11:讀:讀DDRAM或或CGROM.要配合地址設置要配合地址設置命令。命令。2022-2-2270LCD1602的初始化的初始化vLCD1602在使用前先進初始化:在使用前先進初始化:1、清屏、清屏2、功能
45、設置、功能設置3、顯示與不顯示設置、顯示與不顯示設置4、輸入模式設置、輸入模式設置2022-2-2271v接口電路接口電路 LCD1602LCD1602模塊的接口示例模塊的接口示例 2022-2-2272實驗實驗1 LCD1602顯示顯示#include#define uchar unsigned char#define uint unsigned intsbit rs=P27;sbit lcden=P25;sbit lcdrw=P26;uchar table1=I am a student;uchar table2=I like studying;2022-2-2273/延遲程序延遲程序void delay(uint x)uint a,b;for(a=x;a0;a-)for(b=10;b0;b-); 2022-2-2274/寫命令至寫命令至LCD1602void write_com(uchar com)P0=com;rs=0;lcden=0;delay(10);lcden=1;delay(10);lcden=0;2022-2-2275/寫數(shù)據(jù)至寫數(shù)據(jù)至DDRAMvoid write_date(uchar date)P0=date;rs=1;lcden=0;delay(10);lcden=1;delay(10);lcden=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教新課標九年級生物上冊月考試卷含答案
- 2025年北師大新版第二冊地理下冊階段測試試卷含答案
- 黑龍江哈爾濱師范大學招考聘用輔導員23人高頻重點提升(共500題)附帶答案詳解
- 2025年華東師大版八年級英語下冊階段測試試卷
- 二零二五年度智能消防報警系統(tǒng)施工勞務分包合同3篇
- 2024版全新酒類運輸合同下載
- 二零二五年度快遞企業(yè)業(yè)務培訓服務合同大全2篇
- 2025年湘教新版九年級地理下冊階段測試試卷
- 2025年滬科版九年級物理上冊階段測試試卷含答案
- 2024年貴州職業(yè)技術學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 園林綠化風險因素辨識及防控措施
- 譯林版一年級英語上冊全套ppt
- 教師教學常規(guī)管理培訓夯實教學常規(guī)強化教學管理PPT教學課件
- 公務員考試工信部面試真題及解析
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 2023年上海英語高考卷及答案完整版
- 西北農林科技大學高等數(shù)學期末考試試卷(含答案)
- 金紅葉紙業(yè)簡介-2 -紙品及產品知識
- 《連鎖經(jīng)營管理》課程教學大綱
- 《畢淑敏文集》電子書
- 頸椎JOA評分 表格
評論
0/150
提交評論