第13章2節(jié)-顯示器及鍵盤接口技術_第1頁
第13章2節(jié)-顯示器及鍵盤接口技術_第2頁
第13章2節(jié)-顯示器及鍵盤接口技術_第3頁
第13章2節(jié)-顯示器及鍵盤接口技術_第4頁
第13章2節(jié)-顯示器及鍵盤接口技術_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章

顯示器及鍵盤接口技術

10.2LCD顯示器及其接口技術

10.3按鈕、鍵盤與單片機接口技術10.4鍵盤、顯示器接口芯片—827910.1LED顯示器接口技術本章要點本章顯示器及鍵盤接口技術學習要點是難點:LCD顯示原理與應用,8279的應用。重點:LED顯示器原理與連接及其靜態(tài)、動態(tài)顯示接口電路,動態(tài)顯示驅動程序,行列式矩陣式鍵盤電路及掃描過程,鍵盤顯示器芯片8279的結構與功能。

了解:LCD顯示原理與應用鍵盤顯示器接口芯片8279的應用10.1LED顯示器接口技術

10.1.1LED數(shù)碼顯示器的結構與工作原理10.1.2LED數(shù)碼顯示器與單片機的接口10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示10.1.4點陣式LED顯示器與單片機接口技術

10.1主講內(nèi)容10.1.1LED數(shù)碼顯示器的結構與工作原理LED數(shù)碼顯示器:由LED發(fā)光二極管組合顯示字段的顯示器件,也稱為LED數(shù)碼管。其外形結構如下所示。它是由8個發(fā)光二極管按“日”字形排列,其中a~f等7個發(fā)光二極管組成“日”字形的筆畫段,另一個發(fā)光二極管dp為圓點形狀,作為顯示器的右下角的小數(shù)點使用。◆

LED顯示器根據(jù)內(nèi)部結構不同分為兩種?!褚环N是8個發(fā)光二極管的陰極連在一起的共陰極數(shù)碼管。●一種是8個發(fā)光二極管的陽極連在一起的共陽極數(shù)碼管。10.1.1LED數(shù)碼顯示器的結構與工作原理◆

LED顯示器根據(jù)內(nèi)部結構不同分為兩種。●當某一發(fā)光二極管導通時,相應的筆畫段就被點亮。這樣,若干個二極管導通,就構成0~9的阿拉伯數(shù)字符號以及其它能由這些筆畫段構成的簡單字符。10.1.1LED數(shù)碼顯示器的結構與工作原理◆

LED顯示器根據(jù)內(nèi)部結構不同分為兩種?!裨诠碴帢O數(shù)碼管中,導通點亮的二極管用1表示,其余的用0表示●在共陽極數(shù)碼管中,導通點亮的二極管用0表示,其余的用1表示。10.1.1LED數(shù)碼顯示器的結構與工作原理◆例如,對于共陰極數(shù)碼管來說,字符2的顯示段碼為01011011,字符H的顯示段為10000000,用十六進制表示分別為5BH和80H。若要使LED顯示器全部熄滅,則需在共陰極LED段加高電平,即段碼為00H;在共陽極LED段加低電平,即段碼為FFH。1、0數(shù)符按一定的順序排列,就組成了所要顯示字符的顯示代碼,常將這些數(shù)據(jù)稱為顯示字符的段碼(或稱字形碼)。LED顯示器顯示段與段碼位的關系如下:

10.1.1LED數(shù)碼顯示器的結構與工作原理段碼位D7D6D5D4D3D2D1D0顯示段dpgfedcba10.1.2LED數(shù)碼顯示器與單片機的接口1.硬件譯碼的接口方法:●由圖可以看出,在單片機與LED數(shù)碼管之間必須有鎖存器或I/O接口電路,而且還必須有專用的譯碼驅動器,通過譯碼器把一位十六進制數(shù)或BCD碼譯碼為相應的字符段碼,然后通過驅動器提供的足夠大的功率去驅動發(fā)光二極管。

圖8-2以硬件為主的單片機與LED顯示器的接口電路點擊分析原理¤10.1.2LED數(shù)碼顯示器與單片機的接口1.硬件譯碼的接口方法:圖8-2以硬件為主的單片機與LED顯示器的接口電路●硬件譯碼時只需要MOVX@DPTR,A一條指令直接輸出待顯數(shù)據(jù)即可,但是硬件電路比較復雜,而且只能顯示0~F之間的字符或者空白字符,因此這種接口方法缺乏靈活性。設待顯示的十位、個位BCD碼存于片內(nèi)RAM30H單元,千位、百位BCD碼存于片內(nèi)RAM31H單元。其顯示子程序為:DISP:MOVR0,#30HMOVA,@R0

;取十位、個位BCD碼MOVDPTR,#7FFFH

;準備選中74LS377(1)

MOVX@DPTR,A

;顯示十位、個位BCD碼INCR0MOVA,@R0

;取千位、百位BCD碼MOVDPTR,#BFFFFH

;準備選中74LS377(2)

MOVX@DPTR,A

;顯示千位、百位BCD碼RET10.1.2LED數(shù)碼顯示器與單片機的接口軟件譯碼的接口電路如圖所示

在程序中用軟件查表代替硬件譯碼,省去了繁瑣的硬件電路,同時它還可以顯示更多的字符。但軟件編程較復雜一些。驅動器不可少10.1.2LED數(shù)碼顯示器與單片機的接口2.軟件譯碼的接口方法10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示1.

靜態(tài)顯示

LED顯示器的各筆畫段都有其對立的具有鎖存功能的I/O口線,CPU把要顯示的數(shù)據(jù)送到顯示接口后,每只LED數(shù)碼管由外驅動電路處于持續(xù)驅動狀態(tài)?!魞?yōu)點:軟件程序和顯示方法比較簡單、顯示亮度較大,不閃爍。◆缺點:占用的I/O資源較多,硬件成本較高◆實現(xiàn)方法:靜態(tài)顯示器可以采用CPU的并行I/O接口,如P1口、8155、8255芯片的擴展口等實現(xiàn);也可以由單片機串行口擴展串入/并出移位寄存器來實現(xiàn),如74LS164、74LS47等。下面舉例說明用74LS164實現(xiàn)靜態(tài)顯示功能。

例10-1

圖8-4給出了一個軟件譯碼的靜態(tài)顯示接口電路,試編寫程序將8051片內(nèi)RAM中以40H為首地址的8個非壓縮BCD碼數(shù)據(jù)顯示出來。解:圖中的LED顯示器為共陰極的數(shù)碼管,要顯示非壓縮BCD碼就必建立對應的共陰極段碼表,通過查表指令“MOVCA,@A+DPTR”實現(xiàn)數(shù)字到字符的轉換。數(shù)據(jù)的傳送是采用串行口的方式0逐位通過RXD引腳發(fā)送出去,逐位移入移位寄存器74LS164,進而驅動數(shù)碼管。10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示圖8-4點擊分析原理¤例10-1

圖8-4給出了一個軟件譯碼的靜態(tài)顯示接口電路,試編寫程序將8051片內(nèi)RAM中以40H為首地址的8個非壓縮BCD碼數(shù)據(jù)顯示出來。參考程序如下:DISP:MOVSCON,#00H

;設置串口工作于方式0MOVR0,#30HMOVR7,#08HMOVDPTR,#TAB

;指向段碼表首LP:MOVA,@R0 ;取要顯示字符MOVCA,@A+DPTR ;查表MOVSBUF,A

;發(fā)送顯示JNBTI,$

;等待發(fā)送完一個數(shù)據(jù)CLRTIINCR0DJNZR7,LP

;發(fā)送其他數(shù)據(jù)RETTAB:DB3FH,06H,5BH,4FH,66H

;0,1,2,3,4DB6DH,7DH,07H,7FH,6FH

;5,6,7,8,9DB77H,7CH,39H,5EH,79H,71H

;A,B,C,D,E,F參考程序¤10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示

2.動態(tài)顯示

在顯示程序運行過程中對每一位數(shù)碼管分時交替驅動,輪流掃描的顯示方式。●特點:8個筆畫段公用一個數(shù)據(jù)端口;每個顯示器的公共端分別接在相應的信號控制端口上——位輸出端口上;逐個地循環(huán)點亮各個數(shù)碼管●控制信號:需要兩組信號來控制,一組是輸出字符段碼的數(shù)據(jù)口(段碼口),另一組是輸出位控制信號的掃描口?!駜?yōu)點:大大簡化了硬件線路。●缺點:經(jīng)常不斷的執(zhí)行顯示子程序對各個數(shù)碼管進行動態(tài)掃描,消耗CPU較多的運行時間。在顯示器位數(shù)較多或刷新間隔較大時,會有一定的數(shù)碼閃爍現(xiàn)象。10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示下圖為典型的動態(tài)顯示接口電路。A口為字段口,輸出字形碼,再經(jīng)8路反相驅動器(74LS240)反相后加到每個顯示器a~dp對應的筆畫段上C口為輸出位碼的字位選擇掃描口,經(jīng)6路反相驅動器(74LS06)反相后加到各個顯示器的共陰極端。10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示點擊分析原理¤

程序如下:

MOVA,#05H ;8155方式控制字MOVDPTR,#2000H ;指向8155命令寄存器MOVX@DPTR,A ;寫入方式字,A,C口為輸出DISP:MOVR2,#20H ;位碼,從最左一位開始顯示MOVR3,#0AH ;設置最初顯示字符“A”LOOP:MOVDPTR,#2001H ;指向字段口MOVA,R3 ;取顯示的數(shù)INCR3 ;修改顯示值ADDA,#15 ;查表修正量MOVCA,@A+PC ;查表取字形碼解題分析:◆設8155的命令/狀態(tài)寄存器、A口、B口和C口分別地址為2000H、2001H、2002H、2003H?!?155的工作方式設置為:A口為輸出,禁止中斷;C口也為輸出。方式控制字為05H?!魪淖钭筮呉晃伙@示器開始顯示,位碼20H參考程序¤10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示例8-2

顯示電路如上圖所示,編寫一動態(tài)顯示程序,使LED顯示器同時顯示“ABCDEF”6個字符。MOVX@DPTR,A ;顯示一位數(shù)MOVA,R2MOVDPTR,#2003H ;指向8155C口(字位口)MOVX@DPTR,A

;輸出位碼ACALLD1MS

;延時1msJBACC.5,EXIT

;6位數(shù)已顯示完,則結束RRA

;未掃描完,位碼右移一位MOVR2,A

;暫存位碼SJMPLOOP

;循環(huán),繼續(xù)顯示下一位數(shù)EXIT:RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82HDB0F8H,80H,90H,88H,83H,0C6H,0A1HDB86H,8EH,8CH,0BFH,0FFH

;使用共陽極七段碼表D1MS:MOVR7,#02H

;延時1ms程序DL0:MOVR6,0FFHDL1:DJNZR6,DL1DJNZR7,DL0RET10.1.3LED數(shù)碼顯示器的靜態(tài)顯示和動態(tài)顯示10.1.4點陣式LED顯示器與單片機接口技術◆LED點陣式顯示器是指由發(fā)光二極管排成一個m×n的點陣,每個發(fā)光二極管構成點陣中的一個點,通過對各個LED發(fā)光與不發(fā)光的控制來完成各種字符或圖形的顯示。

●優(yōu)點:焊點少、連線少,所有亮點在同平面、亮度均勻、外形美觀

●點陣式LED顯示器在行線列線的每一個交叉處都有一個LED,只要是LED的X方向為1、Y方向為0,則對應的LED就發(fā)光。1.點陣式LED顯示器的結構及原理8行8列結構的點陣顯示模塊原理圖在圖中,用8行8列模塊顯示字符字符“F”的點陣代碼為:7EH、20H、24H、3CH、24H、20H、20H和70H;字符“↑”的點陣代碼為18H、3CH、5AH、99H、18H、18H、18H和18H;字符“↓”的點陣代碼為18H、18H、18H、18H、99H、5AH、3CH和18H。字符F點陣代碼

¤10.1.4點陣式LED顯示器與單片機接口技術字符↑點陣代碼

¤字符↓點陣代碼

¤2.點陣式LED與單片機接口電路:I/O端口分別提供字形代碼(列碼)、掃描信號(行碼),通過逐行掃描循環(huán)點亮字形。例8-3

圖8-9所示為一交通指示燈電路,編寫程序使點陣式LED顯示符號“↑”。解:圖中74LS138將P2.2~P2.0三個輸出端譯碼后選通顯示器的各行(Y0#~Y7#);而P0口提供顯示數(shù)據(jù),即P0.7~P0.0經(jīng)7407驅動器驅動LED的列線X0~X7。顯示器采用行掃描方式進行顯示,每掃描一次則顯示一行。在程序中建立點陣代碼表(即掃描信號)TAB,用于存放要顯示字符“↑”點陣代碼,用R1來指示掃描行。10.1.4點陣式LED顯示器與單片機接口技術程序編寫如下:DISP:MOVR1,#0

;R1指示第0行MOVDPTR,#TAB

;DPTR為點陣代碼表首地址AGAIN:MOVA,R1MOVP2,A

;選通第R1行MOVCA,@A+DPTR

;取第R1個數(shù)據(jù)MOVP0,A

;送列顯示LCALLDEL1MS

;調(diào)延時子程序INCR1CJNER1,#8,AGAIN

;若8行沒有顯示完,則繼續(xù)RETEL1MS:MOVR7,#02H

;延時1ms的子程序LP1:MOVR6,#0FAHLP2:DJNZR6,LP2DJNZR7,LP1RETTAB:DB18H,3CH,5AH,99H,18H,18H,18H10.1.4點陣式LED顯示器與單片機接口技術10.2LCD顯示器及其接口技術10.2.1LCD顯示器的分類10.2.31602點陣式LCM及應用10.2.2LCD顯示器的結構與驅動方式10.2節(jié)主講內(nèi)容10.2.410.2.1LCD顯示器的分類◆LCD顯示器類型:可按照光電效應、透光模式、顯示形式1.按光電效應分類:

●特點:LCD本身并不發(fā)光,是靠調(diào)制外界光實現(xiàn)顯示的。

●類型:電場效應類、電流效應類、電熱寫入效應類和熱效應類等。

●其中電場效應類又可分為:TN型液晶、GH型液晶、STN型液晶和TFT型液晶。◆LCD顯示器類型:可按照光電效應、透光模式、顯示形式1.按光電效應分類:

2.按透光模式分類●類型:反射式、透射式、半透射式。

◆反射式LCD:下偏振片是反光型的LCD,只有正面的光才能照射到LCD上面,這類一般適用于使用環(huán)境有光源的場合。

◆透射式LCD:下偏振片投射型LCD,一般適用于環(huán)境沒有光源,靠外加底光源的場合。

◆半透射式LCD:下偏振片是半投射型的LCD,正面光和底面光均可透過LCD,一般適用于外部光線不強的場合.10.2.1LCD顯示器的分類

◆LCD顯示器類型:可按照光電效應、透光模式、顯示形式1.按光電效應分類2.按透光模式分類3.按顯示形式分類

●根據(jù)顯示內(nèi)容類型的可分:字段型、字符型、點陣圖形型LCD。

◆字段式應用范圍:主要用于顯示數(shù)字,也可顯示一些特殊的字符。主要分類:六段、七段、八段、十四段顯示和十六段顯示。

◆字符型(5×7,5×11)多用于儀器儀表,小家電等。

◆圖形型多行多列的矩陣晶格點,多用于復雜的圖形顯示,游戲機、筆記本、手機等。10.2.1LCD顯示器的分類10.2.2LCD顯示器的結構與驅動方式1.LCD結構與工作原理●上、下電極基板內(nèi)側為無色透明的玻璃電極,由兩基板與封接劑組合而成的密封盒內(nèi)注有扭曲向列型液晶材料。該極板便有顯示。●七段顯示LCD顯示器的電極配置:如圖所示,不僅有a~g七個筆畫段,還有一個公共極com。2.LCD的驅動方式

●液晶顯示的驅動:通過調(diào)整施加在液晶顯示器電極上的電位信號的相位、峰值、頻率等,建立驅動電場,達到液晶顯示器的顯示效果。

●驅動方式:靜態(tài)驅動和動態(tài)驅動靜態(tài)驅動:比較簡單,但只適用于顯示位數(shù)不多的場合。動態(tài)驅動:即時分割驅動方式,較復雜些,顯示位數(shù)多時具有優(yōu)勢,LCD顯示模塊大部分采用動態(tài)驅動方式。10.2.2LCD顯示器的結構與驅動方式下面以七段LCD顯示器中的a段為例分析其驅動原理。由圖(a)和(b)可知,當Y低電平時,a點與com端方波同相,LCD的該筆畫段不顯示;當Y高電平時,a點與com端方波反相,LCD的該筆畫段顯示。

10.2.2LCD顯示器的結構與驅動方式com異或如圖(c),顯示原理都是相同的。圖中的A、B、C和D四個輸入段是被顯示字符的BCD碼,經(jīng)譯碼器和異或門之后,在a、b、c、d、e、f和g端產(chǎn)生方波驅動信號,用于控制LCD的亮與滅;G端為占空比為1:1的控制方波信號,頻率一般在25Hz~100Hz之間。10.2.2LCD顯示器的結構與驅動方式10.2.3字符型1602LCM及應用

1.字符型LCD顯示模塊

●LCD顯示模塊:是一種將液晶顯示器件、連接件、集成電路、PCB線路板、背光源、結構件裝配在一起的組件,一般稱為LCM。

●LCM特點:接口簡單、易于控制、顯示內(nèi)容豐富、通用性強的特點。

目前多采用控制器內(nèi)置式的LCM模塊。1602即時常用一種。

16×1,16×2,20×2,40×2行等的模塊;采用HD44780控制器的液晶顯示器內(nèi)藏字符發(fā)生器,可以提供若干個5×7或5×11點陣塊組成的顯示字符集。

主控制電路擴展驅動電路擴展驅動電路HD44780控制器參數(shù)具有80字節(jié)顯示用的RAM;字符產(chǎn)生器ROM,可產(chǎn)生160個5×7點陣字符(160個×35點陣);自定義字符RAM,可自定義8個5×7點陣字符或4個5×11點陣字符;LCD1602引腳標準16引腳;顯示屏規(guī)格:可以提供8×1~40×4(字符數(shù)×行數(shù))各種顯示屏。10.2.3字符型1602點陣式LCM及應用2.1602LCM顯示模塊幾個主要引腳

RS—寄存器選擇控制;RS=0,且R/W=0寫,選擇寫命令寄存器;

RS=0,且R/W=1讀,選擇讀忙標志及地址計數(shù)器;

RS=1,選擇讀或寫數(shù)據(jù)寄存器;

E—使能信號控制,高電平有效;

V0—LCD驅動電源,V0為對比度調(diào)整端,接正對比度最弱,接地對比度最高。可電阻分壓或10K的RP調(diào)整;

LEDA、LEDK—分別為背光+5V和背光地;10.2.3字符型1602點陣式LCM及應用2.1602LCM顯示模塊圖8-13點陣式LCD與單片機接口E為下降沿觸發(fā)的使能信號;VLCD為液晶灰度調(diào)整電壓輸入端。

R/W#為讀/寫控制信號,高電平為“讀”,低電平為“寫”;RS為寄存器選擇信號,RS=0選擇指令寄存器,RS=1選擇數(shù)據(jù)寄存器;DB0~DB7為8位數(shù)據(jù)雙向傳輸總線;說明引腳功能¤10.2.3字符型1602LCM及應用點擊演示譯碼¤2.點陣式LCD與單片機的接口圖8-13點陣式LCD與單片機接口10.2.3字符型1602LCM及應用寫指令到LCD為10H寫數(shù)據(jù)到LCD為11H讀LCD狀態(tài)為12H讀LCD數(shù)據(jù)為13H。◆例8-4試編寫圖8-13電路的LCD模塊上電初始化子程序。

解:LCD模塊上電后初始化程序如下:SYSSET:MOVR0,10H

;寫命令口地址MOVA,#38H ;系統(tǒng)功能設置命令字 ACALLRDBUSY

;查詢LCD“忙”否MOVX@R0,A

;LCD“閑”,送命令字MOVA,#01H

;清屏命令字ACALLRDBUSY

;查詢LCD“忙”否MOVX@R0,A

;送清屏命令字MOVA,#06H

;輸入方式命令字ACALLRDBUSY

;查詢LCD“忙”否MOVX@R0,A

;送輸入方式字ACALLRDBUSY10.2.3字符型1602LCM及應用MOVA,#02H ;光標返回命令字MOV@R0,AACALLRDBUSYMOVA,#0CH ;光標關,顯示開命令字MOV@R0,ARET ;查詢“忙”標志位BF:RDBUSY:PUSHACC ;保護現(xiàn)場PUSHR0MOVR0,#12H ;讀“忙”口地址送R0RDBS1:MOVA,@R0 ;讀LCDRLCA ;ACC.7→CyJCRDBS1 ;BF=“1”,LCD內(nèi)部操作,等待POPR0 ;BF=“0”,LCD空閑,恢復現(xiàn)場POPACCRET ;返回10.2.3字符型1602LCM及應用10.3按鈕、鍵盤與單片機接口技術10.3.1按鈕與單片機的接口10.3.2獨立式鍵盤及其接口10.3.3矩陣式鍵盤及其接口10.3節(jié)主講內(nèi)容10.3.1按鈕與單片機的接口按鈕是一種常用的元器件,如下圖當按鈕S被按下時,P1.0口的電平由“1”變?yōu)椤?”;待松開后,則恢復為原來的電平“1”。P1.0端口的電壓變化取決于按鈕S的通斷狀態(tài)。由于按鈕機械觸點的彈性作用,按鈕在閉合和斷開的瞬間電接觸是不穩(wěn)定的,即按鈕在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會馬上斷開,而是在閉合及斷開的瞬間均伴隨有一連串的抖動抖動的時間由按鈕的機械特性決定,一般在5~10ms左右。按鈕的抖動會引起一次按鍵被誤讀多次,為了確保單片機對鍵的一次閉合僅作一次處理,必須去除抖動,在閉合穩(wěn)定時讀取按鈕狀態(tài),并且判別到鍵斷開穩(wěn)定后再作處理。

10.3.1按鈕與單片機的接口點擊分析抖動¤點擊分析去抖動¤按鈕的去抖,可用硬件和軟件兩種方法。硬件去抖動的一種電路如圖所示圖中用兩個與非門構成一個RS觸發(fā)器。當按鈕未被按下而處于A處時,觸發(fā)器輸出為1;當按鈕按下處于B處時,輸出為0。軟件去抖動的方法

在單片機檢測到有鍵按下時,執(zhí)行一個10~20ms的延時程序后再次檢測按鈕是否仍閉合,如果仍閉合,則確認為有按鈕按下,否則重新檢測。10.3.1按鈕與單片機的接口10.3.2獨立式鍵盤及其接口

1.獨立式鍵盤結構

最簡單的獨立式鍵盤結構如圖所示每一個鍵電路是獨立的,由一根數(shù)據(jù)線輸出鍵的通斷狀態(tài)。當按鍵Si斷開時,對應的數(shù)據(jù)線輸出為1;當其閉合時為0。

點擊分析原理¤(1)

獨立式鍵盤的查詢法軟件設計KBP0:MOVP1,#0FFH ;置P1口為輸入方式MOVA,P1 ;讀鍵值CPLAJZKBP0 ;無鍵閉合,重新檢測ACALLD12MS ;延時12ms,去抖動(清單中略D12MS)MOVA,P1 ;再檢測有無鍵閉合CPLAJZKBP0JBACC.0,PR0 ;從S0~S7依次判鍵閉合,轉相應入口…………JBACC.7,PR7RETPR0:…… ;S0鍵功能

……AJMPKBP0 ;S0鍵功能處理程序執(zhí)行完返回…… ;S1~S6鍵功能處理程序(清單中略)PR7:…… ;S7鍵功能……LJMPKBP0 ;S7鍵功能處理程序執(zhí)行完返回10.3.2獨立式鍵盤及其接口⑵獨立式鍵盤的中斷法軟件設計當8個按鍵中任一個按鍵被按下時,均會引起中斷請求,CPU會自動進入中斷。在中斷服務程序中讀入P1端口的狀態(tài),依次判斷是哪一個鍵被按下,再進入相應的鍵處理程序。程序的編寫與查詢方式程序略有不同,由主程序和中斷查詢程序兩部分組成

10.3.2獨立式鍵盤及其接口點擊分析原理¤10.3.3矩陣式鍵盤及其接口1.矩陣式鍵盤結構及原理圖為通過8155接口芯片擴展的5行×6列矩陣結構的鍵盤及接口,B口作行數(shù)據(jù)輸入口,C口作列掃描輸出口。圖中鍵盤中共有30個鍵,每一個鍵都給予編號,鍵號分別為0、1、2、~1DH。點擊分析原理¤再點擊¤1.矩陣式鍵盤結構及原理矩陣式鍵盤的每一行線與列線的交叉處不相通,而是通過一個按鍵來連通。當一個鍵閉合時,該鍵所對應的行線和列線短路,此時該行線的狀態(tài)應由該列線的輸出信號所決定。利用這種行列矩陣結構只需N個行線和M個列線即可組成M×N個按鍵的鍵盤。10.3.3矩陣式鍵盤及其接口

結合流程圖,可得出鍵盤掃描的方法

⑴檢測是否有鍵被按下方法是輸出全0信號到鍵盤的列線上,然后讀鍵盤的行線的狀態(tài)。若行線為全1,則無健閉合。若有某一行線為0,就表示有鍵閉合。

⑵軟件去抖動在檢測到有鍵閉合時,軟件延遲約10~20ms去抖動。當系統(tǒng)中有顯示器時,可調(diào)用顯示子程序來達到延遲去抖動目的。

⑶鍵穩(wěn)定后確定鍵值計算出鍵值,即產(chǎn)生鍵碼。公式為:閉合鍵的鍵值=行首鍵號+列號

⑷等待閉合鍵釋放為了保證鍵的一次閉合CPU只作一次處理,所以必須等待閉合鍵釋放以后,才對輸入鍵進行處理。10.3.3矩陣式鍵盤及其接口2.鍵盤掃描方式

查詢掃描方式、定時掃描方式、中斷掃描方式三種。

⑴查詢掃描方式

根據(jù)前述的鍵盤掃描流程,分析圖8-17的掃描鍵盤子程序。

設8155各端口的工作方式及地址分配如下:C口為鍵掃描輸出地址是D103H,B口為鍵數(shù)據(jù)輸入口地址是D102H。鍵掃描子程序名SCAN,鍵值存放在累加器A中。若A=FFH,則表示本次鍵掃描無效,無鍵閉合。參考程序如下:SCAN:LCALLTESTKEY ;調(diào)用檢測鍵盤子程序JNZK1 ;A≠0,有鍵閉合LJMPK11 ;A=0,無鍵閉合則轉返回K1:LCALLDEL12MS ;調(diào)用延時子程序,去抖動LCALLTESTKEY ;檢測鍵盤JNZK2 ;A≠0,確認有鍵閉合LJMPK11 ;A=0,無健閉合則轉返回K2:MOVR2,#01H ;鍵盤列線掃描碼,從0列開始掃描MOVR3,#00H ;列號計數(shù)器,初值為010.3.3矩陣式鍵盤及其接口K3:MOVDPTR,#0D103HMOVA,R2 ;取掃描碼MOVX@DPTR,A ;進行列掃描MOVDPTR,#0D102HMOVXA,@DPTR ;讀行信號ANLA,#1FHJNZKEY ;本列有鍵合,則轉判行LJMPK10KEY:JBACC.0,K4 ;PB0=1,第0行無鍵閉合MOVA,#00H ;PB0=0,有鍵閉合,行首鍵號00HLJMPK8K4:JBACC.1,K5 ;PB1=1,第1行無健閉合MOVA,#06H ;PB1=0,有鍵閉合,行首鍵號06HLJMPK8K5:JBACC.2,K6 ;PB2=1,第2行無鍵閉合MOVA,#0CH ;PB2=0,有鍵閉全,行首鍵號0CHLJMPK8K6:JBACC.3,K7 ;PB3=1,第3行無鍵閉合10.3.3矩陣式鍵盤及其接口

MOVA,#12H ;PB3=0,有鍵閉合,行首鍵號12HLJMPK8K7:JBACC.4,K10 ;PB4=1,第4行無健閉合MOVA,#18H ;PB4=0,有鍵閉合,行首鍵號18HK8:ADDA,R3 ;鍵值=行首鍵號+列號PUSHACC ;保存A中的鍵值K9:LCALLDEL12MSLCALLTESTKEY ;檢測鍵盤JNZK9POPACC ;鍵已釋放,A中為鍵值RETK10:INCR3 ;列號計數(shù)器加1MOVA,R2 ;取列掃描碼JNBACC.5,K12K11:MOVA,#0FFH ;本次掃描無效,無鍵閉合標志FFHRET10.3.3矩陣式鍵盤及其接口K12:RLA ;掃描碼左移1位MOVR2,ALJMPK3TESTKEY:MOVA,#0FFH ;檢測鍵盤子程序MOVDPTR,#0D103HMOVX@DPTR,A ;使所有列線都為0MOVDPTR,#0D102HMOVXA,@DPTR ;讀行線信號CPLAANLA,#1FHRETDEL12MS:MOVR7,#18H ;延時12ms子程序LP1:MOVR6,#0FFHLP2:DJNZR6,LP2DJNZR7,LP1RET10.3.3矩陣式鍵盤及其接口⑵定時掃描定時掃描方式是利用單片機內(nèi)部定時器,每隔一定時間(如10ms)CPU響應中斷后對鍵盤進行一次掃描,并在有鍵閉合時轉入該鍵功能處理程序。定時掃描鍵盤電路與查詢掃描方式相同。

其程序流程圖如圖所示。KM與KP分別為去抖動標志和處理標志。10.3.3矩陣式鍵盤及其接口(3)中斷掃描方式中斷掃描方式,指CPU平時不掃描鍵盤,只在當鍵盤上有鍵閉合時才產(chǎn)生中斷請求,向CPU申請中斷,CPU響應鍵盤中斷后立即對鍵盤進行掃描,識別鍵值,并作相應的處理。這種方式可提高CPU的效率并能及時響應鍵盤輸入。

掃描方式的矩陣式鍵盤原理圖見右圖。四輸入端與門輸入端與鍵盤行線相連,輸出端與8051的外部中斷相連。10.3.3矩陣式鍵盤及其接口10.4鍵盤、顯示器接口芯片--827910.4.18279的內(nèi)部結構10.4.28279引腳與功能10.4.38279的命令字與狀態(tài)字10.4.48279與單片機的連接及應用10.4主講內(nèi)容8.4.18279的內(nèi)部結構

◆8279的結構框圖

指示主要部件1.數(shù)據(jù)緩沖器及I/O控制

●數(shù)據(jù)緩沖器:三態(tài)雙向的,用來連接內(nèi)部數(shù)據(jù)總線與外部的數(shù)據(jù)總線,在8279與CPU之間傳送命令、數(shù)據(jù)及狀態(tài)信息。

●I/O控制電路:通過接收系統(tǒng)的RD#、WR#、CS#、A0等輸入信號線對內(nèi)部不同的寄存器和緩沖器進行讀或寫。2.控制與定時寄存器和定時控制電路◆控制與定時寄存器:用于存放鍵盤和顯示器工作方式字和其他狀態(tài)信息?!舳〞r控制電路:包含了定時計數(shù)器,其中一個計數(shù)器是N分頻器,分頻系數(shù)可通過編程實現(xiàn),N的取值范圍為2~31。分頻器對CLK端輸入的外部時鐘頻率N分頻,得到100kHz的內(nèi)部計數(shù)信號,掃描時間為5.1ms,去抖時間為10.3ms。其他的計數(shù)器則將100kHz信號再分頻,提供合適的鍵盤掃描和顯示器顯示時間。8.4.18279的內(nèi)部結構3.掃描計數(shù)器◆作用:鍵盤和顯示器共用部分,提供鍵盤和顯示器的掃描信號線?!艄ぷ鞣绞?/p>

4.回復緩沖器與鍵盤去抖動◆作用:接收并鎖存來自回復線RL7~RL0的8個回復信號在鍵盤方式時,回復線作為鍵盤的行(列)輸入線,搜索鍵盤上的閉合鍵,形成鍵盤數(shù)據(jù),包括該鍵的地址(行列號)及移位、控制狀態(tài),送FIFO/傳感器RAM。鍵盤數(shù)據(jù)格式:

D7D6D5D4D3D2D1D0控制移位掃描(列號)回復(行號)CNTLSHIFT編碼工作方式:二進制方式計數(shù),4位計數(shù)器狀態(tài)從SL3~SL0輸出,可接16位顯示器和8×8的鍵盤譯碼工作方式:計數(shù)器僅用最低2位,譯碼后從SL1~SL0輸出??山樱次伙@示器和4×8鍵盤。8.4.18279的內(nèi)部結構5.FIFO/傳感器RAM及狀態(tài)寄存器◆功能:在鍵盤和選通方式時,它是FIFO存儲器,其讀寫遵循先入先出的原則。在傳感器方式時,RAM的每一單元存放的是傳感器矩陣中相應列的狀態(tài)信息。6.顯示RAM及顯示地址寄存器等部件組成

●顯示RAM用來顯示存放待顯示的數(shù)據(jù),為16個字節(jié),顯示過程重,存儲的顯示數(shù)據(jù)輪流從該寄存器輸出?!耧@示地址寄存器用來存放由CPU正在讀或寫該RAM某單元的地址,或正在顯示的兩個字節(jié)的地址,它可以由命令設定,或者每次讀寫之后自動遞增。8.4.18279的內(nèi)部結構8.4.28279引腳與功能8279有40個引腳,其引腳配置見圖所示

◆DB0~DB7:雙向數(shù)據(jù)總線,用于在CPU和8279之間傳送命令、數(shù)據(jù)和狀態(tài)?!鬋LK:時鐘輸入線,用于產(chǎn)生內(nèi)部定時?!鬜ESET:復位輸入線,該引腳上輸入一個高電平信號將復位8279,復位后狀態(tài)為:16位顯示左邊輸入,編碼掃描鍵盤雙鍵封鎖,時鐘系數(shù)為31?!鬋S#:片選輸入線,輸入低電平時,CPU選中8279,允許對8279進行讀、寫操作?!鬉0:緩沖器地址輸入線,高電平時數(shù)據(jù)線上傳送的是命令或狀態(tài)信息,低電平時數(shù)據(jù)線上傳送的是數(shù)據(jù)信息。?!??!??!??!ぁし治鲆_功能¤8.4.28279引腳與功能8279有40個引腳,其引腳配置見圖所示

◆RD#:讀信號輸入線,低電平有效,8279內(nèi)部緩沖器信息送DB0~DB7。

◆WR#:寫信號輸入線,低電平有效,接收數(shù)據(jù)總線DB0~DB7上的信息寫入內(nèi)部緩沖器。

◆IRQ:中斷請求輸出線,高電平有效。

◆SL0~SL3:掃描輸出線,用以對鍵盤/傳感器矩陣和顯示器進行掃描。

◆RL0~RL7:數(shù)據(jù)輸入線,鍵盤/傳感器矩陣的行(或列)數(shù)據(jù)輸入線。這些輸入線內(nèi)部有拉高電路,使之保持為高電平,也可以由尾部開關拉成低電平。在選通工作方式中RL7~RL0可作為8為數(shù)據(jù)輸入線。?!??!??!??!ぁ?.4.28279引腳與功能8279有40個引腳,其引腳配置見圖所示

◆SHIFT:換檔輸入線,在鍵掃描中閉合鍵的位置信息(行號和列號)和換檔輸入線狀態(tài)一起存入FIFORAM,使鍵盤上的每個鍵可定義為上、下兩檔功能。SHIFT線內(nèi)部有上拉電平使之保持高電平,也可以被外部開光拉成低電平。

◆CNTL/STB:控制/選通輸入線,在鍵盤方式中,作為控制輸入線,它的狀態(tài)和鍵信息一起存儲到FIFORAM中。在選通輸入方式中作為數(shù)據(jù)送入FIFORAM的選通輸入線。CNTL/STB線內(nèi)部也有拉高電路使之保持高電平,也可被外部開關拉成低電平。?!??!??!??!ぁ?.4.28279引腳與功能8279有40個引腳,其引腳配置見圖所示

◆OUTA0~OUTA3、OUTB0~OUTB3:四位輸出口,這兩個端口是16×4顯示器更新寄存器的輸出端,輸出的數(shù)據(jù)與掃描線(SL2~SL0)上信號同步,用于多位顯示器顯示。這兩個端口可以合并為一個8為輸出口,OUTA0~OUTA3為高四位,OUTB0~OUTB3為低四位。

◆BD#:顯示消隱輸出線,低電平有效,該輸出線在數(shù)字切換過程中或使用顯示器熄滅命令時使顯示器消隱。

◆Vcc:電源輸入引腳,+5V供電。

◆Vss:地線。?!??!??!??!ぁ?.4.38279的命令字與狀態(tài)字1.鍵盤/顯示方式設置命令鍵盤/顯示方式設置命令字的格式如下:D7D6D5D4D3D2D1D0000DDKKK000為方式命令字特征位設定顯示方式008個字符顯示,左入口0116個字符顯示,左入口108個字符顯示,右入口116個字符顯示,右入口設定七種鍵盤、顯示工作方式

000編碼掃描鍵盤,雙鍵鎖定001譯碼掃描鍵盤,雙鍵鎖定010編碼掃描鍵盤,N鍵輪回011譯碼掃描鍵盤,N鍵輪回100編碼掃描傳感器矩陣101譯碼掃描傳感器矩陣110選通輸入,編碼顯示掃描111選通輸入,譯碼顯示掃描左入口指顯示位置從最左一位(最高位)開始,逐次輸入的顯示字符逐個向右順序排列2.程序時鐘命令程序時鐘命令字的格式如下:D7D6D5D4D3D2D1D0001PPPPP001為時鐘命令字特征位外部輸入CLK端的時鐘分頻數(shù)N,取2~31

例如:外部時鐘頻率為2MHz,PPPPP被置成為10100(N=20),則對輸入的外部時鐘20分頻,以獲得8279內(nèi)部要求的100kHz的基本頻率。8.4.38279的命令字與狀態(tài)字3.讀FIFO/傳感器RAM命令讀FIFO/傳感器RAM命令字的格式如下:D7D6D5D4D3D2D1D0010AIXAAA010為讀FIFO/傳感器RAM命令特征位傳感器RAM的8個字節(jié)地址

自動增量特征位當AI=I時,每次讀出傳感器RAM后地址自動加1使地址指針指向下一個存儲單元。這樣,下一個數(shù)據(jù)便從下一個地址讀出,而不必重新設置讀FIFO/傳感器RAM命令。

在鍵盤工作方式中,讀出操作嚴格按照先入先出順序,不需使用這條命令。

8.4.38279的命令字與狀態(tài)字4.讀顯示RAM命令讀顯示RAM命令字的格式如下:D7D6D5D4D3D2D1D0011AIAAAA011為讀顯示RAM命令字特征位顯示RAM中的存儲單元自動增量位5.寫顯示RAM命令讀顯示RAM命令字的格式如下:D7D6D5D4D3D2D1D0100AIAAAA100為寫顯示RAM命令字特征位用來尋址顯示RAM中的存儲單元自動增量位

8.4.38279的命令字與狀態(tài)字6.顯示禁止寫入/消隱命令顯示禁止寫入/消隱命令字的格式如下:D7D6D5D4D3D2D1D0101XIWAIWBBLABLB101為方式設置命令字特征位消隱設置位

A、B組顯示RAM寫入屏蔽位顯示寄存器分成A、B兩組,可以單獨送數(shù),故用兩位來分別屏蔽。當A組的屏蔽位IWA=1時,A組的顯示RAM禁止寫入。

8.4.38279的命令字與狀態(tài)字7.消除命令消除命令字的格式如下:D7D6D5D4D3D2D1D0110CDCDCDCFCA110為消除命令特征位置空FIFO顯示RAM消除方式D4D3D2清

式10×將顯示RAM全部清零110將顯示RAM清成20H(A組=0010;B組=0000)111將顯示RAM全部置10××不清除(若CA=1,則D3、D2仍有效)總清位

8.4.38279的命令字與狀態(tài)字8.結束中斷/錯誤方式設置命令結束中斷/錯誤方式設置命令字的格式如下:D7D6D5D4D3D2D1D0111E××××111為該命令特征位此命令有兩種不同的作用:■作為結束中斷命令。在傳感器工作方式中,此命令用來結束傳感器RAM的中斷請求?!鲎鳛樘囟ㄥe誤方式設置命令。在8279已被設定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結束中斷/錯誤方式設置命令(E=1),則8279將以一種特定的錯誤方式工作。8.4.38279的命令字與狀態(tài)字9.8279的狀態(tài)字8279的FIFO狀態(tài)字,主要用于鍵盤和選通工作方式,以表示FIFORAM中的字符數(shù)和有無錯誤發(fā)生。其格式為:

D7D6D5D4D3D2D1D0DuS/EOUFNNN顯示無效特征傳感器信號結束/錯誤特征位超出、不足錯誤特征位

FIFORAM已滿或者空的標志位

表示FIFORAM中的字符數(shù)8.4.38279的命令字與狀態(tài)字

1、8279作為鍵盤、顯示器接口芯片與單片機的連接圖中命令字/狀態(tài)字口地址為7FFFH,數(shù)據(jù)輸入/輸出口地址為7FFEH。OUTB0~OUTB3依次接顯示器a、b、c、d段,OUTA0~O

溫馨提示

  • 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

提交評論