第07章 單片機應用系統(tǒng)中的按鍵與顯示_第1頁
第07章 單片機應用系統(tǒng)中的按鍵與顯示_第2頁
第07章 單片機應用系統(tǒng)中的按鍵與顯示_第3頁
第07章 單片機應用系統(tǒng)中的按鍵與顯示_第4頁
第07章 單片機應用系統(tǒng)中的按鍵與顯示_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、授課教師:左敬龍授課教師:左敬龍電話:電話:1382868066013828680660短號:短號:6801268012郵箱:郵箱:單片機原理及應用單片機原理及應用按鍵的分類編碼鍵盤 鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤。非編碼鍵盤 靠軟件編程來識別的稱為非編碼鍵盤。 在單片機組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。例如在洗衣機控制面板上,用非編碼按鍵來設置洗衣機的功能。按鍵的抖動按鍵的抖動 圖圖7-1 7-1 按鍵與單片機的連接按鍵與單片機的連接 圖圖7-2 7-2 按鍵的抖動過程按鍵的抖動過程鍵盤的抖動時間一般為鍵盤的抖動時間一般為5

2、 510ms10ms,抖動現(xiàn)象會引起抖動現(xiàn)象會引起CPUCPU對對一次鍵操作進行多次處理,從而可能產(chǎn)生錯誤一次鍵操作進行多次處理,從而可能產(chǎn)生錯誤。消除抖動的方法: 硬件去抖動 采用RS觸發(fā)器去抖動。 軟件去抖動 檢測到按鍵按下后,軟件延時1020ms后再確認該鍵是否確實按下,消除抖動影響。單片機應用系統(tǒng)中的按鍵與顯示獨立式按鍵1矩陣式按鍵2發(fā)光二極管3LED數(shù)碼管4獨立式按鍵1液晶顯示器5一、獨立式按鍵特點: 1)各按鍵相互獨立,電路配置靈活; 2)軟件簡單; 3)按鍵數(shù)量較多時,I/O線耗費較多,只適 用于按鍵數(shù)量較少的場合。圖7-4 獨立式按鍵電路圖7-4(a) 獨立式按鍵掃描C語言程序

3、如下:#includevoid delay10ms(void);void processk0(void);void processk1(void);void processk2(void);void main()unsigned char key;while(1)P1=0 xff;keyP1;if(P1!=0 xff)delay10ms();key=P1; else continue;while(P1!=0 xff);switch(key)case 0 xfe: processk0();break;case 0 xfd: processk1();break;case 0 xfb: proces

4、sk2();break;default: continue;練習有三個獨立式按鍵的電路如圖74(a)所示,當有按鍵P1.0按下時P0端口輸出100的二進制值,P1.1按下時P0端口值加1,P1.2按下時P0端口值減1。二、矩陣式鍵盤特點:占用I/O線較少,適合按鍵數(shù)目較多的場合, 但軟件較復雜。常用的鍵盤工作方式有查詢方式和中斷方式。圖7-5 矩陣式鍵盤結構1 查詢方式鍵盤掃描過程包括下列四個步驟(以圖7-5為例): 判別鍵盤上有無按鍵按下。方法為列線(P1.4P1.7)置低電平,行線(P1.0P1.3)置輸入狀態(tài)(高電平“1”)。讀行線的狀態(tài),若為全“1”,則鍵盤無按鍵按下;若不全為“1”,

5、則有按鍵按下。 去除按鍵的抖動影響。方法是當判別到有按鍵按下時,軟件延時一段時間(一般為10 ms左右)后,再判斷鍵盤狀態(tài),如果仍為有按鍵按下狀態(tài),則認為有一個確定的按鍵被按下。 求鍵值(鍵號)。按照圖7-5中的16個按鍵,每行的行號依次為:0、1、2、3,列號依次為0、1、2、3,則閉合按鍵的鍵號可以用公式計算獲得:鍵號=行號4+列號。 判斷按鍵是否釋放,按鍵閉合一次僅進行一次按鍵功能操作,等按鍵釋放以后再將鍵號送入累加器A中,然后執(zhí)行按鍵指定的功能操作。實時查詢定時查詢#include#include#define uchar unsigned char#define uint unsig

6、ned int/矩陣鍵盤按鍵特征碼表uchar code KeyCodeTable=0 x11,0 x12,0 x14,0 x18,0 x21,0 x22,0 x24,0 x28,0 x41,0 x42,0 x44,0 x48,0 x81,0 x82,0 x84,0 x88;void DelayMS(uint x)uchar i;while(x-) for(i=0;i120;i+);例:數(shù)碼管顯示例:數(shù)碼管顯示4X44X4矩陣鍵盤按鍵號矩陣鍵盤按鍵號 按下任意鍵時,數(shù)碼管都會顯示其鍵的序號,掃描程序首先判斷按鍵發(fā)生在哪一列,然后根據(jù)所發(fā)生的行附加不同的值,從而得到按鍵的序號。 /鍵盤掃描uch

7、ar Keys_Scan()uchar sCode,kCode,i,k;P1=0 xf0; if(P1&0 xf0)=0 xf0) return (-1);DelayMS(2); /若高4位出現(xiàn)0,則有鍵按下if(P1&0 xf0)=0 xf0) return (-1);sCode=0 xfe;/行掃描碼初值for(k=0;k4;k+) /對4行分別進行掃描P1=sCode;if(P1&0 xf0)=0 xf0) sCode=_crol_(sCode,1);continue;kCode=P1;for(i=0;i16;i+) /查表得到按鍵序號并返回if(kCode=Ke

8、yCodeTablei) return i; /主程序void main()uchar i,P2_LED,P3_LED;uchar KeyNo=-1;/按鍵序號,-1表示無按鍵while(1) KeyNo=Keys_Scan();/掃描鍵盤獲取按鍵序號KeyNo if(KeyNo!=-1) P2_LED=0 xff;P3_LED=0 xff;for(i=0;i=KeyNo;i+) if(i=1;elseP2_LED=1;P3=P3_LED; /點亮條形LEDP2=P2_LED;2 中斷掃描 當鍵盤上有按鍵閉合時產(chǎn)生中斷請求,單片機響應中斷請求后,轉去執(zhí)行中斷服務程序,在中斷服務程序中判斷鍵盤中

9、閉合按鍵的鍵號,并做相應的處理。特點:提高了單片機的工作效率。特點:提高了單片機的工作效率。圖圖7-6 7-6 中斷式鍵盤接口電路中斷式鍵盤接口電路三、三、 發(fā)光二極管發(fā)光二極管 (常用來顯示設備的運行狀態(tài))(常用來顯示設備的運行狀態(tài)) 發(fā)光二極管(Light Emitting Diode,LED)與普通的二極管一樣由一個PN結組成。當正向連接時,即P接正極、N接負極時二極管導通;反之,二極管截止。這就是二極管的單向?qū)щ娞匦?。導通時,若有足夠的正向電流通過發(fā)光二極管,發(fā)光二極管便會發(fā)光。 根據(jù)制造材料的不同可以發(fā)出紅、黃、綠、白等不同色彩的可見光來。圖圖7-7 7-7 發(fā)光二極管的圖形符號和實

10、物圖發(fā)光二極管的圖形符號和實物圖八只發(fā)光二極管組成的驅(qū)動電路四、四、 LEDLED數(shù)碼管數(shù)碼管 (可以顯示各種數(shù)字和字符)(可以顯示各種數(shù)字和字符) 常用的LED數(shù)碼管是七段LED數(shù)碼管,由八個發(fā)光二極管組成。LED數(shù)碼管分為共陰極和共陽極兩種。 為了顯示數(shù)字或字符,必須對數(shù)字或字符進行編碼。七段數(shù)碼管加上一個小數(shù)點,共計8段。因此為LED顯示器提供的編碼正好是一個字節(jié),通常稱為段選碼(顯示代碼)。段選碼與數(shù)據(jù)位的對應關系如下:圖7-10 數(shù)碼管顯示字段排列順序LED數(shù)碼管工作原理最低位最高位LED數(shù)碼管顯示段碼表1、LED數(shù)碼管靜態(tài)顯示所謂靜態(tài)顯示,是指數(shù)碼管顯示某一字符時,相應的 發(fā)光二極

11、管恒定導通或恒定截止,公共端恒定接地 (共陰極)或接正電源(共陽極)。優(yōu)點:顯示控制程序簡單,顯示亮度大,占用CPU時 間少,顯示穩(wěn)定可靠。:靜態(tài)顯示占用的I/O口線較多,或者需要增 加額外的硬件電路,硬件成本較高。 1位靜態(tài)顯示電路如下:編寫10秒倒計時顯示程序。練習:三位LED數(shù)碼管靜態(tài)顯示電路74LS377為八位鎖存器,用于鎖存顯示代碼。例:設在內(nèi)部RAM30H單元中存儲一個十進制數(shù)D(D255)。編寫程序?qū)⒃摂?shù)的百分位顯示在左邊的數(shù)碼管上,十分位顯示在中間的數(shù)碼管上,個分位顯示在右邊的數(shù)碼管上。2 LED數(shù)碼管動態(tài)顯示 動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪

12、一位數(shù)碼管有效。動態(tài)顯示實際上是逐個地循環(huán)點亮各個數(shù)碼管,但由于LED具有余輝特性以及人眼也有視覺暫留特性,使人看起來就好像在同時顯示不同的字符一樣。優(yōu)點:簡化硬件線路。 缺點:比靜態(tài)顯示要暗一點,消耗單片機較多的運行 時間。圖7-13 LED數(shù)碼管動態(tài)顯示電路首先掃描該位五、液晶顯示 液晶顯示(Liquid Crystal Display,LCD)是一種體積小、重量輕、功耗低的顯示器件,被廣泛應用于單片機應用系統(tǒng)。目前已廣泛應用在各種顯示領域,尤其在袖珍儀表和低功耗應用系統(tǒng)中。段型:像七段LED一樣,顯示內(nèi)容由顯示段組成,其顯示方式和接口形式與七段LED數(shù)碼管相似。主要用于批量大、顯示內(nèi)容固

13、定的產(chǎn)品。字符型:主要由LCD控制器、LCD驅(qū)動器和LCD顯示器三部分組成,常將他們稱為液晶顯示模塊。他們一般都自帶ASCII碼點陣字庫,顯示時只需提供顯示字符的ASCII代碼即可,硬件接口和軟件編程都很簡單。:點陣信息的組合顯示指定內(nèi)容。更加靈活方便,可顯示字符、漢字、圖形等內(nèi)容,但控制也較為復雜,一般用于圖像顯示場合。1 1、 LCD1602LCD1602液晶顯示模塊液晶顯示模塊http:/offwww.go- 0選指令寄存器選指令寄存器IRIR,1 1選數(shù)據(jù)寄存器選數(shù)據(jù)寄存器DRDR0505R/WR/W0 0寫操作,寫操作,1 1讀操作讀操作0606E E下降沿使能有效下降沿使能有效07

14、-1407-14D0-D7D0-D78 8位雙向數(shù)據(jù)總線,位雙向數(shù)據(jù)總線,4 4位傳送時使用高位傳送時使用高4 4位位1515BLABLA背光正極背光正極1616BLKBLK背光負極背光負極2、LCD1602工作原理核心控制芯片:HD44780由指令寄存器IR、數(shù)據(jù)寄存器DR、字符發(fā)生器CGROM、自定義字符發(fā)生器CGRAM和顯示緩沖區(qū)DDRAM等功能部件組成。IR用來存放由微控制器送來的指令代碼,如光標歸位、清除顯示等;DR用來存放欲顯示的數(shù)據(jù)。顯示的次序是先把要存放數(shù)據(jù)的地址寫入IR,再把要顯示的數(shù)據(jù)寫入DR,DR就會自動把數(shù)據(jù)送至相應的DDRAM或CGRAM地址。字符發(fā)生器CGROM存儲

15、了不同的點陣字符圖形。包括數(shù)字、大小寫英文字母、常用的符號和日文字符等。每一個字符都有一個固定的代碼,如表所示。 DDRAM DDRAM有有8080個單元,但第個單元,但第1 1行僅用行僅用00H00H0FH0FH單單元,第元,第2 2行僅用行僅用40H40H4FH4FH單元。如上圖所示。單元。如上圖所示。DDRAMDDRAM單元存放的是要顯示字符的單元存放的是要顯示字符的ASCIIASCII編碼,編碼,控制器以該編碼為索引,到控制器以該編碼為索引,到CGROMCGROM或或CGRAMCGRAM中中取點陣字形送液晶板顯示。取點陣字形送液晶板顯示。LCD1602的操作命令LCD1602的操作命令

16、(1)命令1:清屏。光標回到屏幕左上角,地址計數(shù)器設置為0。命令2:光標歸位。光標回到屏幕左上角,顯示內(nèi)容不變。命令3:輸入模式設置,每寫入一個數(shù)據(jù)字節(jié)后,光標及字符的移動設置。I/D=0,S=0時,光標左移一格且地址計數(shù)器減1;I/D=1,S=0時,光標右移一格且地址計數(shù)器加 1;I/D=0,S=1時,屏幕內(nèi)容全部右移一格,光標不動;I/D=1,S=1時,屏幕內(nèi)容全部左移一格,光標不動。命令4:顯示與不顯示設置。D=1:開啟顯示屏,D=0:關閉顯示屏。C=1,開啟光標,C=0,關閉光標。B=1,光標閃爍,B=0,光標不閃爍。命令5:光標或屏幕內(nèi)容移位選擇。S/C=1,移動屏幕內(nèi)容,S/C=0

17、,移動光標。R/L=1,右移,R/L=0,左移。命令6:功能設置。DL=0,設為4位數(shù)據(jù)接口,DL=1,設為8位數(shù)據(jù)接口。N=0,單行顯示,N=1,雙行顯示。F=1,510字形,F(xiàn)=0,57字形。命令7:CGRAM地址設置,地址范圍00H3FH(共64個單 元,對應8個自定義字符)。命令8:DDRAM地址設置,地址范圍00H7FH。命令9:讀忙標志和計數(shù)器地址。BF=1,表示忙,此時模塊不能接收命令或者數(shù)據(jù),BF=0,表示不忙,可以接收送來的數(shù)據(jù)或指令。命令10:寫DDRAM或CGROM。要配合地址設置命令。命令11:讀DDRAM或CGROM。要配合地址設置命令。LCD1602的操作命令(2)3 3、LCD1602LCD1602應用舉例應用舉例單片機與LCD1602模塊的接口電路如圖所示。LCD1602LCD1602編程思路編程思路1.初始化:清屏、顯示方式(單雙行、5*7、5*10)、光標閃爍移動、字符閃爍移動等2.檢查“忙”標志BF。3.寫入顯示地址位置(IR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論