MCS-51第10章MCS-51與鍵盤和顯示器的接口設計課件_第1頁
MCS-51第10章MCS-51與鍵盤和顯示器的接口設計課件_第2頁
MCS-51第10章MCS-51與鍵盤和顯示器的接口設計課件_第3頁
MCS-51第10章MCS-51與鍵盤和顯示器的接口設計課件_第4頁
MCS-51第10章MCS-51與鍵盤和顯示器的接口設計課件_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章MCS-51與鍵盤和顯示器的

接口設計10.1LED數(shù)碼管的顯示原理LED(LightEmittingDiode)發(fā)光二極管縮寫。LED數(shù)碼管是由發(fā)光二極管構成的。10.1.1LED數(shù)碼管的結構常見的LED數(shù)碼管為“8”字型的,共計8段。每一段對應一個發(fā)光二極管。有共陽極和共陰極兩種,如圖10-1所示。共陰極發(fā)光二極管的陰極連在一起,通常公共陰極接地。當陽極為高電平時,發(fā)光二極管點亮。同樣,共陽極LED數(shù)碼管的發(fā)光二極管的陽極連接在一起,公共陽極接正電壓,當某個發(fā)光二極管的陰極接低電平時,發(fā)光二極管被點亮,相應的段被顯示。圖10-18段LED數(shù)碼管結構及外形

表10-1只列出了部分段碼,可以根據(jù)實際情況選用,或重新定義。除“8”字型的LED數(shù)碼管外,市面上還有“±1”型、“米”字型和“點陣”型LED顯示器,如圖10-2所示。本章均以“8”字型的LED數(shù)碼管為例。

圖10-2

其他各種字型的LED顯示器10.1.2LED數(shù)碼管工作原理圖10-3所示為顯示4位字符的LED數(shù)碼管的結構原理圖。N位位選線和8

N條段碼線。段碼線控制顯示字型,而位選線控制著該顯示位的LED數(shù)碼管的亮或暗。

圖10-34位LED數(shù)碼管的結構原理圖

圖10-4為4位LED數(shù)碼管靜態(tài)顯示器電路,各位可獨立顯示,靜態(tài)顯示方式接口編程容易,但是占用口線較多。對圖10-4電路,若用I/O口線接口,要占用4個8位I/O口。因此在顯示位數(shù)較多的情況下,所需的電流比較大,對電源的要求也就隨之增高,這時一般都采用動態(tài)顯示方式。2.LED動態(tài)顯示方式無論在任何時刻只有一個LED數(shù)碼管處于顯示狀態(tài),即單片機采用“掃描”方式控制各個數(shù)碼管輪流顯示。圖10-44位LED靜態(tài)顯示電路在多位LED顯示時,為簡化硬件電路,通常將所有顯示位的段碼線的相應段并聯(lián)在一起,由一個8位I/O口控制,而各位的共陽極或共陰極分別由相應的I/O線控制,形成各位的分時選通。

圖10-5所示為一個4位8段LED動態(tài)顯示電路。其中段碼線占用一個8位I/O口,而位選線占用一個4位I/O口。必須采用動態(tài)的“掃描”顯示方式。即在某一時刻,只讓某一位的位選線處于選通狀態(tài),而其他各位的位選線處于關閉狀態(tài),同時,段碼線上輸出相應位要有顯示的字符的段碼。雖然這些字符是在不同時刻出現(xiàn),而在同一時刻,只有一位顯示,其他各位熄滅,由于余輝和人眼的“視覺暫留”作用,只要每位顯示間隔足夠短,則可以造成“多位同時亮”的假象,達到同時顯示的效果。LED不同位顯示的時間間隔(掃描間隔)應根據(jù)實際情況而定。顯示位數(shù)多,將占大量的單片機時間,因此動態(tài)顯示的實質(zhì)是以犧牲單片機時間來換取I/O端口的減少。

圖10-6所示為8位LED動態(tài)顯示2009.10.10的過程。圖10-6(a)所示為顯示過程,某一時刻,只有一位LED被選通顯示,其余位則是熄滅的;圖10-6(b)所示為實際的顯示結果,人眼看到的是8位穩(wěn)定的同時顯示的字符。

圖10-68位LED動態(tài)顯示過程和結果動態(tài)顯示的優(yōu)點是硬件電路簡單,顯示器越多,優(yōu)勢越明顯。缺點是顯示亮度不如靜態(tài)顯示的亮度高。如果“掃描”速率較低,會出現(xiàn)閃爍現(xiàn)象。靜態(tài)顯示示例:動態(tài)顯示示例: ORG 0000HSTART: MOV DPTR,#TABLE ;DPTR指向段碼表首地址 MOV R7,#07FH ;設置動態(tài)顯示掃描初值S1: MOV A,#00H MOVC A,@A+DPTR ;查表取得段碼 CJNE A,#01H,S2 ;判斷段碼是否為結束符 SJMP STARTS2: MOV B,A ;段碼送B保存 MOV A,R7 RL A ;顯示位掃描值左移1位 MOV P3,A ;顯示位掃描值送P3口 MOV R7,A MOV P0,B ;顯示段碼送P0顯示 LCALL DELAY ;延時 INC DPTR SJMP S1DELAY: MOV R5,#20 ;延時子程序D2: MOV R6,#20D1: NOP DJNZ R6,D1 DJNZ R5,D2 RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段碼表 DB 01H ;結束符 END10.2鍵盤接口原理鍵盤具有向單片機輸入數(shù)據(jù)、命令等功能,是人與單片機對話的主要手段。10.2.1鍵盤輸入應解決的問題1.鍵盤的任務任務有三項:(1)判別是否有鍵按下?若有,進入下一步工作。(2)識別哪一個鍵被按下,并求出相應的鍵值。(3)根據(jù)鍵值,找到相應鍵值的處理程序入口。

圖10-7(b)所示的t1和t3分別為鍵的閉合和斷開過程中的抖動期(呈現(xiàn)一串負脈沖),抖動時間長短與開關的機械特性有關,一般為5~10ms,t2為穩(wěn)定的閉合期,其時間由按鍵動作確定,一般為十分之幾秒到幾秒,t0、t4為斷開期。3.按鍵的識別鍵的閉合與否,行線輸出電壓上就是呈現(xiàn)高電平或低電平。高電平,表示鍵斷開,低電平則表示鍵閉合,通過對行線電平的高低狀態(tài)的檢測,可確認按鍵按下以及按鍵釋放與否。為了確保對一次按鍵動作只確認一次按鍵有效,必須消除抖動期t1和t3的影響。4.如何消除按鍵的抖動按鍵去抖動的方法有兩種:一種軟件延時,本思想是:在檢測到有鍵按下時,該鍵所對應的行線為低電平,執(zhí)行一段延時10ms的子程序后,確認該行線電平是否仍為低電平,如果仍為低電平,則確認該行確實有鍵按下。當按鍵松開時,行線的低電平變?yōu)楦唠娖?,?zhí)行一段延時10ms的子程序后,檢測該行線為高電平,說明按鍵確實已經(jīng)松開。采取本措施,可消除兩個抖動期t1和t3的影響。另一種是采用專用的鍵盤/顯示器接口芯片,這類芯片中都有自動去抖動的硬件電路。10.2.2鍵盤的工作原理鍵盤可分為兩類:非編碼鍵盤和編碼鍵盤。非編碼鍵盤是利用按鍵直接與單片機相連接而成,這種鍵盤通常使用在按鍵數(shù)量較少的場合。使用這種鍵盤,系統(tǒng)功能通常比較簡單,需要處理的任務較少,但是可以降低成本、簡化電路設計。按鍵的信息通過軟件來獲取。非編碼鍵盤常見的為兩種結構:獨立式鍵盤和矩陣式鍵盤。(1)獨立式鍵盤特點是:一鍵一線,各鍵相互獨立,每個鍵各接一條I/O口線,通過檢測I/O輸入線的電平狀態(tài),可容易地判斷哪個按鍵被按下,如圖10-8所示。對于圖10-8的鍵盤,圖中的上拉電阻保證按鍵釋放時,輸入檢測線上有穩(wěn)定的高電平。當某一按鍵按下時,對應的檢測線就變成了低電平,與其他按鍵相連的檢測線仍為高電平,只需讀入I/O輸入線的狀態(tài),判別哪一條I/O輸入線為低電平,很容易識別哪個鍵被按下。優(yōu)點:電路簡單,各條檢測線獨立,識別按下按鍵的軟件編寫簡單。適用于鍵盤按鍵數(shù)目較少的場合,不適用于鍵盤按鍵數(shù)目較多的場合,因為將占用較多的I/O口線。識別某一鍵是否按下的子程序:KEYIN: MOV P1,0FFH;P1口寫入1,設置P1口為輸入狀態(tài) MOV A,P1 ;讀入8個按鍵的狀態(tài) CJNE A,#0FFH,QUDOU;有鍵按下,跳去抖動 LJMP RETURN ;無鍵按下,返回

QUDOU: MOVR3,A ;8個按鍵的狀態(tài)送R3保存 LCALLDELAY10 ;調(diào)用延時子程序,軟件去鍵抖動 MOV A,P1 ;再一次讀入8個按鍵的狀態(tài) CJNE A,R3,RETURN;兩次鍵值比較,不同, ;是抖動引起,轉RETURNKEY0: MOV C,P1.0;有鍵按下,讀P1.0的按鍵狀態(tài) JC KEY1 ;P1.0為高,該鍵未按下,跳KEY1, ;判下一個鍵 LJMP PKEY0 ;P1.0的鍵按下,跳PKEY0處理KEY1: MOV C,P1.1;讀P1.1的按鍵狀態(tài) JC KEY2 ;P1.1為高,該鍵未按下,跳KEY2, ;判下一個鍵 LJMP PKEY1 ;P1.1的鍵按下,跳PKEY1處理對應8個按鍵的鍵處理程序PKEY0~PKEY7,根據(jù)按鍵功能的要求來編寫。注意,在進入鍵處理程序后,需要先等待按鍵釋放,再執(zhí)行鍵處理功能。另外,在鍵處理程序完成后,一定要跳向RETURN標號處返回。(2)矩陣式鍵盤矩陣式(也稱行列式)鍵盤用于按鍵數(shù)目較多的場合,由行線和列線組成,按鍵位于行、列的交叉點上。如圖10-9所示,一個44的行、列結構可以構成一個16個按鍵鍵盤。在按鍵數(shù)目較多的場合,要節(jié)省較多的I/O口線。圖10-9矩陣式鍵盤接口矩陣中無按鍵按下時,行線為高電平;當有按鍵按下時,行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。列線的電平如果為低,則行線電平為低;列線的電平如果為高,則行線的電平也為高,這是識別按鍵是否按下的關鍵所在。由于矩陣式鍵盤中行、列線為多鍵共用,各按鍵彼此將相互發(fā)生影響,所以必須將行、列線信號配合,才能確定閉合鍵位置。下面討論矩陣式鍵盤按鍵的識別方法。①掃描法。第1步,識別鍵盤有無鍵按下;第2步,如有鍵被按下,識別出具體的鍵位。下面以圖10-9所示的鍵3被按下為例,說明識別過程。第1步,識別鍵盤有無鍵按下。先把所有列線均置為0,然后檢查各行線電平是否都為高,如果不全為高,說明有鍵按下,否則無鍵被按下。例如,當鍵3按下時,第1行線為低,還不能確定是鍵3被按下,因為如果同一行的鍵2、1或0之一被按下,行線也為低電平。只能得出第1行有鍵被按下的結論。第2步,識別出哪個按鍵被按下。采用逐列掃描法,在某一時刻只讓1條列線處于低電平,其余所有列線處于高電平。當?shù)?列為低電平,其余各列為高電平時,因為是鍵3被按下,第1行的行線仍處于高電平;當?shù)?列為低電平,其余各列為高電平時,第1行的行線仍處于高電平;直到讓第4列為低電平,其余各列為高電平時,此時第1行的行線電平變?yōu)榈碗娖?,?jù)此,可判斷第1行第4列交叉點處的按鍵,即鍵3被按下。綜上所述,掃描法的思想是,先把某一列置為低電平,其余各列置為高電平,檢查各行線電平的變化,如果某行線電平為低電平,則可確定此行此列交叉點處的按鍵被按下。②線反轉法。掃描法要逐列掃描查詢,有時則要多次掃描。而線反轉法則很簡練,無論被按鍵是處于第一列或最后一列,均只需經(jīng)過兩步便能獲得此按鍵所在的行列值,下面以圖10-10所示的矩陣式鍵盤為例,介紹線反轉法的具體步驟。讓行線編程為輸入線,列線編程為輸出線,并使輸出線輸出為全低電平,則行線中電平由高變低的所在行為按鍵所在行。再把行線編程為輸出線,列線編程為輸入線,并使輸出線輸出為全低電平,則列線中電平由高變低所在列為按鍵所在列。兩步即可確定按鍵所在的行和列,從而識別出所按的鍵。

圖10-10

采用線反轉法的矩陣式鍵盤假設鍵3被按下。第一步,P1.0~P1.3輸出全為“0”,然后,讀入P1.4~P1.7線的狀態(tài),結果P1.4=0,而P1.5~P1.7均為1,因此,第1行出現(xiàn)電平的變化,說明第1行有鍵按下;第二步,讓P1.4~P1.7輸出全為“0”,然后,讀入P1.0~P1.3位,結果P1.0=0,而P1.1~P1.3均為1,因此第4列出現(xiàn)電平的變化,說明第4列有鍵按下。綜上所述,即第1行、第4列按鍵被按下,此按鍵即鍵3按下。線反轉法簡單適用,但不要忘記按鍵去抖動處理。10.2.3鍵盤的工作方式單片機在忙于其他各項工作任務時,如何兼顧鍵盤的輸入,這取決于鍵盤的工作方式。工作方式選取原則是,既要保證及時響應按鍵操作,又不過多占用單片機工作時間。鍵盤工作方式有3種,即編程掃描、定時掃描和中斷掃描。1.編程掃描方式也稱查詢方式,利用單片機空閑時,調(diào)用鍵盤掃描子程序,反復掃描鍵盤。如果單片機的查詢的頻率過高,雖能及時響應鍵盤的輸入,但也會影響其他任務的進行。查詢的頻率過低,可能會鍵盤輸入漏判。所以要根據(jù)單片機系統(tǒng)的繁忙程度和鍵盤的操作頻率,來調(diào)整鍵盤掃描的頻率。編程掃描程序框圖

消除按鍵抖動、鍵閉合一次僅進行一次按鍵的處理。2.定時掃描方式每隔一定的時間對鍵盤掃描一次。在這種方式中,通常利用單片機內(nèi)的定時器產(chǎn)生的定時中斷,進入中斷子程序來對鍵盤進行掃描,在有鍵按下時識別出該鍵,并執(zhí)行相應鍵的處理程序。為了不漏判有效的按鍵,定時中斷的周期一般應小于100ms。F1:去除抖動標志位F2:已識別完按鍵標志位每10ms定時中斷。定時掃描程序框圖3.中斷掃描方式為提高單片機掃描鍵盤的工作效率,可采用中斷掃描方式,如圖10-11所示。圖中的鍵盤只有在鍵盤有按鍵按下時,發(fā)出中斷請求信號,單片機響應中斷,執(zhí)行鍵盤掃描程序中斷服務子程序。如無鍵按下,單片機將不理睬鍵盤。此種方式的優(yōu)點是,只有按鍵按下時,才進行處理,所以其實時性強,工作效率高。圖10-11采用中斷掃描方式的矩陣式鍵盤矩陣式鍵盤所完成的工作分為3個層次。(1)單片機如何來監(jiān)視鍵盤的輸入,體現(xiàn)在鍵盤的工作方式上就是:

①編程掃描;②定時掃描;③中斷掃描。(2)確定按下鍵的鍵號。體現(xiàn)在按鍵的識別方法上就是:

①掃描法;②線反轉法。(3)根據(jù)按下鍵的鍵號,實現(xiàn)按鍵的功能,即跳向?qū)逆I處理程序。ORG0000HSTART:LJMPMAIN ORG0030HMAIN:MOVSP,#60H JNBP1.0,M0 ;查詢是否有鍵按下 JNBP1.1,M1 ;查詢K2鍵是否按下 JNBP1.2,M2 ;查詢K3鍵是否按下 JNBP1.3,M3 ;查詢K4鍵是否按下 JNBP1.4,M4 ;查詢K5鍵是否按下 JNBP1.5,M5 ;查詢K6鍵是否按下 JNBP1.6,M6 ;查詢K7鍵是否按下 JNBP1.7,M7 ;查詢K8鍵是否按下M0: LCALLDELAY ;延時,反彈跳 JNBP1.0,P10 ;K1鍵壓下處理 SJMPMAINM1: LCALLDELAY ;延時,反彈跳 JNBP1.1,P11 ;K2鍵壓下處理 SJMPMAINM2: LCALLDELAY ;延時,反彈跳 JNBP1.2,P12 ;K3鍵壓下處理 SJMPMAINM3: LCALLDELAY ;延時,反彈跳 JNBP1.3,P13 ;K3鍵壓下處理 SJMPMAINM4: LCALLDELAY ;延時,反彈跳 JNBP1.4,P14 ;K5鍵壓下處理 SJMPMAINM5: LCALLDELAY ;延時,反彈跳 JNBP1.5,P15 ;K6鍵壓下處理 SJMPMAINM6: LCALLDELAY ;延時,反彈跳 JNBP1.6,P16 ;K7鍵壓下處理 SJMPMAINM7: LCALLDELAY ;延時,反彈跳 JNBP1.7,P17 ;K8鍵壓下處理 SJMPMAINP10: CPLP0.0 SJMPMAINP11: CPLP0.1 SJMPMAINP12: CPLP0.2 SJMPMAINP13: CPLP0.3 SJMPMAINP14: CPLP0.4 SJMPMAINP15: CPLP0.5 SJMPMAINP16: CPLP0.6 SJMPMAINP17: CPLP0.7 SJMPMAINDELAY: MOV R5,#50H ;延時子程序D2: MOV R6,#0F0HD1: NOP DJNZ R6,D1 DJNZ R5,D2 RET END10.3鍵盤/顯示器接口設計實例在單片機應用系統(tǒng)設計中,一般都是把鍵盤和顯示器放在一起考慮。也有的系統(tǒng)僅單獨需要鍵盤或顯示器。10.3.1利用并行I/O芯片8155H或51單片機的串行口實現(xiàn)鍵盤/顯示器接口(略)10.3.2各種專用的鍵盤/顯示器接口芯片簡介用專用芯片,可省去編寫鍵盤/顯示器動態(tài)掃描程序以及鍵盤去抖動程序編寫的繁瑣工作。目前各種專用接口芯片種類繁多,各有特點,總體趨勢是并行接口芯片逐漸退出,串行接口芯片越來越多的得到應用。早期的較為流行的鍵盤/顯示器芯片8279,目前流行的鍵盤/顯示器接口芯片均采用串行通信方式,占用口線少。常見的芯片有:周立功公司的ZLG7289A、ZLG7290B、MAX7219、南京沁恒公司的CH451、HD7279和BC7281等。這些芯片全采用動態(tài)掃描方式,且控制的鍵盤均為編碼鍵盤。1.專用鍵盤/顯示器接口芯片8279可編程的并行鍵盤/顯示器接口芯片。內(nèi)部有鍵盤FIFO(先進先出堆棧)/傳感器雙重功能的8×8=64位的RAM,鍵盤控制部分可控制8×8的鍵盤矩陣,能自動獲得按下鍵的鍵號。自動去鍵盤抖動并具有雙鍵鎖定保護功能。顯示RAM的容量為16×8位,最多可控制16個LED數(shù)碼管顯示。2.專用鍵盤/顯示器芯片ZLG7290B采用I2C串行口總線結構,可實現(xiàn)8位LED顯示和64鍵的鍵盤管理,需外接晶振,使用按鍵功能時要接8個二極管,電路稍顯復雜,且每次I2C通信間隔稍長(10ms)。功能:閃爍、段點亮、段熄滅、功能鍵、連擊鍵計數(shù)等。其中,功能鍵實現(xiàn)了組合按鍵,這在此類芯片中極具特點;連擊鍵計數(shù)實現(xiàn)了識別長按鍵的功能,也是獨有的。3.專用顯示器芯片MAX7219MAXIM(美信)公司的產(chǎn)品。該芯片采用串行SPI接口,僅是單純驅(qū)動共陰極LED數(shù)碼管,沒有鍵盤管理功能。4.專用顯示器芯片BC7281可驅(qū)動16位LED數(shù)碼管顯示和實現(xiàn)64鍵的鍵盤管理,可實現(xiàn)閃爍、段點亮、段熄滅等功能。最大特點是通過外接移位寄存器驅(qū)動16位LED數(shù)碼管。但所需外圍電路較多,占PCB空間較大,且在驅(qū)動16位LED數(shù)碼管時,由于采用動態(tài)掃描方式工作,電流噪聲過大。5.專用鍵盤/顯示器芯片HD7279與單片機間采用串行通信,可控制并驅(qū)動8位LED數(shù)碼管和實現(xiàn)64(8×8)鍵的鍵盤管理。外圍電路簡單,價格低廉。由于具有上述優(yōu)點,目前得到較為廣泛的應用。6.專用鍵盤/顯示器芯片CH451可動態(tài)驅(qū)動8位LED數(shù)碼管顯示,具有BCD碼譯碼、閃爍、移位等功能。內(nèi)置大電流驅(qū)動級,段電流不小于30mA,位電流不小于160mA。內(nèi)置64(8×8)鍵鍵盤控制器,可對8×8矩陣鍵盤自動掃描,且有去抖動電路,并提供鍵盤中斷和按鍵釋放標志位,可供查詢按鍵按下與釋放狀態(tài)。片內(nèi)內(nèi)置上電復位和看門狗定時器。芯片性價比較高,是目前使用較為廣泛的專用的鍵盤/顯示器接口芯片之一。但抗干擾能力不是很強,不支持組合鍵識別。上述各種芯片,CH451和HD7279使用較多。從性價比,首推CH451,主要對LED數(shù)碼管的驅(qū)動功能較完善。10.3.3利用鍵盤/顯示接口芯片8279實現(xiàn)的鍵盤/顯示器接口8279是Intel公司為8位微處理器設計的通用鍵盤/顯示器接口芯片,其功能是:接收來自鍵盤的輸入數(shù)據(jù)并作預處理;完成數(shù)據(jù)顯示的管理和數(shù)據(jù)顯示器的控制。單片機應用系統(tǒng)采用8279管理鍵盤和顯示器,軟件編程極為簡單,顯示穩(wěn)定,且減少了主機的負擔。

1.8279的引腳定義

DB7~DB0為雙向外部數(shù)據(jù)總線;為片選信號線,低電平有效;和為讀和寫選通信號線;IRQ為中斷請求輸出線。RL7~RL0為鍵盤回送線。SL3~SL0為掃描輸出線。OUTB3~OUTB0、OUTA3~OUTA0為顯示寄存器數(shù)據(jù)輸出線。RESET為復位輸入線。SHIFT為換檔鍵輸入線。CNTL/STB為控制/選通輸入線。CLK為外部時鐘輸入線。為顯示器消隱控制線。A0為緩沖器選擇端。DB0~DB7:具有三態(tài)的雙向數(shù)據(jù)總線。用于8279與外部CPU之間傳遞命令(控制字)和數(shù)據(jù)。CLK:系統(tǒng)時鐘輸入。用于8279內(nèi)部產(chǎn)生工作的時序。RESET:復位信號輸入端。當RESET=1時,8279被復位,復位后8279內(nèi)部狀態(tài)如下1,16個字符顯示,左入口;2,編碼掃描鍵盤,雙鍵鎖定;3,程序時鐘編程為31。/CS:片選段。低電平有效;A0:緩沖器選擇端。A0=1時:若CPU對8279執(zhí)行寫入操作時,寫入是命令字;若CPU從8279讀數(shù)據(jù)時,讀出的是8279的狀態(tài)。A0=0時,寫入和讀出的均為數(shù)據(jù)。/RD、/WR:讀寫控制線。來自CPU的控制信號,控制8279的讀寫操作。IRQ:

中斷請求信號。輸出線,高電平有效。SL0~SL3:

掃描輸出線。作為鍵盤、顯示器的掃描信號,通過編程可定為“編碼輸出”(外接4-16譯碼器產(chǎn)生16選1的掃描信號);也可設定為“譯碼輸出”,直接輸出4選1的掃描信號。RL0~RL7:回復輸入線。用來接收掃描鍵盤的回復信號。SHIFT:移位信號的輸入線,高電平有效。該信號是8279鍵盤數(shù)據(jù)的次高位(D6位),通常用來補充鍵盤開關的功能,如鍵盤的上、下?lián)豕δ?。在傳感器方式和選通方式中,SHIFT無效。CNTL/STB:控制/選通輸入線,高電平有效。鍵盤方式時該輸入信號是鍵盤信號的最高位(D7),通常用來擴充鍵盤開關的控制功能,作為鍵盤控制功能鍵用。在傳感器方式和選通方式中,CNTL無效。在選通方式中,該信號的上升沿可將來RL0~RL7的數(shù)據(jù)存放到FIFORAM中。OUTA0~OUTA3:

A組顯示輸出線(接LED的e~g,dp劃)。OUTB0~OUTB3:

B組顯示輸出線(接LED的a~d劃)。上面兩組線均為顯示用的信息輸出線,數(shù)據(jù)的輸出與SL0~SL7的數(shù)字掃描信號同步,實現(xiàn)數(shù)據(jù)的動態(tài)掃描顯示。A組與B組輸出線可以單獨使用(如輸出BCD碼經(jīng)外部的“BCD-七段譯碼器”與顯示器連接);也可以將A、B兩組合并使用,直接輸出七段的“字形碼”供顯示器使用。/BD:消隱顯示輸出線,低電平有效。該輸出信號在數(shù)字切換顯示或使用顯示消隱命令時,控制顯示器將顯示消隱。2.8279的內(nèi)部結構

數(shù)據(jù)緩沖器將雙向三態(tài)8位內(nèi)部數(shù)據(jù)總線D0~D7與系統(tǒng)總線相連,用于傳送CPU與8279之間的命令和狀態(tài)??刂坪投〞r寄存器用于寄存鍵盤和顯示器的工作方式,鎖存操作命令,通過譯碼器產(chǎn)生相應的控制信號,使8279的各個部件完成相應的控制功能。定時器包含一些計數(shù)器,其中有一個可編程的5位計數(shù)器(計數(shù)值在2~31間),對CLK輸入的時鐘信號進行分頻,產(chǎn)生100KHz的內(nèi)部定時信號(此時掃描時間為5.1ms,消抖時間為10.3ms)。外部輸入時鐘信號周期不小于500ns。

掃描計數(shù)器有兩種輸出方式:一是編碼方式,計數(shù)器以二進制方式計數(shù),4位計數(shù)狀態(tài)從掃描線SL3~SL0輸出,經(jīng)外部譯碼器可以產(chǎn)生16位的鍵盤和顯示器掃描信號;另一種是譯碼方式,掃描計數(shù)器的低兩位經(jīng)內(nèi)部譯碼后從SL3~SL0輸出,直接作為鍵盤和顯示器的掃描信號?;厮途彌_器、鍵盤消抖及控制完成對鍵盤的自動掃描以搜索閉合鍵,鎖存RL7~RL0的鍵輸入信息,消除鍵的抖動,將鍵輸入數(shù)據(jù)寫入內(nèi)部先進先出存儲器(FIFORAM)。RL7~RL0為回送信號線作為鍵盤的檢測輸入線,由回送緩沖器緩沖并鎖存,當某一鍵閉合時,附加的移位狀態(tài)SHIFT、控制狀態(tài)CNTL及掃描碼和回送信號拼裝成一個字節(jié)的“鍵盤數(shù)據(jù)”送入8279內(nèi)部的FIFO(先進先出)RAM。

鍵盤的數(shù)據(jù)格式為:在傳感器矩陣方式和選通方式時,回送線RL7~RL0的內(nèi)容被直接送往相應的FIFORAM。輸入數(shù)據(jù)即為RL7~RL0。數(shù)據(jù)格式為:

FIFO/傳感器RAM是具有雙功能的8×8RAM在鍵盤或選通方式時,它作為FIFORAM,依先進先出的規(guī)則輸入或讀出,其狀態(tài)存放在FIFO/傳感器RAM狀態(tài)寄存器中。只要FIFORAM不空,狀態(tài)邏輯將置中斷請求IRQ=1;在傳感器矩陣方式,作為傳感器RAM,當檢測出傳感器矩陣的開關狀態(tài)發(fā)生變化時,中斷請求信號IRQ=1。在外部譯碼掃描方式時,可對8×8矩陣開關的狀態(tài)進行掃描,在內(nèi)部譯碼掃描方式時,可對4×8矩陣開關的狀態(tài)進行掃描。顯示RAM用來存儲顯示數(shù)據(jù),容量是16×8位在顯示過程中,存儲的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器輸出分成兩組,即OUTA0~OUTA3和OUTB0~OUTB3,兩組可以單獨送數(shù),也可以組成一個8位的字節(jié)輸出,該輸出與位選掃描線SL0~SL3配合就可以實現(xiàn)動態(tài)掃描顯示。顯示地址寄存器用來寄存CPU讀/寫顯示RAM的地址,可以設置為每次讀出或?qū)懭牒笞詣舆f增。3.8279的命令字和狀態(tài)字

8279是可編程接口芯片,其工作方式、工作特點等均是通過CPU向8279發(fā)送命令實現(xiàn)的,因此對8279的編程實際上就是向8279寫入命令字的過程。8279共有8條控制字,命令字是由每個字節(jié)中的D7~D5三位為特征區(qū)分。具體的命令字格式如下:D7D6D5D4D3D2D1D0命令字特征位(1)鍵盤/顯示方式命令字D7,D6,D5=000:方式命令字的特征位。D3,D4=DD:顯示工作方式設定。

00:8位字符顯示,左入口(打字機方式);

01:16位字符顯示,左入口(打字機方式);

10:8位字符顯示,右入口(計算器方式);

11:16位字符顯示,右入口(計算器方式)。000DDKKKD7D6D5

D4D3

D2D1D0命令字特征位

顯示工作方式

鍵盤工作方式

D2,D1,D0=KKK:設定鍵盤工作方式。

000:編碼掃描鍵盤,雙鍵鎖定;

001:譯碼掃描鍵盤,雙鍵鎖定;

010:編碼掃描鍵盤,N鍵輪回;

011:譯碼掃描鍵盤,N鍵輪回;

100:編碼掃描傳感器;

101:譯碼掃描傳感器;

110:選通輸入,編碼顯示掃描;

111:選通輸入,譯碼顯示掃描;【說明】:1,“雙鍵鎖定”指有2個鍵按下時,取最后彈起的鍵;2,“N鍵輪回”指有N個鍵按下時,根據(jù)它們按下的順序依次存入FIFORAM中。3,“編碼輸出”指按二進制計數(shù)器規(guī)律輸出數(shù)據(jù);4,“譯碼輸出”指按譯碼器輸出的規(guī)律輸出(如4選1)。(2)程序時鐘命令8279內(nèi)部有自己的時序電路,其時鐘信號來源于外部輸入的CLK,為了使輸入的時鐘滿足內(nèi)部100KHz的要求,就要對外部輸入的CLK進行適當?shù)姆诸l。D4,D3,D2,D1,D0=PPPPP:分頻系數(shù)范圍:2~31。001PPPPPD7D6D5

D4D3D2D1D0命令字特征位

對輸入信號CLK的分頻系數(shù)(3)讀FIFORAM命令FIFORAM為存放掃描鍵盤時獲得的“鍵值”數(shù)據(jù),容量為8*8。CPU讀8279的數(shù)據(jù)口的數(shù)據(jù)時,可能有兩類數(shù)據(jù):1,F(xiàn)IFORAM中掃描鍵盤時獲得的“鍵值”數(shù)據(jù);2,顯示RAM中的現(xiàn)實數(shù)據(jù)。所以必須事先通過命令字來選擇。D4=AI:地址增量控制。若AI=1,在每次讀FIFORAM后,地址自動+1。AI的使用簡化了編程,不用每讀一次數(shù)據(jù)給出一個地址。010AIXAAAD7D6D5

D4D3D2D1D0命令字特征位

地址自動增量

FIFORAM地址

(4)讀顯示RAM命令顯示RAM用來存放8279動態(tài)顯示的數(shù)據(jù),容量16*8。在顯示RAM中,數(shù)據(jù)的存放順序與在數(shù)碼管上顯示的數(shù)據(jù)順序是相對應得。因此,要顯示的數(shù)據(jù)要按順序存放到顯示RAM中。在8279的顯示方式中有8位顯示和16位顯示兩種,對應占用顯示RAM8字節(jié)或16字節(jié)。011AIAAAAD7D6D5

D4

D3D2D1D0命令字特征位

地址自動增量

顯示RAM地址

(5)寫顯示RAM命令在向8279的數(shù)據(jù)口寫入要顯示的數(shù)據(jù)前,要先向8279的命令/狀態(tài)口寫入一個“寫顯示RAM”命令。其作用是通過“寫顯示RAM”命令設定要寫入的顯示數(shù)據(jù)到顯示RAM中的地址。例如:當8279設定為“8位右入口”工作方式時,要顯示的8位數(shù)據(jù)就要從0000地址依次寫入(AI=1),這樣命令字的格式為10010000B既90H。100AIAAAAD7D6D5

D4

D3D2D1D0命令字特征位

地址自動增量

顯示RAM地址

(6)顯示禁止寫入/消隱命令此命令用于OUTA,OUTB分為兩組4位顯示方式時使用。D3,D2=IWA,IWB:分別屏蔽A或B組的顯示。如:IWA=1時禁止寫入A組顯示RAM。當CPU向8279的B組顯示RAM送數(shù)時,先要把A組屏蔽掉,這樣CPU送給B組的數(shù)據(jù)不會影響到A組的顯示。D1,D0=BLA,BLB:顯示輸出消隱控制。如:BL/A=1時,A組顯示被消隱,=0時恢復。101×IWAIWBBLABLBD7D6D5D4D3D2

D1D0

命令字特征位

屏蔽顯示控制

消隱控制

(7)清除命令

用來清除FIFORAM和顯示RAM,常用在對8279初始化中。D4,D3,D2=Cd,Cd,Cd:清除顯示RAM的方式。10×:全部清除“顯示RAM”;

110:將“顯示RAM”清為20H(A組0010,B組0000);

111:將“顯示RAM”全部置為“1”;

000:不清除(若Ca=1時,D3,D2仍有效)。D1=Cf:Cf=1時,清空FIFORAM。D0=Ca:總清位,兼有Cd,Cf的功能。Ca=1時,對顯示RAM的清除取決于D3,D2的編碼。110CdCdCdCfCaD7D6D5

D4D3D2

D1D0命令字特征位

清除“顯示RAM”的方式

清空FIFO

總清

(8)結束中斷/錯誤方式設置命令此命令有兩種不同的應用:(a)作為結束中斷的命令。8279與CPU之間可以以中斷方式進行工作。在傳感器(鍵盤掃描)工作方式中,若傳感器(按鍵)的狀態(tài)發(fā)生變化時,檢測電路將其狀態(tài)(鍵值)寫入FIFORAM中,并啟動中斷邏輯使IRQ變高,向CPU發(fā)中斷申請。如果,在讀FIFORAM數(shù)據(jù)前,寫入8279的“讀FIFORAM”命令中AI=0時,在CPU讀出FIFORAM中的一個數(shù)據(jù)后,中斷請求IRQ自動清除;若中AI=1時,在讀出FIFORAM中的數(shù)據(jù)后,中斷請求時不能自動除,必須使用“結束中斷/錯誤方式”命令來撤掉IRQ。111E××××D7D6D5

D4D3D2D1D0

命令字特征位

屏蔽顯示控制(b)作為特定的“錯誤方式”設定命令

針對與8279鍵盤處于“N鍵輪回”方式時使用。如果E=1就使8279處于此種工作方式。在此種方式中,如果有多個鍵同時按下時,F(xiàn)IFO的狀態(tài)字中的S/E位=1并產(chǎn)生中斷請求信號和阻止數(shù)據(jù)寫入FIFORAM中。錯誤特征位S/E在讀出FIFO狀態(tài)字時被讀出,而在執(zhí)行Cf=1的“清除”命令時被復位。8279的命令字是以D7,D6和D5為特征位的。在通過8279的狀態(tài)/命令口時會根據(jù)其特征位自動分配到相應的控制寄存器中。(9)8279的狀態(tài)字狀態(tài)字主要是用于表征鍵盤和選通方式下,F(xiàn)IFORAM中的狀態(tài),使用與查詢是否發(fā)生傳感器操作(按鍵)和有無錯誤發(fā)生。DU:顯示無效特征位。當8279的顯示RAM因清除或全清操作還未完成時,DU=1。S/E:傳感器信號結束/錯誤特征位。8279在傳感器方式時,S/E=1表示最后一個信號已經(jīng)進入傳感器RAM中。而8279在特殊的錯誤方式時,S/E=1表示發(fā)生了多鍵同時按下的錯誤。O、U:超出和不足錯誤特征位。當FIFORAM已滿時,若還有鍵盤數(shù)據(jù)輸入時就發(fā)生錯誤,此時O=1;當FIFORAM已經(jīng)置空,CPU還想讀數(shù)據(jù)則會出現(xiàn)不足錯誤,U=1。F:若F=1表示FIFORAM已經(jīng)滿.NNN:表征FIFORAM中的字符數(shù),最多8個。DUS/EOUFNNND7D6

D5D4

D3

D2D1D0返回

ORG0000HSTART: LJMPMAIN ORG0013HLJMPPKEYI ORG0030HMAIN: MOVSP,#60H ;主程序 MOV70H,#00 ;設置顯示緩沖區(qū)初值

溫馨提示

  • 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

提交評論