




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
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 鍵盤接口工作原理鍵盤是由若干個按鍵組成的STC單片機(jī)輸入外部設(shè)備,可以實現(xiàn)STC單片機(jī)輸入數(shù)據(jù)和傳達(dá)命令等功能,是人工干STC單片機(jī)的重要手段之一。1.1.鍵盤的分類鍵盤的分類(1)編碼鍵盤:編碼鍵盤:由硬件邏輯電路完成必要的識別工作與可靠性措施。每按一次鍵,鍵盤自動提供被按鍵的讀數(shù),同時產(chǎn)生一選通脈沖通知微處理器,并且還具有反彈跳和同時按鍵保護(hù)功能。這種鍵盤易于使用
2、,但硬件比較復(fù)雜。(2)非編碼鍵盤非編碼鍵盤:只簡單地提供鍵盤的行列與矩陣,其它功能,如按鍵識別、按鍵釋放等僅靠軟件來完成,故硬件較為簡單,但占用CPU較多時間。2. 按鍵介紹按鍵介紹常用的按鍵有三種3、柔性按鍵是近年來迅速發(fā)展的一種新型按鍵,可以分為凸球型和平面型兩種。凸球型動作幅度明顯,觸感較強,富有立體感,但制造工藝相對復(fù)雜;平面型幅度微小,觸感較弱,但工藝簡單,壽命長。柔性按鍵最大特點是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且按鍵的外形和面板的布局、色彩、鍵距可按照整機(jī)的要求來設(shè)計。3.鍵盤系統(tǒng)設(shè)計鍵盤系統(tǒng)設(shè)計(1)確定鍵盤編碼方案:采用編碼鍵盤或非編碼鍵盤。(2)確定鍵盤工作方式:
3、采用中斷方式或查詢方式獲取輸入鍵操作信息。 (3)設(shè)計硬件電路。 (4)非編碼鍵盤系統(tǒng)中,鍵閉合和鍵釋放的信息獲取,鍵抖動的消除,鍵值查找及一些保護(hù)措施的實施等任務(wù),均由軟件來完成。4. 非編碼鍵盤的鍵輸入程序應(yīng)完成的基本任務(wù) (1)監(jiān)測有無鍵按下:鍵的閉合與否,反映在電壓上就是呈現(xiàn)出高電平或低電平,所以通過對電平高低狀態(tài)的檢測,便可確認(rèn)按鍵是否按下。 (2)判斷是哪個鍵按下:讀入I/O口輸入線的狀態(tài),通過判斷I/O輸入線是否為低電平就很容易識別出哪個鍵被按下。 (3) 完成按鍵處理任務(wù)。5.從電路或軟件設(shè)計角度應(yīng)解決的問題從電路或軟件設(shè)計角度應(yīng)解決的問題(1)為什么有抖動 抖動時間的長短由按
4、鍵的機(jī)械特性決定,一般為510ms。通常我們手動按下鍵然后立即釋放,這個動作中穩(wěn)定閉合的時間超過20ms。抖動過程引起電平信號的波動,有可能令單片機(jī)誤解為多次按鍵操作,從而引起誤處理。(2)如何消除抖動硬件消抖硬件消抖:硬件消抖可靠性高,對于電路較為簡單的單片機(jī)運用系統(tǒng)中采用硬件消除抖動將提高電路的穩(wěn)定性和可靠性。硬件消抖電路如圖 軟件消抖:軟件消抖:采用軟件延時的方法進(jìn)行消抖,在第一次檢測到有鍵按下時,執(zhí)行一段延時10ms的子程序后,再確認(rèn)電平是否仍保持閉合狀態(tài)電平(低電平),如果保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下。當(dāng)按鍵松開時,由低電平變?yōu)楦唠娖?,?zhí)行一段延時10ms的子程序后,再次檢測
5、是否為高電平。若是高電平,則說明按鍵確實已經(jīng)松開。5.從電路或軟件設(shè)計角度應(yīng)解決的問題從電路或軟件設(shè)計角度應(yīng)解決的問題(1) 如何實現(xiàn)串鍵的保護(hù)措施 通常采取的策略:單鍵按下有效,多鍵同時按下無效(2) 如何處理連擊現(xiàn)象 為了消除連擊,使得一次按鍵只產(chǎn)生一次鍵功能的執(zhí)行(不管一次按鍵持續(xù)的時間多長,僅采樣一個數(shù)據(jù))必須實行對按鍵釋放的處理。否則的話,鍵功能程序的執(zhí)行次數(shù)將由按鍵時間決定。10.1.2 鍵盤的工作方式鍵盤的工作方式(1)編程掃描方式編程掃描方式是利用單片機(jī)空閑時刻,調(diào)用鍵盤掃描子程序,反復(fù)掃描鍵盤,來響應(yīng)鍵盤的輸入請求。(2)定時掃描方式定時掃描方式是單片機(jī)每隔一段時間對鍵盤掃描
6、一次。通常利用單片機(jī)內(nèi)定時器產(chǎn)生的定時中斷,進(jìn)入中斷子程序?qū)︽I盤進(jìn)行掃描,在有按鍵按下時識別出該按鍵。(3)中斷查詢方式中斷查詢方式是單片機(jī)在只有在鍵盤有鍵按下時,才執(zhí)行鍵盤掃描程序,如無鍵按下,單片機(jī)將不理睬鍵盤。 這三種工作方式可以讓單片機(jī)忙于各項工作任務(wù)時,兼顧鍵盤的輸入。10.1.3 鍵盤接口硬件電路及其程序設(shè)計行線:P3.0-P3.3列線:P3.4-P3.710.1.3 鍵盤接口硬件電路及其程序設(shè)計仿真效果圖設(shè)計仿真效果圖設(shè)計按下鍵盤0,此時顯示0按下鍵盤9,此時顯示9按下鍵盤16,顯示F10.1.3 鍵盤接口硬件電路及其程序設(shè)計鍵盤掃描流程圖鍵盤掃描流程圖10.1.3 鍵盤接口硬件
7、電路及其程序設(shè)計按鍵掃描示例程序按鍵掃描示例程序#include /52系列單片機(jī)頭文件#define uchar unsigned char#define uint unsigned int /sbit dula=P26; /sbit wela=P27; /uchar i=100;uchar temp,key;/*延時函數(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);/延時消抖if(temp!=0 xf0)/有鍵按下 temp=P3; /讀鍵值 switch(temp) case 0 xee: key=0; break; case 0 xde: key=1; break; case 0 xbe: key=2;
9、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);/延時消抖if(temp!=0 xf0) temp=P3; /讀鍵值 switch(temp)/判斷鍵值 case 0 xed: key=4; break; case 0 xdd: key=5; brea
10、k; 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 xeb: key=8; break; ca
11、se 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; /讀鍵值 switch(temp) case 0 xe7: key=12
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;10.2 STC單片機(jī)與LED數(shù)碼管的接口10.2.1 數(shù)碼管的結(jié)構(gòu)與分類七段數(shù)碼管八段數(shù)碼管(1)按段數(shù)分:(2)按發(fā)光二極管單元連接方式分:共陰極共陽極10.2.2 數(shù)碼管的工作原理數(shù)碼管工作
13、方式有兩種分靜態(tài)顯示驅(qū)動和動態(tài)顯示驅(qū)動。(1)靜態(tài)驅(qū)動靜態(tài)驅(qū)動(直流驅(qū)動)是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的I/O口進(jìn)行驅(qū)動,或者使用如BCD碼二十進(jìn)位轉(zhuǎn)換器進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O口多。如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5840根I/O口來驅(qū)動,要知道一個STC89C52單片機(jī)可用的I/O口才32個,故實際應(yīng)用時必須增加驅(qū)動器進(jìn)行驅(qū)動,但增加了硬體電路的復(fù)雜性。 (2)動態(tài)顯示驅(qū)動)動態(tài)顯示驅(qū)動目前是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個數(shù)碼管的公
14、共極COM增加位選來控制電路,位選由各自獨立的I/O線控制。當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的位選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。10.2.3 數(shù)碼管接口實例分析1、液晶、液晶1602仿真仿真(1)先畫出原理圖(2)燒程序后顯示2、按鍵掃描流程圖、按鍵掃描流程圖3、數(shù)碼管動態(tài)顯示示例程序、數(shù)碼管動態(tài)顯示示例程序:#include #define uchar unsigned char#define uint unsigned int sbit du
15、la=P26;/段選信號的鎖存器控制sbit wela=P27;/位選信號的鎖存器控制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)for(num=0;num6;num+)P0=weinum; wela=1;wela=0
16、;dula=0;P0=duannum; dula=1;delay(2); /時間間隔短,這是關(guān)鍵(所謂的同時顯示,只是間隔較短而已,/利用人眼的余輝效應(yīng),覺得每個數(shù)碼管都一直在亮)。 10.3 STC單片機(jī)與LCD顯示器的接口本節(jié)主要介紹LCD1602和LCD12864,它們兩者都是具有代表性液晶,生活上很多地方都用的到它們,同時易于掌握,比較適合初學(xué)者學(xué)習(xí)液晶編程。10.3.1 LCD顯示器簡介10.3.2 STC單片機(jī)與1602液晶顯示器的接口及軟件編程10.3.3 STC單片機(jī)與12864液晶顯示的接口及軟件編程10.3.1 LCD顯示器簡介LCD顯示器主要工作原理是以電流刺激液晶分子產(chǎn)
17、生點、線、面并配合背部燈管構(gòu)成畫面,并且能夠顯示諸如文字、曲線、圖形、動畫等信息。STC單片機(jī)系統(tǒng)中應(yīng)用LCD作為輸出器件的優(yōu)點: 顯示質(zhì)量高 數(shù)字式接口 體積小、重量輕 功耗低1. 液晶顯示器基本原理液晶顯示器基本原理液晶顯示器原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在電腦、數(shù)字?jǐn)z像機(jī)、PDA移動通信工具等眾多領(lǐng)域。2. 液晶顯示器的分類液晶顯示器的分類按其顯示方式分:字段型點陣字符型點陣圖形型等按顯示顏色分:黑白顯示多灰度、有彩色顯示等按驅(qū)動方
18、式分:靜態(tài)驅(qū)動(Static)單純矩陣驅(qū)動(Simple Matrix)主動矩陣驅(qū)動(Active Matrix)3. 液晶顯示器各種圖形的顯示原理液晶顯示器各種圖形的顯示原理(1)線段的顯示 點陣圖形式液晶由MN個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行有16個字節(jié),共168=128個點組成,屏上6416個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(dāng)(3FFH)=F
19、FH時,則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=FFH,(00EH)=FFH,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。(2)字符的顯示: 用LCD顯示一個字符時比較復(fù)雜,因為一個字符由68或88點陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但對于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地
20、址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。(3)漢字的顯示: 漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點陣碼(一般用字模提取軟件)。每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6可找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一個字節(jié),光標(biāo)位置加1;再送上第二個字節(jié),換行并且按列對齊(兩列),依次再送上第三個字節(jié)直到32B顯示完就可以在LCD上得到一個完整的漢字。LCD1602液晶每行可顯示16個字符,總共可顯示兩行,采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表10-1所示:表10-1 LCD1602引腳接口說
21、明4. 液晶顯示器介紹液晶顯示器介紹(1)LCD1602液晶命令(3)1602字符型LCM的特性(增加內(nèi)容) 內(nèi)部具有字符發(fā)生器ROM(CGROM),即字符庫??娠@示192個57點陣字符,見圖 。由該字符庫可看出LCM顯示的數(shù)字和字母部分的代碼值,恰好與ASCII碼表中的數(shù)字和字母相同。所以在顯示數(shù)字和字母時,只需向LCM送入對應(yīng)的ASCII碼即可。模塊內(nèi)有64字節(jié)的自定義字符RAM(CGRAM),用戶可自行定義8個57點陣字符。 模塊內(nèi)有80字節(jié)的數(shù)據(jù)顯示存儲器(DDRAM)。4647圖 ROM字符庫的內(nèi)容2. LCM的引腳16個引腳,也有少數(shù)的LCM為14個引腳,其中包括8條數(shù)據(jù)線、3條控
22、制線和3條電源線,見表10-15。通過單片機(jī)寫入模塊的命令和數(shù)據(jù),就可對顯示方式和顯示內(nèi)容做出選擇。483命令格式及功能說明(1)內(nèi)部寄存器RS位和R/W引腳上的電平?jīng)Q定對寄存器的選擇和讀/寫,而DB7DB0決定命令功能。49WW(2)命令功能說明下面介紹可寫入命令寄存器的11個命令。 清屏(01H)。格式如下:功能:清除屏幕顯示,并給地址計數(shù)器AC置“0”。 返回(02H或03H)。格式如下:功能:置DDRAM(顯示數(shù)據(jù)RAM)及顯示RAM的地址為“0”,顯示返回到原始位置。50WW 輸入方式設(shè)置。(04H,05H,06H,07H)格式如下:功能:設(shè)置光標(biāo)的移動方向,并指定整體顯示是否移動。
23、其中: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)移位。格式如下:功能:移動光標(biāo)或整體顯示,DDRAM中內(nèi)容不變。其中:S/C=1時,顯示移位;S/C=0時,光標(biāo)移位。R/L=1時,向右移位,R/L=0時,向左移位。52W 功能設(shè)置。命
24、令格式如下:功能: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點陣,F(xiàn)=0 為57點陣。例如:命令字:38H(8位數(shù)據(jù)口,雙行顯示,字型為57點陣。)53W CGRAM(自定義字符RAM)地址設(shè)置。(40H-7FH)格式如下功能:設(shè)置CGRAM的地址,地址范圍為063。 DDRAM(數(shù)據(jù)顯示存儲器)地址設(shè)置(80H-FFH)。格式如下:功能:設(shè)置DDRAM的地址,地址范圍為0127。 讀忙標(biāo)志BF及地址計數(shù)器。(忙,地址計數(shù)器為0:80H)格式如下:54WW功能:BF位為忙標(biāo)志。B
25、F=1,表示忙,此時LCM不能接收命令和數(shù)據(jù)BF=0,表示LCM不忙,可接收命令和數(shù)據(jù)。AC位為地址計數(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)說明 顯示位與DDRAM地址的對應(yīng)關(guān)系,如表10-17所示。56W注意:40H是第2行的起始地址。 標(biāo)準(zhǔn)字符庫。圖10-21所示為字符庫的內(nèi)容、字符碼和字型的對應(yīng)關(guān)系。 字符碼(DDR
26、AM DATA)、CGRAM地址與自定義點陣數(shù)據(jù)(CGRAM數(shù)據(jù))之間的關(guān)系,如表10-18所示。575*7點陣(2)LCD1602初始化 延時15mS 寫指令38H(不檢測忙信號) 延時5mS 寫指令38H(不檢測忙信號) 延時5mS 寫指令38H(不檢測忙信號) 以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號 寫指令38H:顯示模式設(shè)置(8位數(shù)據(jù)接口、雙行顯示 寫指令08H:顯示關(guān)閉(關(guān)顯示、關(guān)光標(biāo)、不閃爍) 寫指令01H:顯示清屏 寫指令06H:顯示光標(biāo)移動設(shè)置(增量方向,光標(biāo)不移動) 寫指令0CH:顯示光標(biāo)設(shè)置(開顯示,關(guān)光標(biāo),不閃爍) 12864A-1漢字圖形點陣液晶顯示模塊,可顯示
27、漢字及圖形,內(nèi)置8192個中文漢字(1616點陣)、128個字符(816點陣)及64256點陣。(3)LCD12864液晶引腳1 VSS模塊的電源地2 VDD模塊的電源正端3 V0LCD驅(qū)動電壓輸入端4 RS(CS)并行的數(shù)據(jù)/指令選擇信號;串行的片選信號5 R/W(SID)并行的讀/寫選擇信號;串行的數(shù)據(jù)口6 E/(CLK)并行的使能信號/串行的同步時鐘7 DB0數(shù)據(jù)引腳08 DB1數(shù)據(jù)引腳19 DB2數(shù)據(jù)引腳210DB3數(shù)據(jù)引腳3(4)LCD12864液晶引腳11 DB0數(shù)據(jù)引腳1112 DB0數(shù)據(jù)引腳1213 DB0數(shù)據(jù)引腳1314 DB0數(shù)據(jù)引腳1415PSB并/串行接口選擇:H-并行
28、;L-串行16NC空腳17RET復(fù)位 低電平有效18NC空腳19LED_A背光源正極(LED+5V) 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.7鏈接LCD的數(shù)據(jù)線P3.4鏈接LCD并行的使能信號E;串行的同步時鐘P3.5鏈接LCD的并行的指令/數(shù)據(jù)選擇信號;R/
29、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)/寫指令lcdrs=0;/RS=0命令寄存器R/Wlcden=0;/E=0P0=com;delayms(5);lcden=
30、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_com(0 x38);/顯示模式設(shè)置write_com(0 x0c);/00001DCB開顯示,不顯示光標(biāo),不閃爍writ
31、e_com(0 x06);/000001NS讀/寫字符后地址指針加一且光標(biāo)加一write_com(0 x01);/清屏write_com(0 x80);/設(shè)置顯示初始坐標(biāo)delayms(5);/*液晶上顯示一個百位數(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 x30+bai);/寫百位數(shù)的ASCII碼write_data(0 x30+shi);/寫十位數(shù)的ASCI碼write
32、_data(0 x30+ge); /寫個位數(shù)的ASCII碼/*液晶上顯示一個十位數(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); /寫個位數(shù)的ASCII碼/*主函數(shù)*/void main()init_1602();while(1)write_bai(1,100);write_shi(5,10);10.3.3 STC單片機(jī)與1286
33、4液晶顯示的接口及軟件編程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 LCD_EN = P34; /液晶使能控制sbit LCD_PSB = P37; /串/并方式控制/*顯示字符定義*/uchar code di
34、s0 = 風(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_1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游酒店服務(wù)行業(yè)技術(shù)應(yīng)用報告
- 在線學(xué)習(xí)平臺的設(shè)計與開發(fā)解決方案
- 腫瘤內(nèi)科總論復(fù)習(xí)試題
- 電商直播帶貨全鏈路服務(wù)運營優(yōu)化方案
- 儲能投資收益影響因素探討
- 游戲引擎應(yīng)用開發(fā)與優(yōu)化實戰(zhàn)手冊
- 農(nóng)業(yè)生產(chǎn)機(jī)械化服務(wù)體系方案
- 三農(nóng)村特色三農(nóng)產(chǎn)品網(wǎng)絡(luò)銷售模式指南
- 自動化辦公流程設(shè)計與優(yōu)化指南
- 2025年智能食品營養(yǎng)秤項目合作計劃書
- 2025年安徽電氣工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 幼兒園開學(xué)教職工安全教育培訓(xùn)
- 2025-2030年中國發(fā)酵豆粕行業(yè)運行態(tài)勢及投資前景規(guī)劃研究報告
- 酒店建設(shè)項目施工總承包合同
- 博物館疫情防控方案與參觀人數(shù)控制
- 2025年政府采購代理機(jī)構(gòu)考試題庫及答案
- 第14課《第一次世界大戰(zhàn)》中職高一下學(xué)期高教版(2023)世界歷史全一冊
- 2024年司法考試完整真題及答案
- 湖南師范大學(xué)某中學(xué)2024屆高三摸底(高二期末)考試數(shù)學(xué)試卷(含答案)
- 樹木高空修剪安全施工方案
- 以租代購合同范例
評論
0/150
提交評論