版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章MCS-51單片機(jī)的交互通道配置與接口主要內(nèi)容:
從工程應(yīng)用角度介紹了MCS-51單片機(jī)的交互通道配置與接口,主要包括人機(jī)界面中的鍵盤、顯示器、微型打印機(jī)等。介紹了多種實(shí)用方案和設(shè)計(jì)技巧。重點(diǎn)在于系統(tǒng)概念的形成、各種接口設(shè)計(jì)方案和設(shè)計(jì)技巧的掌握,熟悉各種交互設(shè)備。難點(diǎn)在于使用動(dòng)態(tài)方法進(jìn)行鍵盤和顯示的硬件及軟件設(shè)計(jì)。第6章MCS-51單片機(jī)的交互通道配置與接口主要內(nèi)容:1
人機(jī)界面:是指人與計(jì)算機(jī)系統(tǒng)進(jìn)行信息交互的接口,包括信息的輸入和輸出。6.1MCS-51單片機(jī)與鍵盤的接口技術(shù)鍵盤:?jiǎn)纹瑱C(jī)系統(tǒng)中完成控制參數(shù)輸入及修改的基本輸入設(shè)備,是人工干預(yù)系統(tǒng)的重要手段。鍵盤的分類:按編碼方式可分為編碼鍵盤與非編碼鍵盤。按鍵組連接方式可分為獨(dú)立連接式鍵盤與矩陣連接式鍵盤。6.1.1概述
鍵盤輸入的主要對(duì)象:各種按鍵或開(kāi)關(guān)。1.獨(dú)立連接式鍵盤
每鍵相互獨(dú)立,各自與一條I/O線相連,CPU可直接讀取該I/O線的高/低電平狀態(tài)。其優(yōu)點(diǎn)是硬件、軟件結(jié)構(gòu)簡(jiǎn)單,判鍵速度快,使用方便;缺點(diǎn)是占I/O口線多。適用場(chǎng)合:多用于設(shè)置控制鍵、功能鍵。適用于鍵數(shù)少的場(chǎng)合。人機(jī)界面:是指人與計(jì)算機(jī)系統(tǒng)進(jìn)行信息交互的接口,包括信2
獨(dú)立連接式鍵盤連接圖如右圖所示。當(dāng)沒(méi)有鍵被按下時(shí),所有的數(shù)據(jù)輸入線都為高電平;當(dāng)有任意一個(gè)鍵被按下時(shí),與之相連的數(shù)據(jù)輸入線將變?yōu)榈碗娖?;通過(guò)相應(yīng)指令,可以判斷是否有鍵按下。2.矩陣連接式鍵盤
鍵按矩陣排列,各鍵處于矩陣行/列的結(jié)點(diǎn)處,CPU通過(guò)對(duì)連在行(列)的I/O線送已知電平的信號(hào),然后讀取列(行)線的狀態(tài)信息。逐線掃描,得出鍵碼。其特點(diǎn)是鍵多時(shí)占用I/O口線少,硬件資源利用合理,但判鍵速度慢。適用場(chǎng)合:多用于設(shè)置數(shù)字鍵,適用于鍵數(shù)多的場(chǎng)合。獨(dú)立連接式鍵盤連接圖如右圖所示。當(dāng)沒(méi)有鍵被按下3
4行4列矩陣式鍵盤連接圖如右圖所示。這種鍵盤適合采取動(dòng)態(tài)掃描的方式進(jìn)行識(shí)別。掃描方式:低電平掃描(回送線必須被上拉為高電平)、高電平掃描(回送線需被下拉為低電平)。右圖中給出了低電平掃描的電路。3.薄膜開(kāi)關(guān)特點(diǎn):不需要進(jìn)行導(dǎo)線與開(kāi)關(guān)間的焊接,結(jié)構(gòu)簡(jiǎn)單、體積小、防塵、防水、防有害氣體侵蝕、壽命長(zhǎng)、可靠性高。應(yīng)用:與按鍵式鍵盤類似,多個(gè)薄膜開(kāi)關(guān)也可按照獨(dú)立式或矩陣式設(shè)計(jì)內(nèi)部電路,其原理與普通鍵盤相同。
4行4列矩陣式鍵盤連接圖如右圖所示。這種鍵盤適合采4按鍵開(kāi)關(guān)去抖動(dòng)問(wèn)題
*鍵盤的抖動(dòng)時(shí)間一般為5~10ms,抖動(dòng)現(xiàn)象會(huì)引起CPU對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。按鍵開(kāi)關(guān)去抖動(dòng)問(wèn)題*鍵盤的抖動(dòng)時(shí)間一般為5~10ms,抖動(dòng)5⑴硬件去抖動(dòng)
消除抖動(dòng)不良后果的方法:其中RC濾波電路去抖動(dòng)電路簡(jiǎn)單實(shí)用,效果較好。⑵軟件去抖動(dòng)檢測(cè)到按鍵按下后,執(zhí)行延時(shí)10ms子程序后再確認(rèn)該鍵是否確實(shí)按下,消除抖動(dòng)影響。⑴硬件去抖動(dòng)消除抖動(dòng)不良后果的方法:其中RC濾波電路去抖6
(1)開(kāi)關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動(dòng)。可以采用硬件和軟件兩種方法,硬件方法就是在按鍵輸入通道上添加去抖動(dòng)電路;軟件方法則采用延遲10~20ms
(2)鍵盤狀態(tài)的監(jiān)測(cè)方法——中斷方式還是查詢方式。
(3)鍵盤編碼方法。
(4)鍵盤控制程序的編制。。6.1.3鍵盤接口
功能:對(duì)鍵盤上所按下的鍵進(jìn)行識(shí)別。分類:
(1)編碼鍵盤:采用專用的編碼/譯碼器件,被按下的鍵由該器件譯碼輸出相應(yīng)的鍵碼/鍵值。其特點(diǎn)是增加了硬件開(kāi)銷,編碼固定,但編程簡(jiǎn)單。適用于規(guī)模大的鍵盤。
6.1.2使用鍵盤時(shí)必須解決的問(wèn)題
(1)開(kāi)關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動(dòng)??梢圆?(2)非編碼鍵盤:采用軟件編/譯碼的方式,通過(guò)掃描,對(duì)每個(gè)被按下的鍵判別輸出相應(yīng)的鍵碼/鍵值。其特點(diǎn)是不增加硬件開(kāi)銷,編碼靈活,但編程較復(fù)雜,占CPU時(shí)間。適用于小規(guī)模的鍵盤,特別是單片機(jī)系統(tǒng)。鍵盤。1.鍵盤接口的工作原理
對(duì)于矩陣式鍵盤,如上頁(yè)圖所示,鍵盤的行線X0~X3通過(guò)電阻接+5V,當(dāng)鍵盤上沒(méi)有鍵閉合時(shí),所有的掃描線和回送線都斷開(kāi),無(wú)論掃描線處于何種狀態(tài),回送線都呈高電平。當(dāng)鍵盤上某一鍵閉合時(shí),則該鍵所對(duì)應(yīng)的掃描線和回送線被短路,可以確定,變?yōu)榈碗娖降幕厮途€與掃描線相交處的鍵閉合。
CPU對(duì)鍵盤掃描的方式:程序控制的隨機(jī)方式(CPU空閑時(shí)掃描鍵盤)、定時(shí)控制方式(定時(shí)掃描鍵盤)、中斷方式。
CPU對(duì)鍵盤上閉合鍵的鍵號(hào)確定方法:根據(jù)掃描線和回送線的狀態(tài)計(jì)算求得,或根據(jù)行線和列線的狀態(tài)查表求得。
(2)非編碼鍵盤:采用軟件編/譯碼的方式,通過(guò)掃描82.鍵輸入程序的設(shè)計(jì)方法
(1)判斷鍵盤上是否有鍵閉合;(2)消除鍵的機(jī)械抖動(dòng);(3)確定閉合鍵的物理位置;(4)得到閉合鍵的編號(hào);(5)確保CPU對(duì)鍵的一次閉合只做一次處理3.鍵盤接口方式(1)獨(dú)立式鍵盤接口(靜態(tài)方式)特點(diǎn):結(jié)構(gòu)簡(jiǎn)單,每個(gè)按鍵接單片機(jī)的一條I/O線,通過(guò)對(duì)輸入線的查詢,可以識(shí)別每個(gè)按鍵的狀態(tài)。[例題]
在MCS-51單片機(jī)系統(tǒng)中,設(shè)計(jì)一個(gè)含8個(gè)按鍵的獨(dú)立式鍵盤。解:在MCS-51中,含8個(gè)按鍵的獨(dú)立式鍵盤的線路連接如下頁(yè)圖所示,8個(gè)按鍵經(jīng)上拉電阻拉高后分別接到MCS-51單片機(jī)P1口的8條I/O線上(P1.0~P1.7)。2.鍵輸入程序的設(shè)計(jì)方法9
在無(wú)鍵按下的情況下,P1.0~P1.7線上輸入均為高電平。當(dāng)有鍵按下時(shí),與被按鍵相連的I/O線將得到低電平輸入,其他位按鍵的輸入線上仍維持高電平輸入。
P1口8條I/O線經(jīng)與非門74LS30實(shí)現(xiàn)邏輯與非后,再經(jīng)過(guò)1個(gè)非門74LS04進(jìn)行信號(hào)變換,然后接至MCS-51的引腳上,可通過(guò)中斷的方式處理鍵盤。在中斷服務(wù)程序中,先延時(shí)20ms消除鍵抖動(dòng),再對(duì)各鍵進(jìn)行查詢,找到所按鍵,并轉(zhuǎn)到相應(yīng)的處理程序中去。在無(wú)鍵按下的情況下,P1.10
CLOSE: JNB ACC.7,KEY7 ;查詢7號(hào)鍵 JNB ACC.6,KEY6 ;查詢6號(hào)鍵 JNB ACC.5,KEY5 ;查詢5號(hào)鍵 JNB ACC.4,KEY4 ;查詢4號(hào)鍵 JNB ACC.3,KEY3 ;查詢3號(hào)鍵 JNB ACC.2,KEY2 ;查詢2號(hào)鍵 JNB ACC.1,KEY1 ;查詢1號(hào)鍵 JNB ACC.0,KEY0 ;查詢0號(hào)鍵INT0: RETIKEY7: …… ;7號(hào)鍵處理程序KEY71: MOV A,P1 ;再讀P1口各引腳 JNBACC.7,FUNC71 ;確認(rèn)鍵是否釋放 RETIKEY6: …… ;其他鍵處理程序 …… D20: …… ;20ms延時(shí)子程序 …… END
CLOSE: JNB AC11
主程序如下:
ORG 0000H LJMP MAIN ORG 0003H ;外部中斷0中斷服務(wù)入口地址 LJMP INT ;轉(zhuǎn)中斷服務(wù) ORG 0100H MAIN: SETB EA ;開(kāi)總中斷允許 SETB EX0 ;開(kāi)INT0中斷 SETB IT0 ;下降沿有效 ……中斷服務(wù)程序清單如下:
INTI CALL D20 ;延時(shí)去抖動(dòng) MOV P1,#0FFH ;P1口送全1值(準(zhǔn)雙向口原因) MOV A,P1 ;讀P1口各引腳 CJNE A,#0FFH,CLOSE ;驗(yàn)證是否確實(shí)有鍵閉合 AJMP INT0 ;無(wú)鍵按下(按鍵時(shí)間過(guò)短)則退 ;出中斷主程序如下:12(2)矩陣式鍵盤接口——行反轉(zhuǎn)法
矩陣式鍵盤按鍵識(shí)別方法有行反轉(zhuǎn)法和掃描法等。行反轉(zhuǎn)法需要兩個(gè)雙向I/O口分別接行、列線。步驟如下:
(1)由行線輸出全“0”,讀入列線,判有無(wú)鍵按下。(2)若有鍵按下,再將讀入的列列線輸出,讀進(jìn)行線的值。(3)第一步讀進(jìn)的列線值與第二步讀進(jìn)的行線值運(yùn)算,從而得到代表此鍵的唯一的特征值。行反轉(zhuǎn)法因輸入與輸出線反過(guò)來(lái)用而得名。優(yōu)點(diǎn)是判鍵速度快,兩次即可。[例題]請(qǐng)為8051微處理器設(shè)計(jì)一個(gè)由4行4列鍵陣構(gòu)成的鍵盤。解:4×4矩陣鍵盤的線路連接如下頁(yè)圖所示。其中P2口的低4位作為輸出線。P1口的低4位作為輸入線,輸入線通過(guò)74LS21進(jìn)行邏輯相與后作為8051的一個(gè)外部中斷源輸入。當(dāng)有鍵按下時(shí)就將引起中斷。中斷服務(wù)程序要對(duì)所按的鍵進(jìn)行判別。
(2)矩陣式鍵盤接口——行反轉(zhuǎn)法矩陣式鍵盤按鍵13(1)查詢閉合鍵的位置子程序KEYR
KEYR子程序用以確定每組線中哪一位為0,是否有多個(gè)0。在調(diào)用前,應(yīng)將讀某組線的數(shù)據(jù)存入累加器A中。KEYR子程序返回時(shí),某組線中0的位置(0~3)保存在R3中。按鍵閉合引起中斷后,執(zhí)行中斷服務(wù)程序。(1)查詢閉合鍵的位置子程序KEYR14表2-5工作寄存器組選擇控制表KEYR子程序如下:
KEYR: CJNE A,#0FEH,TESTP11 ;測(cè)試P1.0 MOV R3,#0 ;P1.0=0,說(shuō)明被按鍵的輸入線為P1.0 LJMP FINISH ;返回TESTP11: CJNE A,#0FDH,TESTP12 ;測(cè)試P1.1 MOV R3,#1 LJMP FINISHTESTP12: CJNE A,#0FBH,TESTP13 ;測(cè)試P1.2 MOV R3,#2 LJMP FINISHTESTP13: CJNE A,#0F7H,FINISH ;測(cè)試P1.3 MOV R3,#3FINISH: RET表2-5工作寄存器組選擇控制表KEYR子程序如下:15
(2)中斷服務(wù)程序
中斷服務(wù)程序開(kāi)始部分應(yīng)利用軟件延時(shí)消除鍵抖動(dòng),然后再對(duì)所按的鍵做出處理。中斷服務(wù)程序如下:
ORG1000H INT11:LCALLDELAY ;延時(shí)去抖動(dòng) MOV A,P1 ;讀輸入線 ANL A,#0FH ;判斷是否有鍵閉合 CJNE A,#0FH,TEST ;有鍵閉合,轉(zhuǎn)判斷按鍵程序 RETI ;無(wú)鍵閉合,返回TEST:MOV B,A ;暫存 LCALL KEYR ;調(diào)用讀取子程序 MOV 40H,R3 ;暫存在40H單元 MOV P2,#0FFH ;輸出線寫1 MOV P1,B ;輸入線寫入數(shù)據(jù) MOV A,P2 ;讀輸出線 LCALL KEYR ;調(diào)用讀取子程序 XCH A,R3 SWAP A ORL 40H,A ;得按鍵特征值 RETI (2)中斷服務(wù)程序16
中斷程序結(jié)束后,鍵的特征值存放在40H單元中。此鍵的輸出線號(hào)位于40H單元的高4位,其輸入線號(hào)位于低4位。此后,根據(jù)40H單元的內(nèi)容去查表,得到相應(yīng)鍵的代碼,可進(jìn)行顯示或其他處理。(3)去抖動(dòng)的延時(shí)子程序DELAY
利用CPU的空閑方式,通過(guò)定時(shí)器T1實(shí)現(xiàn)延時(shí),T1必須預(yù)先置初值,以得到需要的延遲時(shí)間。設(shè)晶振頻率為6MHz,欲延時(shí)20ms,定時(shí)時(shí)間為:(216-TC)×6/12=20×103μs,初值:TC=25536=63C0H。程序如下:
DELAY: MOV TOMD,#11H ;方式1定時(shí) MOV TL1,#0C0H ;定時(shí)器1定時(shí)初值 MOV TH1,#63H SETB EA ;開(kāi)中斷 SETB ET1 ;開(kāi)定時(shí)器1中斷 SETB PT1 ;定時(shí)器1為高級(jí)中斷(因被鍵盤中斷調(diào)用) SETB TR1 ;啟動(dòng)定時(shí)器 ORL PCON,#1 ;啟動(dòng)空閑方式,實(shí)際CPU在此處等待 CLR TR1;以下四條指令只有在延時(shí)后,定時(shí)器被喚醒,才能執(zhí)行 CLR PT1 CLR ET1 RET END 中斷程序結(jié)束后,鍵的特征值存放在40H單元中。此鍵17(4)通過(guò)串行口擴(kuò)展鍵盤接口
MCS-51系列單片機(jī)的串行口與串/并轉(zhuǎn)換芯片配合(如串入并出芯片74LS164)可以擴(kuò)展鍵盤。[例題]
利用MCS-51的串行口與串/并轉(zhuǎn)換芯片配合,擴(kuò)展2行8列的鍵盤接口,鍵號(hào)為0~15。要求給出其硬件連接和鍵盤查詢子程序。解:串口與串/并轉(zhuǎn)換芯片配合擴(kuò)展鍵盤的線路連接如下圖所示。
(4)通過(guò)串行口擴(kuò)展鍵盤接口MCS-51系列單片18
其中,P1.0和P1.1作為行線。鍵盤的編碼為:P1.0線上的8個(gè)鍵分別為00H+(00H~07H),P1.1線上的8個(gè)鍵分別為08H+(00H~07H)。掃描線(00H~07H)的具體值存放在R4中。程序采取查詢方式讀取鍵號(hào),并且考慮了鍵的抖動(dòng)問(wèn)題。DLY1是延時(shí)子程序。
程序如下:
ORG1000H SERKEY:MOVSCON,#00H ;設(shè)置串行口 MOVA,#00H ;鍵盤初始化,送00H到列線上 LCALLVARTO ;發(fā)送數(shù)據(jù)CHK:JNBP1.0,CHK0 ;檢查是否有鍵按下 JNBP1.1,CHK0 ;檢查是否有鍵按下 AJMPCHK ;無(wú)鍵按下,繼續(xù)查找CHK0:LCALLDLY1 ;調(diào)用10ms延時(shí)子程序,去抖 JNBP1.0,CHEN ;確實(shí)有鍵按下,轉(zhuǎn)CHEN JNBP1.1,CHEN AJMPCHK ;無(wú)鍵按下,繼續(xù)查找CHEN:MOVR2,#0FEH ;首列掃描字送R2,查鍵號(hào),最低位為0 MOVR4,#00H ;首列偏移值送R4其中,P1.0和P1.1作為行線。鍵盤的編碼19
CHKN:MOVA,R2 ;發(fā)送列掃描字 LCALLVARTO JB P1.0,CH1 ;檢查P1.0有無(wú)鍵按下;若無(wú),轉(zhuǎn)CH1 MOVA,#0 ;第一行首列值送A,00H+(R4) AJMPCKEY ;轉(zhuǎn)求鍵號(hào)CH1:JB P1.1,NEXT ;檢查P1.1有無(wú)鍵按下;若無(wú),轉(zhuǎn)NEXT MOVA,#8H ;第二行首列值送ACKEY:ADDA,R4 ;求鍵號(hào),并入棧保護(hù) RET NEXT:INCR4 ;指向下一列 MOVA,R2 ;取出原掃描字 JNBACC.7,KEND ;是否已檢查完8列? RLA ;8列未完,指向下一列 MOVR2,A ;列掃描字送R2 AJMPCHKN ;8列未完,檢查下一列KEND:AJMPSERKEY ;8列查完,未查到有鍵按下,等待VARTO:MOVSBUF,A ;發(fā)送A中數(shù)據(jù) JNBTI,$ ;發(fā)送等待 CLRTI ;清除 RET DLY1: …… ;延時(shí)10ms子程序(略) END ;結(jié)束CHKN:MOVA,R2 ;206.2MCS-51單片機(jī)與顯示器的接口技術(shù)
顯示器用于實(shí)現(xiàn)單片機(jī)應(yīng)用系統(tǒng)中的數(shù)據(jù)輸出和狀態(tài)的反饋。單片機(jī)系統(tǒng)中常用的顯示器有發(fā)光二極管、七段數(shù)碼顯示器、液晶顯示器等。6.2.1LED顯示器及其接口
發(fā)光二極管簡(jiǎn)稱LED(LightEmittingDiode)。LED顯示器從外觀可分為“8”字形的七段數(shù)碼管、米字形數(shù)碼管、點(diǎn)陣塊、矩形平面顯示器、數(shù)字筆劃顯示器等。1.七段LED數(shù)碼顯示器
七段LED數(shù)碼管顯示器能夠顯示十進(jìn)制或十六進(jìn)制數(shù)字及某些簡(jiǎn)單字符。但控制簡(jiǎn)單,使用方便,在單片機(jī)系統(tǒng)中應(yīng)用較多。其結(jié)構(gòu)如下頁(yè)圖所示。6.2MCS-51單片機(jī)與顯示器的接口技術(shù)21
上圖中的a~g七個(gè)筆劃(段)及小數(shù)點(diǎn)dp均為發(fā)光二極管。數(shù)碼管顯示器根據(jù)公共端的連接方式,可以分為共陰極數(shù)碼管(將所有發(fā)光二極管的陰極連在一起)和共陽(yáng)極數(shù)碼管(將所有發(fā)光二極管的陽(yáng)極連在一起)。
單片機(jī)系統(tǒng)擴(kuò)展LED數(shù)碼管時(shí)多用共陽(yáng)LED。共陽(yáng)數(shù)碼管每個(gè)段筆畫是用低電平(“0”)點(diǎn)亮的,要求驅(qū)動(dòng)功率很??;而共陰數(shù)碼管段筆畫是用高電平(“0”)點(diǎn)亮的,要求驅(qū)動(dòng)功率較大。通常每個(gè)段筆畫要串一個(gè)數(shù)百歐姆的降壓電阻。上圖中的a~g七個(gè)筆劃(段)及小數(shù)點(diǎn)dp均為發(fā)22MCS-51單片機(jī)的交互通道配置與接口232.LED點(diǎn)陣模塊顯示器
LED點(diǎn)陣模塊顯示器是指由發(fā)光二極管排成一個(gè)m×n的點(diǎn)陣,每個(gè)發(fā)光二極管構(gòu)成點(diǎn)陣中的一個(gè)點(diǎn)。這種顯示器顯示的字形逼真,能顯示的字符比較多,但控制比較復(fù)雜。適用于顯示漢字、圖形和表格,廣泛應(yīng)用于公共場(chǎng)合的信息發(fā)布。七段LED字形碼如下表所示。2.LED點(diǎn)陣模塊顯示器七段LED字形碼如下表所示。243.LED的驅(qū)動(dòng)接口
LED工作時(shí)需要一定的工作電流,才能正常發(fā)光。單個(gè)LED實(shí)際上是一個(gè)壓降為1.2~1.5V的發(fā)光二極管,流過(guò)LED的電流大小決定了它的發(fā)光強(qiáng)度,R為限流電阻。適當(dāng)減小限流電阻可以增加LED的工作電流,使LED的顯示效果更好。但工作電流過(guò)大,會(huì)對(duì)驅(qū)動(dòng)器件、LED造成損害。通常每個(gè)段筆畫要串一個(gè)數(shù)百歐姆的降壓電阻。下圖為單個(gè)LED的驅(qū)動(dòng)接口電路。3.LED的驅(qū)動(dòng)接口254.LED數(shù)碼管的顯示與驅(qū)動(dòng)
LED數(shù)碼管顯示器的工作方式:靜態(tài)和動(dòng)態(tài)兩種顯示方式。(1)靜態(tài)顯示方式
靜態(tài)顯示方式的各數(shù)碼管在顯示過(guò)程中持續(xù)得到送顯信號(hào),與各數(shù)碼管接口的I/O口線是專用的。其特點(diǎn)是顯示穩(wěn)定,無(wú)閃爍,用元器件多,占I/O線多,無(wú)須掃描。系統(tǒng)運(yùn)行過(guò)程中,在需要更新顯示內(nèi)容時(shí),CPU才去執(zhí)行顯示更新子程序,節(jié)省CPU時(shí)間,提高CPU的工作效率,編程簡(jiǎn)單。
[例題]
利用在8051串行口擴(kuò)展多片串行輸入并行輸出的移位寄存器74LS164作為靜態(tài)顯示器接口的方法,設(shè)計(jì)3位靜態(tài)顯示器接口,并寫出顯示更新子程序,實(shí)現(xiàn)將7FH~7DH3個(gè)單元的數(shù)值分別顯示在3位LED2~LED0上。4.LED數(shù)碼管的顯示與驅(qū)動(dòng)LED數(shù)碼管顯示器26解:接口電路如圖下圖所示。3個(gè)共陽(yáng)極數(shù)碼管的公共端均接Vcc,段碼通過(guò)串行口,采用串—并轉(zhuǎn)換原理,分別送出3個(gè)數(shù)碼管的段碼(先送出的段碼字節(jié)在LED2數(shù)碼管上顯示),圖中的電阻值取100~500。解:接口電路如圖下圖所示。3個(gè)共陽(yáng)極數(shù)碼管的公共端均接Vcc27程序如下:
ORG 1000H DISPSER: MOV R5,#03H ;顯示3個(gè)字符 MOV R1,#7FH ;7FH~7DH存放要顯示的數(shù)據(jù)DL0: MOV A,@R1 ;取出要顯示的數(shù)據(jù) MOV DPTR,#STAB ;指向段數(shù)據(jù)表 MOVC A,@A+DPTR ;查表取字形數(shù)據(jù) MOV SBUF,A ;送出數(shù)據(jù),進(jìn)行顯示 JNB T1,$ ;輸出完否? CLR T1 ;輸出完,清中斷標(biāo)志 DEC R1 ;再取下一個(gè)數(shù)據(jù) DJNZ R5,DL0 ;循環(huán)3次 RET ;返回STAB: DB 0C0H,0F9H,0A4H,0B0H;段數(shù)據(jù)表(共陽(yáng)極) DB· …… …… END 程序如下:28(2)動(dòng)態(tài)顯示方式
動(dòng)態(tài)顯示方式是指一位一位地輪流點(diǎn)亮每位顯示器,與各數(shù)碼管接口的I/O口線是共用的。其特點(diǎn)是有閃爍,用元器件少,占I/O線少,必須掃描,花費(fèi)CPU時(shí)間,編程復(fù)雜。
[例題]設(shè)計(jì)89S51通過(guò)74LS273擴(kuò)展6位七段共陽(yáng)極LED顯示器。
解:接口電路如下頁(yè)圖所示。在程序中通過(guò)P0口將相應(yīng)的字形碼寫入74LS273,P2.0~P2.5作為段碼輸出口,P0口的端口地址為00FFH。進(jìn)行掃描時(shí),P2的低6位依次置1,依次選中了從左至右的顯示器。使用74LS04作為段碼輸出驅(qū)動(dòng)(反相驅(qū)動(dòng)),所以共陰極數(shù)碼管在段數(shù)據(jù)表中的字形碼應(yīng)與共陽(yáng)極數(shù)碼管的字形碼相同。顯示器就可以顯示出6位字符。(2)動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式是指一位一位地輪流29
說(shuō)明:1、單片機(jī)WR引腳要與273的CLK連接2、273的CLR引腳要與VCC連接3、DPTR值不一定是7FFFh,用FFH可消除閃爍說(shuō)明:1、單片機(jī)WR引腳要與273的CLK連接306.2.2LCD顯示器及其接口
液晶顯示器簡(jiǎn)稱LCD(LiquidCrystalDiodes)是利用液晶經(jīng)過(guò)處理后能夠改變光線傳輸方向的特性,達(dá)到顯示字符或者圖形的目的。其特點(diǎn)是體積小、重量輕、功耗極低、顯示內(nèi)容豐富等特點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中有著日益廣泛的應(yīng)用。1.LCD的分類及特點(diǎn)分類:筆段式和點(diǎn)陣式(可分為字符型和圖像型)。筆段式LCD顯示器:類似于LED數(shù)碼管顯示器。每個(gè)顯示器的段電極包括a,b,c,d,e,f,g七個(gè)筆劃(段)和一個(gè)背電極BP(或COM)??梢燥@示數(shù)字和簡(jiǎn)單的字符。
點(diǎn)陣式LCD顯示器:段電極與背電極呈正交帶狀分布,液晶位于正交的帶狀電極間。點(diǎn)陣式LCD的控制一般采用行掃描方式,如圖右所示為顯示字符“A”的情況。6.2.2LCD顯示器及其接口液晶顯示器簡(jiǎn)312.筆段式LCD液晶顯示器的驅(qū)動(dòng)
在LCD的公共極(一路為背電極)加上恒定的交變方波信號(hào),通過(guò)控制段極的電壓變化,在LCD兩極間產(chǎn)生所需的零電壓或二倍幅值的交變電壓,以達(dá)到LCD亮、滅的控制。在筆段式LCD的段電極與背電極間施加周期地改變極性的電壓(通常為4V或5V),可使該段呈黑色。3.LCD顯示模塊LCM(LiquidCrystalDisplayModule)
在實(shí)際應(yīng)用中,用戶很少直接設(shè)計(jì)LCD顯示器驅(qū)動(dòng)接口,一般是直接使用專用的LCD顯示驅(qū)動(dòng)器和LCD顯示模塊LCM。LCM是把LCD顯示屏、背景光源、線路板和驅(qū)動(dòng)集成電路等部件構(gòu)造成一個(gè)整體,作為一個(gè)獨(dú)立部件使用。其特點(diǎn)是功能較強(qiáng)、易于控制、接口簡(jiǎn)單,在單片機(jī)系統(tǒng)中應(yīng)用較多。其內(nèi)部結(jié)構(gòu)如下頁(yè)圖所示。LCM一般帶有內(nèi)部顯示RAM和字符發(fā)生器,只要輸入ASCII碼就可以進(jìn)行顯示。
2.筆段式LCD液晶顯示器的驅(qū)動(dòng)在LCD的公32LCD顯示器接口原理
1.LCD的基本結(jié)構(gòu)及工作原理圖液晶顯示器基本結(jié)構(gòu)LCD顯示器接口原理 1.LCD的基本結(jié)構(gòu)及工作原理圖液33液晶字符顯示屏液晶圖形點(diǎn)陣顯示屏液晶字符顯示屏34
LCD顯示模塊LCM按顯示功能可分為:LCD段式顯示模塊、LCD字符型顯示模塊、LCD圖形顯示模塊三類。HD44780字符顯示模塊是較常用的LCD顯示模塊,共有14個(gè)引腳,其中,8個(gè)數(shù)據(jù)引腳,3個(gè)控制引腳,3個(gè)電源引腳。每個(gè)HD44780可控制的字符可達(dá)每行80個(gè),具有驅(qū)動(dòng)16×40點(diǎn)陣的能力。具有其自身的11條指令構(gòu)成的指令系統(tǒng),用戶對(duì)模塊寫入適當(dāng)?shù)目刂泼?,即可完成清屏、顯示、地址設(shè)置等操作。LCD顯示模塊LCM按顯示功能可分為:LCD段式35各引腳功能定義如下表所示。各引腳功能定義如下表所示。36[例題]
設(shè)計(jì)8051單片機(jī)驅(qū)動(dòng)HD44780顯示模塊的接口電路。解:8051單片機(jī)與HD44780顯示模塊的線路連接如下圖所示,8051的P1口與HD44780的數(shù)據(jù)線相連,HD44780的端信號(hào)由8051的P3.5提供,HD44780的通信允許信號(hào)E由8051的P3.3提供,HD44780的寄存器選擇信號(hào)RS由8051的P3.4提供。
HD44780初始化的方法主要有以下兩種:(1)利用模塊內(nèi)部的復(fù)位電路進(jìn)行初始化,完成清除顯示、功能設(shè)置、開(kāi)/關(guān)顯示、設(shè)置光標(biāo)狀態(tài)及閃爍功能、方式設(shè)置。(2)利用軟件編程實(shí)現(xiàn)初始化。[例題]設(shè)計(jì)8051單片機(jī)驅(qū)動(dòng)HD44780顯示模塊的接口371602液晶顯示模塊接線圖(16字符×2行)1602液晶顯示模塊接線圖(16字符×2行)386.3利用MCS-51的串行口實(shí)現(xiàn)鍵盤和顯示器接口1.接口電路
應(yīng)用MCS-51單片機(jī)的串行口方式0的輸出方式,在串行口外接移位寄存器74LS164,構(gòu)成鍵盤和顯示器接口,其硬件接口如下頁(yè)圖所示(圖中只畫出三位LED靜態(tài)顯示和16個(gè)按鍵,用戶根據(jù)需要可以擴(kuò)展)。采用靜態(tài)顯示,軟件設(shè)計(jì)比較簡(jiǎn)單,節(jié)約CPU的資源。 6.3利用MCS-51的串行口實(shí)現(xiàn)鍵盤和顯示器接口39MCS-51單片機(jī)的交互通道配置與接口402.軟件設(shè)計(jì)顯示子程序如下:
ORG 1000H DSPSER: SETB P3.3 ;開(kāi)放顯示輸出 MOV R7,#03H ;送出的顯示段碼個(gè)數(shù) MOV R0,#7FH ;7FH~7DH為顯示緩沖區(qū)DSPS1: MOV A,@R0 ;取出要顯示的數(shù)據(jù) ADD A,#0DH ;加上偏移量 MOVC A,@A+PC ;查段碼表TAB1 MOV SBUF,A ;經(jīng)過(guò)串行口將段碼送出DSPS2: JNBTI,DSPS2 ;數(shù)據(jù)發(fā)送完? CLRTI DECR0 ;指向下一個(gè)數(shù)據(jù)單元 DJNZR7,DSPS1 ;三個(gè)顯示器是否全部顯示? CLRP3.3 ;三個(gè)數(shù)據(jù)顯示完,關(guān)閉送顯示數(shù)據(jù)通道 RET TAB1: DB …… ;段碼表2.軟件設(shè)計(jì)41鍵盤掃描子程序如下:
KEYS1: MOV A,#00H MOV SBUF,A ;掃描鍵盤全部輸出0KSY0: JNB TI,KSY0 ;數(shù)據(jù)發(fā)送完? CLR TI KSY1: JNB P3.4,PKS1 ;有鍵閉合嗎?有則轉(zhuǎn)PKS1處理 JB P3.5,KSY1 ;第二行有鍵閉合嗎?PKS1: ACALL DELAY10 ;調(diào)用延時(shí)10ms子程序,鍵盤去抖 JNB P3.4,PKS2 ;有鍵閉合嗎? JB P3.5,KSY1 ;無(wú)鍵閉合,是抖動(dòng)PKS2: MOV R7,#08H ;不是抖動(dòng)引起的 MOV R6,#0FEH ;判斷是哪個(gè)鍵按下? MOV R3,#00H MOV A,R6 KSY2: MOV SBUF,A KSY3: JNB TI,KSY3 ;等待串行口發(fā)送完 CLR TI JNB P3.4,PKONE ;是第一行的某鍵按下? JB P3.5,NEXT ;是第二行的某鍵按下? MOV R4,#08H ;第二行有鍵按下 AJMP PKS3 PKONE: MOV R4,#00H ;第一行有鍵按下鍵盤掃描子程序如下: 42
PKS3: MOV SBUF,#00H ;等待鍵的釋放KSY4: JNB TI,KSY4 ; CLR TI KSY5: JNB P3.4,KSY5 ;是第一行的某鍵按下? JNB P3.5,KSY5 MOV A,R4 ADD A,R3 RETNEXT: MOV A,R6 ;判斷下一列是否有鍵按下 RL A MOV R6,A INC R3 DJNZ R7,KSY2 ;8列是否全部掃描完? AJMP KEYS1 ;掃描完成DELAY10: ;延時(shí)10ms子程序 …… RET END 6.3.3利用專用芯片實(shí)現(xiàn)鍵盤和顯示器接口
鍵盤的處理和顯示的處理可由專用芯片完成,鍵盤和顯示器管理專用芯片種類較多,常用的鍵盤和顯示器管理專用芯片有Intel公司的8279芯片,可實(shí)現(xiàn)64個(gè)按鍵、16位LED顯示器的管理。PKS3: MOV SBU43
在由單片機(jī)組成的控制系統(tǒng)中,大多數(shù)外圍電路是處于各種各樣的復(fù)雜環(huán)境中,如控制對(duì)象可能處于大電流、高電壓的情況??刂频膱?zhí)行機(jī)構(gòu)可能是電動(dòng)機(jī)、繼電器或電磁鐵等大功率機(jī)構(gòu)。因此,單片機(jī)不可能和這些外部機(jī)構(gòu)直接連接。通常必須采取兩個(gè)基本措施:一是采用隔離的方法把單片機(jī)的工作環(huán)境與外電路隔離開(kāi)來(lái);另一種是采用電流接續(xù)的辦法擴(kuò)大輸出電流的能力,以驅(qū)動(dòng)各種外電路。6.4.1擴(kuò)大驅(qū)動(dòng)電流的方法1、采用晶體三極管擴(kuò)大輸出電流2、采用帶驅(qū)動(dòng)電路的邏輯門擴(kuò)大驅(qū)動(dòng)電流3、采用達(dá)林頓管作驅(qū)動(dòng)器擴(kuò)大驅(qū)動(dòng)電流下面分別給出具體電路圖6.4MCS-51單片機(jī)功率驅(qū)動(dòng)接口技術(shù)在由單片機(jī)組成的控制系統(tǒng)中,大多數(shù)外圍電路是處于各種各441、三極管1、三極管45三極管的概述
半導(dǎo)體三極管也稱為晶體三極管,可以說(shuō)它是電子電路中最重要的器件。它最主要的功能是電流放大和開(kāi)關(guān)作用。三極管顧名思義具有三個(gè)電極。二極管是由一個(gè)PN結(jié)構(gòu)成的,而三極管由兩個(gè)PN結(jié)構(gòu)成,共用的一個(gè)電極成為三極管的基極(用字母b表示)。其他的兩個(gè)電極成為集電極(用字母c表示)和發(fā)射極(用字母e表示)。由于不同的組合方式,形成了一種是NPN型的三極管,另一種是PNP型的三極管。
三極管的種類很多,并且不同型號(hào)各有不同的用途。三極管大都是塑料封裝或金屬封裝,常見(jiàn)三極管的外觀如圖,大的很大,小的很小。三極管的電路符號(hào)有兩種:有一個(gè)箭頭的電極是發(fā)射極,箭頭朝外的是NPN型三極管,而箭頭朝內(nèi)的是PNP型。實(shí)際上箭頭所指的方向是電流的方向。電子制作中常用的三極管有90××系列,包括低頻小功率硅管9013(NPN)、9012(PNP),低噪聲管9014(NPN),高頻小功率管9018(NPN)等。它們的型號(hào)一般都標(biāo)在塑殼上,而樣子都一樣,都是TO-92標(biāo)準(zhǔn)封裝。三極管的概述
半導(dǎo)體三極管也稱為晶體三極管,可以說(shuō)它是電子電46半導(dǎo)體三極管的管腳判別在安裝半導(dǎo)體三極管之前,首先搞清楚三極管的管腳排列。一方面可以通過(guò)查手冊(cè)獲得,另一方面也可利用電子儀器進(jìn)行測(cè)量,下面講一下利用萬(wàn)用表判定三極管管腳的方法。首先判定PNP型和NPN型晶體管:用萬(wàn)用表的R×1kW(或R×100W)檔,用黑表筆接三極管的任一管腳,用紅表筆分別接其他兩管腳。若表針指示的兩阻值均很大,那么黑表筆所接的那個(gè)管腳是PNP型管的基極;如果萬(wàn)用表指示的兩個(gè)阻值均很小,那么黑表筆所接的管腳是NPN型的基極;如果表針指示的阻值一個(gè)很大,一個(gè)很小,那么黑表筆所接的管腳不是基極。需要新?lián)Q一個(gè)管腳重試,直到滿足要求為止。進(jìn)一步判定三極管集電極和發(fā)射極:首先假定一個(gè)管腳是集電極,另一個(gè)管腳是發(fā)射極;對(duì)NPN于型三極管,黑表筆接假定是集電極的管腳,紅表筆接假定是發(fā)射極的管腳(對(duì)于PNP型管,萬(wàn)用表的紅、黑表筆對(duì)調(diào));然后用大拇指將基極和假定集電極連接(注意兩管腳不能短接),這時(shí)記錄下萬(wàn)用表的測(cè)量值;最后反過(guò)來(lái),把原先假定的管腳對(duì)調(diào),重新記錄下萬(wàn)用表的讀數(shù),兩次測(cè)量值較小的黑表筆所接的管腳是集電極(對(duì)于PNP型管,則紅表筆所接的是集電極)。半導(dǎo)體三極管的管腳判別47MCS-51單片機(jī)的交互通道配置與接口48MCS-51單片機(jī)的交互通道配置與接口49MCS-51單片機(jī)的交互通道配置與接口50MCS-51單片機(jī)的交互通道配置與接口51MCS-51單片機(jī)的交互通道配置與接口522、邏輯門2、邏輯門53MCS-51單片機(jī)的交互通道配置與接口543、達(dá)林頓管ULN20033、達(dá)林頓管ULN200355內(nèi)部邏輯電路圖內(nèi)部邏輯電路圖56MCS-51單片機(jī)的交互通道配置與接口57MCS-51單片機(jī)的交互通道配置與接口58例題:設(shè)計(jì)使單片機(jī)唱歌的程序;在接在單片機(jī)的P2.0上的小喇叭唱八月桂花香實(shí)驗(yàn);執(zhí)行結(jié)果:程序運(yùn)行后在在單片機(jī)的P2.0上的小喇叭唱八月桂花香;本實(shí)驗(yàn)源程序如下:;*****************************************************;*Date:2004.4.20--------------------------------------------------*;*SupportMb-mail:c51cn@163.com-------*;*Createby:dengdewu更多例程請(qǐng)登陸網(wǎng)站--*;*網(wǎng)站單片機(jī)學(xué)習(xí)資料同步更新,敬請(qǐng)新老朋友隨時(shí)關(guān)注---*;******************************************************ORG0000HLJMPSTARTORG000BH;中斷入口INC20H;中斷服務(wù)程序,中斷計(jì)數(shù)器加1MOVTH0,#0D8HMOVTL0,#0EFH;12M晶振,形成10毫秒中斷RETI例題:設(shè)計(jì)使單片機(jī)唱歌的程序;在接在單片機(jī)的P2.0上的小喇59START:
MOVSP,#50H
MOVTH0,#0D8H
MOVTL0,#0EFH
MOVTMOD,#01H;設(shè)定定時(shí)器工作方式
MOVIE,#82H
MUSIC0:
NOP
MOVDPTR,#DAT;表頭地址送DPTR
MOV20H,#00H;中斷計(jì)數(shù)器清0
MOVB,#00H;表序號(hào)清0
MUSIC1:
NOP
CLRA
MOVCA,@A+DPTR;查表取代碼
JZEND0;是00H,則結(jié)束
CJNEA,#0FFH,MUSIC5
LJMPMUSIC3
MUSIC5:
NOP
START:
MOVSP,#50H
60MOVR6,A
INCDPTR
MOVA,B
MOVCA,@A+DPTR;取節(jié)拍代碼送R7
MOVR7,A
SETBTR0;啟動(dòng)計(jì)數(shù)
MUSIC2:
NOP
CPLP2.0
MOVA,R6
MOVR3,A
CPLA
MOVP1,A;顯示(修改者加入的顯示)
CPLA
LCALLDEL
MOVA,R7
CJNEA,20H,MUSIC2;中斷計(jì)數(shù)器(20H)=R7否?
;不等,則繼續(xù)循環(huán)
MOV20H,#00H;等于,則取下一代碼
INCDPTR
LJMPMUSIC1
MOVR6,A
IN61MUSIC3:
NOP
CLRTR0;休止100毫秒
MOVR2,#0DH
MUSIC4:
NOP
MOVR3,#0FFH
LCALLDEL
DJNZR2,MUSIC4
INCDPTR
LJMPMUSIC1
END0:
MOVR2,#64H;歌曲結(jié)束,延時(shí)1秒后繼續(xù)
MUSIC6:
MOVR3,#00H
LCALLDEL
DJNZR2,MUSIC6
LJMPMUSIC0
DEL:;延時(shí)子程序
NOP
DEL3:
MOVR4,#05H
DEL4:
NOP
DJNZR4,DEL4
NOP
DJNZR3,DEL3
RET
MUSIC3:
NOP
CLR62
DAT:;數(shù)據(jù)表格存放在ROM中。
DB18H,30H,1CH,10H,20H,40H,1CH,10H,18H,10H,20H,10H
DB1CH,10H,18H,40H,1CH,20H,20H,20H,1CH,20H,18H,20H
DB20H,80H,0FFH,20H,30H,1CH,10H,18H,20H,15H,20H,1CH
DB20H,20H,20H,26H,40H,20H,20H,2BH,20H,26H,20H,20H
DB20H,30H,80H,0FFH,20H,20H,1CH,10H,18H,10H,20H,20H
DB26H,20H,2BH,20H,30H,20H,2BH,40H,20H,20H,1CH,10H
DB18H,10H,20H,20H,26H,20H,2BH,20H,30H,20H,2BH,40H
DB20H,30H,1CH,10H,18H,20H,15H,20H,1CH,20H,20H,20H
DB26H,40H,20H,20H,2BH,20H,26H,20H,20H,20H,30H,80H
DB20H,30H,1CH,10H,20H,10H,1CH,10H,20H,20H,26H,20H
DB2BH,20H,30H,20H,2BH,40H,20H,15H,1FH,05H,20H,10H
DB1CH,10H,20H,20H,26H,20H,2BH,20H,30H,20H,2BH,40H
DB20H,30H,1CH,10H,18H,20H,15H,20H,1CH,20H,20H,20H
DB26H,40H,20H,20H,2BH,20H,26H,20H,20H,20H,30H,30H
DB20H,30H,1CH,10H,18H,40H,1CH,20H,20H,20H,26H,40H
DB13H,60H,18H,20H,15H,40H,13H,40H,18H,80H,00H
END
DAT:63例題2:使繼電器按一下按鍵就吸合,放開(kāi)按鍵就不吸合的程序。P2.0接繼電器,P1.2接繼電器合燈,P1.4接繼電器斷開(kāi)燈。程序設(shè)計(jì)如下:org00h ;源程序起始地址 jmpmain ;跳轉(zhuǎn)到MAIN org0050h ;主程序開(kāi)始地址main: clrp2.0 ;關(guān)繼電器和燈 clrp1.2 ;燈1滅 setbp1.4 ;燈2亮例題2:使繼電器按一下按鍵就吸合,放開(kāi)按鍵就不吸合的程序。P64loop:jbp3.6,lop1;鍵沒(méi)按下則去lop1setbp2.0 ;否則繼電器吸合setbp1.2 ;燈1亮clrp1.4 ;燈2滅jmplop2lop1:clrp2.0;繼電器松開(kāi) clrp1.2;燈1滅 setbp1.4;燈2亮lop2:nopajmploop;循環(huán)retendloop:jbp3.6,lop1;鍵沒(méi)按下則去l65作業(yè)與練習(xí):26.136.14作業(yè)與練習(xí):6.16.466第6章MCS-51單片機(jī)的交互通道配置與接口主要內(nèi)容:
從工程應(yīng)用角度介紹了MCS-51單片機(jī)的交互通道配置與接口,主要包括人機(jī)界面中的鍵盤、顯示器、微型打印機(jī)等。介紹了多種實(shí)用方案和設(shè)計(jì)技巧。重點(diǎn)在于系統(tǒng)概念的形成、各種接口設(shè)計(jì)方案和設(shè)計(jì)技巧的掌握,熟悉各種交互設(shè)備。難點(diǎn)在于使用動(dòng)態(tài)方法進(jìn)行鍵盤和顯示的硬件及軟件設(shè)計(jì)。第6章MCS-51單片機(jī)的交互通道配置與接口主要內(nèi)容:67
人機(jī)界面:是指人與計(jì)算機(jī)系統(tǒng)進(jìn)行信息交互的接口,包括信息的輸入和輸出。6.1MCS-51單片機(jī)與鍵盤的接口技術(shù)鍵盤:?jiǎn)纹瑱C(jī)系統(tǒng)中完成控制參數(shù)輸入及修改的基本輸入設(shè)備,是人工干預(yù)系統(tǒng)的重要手段。鍵盤的分類:按編碼方式可分為編碼鍵盤與非編碼鍵盤。按鍵組連接方式可分為獨(dú)立連接式鍵盤與矩陣連接式鍵盤。6.1.1概述
鍵盤輸入的主要對(duì)象:各種按鍵或開(kāi)關(guān)。1.獨(dú)立連接式鍵盤
每鍵相互獨(dú)立,各自與一條I/O線相連,CPU可直接讀取該I/O線的高/低電平狀態(tài)。其優(yōu)點(diǎn)是硬件、軟件結(jié)構(gòu)簡(jiǎn)單,判鍵速度快,使用方便;缺點(diǎn)是占I/O口線多。適用場(chǎng)合:多用于設(shè)置控制鍵、功能鍵。適用于鍵數(shù)少的場(chǎng)合。人機(jī)界面:是指人與計(jì)算機(jī)系統(tǒng)進(jìn)行信息交互的接口,包括信68
獨(dú)立連接式鍵盤連接圖如右圖所示。當(dāng)沒(méi)有鍵被按下時(shí),所有的數(shù)據(jù)輸入線都為高電平;當(dāng)有任意一個(gè)鍵被按下時(shí),與之相連的數(shù)據(jù)輸入線將變?yōu)榈碗娖?;通過(guò)相應(yīng)指令,可以判斷是否有鍵按下。2.矩陣連接式鍵盤
鍵按矩陣排列,各鍵處于矩陣行/列的結(jié)點(diǎn)處,CPU通過(guò)對(duì)連在行(列)的I/O線送已知電平的信號(hào),然后讀取列(行)線的狀態(tài)信息。逐線掃描,得出鍵碼。其特點(diǎn)是鍵多時(shí)占用I/O口線少,硬件資源利用合理,但判鍵速度慢。適用場(chǎng)合:多用于設(shè)置數(shù)字鍵,適用于鍵數(shù)多的場(chǎng)合。獨(dú)立連接式鍵盤連接圖如右圖所示。當(dāng)沒(méi)有鍵被按下69
4行4列矩陣式鍵盤連接圖如右圖所示。這種鍵盤適合采取動(dòng)態(tài)掃描的方式進(jìn)行識(shí)別。掃描方式:低電平掃描(回送線必須被上拉為高電平)、高電平掃描(回送線需被下拉為低電平)。右圖中給出了低電平掃描的電路。3.薄膜開(kāi)關(guān)特點(diǎn):不需要進(jìn)行導(dǎo)線與開(kāi)關(guān)間的焊接,結(jié)構(gòu)簡(jiǎn)單、體積小、防塵、防水、防有害氣體侵蝕、壽命長(zhǎng)、可靠性高。應(yīng)用:與按鍵式鍵盤類似,多個(gè)薄膜開(kāi)關(guān)也可按照獨(dú)立式或矩陣式設(shè)計(jì)內(nèi)部電路,其原理與普通鍵盤相同。
4行4列矩陣式鍵盤連接圖如右圖所示。這種鍵盤適合采70按鍵開(kāi)關(guān)去抖動(dòng)問(wèn)題
*鍵盤的抖動(dòng)時(shí)間一般為5~10ms,抖動(dòng)現(xiàn)象會(huì)引起CPU對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。按鍵開(kāi)關(guān)去抖動(dòng)問(wèn)題*鍵盤的抖動(dòng)時(shí)間一般為5~10ms,抖動(dòng)71⑴硬件去抖動(dòng)
消除抖動(dòng)不良后果的方法:其中RC濾波電路去抖動(dòng)電路簡(jiǎn)單實(shí)用,效果較好。⑵軟件去抖動(dòng)檢測(cè)到按鍵按下后,執(zhí)行延時(shí)10ms子程序后再確認(rèn)該鍵是否確實(shí)按下,消除抖動(dòng)影響。⑴硬件去抖動(dòng)消除抖動(dòng)不良后果的方法:其中RC濾波電路去抖72
(1)開(kāi)關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動(dòng)??梢圆捎糜布蛙浖煞N方法,硬件方法就是在按鍵輸入通道上添加去抖動(dòng)電路;軟件方法則采用延遲10~20ms
(2)鍵盤狀態(tài)的監(jiān)測(cè)方法——中斷方式還是查詢方式。
(3)鍵盤編碼方法。
(4)鍵盤控制程序的編制。。6.1.3鍵盤接口
功能:對(duì)鍵盤上所按下的鍵進(jìn)行識(shí)別。分類:
(1)編碼鍵盤:采用專用的編碼/譯碼器件,被按下的鍵由該器件譯碼輸出相應(yīng)的鍵碼/鍵值。其特點(diǎn)是增加了硬件開(kāi)銷,編碼固定,但編程簡(jiǎn)單。適用于規(guī)模大的鍵盤。
6.1.2使用鍵盤時(shí)必須解決的問(wèn)題
(1)開(kāi)關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動(dòng)。可以采73(2)非編碼鍵盤:采用軟件編/譯碼的方式,通過(guò)掃描,對(duì)每個(gè)被按下的鍵判別輸出相應(yīng)的鍵碼/鍵值。其特點(diǎn)是不增加硬件開(kāi)銷,編碼靈活,但編程較復(fù)雜,占CPU時(shí)間。適用于小規(guī)模的鍵盤,特別是單片機(jī)系統(tǒng)。鍵盤。1.鍵盤接口的工作原理
對(duì)于矩陣式鍵盤,如上頁(yè)圖所示,鍵盤的行線X0~X3通過(guò)電阻接+5V,當(dāng)鍵盤上沒(méi)有鍵閉合時(shí),所有的掃描線和回送線都斷開(kāi),無(wú)論掃描線處于何種狀態(tài),回送線都呈高電平。當(dāng)鍵盤上某一鍵閉合時(shí),則該鍵所對(duì)應(yīng)的掃描線和回送線被短路,可以確定,變?yōu)榈碗娖降幕厮途€與掃描線相交處的鍵閉合。
CPU對(duì)鍵盤掃描的方式:程序控制的隨機(jī)方式(CPU空閑時(shí)掃描鍵盤)、定時(shí)控制方式(定時(shí)掃描鍵盤)、中斷方式。
CPU對(duì)鍵盤上閉合鍵的鍵號(hào)確定方法:根據(jù)掃描線和回送線的狀態(tài)計(jì)算求得,或根據(jù)行線和列線的狀態(tài)查表求得。
(2)非編碼鍵盤:采用軟件編/譯碼的方式,通過(guò)掃描742.鍵輸入程序的設(shè)計(jì)方法
(1)判斷鍵盤上是否有鍵閉合;(2)消除鍵的機(jī)械抖動(dòng);(3)確定閉合鍵的物理位置;(4)得到閉合鍵的編號(hào);(5)確保CPU對(duì)鍵的一次閉合只做一次處理3.鍵盤接口方式(1)獨(dú)立式鍵盤接口(靜態(tài)方式)特點(diǎn):結(jié)構(gòu)簡(jiǎn)單,每個(gè)按鍵接單片機(jī)的一條I/O線,通過(guò)對(duì)輸入線的查詢,可以識(shí)別每個(gè)按鍵的狀態(tài)。[例題]
在MCS-51單片機(jī)系統(tǒng)中,設(shè)計(jì)一個(gè)含8個(gè)按鍵的獨(dú)立式鍵盤。解:在MCS-51中,含8個(gè)按鍵的獨(dú)立式鍵盤的線路連接如下頁(yè)圖所示,8個(gè)按鍵經(jīng)上拉電阻拉高后分別接到MCS-51單片機(jī)P1口的8條I/O線上(P1.0~P1.7)。2.鍵輸入程序的設(shè)計(jì)方法75
在無(wú)鍵按下的情況下,P1.0~P1.7線上輸入均為高電平。當(dāng)有鍵按下時(shí),與被按鍵相連的I/O線將得到低電平輸入,其他位按鍵的輸入線上仍維持高電平輸入。
P1口8條I/O線經(jīng)與非門74LS30實(shí)現(xiàn)邏輯與非后,再經(jīng)過(guò)1個(gè)非門74LS04進(jìn)行信號(hào)變換,然后接至MCS-51的引腳上,可通過(guò)中斷的方式處理鍵盤。在中斷服務(wù)程序中,先延時(shí)20ms消除鍵抖動(dòng),再對(duì)各鍵進(jìn)行查詢,找到所按鍵,并轉(zhuǎn)到相應(yīng)的處理程序中去。在無(wú)鍵按下的情況下,P1.76
CLOSE: JNB ACC.7,KEY7 ;查詢7號(hào)鍵 JNB ACC.6,KEY6 ;查詢6號(hào)鍵 JNB ACC.5,KEY5 ;查詢5號(hào)鍵 JNB ACC.4,KEY4 ;查詢4號(hào)鍵 JNB ACC.3,KEY3 ;查詢3號(hào)鍵 JNB ACC.2,KEY2 ;查詢2號(hào)鍵 JNB ACC.1,KEY1 ;查詢1號(hào)鍵 JNB ACC.0,KEY0 ;查詢0號(hào)鍵INT0: RETIKEY7: …… ;7號(hào)鍵處理程序KEY71: MOV A,P1 ;再讀P1口各引腳 JNBACC.7,FUNC71 ;確認(rèn)鍵是否釋放 RETIKEY6: …… ;其他鍵處理程序 …… D20: …… ;20ms延時(shí)子程序 …… END
CLOSE: JNB AC77
主程序如下:
ORG 0000H LJMP MAIN ORG 0003H ;外部中斷0中斷服務(wù)入口地址 LJMP INT ;轉(zhuǎn)中斷服務(wù) ORG 0100H MAIN: SETB EA ;開(kāi)總中斷允許 SETB EX0 ;開(kāi)INT0中斷 SETB IT0 ;下降沿有效 ……中斷服務(wù)程序清單如下:
INTI CALL D20 ;延時(shí)去抖動(dòng) MOV P1,#0FFH ;P1口送全1值(準(zhǔn)雙向口原因) MOV A,P1 ;讀P1口各引腳 CJNE A,#0FFH,CLOSE ;驗(yàn)證是否確實(shí)有鍵閉合 AJMP INT0 ;無(wú)鍵按下(按鍵時(shí)間過(guò)短)則退 ;出中斷主程序如下:78(2)矩陣式鍵盤接口——行反轉(zhuǎn)法
矩陣式鍵盤按鍵識(shí)別方法有行反轉(zhuǎn)法和掃描法等。行反轉(zhuǎn)法需要兩個(gè)雙向I/O口分別接行、列線。步驟如下:
(1)由行線輸出全“0”,讀入列線,判有無(wú)鍵按下。(2)若有鍵按下,再將讀入的列列線輸出,讀進(jìn)行線的值。(3)第一步讀進(jìn)的列線值與第二步讀進(jìn)的行線值運(yùn)算,從而得到代表此鍵的唯一的特征值。行反轉(zhuǎn)法因輸入與輸出線反過(guò)來(lái)用而得名。優(yōu)點(diǎn)是判鍵速度快,兩次即可。[例題]請(qǐng)為8051微處理器設(shè)計(jì)一個(gè)由4行4列鍵陣構(gòu)成的鍵盤。解:4×4矩陣鍵盤的線路連接如下頁(yè)圖所示。其中P2口的低4位作為輸出線。P1口的低4位作為輸入線,輸入線通過(guò)74LS21進(jìn)行邏輯相與后作為8051的一個(gè)外部中斷源輸入。當(dāng)有鍵按下時(shí)就將引起中斷。中斷服務(wù)程序要對(duì)所按的鍵進(jìn)行判別。
(2)矩陣式鍵盤接口——行反轉(zhuǎn)法矩陣式鍵盤按鍵79(1)查詢閉合鍵的位置子程序KEYR
KEYR子程序用以確定每組線中哪一位為0,是否有多個(gè)0。在調(diào)用前,應(yīng)將讀某組線的數(shù)據(jù)存入累加器A中。KEYR子程序返回時(shí),某組線中0的位置(0~3)保存在R3中。按鍵閉合引起中斷后,執(zhí)行中斷服務(wù)程序。(1)查詢閉合鍵的位置子程序KEYR80表2-5工作寄存器組選擇控制表KEYR子程序如下:
KEYR: CJNE A,#0FEH,TESTP11 ;測(cè)試P1.0 MOV R3,#0 ;P1.0=0,說(shuō)明被按鍵的輸入線為P1.0 LJMP FINISH ;返回TESTP11: CJNE A,#0FDH,TESTP12 ;測(cè)試P1.1 MOV R3,#1 LJMP FINISHTESTP12: CJNE A,#0FBH,TESTP13 ;測(cè)試P1.2 MOV R3,#2 LJMP FINISHTESTP13: CJNE A,#0F7H,FINISH ;測(cè)試P1.3 MOV R3,#3FINISH: RET表2-5工作寄存器組選擇控制表KEYR子程序如下:81
(2)中斷服務(wù)程序
中斷服務(wù)程序開(kāi)始部分應(yīng)利用軟件延時(shí)消除鍵抖動(dòng),然后再對(duì)所按的鍵做出處理。中斷服務(wù)程序如下:
ORG1000H INT11:LCALLDELAY ;延時(shí)去抖動(dòng) MOV A,P1 ;讀輸入線 ANL A,#0FH ;判斷是否有鍵閉合 CJNE A,#0FH,TEST ;有鍵閉合,轉(zhuǎn)判斷按鍵程序 RETI ;無(wú)鍵閉合,返回TEST:MOV B,A ;暫存 LCALL KEYR ;調(diào)用讀取子程序 MOV 40H,R3 ;暫存在40H單元 MOV P2,#0FFH ;輸出線寫1 MOV P1,B ;輸入線寫入數(shù)據(jù) MOV A,P2 ;讀輸出線 LCALL KEYR ;調(diào)用讀取子程序 XCH A,R3 SWAP A ORL 40H,A ;得按鍵特征值 RETI (2)中斷服務(wù)程序82
中斷程序結(jié)束后,鍵的特征值存放在40H單元中。此鍵的輸出線號(hào)位于40H單元的高4位,其輸入線號(hào)位于低4位。此后,根據(jù)40H單元的內(nèi)容去查表,得到相應(yīng)鍵的代碼,可進(jìn)行顯示或其他處理。(3)去抖動(dòng)的延時(shí)子程序DELAY
利用CPU的空閑方式,通過(guò)定時(shí)器T1實(shí)現(xiàn)延時(shí),T1必須預(yù)先置初值,以得到需要的延遲時(shí)間。設(shè)晶振頻率為6MHz,欲延時(shí)20ms,定時(shí)時(shí)間為:(216-TC)×6/12=20×103μs,初值:TC=25536=63C0H。程序如下:
DELAY: MOV TOMD,#11H ;方式1定時(shí) MOV TL1,#0C0H ;定時(shí)器1定時(shí)初值 MOV TH1,#63H SETB EA ;開(kāi)中斷 SETB ET1 ;開(kāi)定時(shí)器1中斷 SETB PT1 ;定時(shí)器1為高級(jí)中斷(因被鍵盤中斷調(diào)用) SETB TR1 ;啟動(dòng)定時(shí)器 ORL PCON,#1 ;啟動(dòng)空閑方式,實(shí)際CPU在此處等待 CLR TR1;以下四條指令只有在延時(shí)后,定時(shí)器被喚醒,才能執(zhí)行 CLR PT1 CLR ET1 RET END 中斷程序結(jié)束后,鍵的特征值存放在40H單元中。此鍵83(4)通過(guò)串行口擴(kuò)展鍵盤接口
MCS-51系列單片機(jī)的串行口與串/并轉(zhuǎn)換芯片配合(如串入并出芯片74LS164)可以擴(kuò)展鍵盤。[例題]
利用MCS-51的串行口與串/并轉(zhuǎn)換芯片配合,擴(kuò)展2行8列的鍵盤接口,鍵號(hào)為0~15。要求給出其硬件連接和鍵盤查詢子程序。解:串口與串/并轉(zhuǎn)換芯片配合擴(kuò)展鍵盤的線路連接如下圖所示。
(4)通過(guò)串行口擴(kuò)展鍵盤接口MCS-51系列單片84
其中,P1.0和P1.1作為行線。鍵盤的編碼為:P1.0線上的8個(gè)鍵分別為00H+(00H~07H),P1.1線上的8個(gè)鍵分別為08H+(00H~07H)。掃描線(00H~07H)的具體值存放在R4中。程序采取查詢方式讀取鍵號(hào),并且考慮了鍵的抖動(dòng)問(wèn)題。DLY1是延時(shí)子程序。
程序如下:
ORG1000H SERKEY:MOVSCON,#00H ;設(shè)置串行口 MOVA,#00H ;鍵盤初始化,送00H到列線上 LCALLVARTO ;發(fā)送數(shù)據(jù)CHK:JNBP1.0,CHK0 ;檢查是否有鍵按下 JNBP1.1,CHK0 ;檢查是否有鍵按下 AJMPCHK ;無(wú)鍵按下,繼續(xù)查找CHK0:LCALLDLY1 ;調(diào)用10ms延時(shí)子程序,去抖 JNBP1.0,CHEN ;確實(shí)有鍵按下,轉(zhuǎn)CHEN JNBP1.1,CHEN AJMPCHK ;無(wú)鍵按下,繼續(xù)查找CHEN:MOVR2,#0FEH ;首列掃描字送R2,查鍵號(hào),最低位為0 MOVR4,#00H ;首列偏移值送R4其中,P1.0和P1.1作為行線。鍵盤的編碼85
CHKN:MOVA,R2 ;發(fā)送列掃描字 LCALLVARTO JB P1.0,CH1 ;檢查P1.0有無(wú)鍵按下;若無(wú),轉(zhuǎn)CH1 MOVA,#0 ;第一行首列值送A,00H+(R4) AJMPCKEY ;轉(zhuǎn)求鍵號(hào)CH1:JB P1.1,NEXT ;檢查P1.1有無(wú)鍵按下;若無(wú),轉(zhuǎn)NEXT MOVA,#8H ;第二行首列值送ACKEY:ADDA,R4 ;求鍵號(hào),并入棧保護(hù) RET
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年北師大新版選修6地理上冊(cè)階段測(cè)試試卷
- 2024年華師大版五年級(jí)語(yǔ)文上冊(cè)階段測(cè)試試卷
- 2024廣告發(fā)布合同標(biāo)的為廣告位和廣告內(nèi)容
- 二零二五年度汽車租賃與改裝升級(jí)服務(wù)合同3篇
- 2025年魯科版七年級(jí)數(shù)學(xué)上冊(cè)階段測(cè)試試卷含答案
- 2025年人教新課標(biāo)五年級(jí)語(yǔ)文下冊(cè)月考試卷
- 2025年北師大版八年級(jí)地理上冊(cè)階段測(cè)試試卷
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)開(kāi)發(fā)與運(yùn)營(yíng)收藏合同3篇
- 2024年貨物進(jìn)口合同詳細(xì)條款
- 2025年度WXLX09009(2024版)智能交通管理系統(tǒng)建設(shè)合同3篇
- 2024江蘇泗陽(yáng)縣交通產(chǎn)業(yè)集團(tuán)招聘第一線操作人員招聘39人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- GB 19272-2024室外健身器材的安全通用要求
- 北師大版五年級(jí)數(shù)學(xué)下冊(cè)第3單元第3課時(shí)分?jǐn)?shù)乘法(三)課件
- 2025新外研社版英語(yǔ)七年級(jí)下單詞默寫表
- 2024年演出經(jīng)紀(jì)人資格《思想政治與法律基礎(chǔ)》考前必刷必練題庫(kù)500題(含真題、必會(huì)題)
- 麻醉與舒適醫(yī)療
- 全國(guó)林草行業(yè)森林消防員技能競(jìng)賽理論知識(shí)考試題及答案
- 《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》專題培訓(xùn)
- 2022年山東省公務(wù)員錄用考試《申論》真題(A類)及答案解析
- 2024年治安保衛(wèi)部規(guī)章制度(2篇)
- 2024年保密知識(shí)測(cè)試試題附答案(綜合卷)
評(píng)論
0/150
提交評(píng)論