第10章 STC單片機(jī)與IO外部設(shè)備接口_第1頁(yè)
第10章 STC單片機(jī)與IO外部設(shè)備接口_第2頁(yè)
第10章 STC單片機(jī)與IO外部設(shè)備接口_第3頁(yè)
第10章 STC單片機(jī)與IO外部設(shè)備接口_第4頁(yè)
第10章 STC單片機(jī)與IO外部設(shè)備接口_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第十章STC單片機(jī)與I/O外部設(shè)備接口 10.1 STC單片機(jī)與鍵盤接口10.2 STC單片機(jī)與LED數(shù)碼管接口10.3 STC單片機(jī)與 L CD顯示器接口10.4 小結(jié)10.5 總結(jié)10.1 STC單片機(jī)與鍵盤接口10.1.1 鍵盤接口工作原理鍵盤是由若干個(gè)按鍵組成的STC單片機(jī)輸入外部設(shè)備,可以實(shí)現(xiàn)STC單片機(jī)輸入數(shù)據(jù)和傳達(dá)命令等功能,是人工干STC單片機(jī)的重要手段之一。1.1.鍵盤的分類鍵盤的分類(1)編碼鍵盤:編碼鍵盤:由硬件邏輯電路完成必要的識(shí)別工作與可靠性措施。每按一次鍵,鍵盤自動(dòng)提供被按鍵的讀數(shù),同時(shí)產(chǎn)生一選通脈沖通知微處理器,并且還具有反彈跳和同時(shí)按鍵保護(hù)功能。這種鍵盤易于使用

2、,但硬件比較復(fù)雜。(2)非編碼鍵盤非編碼鍵盤:只簡(jiǎn)單地提供鍵盤的行列與矩陣,其它功能,如按鍵識(shí)別、按鍵釋放等僅靠軟件來(lái)完成,故硬件較為簡(jiǎn)單,但占用CPU較多時(shí)間。2. 按鍵介紹按鍵介紹常用的按鍵有三種3、柔性按鍵是近年來(lái)迅速發(fā)展的一種新型按鍵,可以分為凸球型和平面型兩種。凸球型動(dòng)作幅度明顯,觸感較強(qiáng),富有立體感,但制造工藝相對(duì)復(fù)雜;平面型幅度微小,觸感較弱,但工藝簡(jiǎn)單,壽命長(zhǎng)。柔性按鍵最大特點(diǎn)是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且按鍵的外形和面板的布局、色彩、鍵距可按照整機(jī)的要求來(lái)設(shè)計(jì)。3.鍵盤系統(tǒng)設(shè)計(jì)鍵盤系統(tǒng)設(shè)計(jì)(1)確定鍵盤編碼方案:采用編碼鍵盤或非編碼鍵盤。(2)確定鍵盤工作方式:

3、采用中斷方式或查詢方式獲取輸入鍵操作信息。 (3)設(shè)計(jì)硬件電路。 (4)非編碼鍵盤系統(tǒng)中,鍵閉合和鍵釋放的信息獲取,鍵抖動(dòng)的消除,鍵值查找及一些保護(hù)措施的實(shí)施等任務(wù),均由軟件來(lái)完成。4. 非編碼鍵盤的鍵輸入程序應(yīng)完成的基本任務(wù) (1)監(jiān)測(cè)有無(wú)鍵按下:鍵的閉合與否,反映在電壓上就是呈現(xiàn)出高電平或低電平,所以通過(guò)對(duì)電平高低狀態(tài)的檢測(cè),便可確認(rèn)按鍵是否按下。 (2)判斷是哪個(gè)鍵按下:讀入I/O口輸入線的狀態(tài),通過(guò)判斷I/O輸入線是否為低電平就很容易識(shí)別出哪個(gè)鍵被按下。 (3) 完成按鍵處理任務(wù)。5.從電路或軟件設(shè)計(jì)角度應(yīng)解決的問(wèn)題從電路或軟件設(shè)計(jì)角度應(yīng)解決的問(wèn)題(1)為什么有抖動(dòng) 抖動(dòng)時(shí)間的長(zhǎng)短由按

4、鍵的機(jī)械特性決定,一般為510ms。通常我們手動(dòng)按下鍵然后立即釋放,這個(gè)動(dòng)作中穩(wěn)定閉合的時(shí)間超過(guò)20ms。抖動(dòng)過(guò)程引起電平信號(hào)的波動(dòng),有可能令單片機(jī)誤解為多次按鍵操作,從而引起誤處理。(2)如何消除抖動(dòng)硬件消抖硬件消抖:硬件消抖可靠性高,對(duì)于電路較為簡(jiǎn)單的單片機(jī)運(yùn)用系統(tǒng)中采用硬件消除抖動(dòng)將提高電路的穩(wěn)定性和可靠性。硬件消抖電路如圖 軟件消抖:軟件消抖:采用軟件延時(shí)的方法進(jìn)行消抖,在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí)10ms的子程序后,再確認(rèn)電平是否仍保持閉合狀態(tài)電平(低電平),如果保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下。當(dāng)按鍵松開時(shí),由低電平變?yōu)楦唠娖?,?zhí)行一段延時(shí)10ms的子程序后,再次檢測(cè)

5、是否為高電平。若是高電平,則說(shuō)明按鍵確實(shí)已經(jīng)松開。5.從電路或軟件設(shè)計(jì)角度應(yīng)解決的問(wèn)題從電路或軟件設(shè)計(jì)角度應(yīng)解決的問(wèn)題(1) 如何實(shí)現(xiàn)串鍵的保護(hù)措施 通常采取的策略:?jiǎn)捂I按下有效,多鍵同時(shí)按下無(wú)效(2) 如何處理連擊現(xiàn)象 為了消除連擊,使得一次按鍵只產(chǎn)生一次鍵功能的執(zhí)行(不管一次按鍵持續(xù)的時(shí)間多長(zhǎng),僅采樣一個(gè)數(shù)據(jù))必須實(shí)行對(duì)按鍵釋放的處理。否則的話,鍵功能程序的執(zhí)行次數(shù)將由按鍵時(shí)間決定。10.1.2 鍵盤的工作方式鍵盤的工作方式(1)編程掃描方式編程掃描方式是利用單片機(jī)空閑時(shí)刻,調(diào)用鍵盤掃描子程序,反復(fù)掃描鍵盤,來(lái)響應(yīng)鍵盤的輸入請(qǐng)求。(2)定時(shí)掃描方式定時(shí)掃描方式是單片機(jī)每隔一段時(shí)間對(duì)鍵盤掃描

6、一次。通常利用單片機(jī)內(nèi)定時(shí)器產(chǎn)生的定時(shí)中斷,進(jìn)入中斷子程序?qū)︽I盤進(jìn)行掃描,在有按鍵按下時(shí)識(shí)別出該按鍵。(3)中斷查詢方式中斷查詢方式是單片機(jī)在只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如無(wú)鍵按下,單片機(jī)將不理睬鍵盤。 這三種工作方式可以讓單片機(jī)忙于各項(xiàng)工作任務(wù)時(shí),兼顧鍵盤的輸入。10.1.3 鍵盤接口硬件電路及其程序設(shè)計(jì)行線:P3.0-P3.3列線:P3.4-P3.710.1.3 鍵盤接口硬件電路及其程序設(shè)計(jì)仿真效果圖設(shè)計(jì)仿真效果圖設(shè)計(jì)按下鍵盤0,此時(shí)顯示0按下鍵盤9,此時(shí)顯示9按下鍵盤16,顯示F10.1.3 鍵盤接口硬件電路及其程序設(shè)計(jì)鍵盤掃描流程圖鍵盤掃描流程圖10.1.3 鍵盤接口硬件

7、電路及其程序設(shè)計(jì)按鍵掃描示例程序按鍵掃描示例程序#include /52系列單片機(jī)頭文件#define uchar unsigned char#define uint unsigned int /sbit dula=P26; /sbit wela=P27; /uchar i=100;uchar temp,key;/*延時(shí)函數(shù)*/void delay(unsigned char i)uint j,k;for(j=i;j0;j-) for(k=125;k0;k-);uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d, 0 x07,0

8、 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;/*主函數(shù)*/void main() dula=0; wela=0; while(1) P3=0 xfe;/第0行輸出低電平 temp=P3;/讀鍵值 temp=temp&0 xf0;/保存列植 if(temp!=0 xf0)/有鍵按下 delay(10);/延時(shí)消抖if(temp!=0 xf0)/有鍵按下 temp=P3; /讀鍵值 switch(temp) case 0 xee: key=0; break; case 0 xde: key=1; break; case 0 xbe: key

9、=2; break; case 0 x7e: key=3; break; while(temp!=0 xf0) /按鍵釋放確認(rèn) temp=P3; temp=temp&0 xf0; display(key); /鍵釋放,調(diào)顯示函數(shù) P3=0 xfd; /第1行輸出低電平 temp=P3; /讀鍵值 temp=temp&0 xf0;/保存列植 if(temp!=0 xf0)/有鍵按下 delay(10);/延時(shí)消抖if(temp!=0 xf0) temp=P3; /讀鍵值 switch(temp)/判斷鍵值 case 0 xed: key=4; break; case 0 xdd:

10、 key=5; break; case 0 xbd: key=6; break; case 0 x7d: key=7; break; while(temp!=0 xf0) /按鍵釋放確認(rèn) temp=P3; /讀鍵值 temp=temp&0 xf0; display(key); /鍵釋放,調(diào)顯示函數(shù) P3=0 xfb; /第2行輸出低電平 temp=P3; /讀鍵值 temp=temp&0 xf0;f(temp!=0 xf0) delay(10); if(temp!=0 xf0)if(temp!=0 xf0) temp=P3; /讀鍵值 switch(temp) case 0 x

11、eb: key=8; break; case 0 xdb: key=9; break; case 0 xbb: key=10; break; case 0 x7b: key=11; break; while(temp!=0 xf0) /按鍵釋放確認(rèn) temp=P3; /讀鍵值 temp=temp&0 xf0; display(key); /鍵釋放,調(diào)顯示函數(shù) P3=0 xf7; /第3行輸出低電平 temp=P3; /讀鍵值 temp=temp&0 xf0; if(temp!=0 xf0) delay(10); if(temp!=0 xf0) temp=P3; /讀鍵值 swi

12、tch(temp) case 0 xe7: key=12; break; case 0 xd7: key=13; break; case 0 xb7: key=14; break; case 0 x77: key=15; break; while(temp!=0 xf0) /按鍵釋放確認(rèn) temp=P3; /讀鍵值 temp=temp&0 xf0; display(key); /鍵釋放,調(diào)顯示函數(shù) void display(key)P1=tablekey;Keil uVision410.2 STC單片機(jī)與LED數(shù)碼管的接口10.2.1 數(shù)碼管的結(jié)構(gòu)與分類七段數(shù)碼管八段數(shù)碼管(1)按段數(shù)

13、分:(2)按發(fā)光二極管單元連接方式分:共陰極共陽(yáng)極10.2.2 數(shù)碼管的工作原理數(shù)碼管工作方式有兩種分靜態(tài)顯示驅(qū)動(dòng)和動(dòng)態(tài)顯示驅(qū)動(dòng)。(1)靜態(tài)驅(qū)動(dòng)靜態(tài)驅(qū)動(dòng)(直流驅(qū)動(dòng))是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二十進(jìn)位轉(zhuǎn)換器進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O口多。如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5840根I/O口來(lái)驅(qū)動(dòng),要知道一個(gè)STC89C52單片機(jī)可用的I/O口才32個(gè),故實(shí)際應(yīng)用時(shí)必須增加驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),但增加了硬體電路的復(fù)雜性。 (2)動(dòng)態(tài)顯示驅(qū)動(dòng))動(dòng)態(tài)顯示驅(qū)動(dòng)目前是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼

14、管的8個(gè)顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選來(lái)控制電路,位選由各自獨(dú)立的I/O線控制。當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的位選通控制打開,該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。10.2.3 數(shù)碼管接口實(shí)例分析1、液晶、液晶1602仿真仿真(1)先畫出原理圖(2)燒程序后顯示2、按鍵掃描流程圖、按鍵掃描流程圖3、數(shù)碼管動(dòng)態(tài)顯示示例程序、數(shù)碼管動(dòng)態(tài)顯示示例程序:#include #define uchar u

15、nsigned char#define uint unsigned int sbit dula=P26;/段選信號(hào)的鎖存器控制sbit wela=P27;/位選信號(hào)的鎖存器控制uchar code wei=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/數(shù)碼管各位的碼表uchar code duan=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d;/0-5的碼表void delay(unsigned int i)uint m,n;for(m=i;m0;m-)for(n=90;n0;n-);void main()uchar num;while(1

16、)for(num=0;num6;num+)P0=weinum; wela=1;wela=0;dula=0;P0=duannum; dula=1;delay(2); /時(shí)間間隔短,這是關(guān)鍵(所謂的同時(shí)顯示,只是間隔較短而已,/利用人眼的余輝效應(yīng),覺(jué)得每個(gè)數(shù)碼管都一直在亮)。 Keil uVision410.3 STC單片機(jī)與LCD顯示器的接口本節(jié)主要介紹LCD1602和LCD12864,它們兩者都是具有代表性液晶,生活上很多地方都用的到它們,同時(shí)易于掌握,比較適合初學(xué)者學(xué)習(xí)液晶編程。10.3.1 LCD顯示器簡(jiǎn)介10.3.2 STC單片機(jī)與1602液晶顯示器的接口及軟件編程10.3.3 STC單

17、片機(jī)與12864液晶顯示的接口及軟件編程10.3.1 LCD顯示器簡(jiǎn)介L(zhǎng)CD顯示器主要工作原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面并配合背部燈管構(gòu)成畫面,并且能夠顯示諸如文字、曲線、圖形、動(dòng)畫等信息。STC單片機(jī)系統(tǒng)中應(yīng)用LCD作為輸出器件的優(yōu)點(diǎn): 顯示質(zhì)量高 數(shù)字式接口 體積小、重量輕 功耗低1. 液晶顯示器基本原理液晶顯示器基本原理液晶顯示器原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)域。2. 液晶顯示器

18、的分類液晶顯示器的分類按其顯示方式分:字段型點(diǎn)陣字符型點(diǎn)陣圖形型等按顯示顏色分:黑白顯示多灰度、有彩色顯示等按驅(qū)動(dòng)方式分:靜態(tài)驅(qū)動(dòng)(Static)單純矩陣驅(qū)動(dòng)(Simple Matrix)主動(dòng)矩陣驅(qū)動(dòng)(Active Matrix)3. 液晶顯示器各種圖形的顯示原理液晶顯示器各種圖形的顯示原理(1)線段的顯示 點(diǎn)陣圖形式液晶由MN個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)1字節(jié)的8位,即每行有16個(gè)字節(jié),共168=128個(gè)點(diǎn)組成,屏上6416個(gè)顯示單元與顯示RAM區(qū)1024字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H0

19、0FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時(shí),則屏幕的左上角顯示一條短亮線,長(zhǎng)度為8個(gè)點(diǎn);當(dāng)(3FFH)=FFH時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=FFH,(00EH)=FFH,(00FH)=00H時(shí),則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。(2)字符的顯示: 用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由68或88點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來(lái)就組成某個(gè)字符。但對(duì)于內(nèi)帶字符發(fā)生器的控制器來(lái)說(shuō)

20、,顯示字符就比較簡(jiǎn)單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。(3)漢字的顯示: 漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件)。每個(gè)漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6可找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一個(gè)字節(jié),光標(biāo)位置加1;再送上第二個(gè)字節(jié),換行并且按列對(duì)齊(兩列),依次再送上第三個(gè)字節(jié)直到32B顯示完就可以在LCD上得到一個(gè)完整的漢字。LCD1602液晶每行可顯示16個(gè)字符,總共可顯示兩行,采

21、用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表10-1所示:表10-1 LCD1602引腳接口說(shuō)明4. 液晶顯示器介紹液晶顯示器介紹(1)LCD1602液晶命令(3)1602字符型LCM的特性(增加內(nèi)容) 內(nèi)部具有字符發(fā)生器ROM(CGROM),即字符庫(kù)??娠@示192個(gè)57點(diǎn)陣字符,見圖 。由該字符庫(kù)可看出LCM顯示的數(shù)字和字母部分的代碼值,恰好與ASCII碼表中的數(shù)字和字母相同。所以在顯示數(shù)字和字母時(shí),只需向LCM送入對(duì)應(yīng)的ASCII碼即可。模塊內(nèi)有64字節(jié)的自定義字符RAM(CGRAM),用戶可自行定義8個(gè)57點(diǎn)陣字符。 模塊內(nèi)有80字節(jié)的數(shù)據(jù)顯示存儲(chǔ)器(DDRAM)。

22、4647圖 ROM字符庫(kù)的內(nèi)容2. LCM的引腳16個(gè)引腳,也有少數(shù)的LCM為14個(gè)引腳,其中包括8條數(shù)據(jù)線、3條控制線和3條電源線,見表10-15。通過(guò)單片機(jī)寫入模塊的命令和數(shù)據(jù),就可對(duì)顯示方式和顯示內(nèi)容做出選擇。483命令格式及功能說(shuō)明(1)內(nèi)部寄存器RS位和R/W引腳上的電平?jīng)Q定對(duì)寄存器的選擇和讀/寫,而DB7DB0決定命令功能。49WW(2)命令功能說(shuō)明下面介紹可寫入命令寄存器的11個(gè)命令。 清屏(01H)。格式如下:功能:清除屏幕顯示,并給地址計(jì)數(shù)器AC置“0”。 返回(02H或03H)。格式如下:功能:置DDRAM(顯示數(shù)據(jù)RAM)及顯示RAM的地址為“0”,顯示返回到原始位置。5

23、0WW 輸入方式設(shè)置。(04H,05H,06H,07H)格式如下:功能:設(shè)置光標(biāo)的移動(dòng)方向,并指定整體顯示是否移動(dòng)。其中:I/D=1,為增量方式;I/D=0,為減量方式;如S=1,表示移位;如S=0,表示不移位 顯示開關(guān)控制。(08H,09H,0AH,0BH,0CH,0DH,0EH,0FH)格式如下:51WW功能:D位(DB2)控制整體顯示的開與關(guān),D=1,開顯示;D=0,則關(guān)顯示。C位(DB1)控制光標(biāo)的開與關(guān),C=1,光標(biāo)開;C=0,則光標(biāo)關(guān)。B位(DB0)控制光標(biāo)處字符閃爍,B=1,字符閃爍;B=0,字符不閃爍。 光標(biāo)移位。格式如下:功能:移動(dòng)光標(biāo)或整體顯示,DDRAM中內(nèi)容不變。其中:

24、S/C=1時(shí),顯示移位;S/C=0時(shí),光標(biāo)移位。R/L=1時(shí),向右移位,R/L=0時(shí),向左移位。52W 功能設(shè)置。命令格式如下:功能:DL位設(shè)置接口數(shù)據(jù)位數(shù),DL=1為8位數(shù)據(jù)接口;DL=0為4位數(shù)據(jù)接口。N 位設(shè)置顯示行數(shù),N=0單行顯示;N=1 雙行顯示。F位設(shè)置字型大小,F(xiàn)=1為510點(diǎn)陣,F(xiàn)=0 為57點(diǎn)陣。例如:命令字:38H(8位數(shù)據(jù)口,雙行顯示,字型為57點(diǎn)陣。)53W CGRAM(自定義字符RAM)地址設(shè)置。(40H-7FH)格式如下功能:設(shè)置CGRAM的地址,地址范圍為063。 DDRAM(數(shù)據(jù)顯示存儲(chǔ)器)地址設(shè)置(80H-FFH)。格式如下:功能:設(shè)置DDRAM的地址,地址

25、范圍為0127。 讀忙標(biāo)志BF及地址計(jì)數(shù)器。(忙,地址計(jì)數(shù)器為0:80H)格式如下:54WW功能:BF位為忙標(biāo)志。BF=1,表示忙,此時(shí)LCM不能接收命令和數(shù)據(jù)BF=0,表示LCM不忙,可接收命令和數(shù)據(jù)。AC位為地址計(jì)數(shù)器的值,范圍為0127。 向CGRAM/DDRAM寫數(shù)據(jù)。格式如下:功能:將數(shù)據(jù)寫入CGRAM或DDRAM中,應(yīng)與CGRAM或DDRAM地址設(shè)置命令結(jié)合使用。從CGRAM/DDRAM中讀數(shù)據(jù)。格式如下:功能:從CGRAM或DDRAM中讀出數(shù)據(jù),應(yīng)與CGRAM或DDRAM地址設(shè)置命令結(jié)合使用。55WW (3)有關(guān)說(shuō)明 顯示位與DDRAM地址的對(duì)應(yīng)關(guān)系,如表10-17所示。56W注

26、意:40H是第2行的起始地址。 標(biāo)準(zhǔn)字符庫(kù)。圖10-21所示為字符庫(kù)的內(nèi)容、字符碼和字型的對(duì)應(yīng)關(guān)系。 字符碼(DDRAM DATA)、CGRAM地址與自定義點(diǎn)陣數(shù)據(jù)(CGRAM數(shù)據(jù))之間的關(guān)系,如表10-18所示。575*7點(diǎn)陣(2)LCD1602初始化 延時(shí)15mS 寫指令38H(不檢測(cè)忙信號(hào)) 延時(shí)5mS 寫指令38H(不檢測(cè)忙信號(hào)) 延時(shí)5mS 寫指令38H(不檢測(cè)忙信號(hào)) 以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測(cè)忙信號(hào) 寫指令38H:顯示模式設(shè)置(8位數(shù)據(jù)接口、雙行顯示 寫指令08H:顯示關(guān)閉(關(guān)顯示、關(guān)光標(biāo)、不閃爍) 寫指令01H:顯示清屏 寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置(增量方向,

27、光標(biāo)不移動(dòng)) 寫指令0CH:顯示光標(biāo)設(shè)置(開顯示,關(guān)光標(biāo),不閃爍) 12864A-1漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(1616點(diǎn)陣)、128個(gè)字符(816點(diǎn)陣)及64256點(diǎn)陣。(3)LCD12864液晶引腳1 VSS模塊的電源地2 VDD模塊的電源正端3 V0LCD驅(qū)動(dòng)電壓輸入端4 RS(CS)并行的數(shù)據(jù)/指令選擇信號(hào);串行的片選信號(hào)5 R/W(SID)并行的讀/寫選擇信號(hào);串行的數(shù)據(jù)口6 E/(CLK)并行的使能信號(hào)/串行的同步時(shí)鐘7 DB0數(shù)據(jù)引腳08 DB1數(shù)據(jù)引腳19 DB2數(shù)據(jù)引腳210DB3數(shù)據(jù)引腳3(4)LCD12864液晶引腳11 DB0數(shù)據(jù)

28、引腳1112 DB0數(shù)據(jù)引腳1213 DB0數(shù)據(jù)引腳1314 DB0數(shù)據(jù)引腳1415PSB并/串行接口選擇:H-并行;L-串行16NC空腳17RET復(fù)位 低電平有效18NC空腳19LED_A背光源正極(LED+5V)20 LED_K背光源負(fù)極(LED-OV)看表10-3(5)LCD12864液晶常用控制指令介紹(共有18條指令,看書)(5)LCD12864液晶設(shè)定位置指令介紹(共有18條指令,看書)(5)LCD12864液晶常用控制指令介紹(共有18條指令,看書)10.3.2 STC單片機(jī)與1602液晶顯示的接口及軟件編程1、液晶、液晶1602仿真仿真(1)先畫出原理圖單片機(jī):P0.0-P0.

29、7鏈接LCD的數(shù)據(jù)線P3.4鏈接LCD并行的使能信號(hào)E;串行的同步時(shí)鐘P3.5鏈接LCD的并行的指令/數(shù)據(jù)選擇信號(hào);R/SP3.6鏈接LCD的R/W(2)燒程序后顯示2、液晶、液晶1602程序程序#include#define uchar unsigned char#define uint unsigned int sbit lcden=P34;sbit lcdrs=P35;sbit lcdrw=P36;void delayms(uint z)uint x,y;for(x=0;xz;x+)for(y=0;y110;y+);/*液晶顯示模塊*/void write_com(uchar com)/

30、寫指令lcdrs=0;/RS=0命令寄存器R/Wlcden=0;/E=0P0=com;delayms(5);lcden=1;/E=1delayms(5);lcden=0;/E=0,下降沿使能void write_data(uchar date)/寫數(shù)據(jù)lcdrs=1;/RS=1數(shù)據(jù)寄存器R/Wlcden=0;/E=0P0=date;delayms(5);lcden=1;/E=1delayms(5);lcden=0;/E=0,下降沿使能/*初始化1602液晶*/void init_1602()dula=0;wela=0;/關(guān)閉數(shù)碼管顯示;僅用于開發(fā)板lcden=0;lcdrw=0;write_c

31、om(0 x38);/顯示模式設(shè)置write_com(0 x0c);/00001DCB開顯示,不顯示光標(biāo),不閃爍write_com(0 x06);/000001NS讀/寫字符后地址指針加一且光標(biāo)加一write_com(0 x01);/清屏write_com(0 x80);/設(shè)置顯示初始坐標(biāo)delayms(5);/*液晶上顯示一個(gè)百位數(shù)*/void write_bai(uchar add,uchar dat)uchar bai,shi,ge;bai=dat/100;shi=dat%100/10;ge=dat%10;write_com(0 x80+add);/顯示的起始地址write_data(0

32、 x30+bai);/寫百位數(shù)的ASCII碼write_data(0 x30+shi);/寫十位數(shù)的ASCI碼write_data(0 x30+ge); /寫個(gè)位數(shù)的ASCII碼/*液晶上顯示一個(gè)十位數(shù)*/void write_shi(uchar add,uchar dat)uchar shi,ge;shi=dat/10;ge=dat%10;write_com(0 x80+add); /顯示的起始地址write_data(0 x30+shi); /寫十位數(shù)的ASCII碼write_data(0 x30+ge); /寫個(gè)位數(shù)的ASCII碼/*主函數(shù)*/void main()init_1602()

33、;while(1)write_bai(1,100);write_shi(5,10);Keil uVision410.3.3 STC單片機(jī)與12864液晶顯示的接口及軟件編程1、液晶液晶12864顯示仿真顯示仿真(1)先畫出原理圖(1)燒程序后顯示2、液晶、液晶12864顯示程序示例顯示程序示例#include #define uchar unsigned char#define uint unsigned int/* 端口定義*/#define LCD_data P0 /數(shù)據(jù)口sbit LCD_RS = P35; /寄存器選擇輸入 sbit LCD_RW = P36; /液晶讀/寫控制sbit

34、 LCD_EN = P34; /液晶使能控制sbit LCD_PSB = P37; /串/并方式控制/*顯示字符定義*/uchar code dis0 = 風(fēng)蕭蕭兮; uchar code dis1 = 易水寒;uchar code dis2 = 壯士一去兮;uchar code dis3 = 不復(fù)返;void delay_1ms(uint x) uint i,j; for(j=0;jx;j+) for(i=0;i110;i+); /*/*寫數(shù)據(jù)/指令到LCD */*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 */*/void write_cmd(uchar cmd) LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; P0 = cmd;delay_1ms(5); LCD_EN = 1;delay_1ms(5); LCD_EN = 0; /*/*寫顯示數(shù)據(jù)到LCD */*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 */*/void write_dat(uchar dat) LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delay_1ms(5)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論