第八章 MCS-51單片機及鍵盤、顯示器接口設(shè)計_第1頁
第八章 MCS-51單片機及鍵盤、顯示器接口設(shè)計_第2頁
第八章 MCS-51單片機及鍵盤、顯示器接口設(shè)計_第3頁
第八章 MCS-51單片機及鍵盤、顯示器接口設(shè)計_第4頁
第八章 MCS-51單片機及鍵盤、顯示器接口設(shè)計_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第八章MCS-51單片機與鍵盤、顯示器接口設(shè)計§8.1LED顯示器接口原理§8.2按鍵、鍵盤及其接口§8.3專用的8279/7279鍵盤顯示器接口

內(nèi)容提要PC機除了主機以外還需要哪些部分呢?單片機電路有時候也需要鍵盤、顯示等外設(shè)。第八章MCS-51單片機與鍵盤、顯示器接口設(shè)計1.LED顯示器的結(jié)構(gòu)有共陽極和共陰極兩種。§8.1LED顯示器接口原理段碼(字形碼)顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼03FHC0Hc39HC6H106HF9Hd5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8Hy6EH91H87FH80HH76H89H96FH90HL38HC7HA77FH88H“滅”00HFFHb7CH83H………

段碼是相對的,它由各字段在字節(jié)中所處的位決定?!?”的段碼為3FH(共陰)。則“0”的段碼為7EH(共陰)。習(xí)慣上還是以“a”段對應(yīng)段碼的最低位?!?.1LED顯示器接口原理軟件譯碼N個LED顯示塊有N位位選線和8×N根段碼線。2.LED顯示器工作原理§8.1LED顯示器接口原理控制該顯示位的亮或暗控制顯示的字型靜態(tài)顯示方式顯示的亮度高§8.1LED顯示器接口原理優(yōu)點:結(jié)構(gòu)簡單,直接利用P1口輸出鎖存器作為段碼鎖存器。缺點:占用了P1.0~P1.6q七根I/O口線。靜態(tài)顯示接口電路§8.1LED顯示器接口原理該電路使用具有鎖存、譯碼、驅(qū)動功能的CD4511作為鎖存器/譯碼/驅(qū)動電路§8.1LED顯示器接口原理靜態(tài)顯示接口電路硬件譯碼§8.1LED顯示器接口原理P240【例9.3】:利用MC14495實現(xiàn)8位靜態(tài)LED顯示,硬件電路如圖9.13所示,編寫軟件程序。設(shè)要顯示的BCD碼放在以DAT為首址的RAM單元中。硬件譯碼的靜態(tài)顯示程序設(shè)計如下:

ORG 0000HSTART: MOV R0,#DAT ;設(shè)置數(shù)據(jù)區(qū)首址 MOV R1,#80H MOV R2,#08HLOOP: MOV A,@R0 ;讀要顯示的BCD

ADD A,R1 MOV P1,A

ACALLDELAY

INC R0 MOV A,R1 ADD A,#10H MOV R1,A DJNZ R2,LOOP LJMP START END

§8.1LED顯示器接口原理動態(tài)顯示方式§8.1LED顯示器接口原理動態(tài)顯示2009.10.10的過程。說明:段選碼、位選碼每送入一次后延時1ms,人眼的視覺 暫留時間為0.1s。 §8.1LED顯示器接口原理動態(tài)顯示接口電路說明:75492是大電流集電極開路輸出反相器,內(nèi)含有6個 達頓管組成的OC門反相器,高電平輸入驅(qū)動電流小 (2mA),每個反相器最大可以吸收250mA灌電流。 它可驅(qū)動動態(tài)電流在20mA~30mALED發(fā)光二極管?!?.1LED顯示器接口原理§8.1LED顯示器接口原理P241【例9.4】:采用軟件譯碼的方法,實現(xiàn)8位動態(tài)LED顯示,要求從左到右依次顯示內(nèi)存30H~37H的內(nèi)容,電路如圖9.14所示,編寫軟件程序。程序中利用R0存放顯示緩沖區(qū)的地址,R3存放位選碼,程序如下:DISP: MOV R0,#30H ;顯示緩沖區(qū)首址 MOVR3,#01H ;位選碼初值 MOV A,R3LOOP:MOV P2,A ;送位選碼到P2 MOV A,@R0 ;取顯示數(shù)據(jù) MOV DPTR,#TAB ;指向段碼表首地址 MOVCA,@A+DPTR;查表取段碼 MOV P0,A ;送段碼到P0 ACALLDEL10ms ;調(diào)用10ms延時程序

INC R0 ;指向下一顯示單元 MOV A,R3 JBACC.7,OVER ;判斷8位是否顯示完 RLA ;位選碼右移1位 MOV R3,A AJMP LOOP ;轉(zhuǎn)下一位顯示OVER:SJMP $ END軟件譯碼鍵盤輸入的特點鍵盤:一組按鍵開關(guān)的集合。行線電壓信號通過鍵盤開關(guān)機械觸點的斷開、閉合發(fā)生變化§8.2按鍵、鍵盤及其接口按鍵的確認檢測行線電平高電平:斷開;低電平:閉合,常用軟件來消除按鍵抖動。如何消除按鍵的抖動采取以上措施,躲開了兩個抖動期t1和t3的影響。軟件延時10ms軟件延時10ms§8.2按鍵、鍵盤及其接口1.鍵盤接口的工作原理獨立式按鍵接口和行列式鍵盤接口。獨立式鍵盤接口此種接口適于鍵數(shù)較少或操作速度較高的場合。§8.2按鍵、鍵盤及其接口8255A擴展I/O口的獨立式按鍵接口電路?!?.2按鍵、鍵盤及其接口PA0PA1PA2PA3PA4PA5PA6PA7用三態(tài)緩沖器擴展的I/O口的按鍵接口電路?!?.2按鍵、鍵盤及其接口識別和編程簡單,用在按鍵數(shù)較少的場合?!?.2按鍵、鍵盤及其接口P233【例9.1】:如圖9.4所示鍵盤電路,每個按鍵中的任一鍵值都對應(yīng)一個特定功能,編寫軟件程序。§8.2按鍵、鍵盤及其接口 ORG0000HKB:MOVP1,#0FFHMOV A,P1CPL AANL A,#0FHJZ KBLCALLD10MS

MOV A,P1CPL AANL A,#0FHJZ KB MOV B,A WAIT:MOVA,P1CPL AANL A,#0FHJNZ WAIT

MOV A,BCJNE A,#01H,KB1LCALLKEY1

SJMPKBKB1:CJNEA,#02H,KB2LCALLKEY2

SJMPKBKB2:CJNEA,#04H,KB3LCALLKEY3

SJMPKBKB3:CJNEA,#04H,KBLCALLKEY4

SJMPKB END2.行列式(矩陣式)鍵盤接口用于按鍵數(shù)目較多的場合,由行線和列線組成,按鍵位于行、列的交叉點上。按鍵數(shù)目較多的場合,行列式鍵盤與獨立式鍵盤相比,要節(jié)省很多的I/O口線?!?.2按鍵、鍵盤及其接口(1)行列式鍵盤工作原理無鍵按下,該行線為高電平,當(dāng)有鍵按下時,行線電平由列線的電平來決定。第1步:識別鍵盤有無鍵按下;第2步:如有鍵被按下,識別出具體的按鍵。(2)按鍵的識別方法

掃描法§8.2按鍵、鍵盤及其接口線反轉(zhuǎn)法第1步:列線輸出為全低電平,則行線中電平由高變低的所在行為按鍵所在行第2步:行線輸出為全低電平,則列線中電平由高變低所在列為按鍵所在列。(3)鍵盤的編碼根據(jù)實際需要靈活編碼。鍵碼=行首鍵碼+列號§8.2按鍵、鍵盤及其接口§8.2按鍵、鍵盤及其接口P236【例9.2】:在圖9.5所示的4×4的行列式鍵盤電路中,編程實現(xiàn)鍵盤掃描,識別鍵碼,其流程圖如圖9.7所示。§8.2按鍵、鍵盤及其接口P236【例9.2】:在圖9.5所示的4×4的行列式鍵盤電路中,編程實現(xiàn)鍵盤掃描,識別鍵碼,其流程圖如圖9.7所示。3.鍵盤的工作方式原則:即要保證能及時響應(yīng)按鍵操作,又不要過多占用CPU的工作時間。編程掃描方式只有當(dāng)單片機空閑時,才調(diào)用鍵盤掃描子程序,掃描鍵盤。定時掃描工作方式利用單片機內(nèi)的定時器,產(chǎn)生10ms的定時中斷,對鍵盤進行掃描。中斷工作方式只有在鍵盤有鍵按下時,才執(zhí)行鍵盤掃描程序,如無鍵按下,單片機將不理睬鍵盤?!?.2按鍵、鍵盤及其接口鍵盤所做的工作分為三個層次①編程掃描②定時掃描③中斷掃描①掃描法②線反轉(zhuǎn)法執(zhí)行鍵處理程序§8.2按鍵、鍵盤及其接口利用并行I/O芯片實現(xiàn)鍵盤/顯示器接口4.鍵盤/顯示器接口設(shè)計實例

8155H也可用8255A來替代P242【例9.5】利用串行口實現(xiàn)鍵盤/顯示器接口串口為方式0輸出4.鍵盤/顯示器接口設(shè)計實例

P244【例9.6】Intel8279芯片:通用可編程鍵盤/顯示器接口芯片。對鍵盤部分提供掃描工作方式,能對64個鍵鍵盤陣列不斷掃描,自動消抖,自動識別出閉合的鍵并得到鍵號,能對雙鍵或N鍵同時按下進行處理?!?.3專用的8279/7279鍵盤顯示器接口掃描方式的顯示接口,可顯示多達16位的字符。1.8279的引腳及內(nèi)部結(jié)構(gòu)§8.3專用的8279/7279鍵盤顯示器接口2.引腳功能介紹(1)與CPU的接口引腳DB0~DB7:數(shù)據(jù)總線、雙向、三態(tài),與單片機數(shù)據(jù)總線相連,在CPU和8279之間傳送命令或數(shù)據(jù)。CLK:系統(tǒng)時鐘,用于8279內(nèi)部定時,以產(chǎn)生其工作所需的時序。RESET:高電平時,8279被復(fù)位,復(fù)位后的狀態(tài)如下:*16個字符左邊輸入顯示方式*編碼掃描鍵盤、雙鍵鎖定方式/CS:片選§8.3專用的8279/7279鍵盤顯示器接口A0:=1,寫入的是命令字節(jié);讀出的是狀態(tài)字節(jié)。

=0,寫入或讀出的字節(jié)均為數(shù)據(jù)。/RD、/WR:讀、寫控制引腳IRQ:中斷請求線。在鍵盤方式中,當(dāng)鍵盤RAM(先進先出)中存有按下鍵的數(shù)據(jù)時,IRQ為高電平,向CPU提出中斷申請。(2)掃描信號輸出引腳CPU每次從鍵盤RAM中讀出一個字節(jié)數(shù)據(jù)時,IRQ就變?yōu)榈碗娖健H绻I盤RAM中還有未讀完的數(shù)據(jù),IRQ將再次變?yōu)楦唠娖剑俅翁岢鲋袛嗾埱?。?.3專用的8279/7279鍵盤顯示器接口SL0~SL3

掃描輸出。用來掃描鍵盤和顯示器??删幊淘O(shè)定為編碼輸出,即SL0~SL3需外接4-16譯碼器,輸出16取1的掃描信號,也可編程設(shè)定為譯碼輸出,即由SL0~SL3直接輸出4取1的掃描信號。(3)與鍵盤連接的引腳RL0~RL7鍵盤矩陣的行信號輸入線。SHIFT輸入線,通常用作鍵盤上、下檔功能的控制鍵。CNTL/STB輸入線,高電平有效。在鍵盤方式時,通常用來作為鍵盤控制功能鍵使用?!?.3專用的8279/7279鍵盤顯示器接口(4)與顯示器連接的引腳OUTA0~OUTA3(A組顯示數(shù)據(jù))、OUTB0~OUTB3(B組顯示數(shù)據(jù)):向LED顯示器輸出的段碼,與掃描信號線SL0~SL3同步。兩組可獨立使用,也可合并使用。/BD:消隱顯示控制。3.8279的基本功能部件(1)掃描計數(shù)器編碼方式:掃描線SL0~SL3輸出,經(jīng)外部4-16譯碼器譯碼后,為鍵盤和顯示器提供16取1的掃描線。譯碼方式:計數(shù)器的最低二位在8279內(nèi)部譯碼后,從SL0~SL3輸出,為鍵盤和顯示器提供4取1掃描線?!?.3專用的8279/7279鍵盤顯示器接口D7D6D5D4D3D2D1D0CNTLSHIFT掃描回復(fù)(2)鍵盤去抖動及回復(fù)緩沖器RL0~RL7被接到鍵盤的行線。在逐列掃描時,當(dāng)某一鍵閉合,消抖電路延時等待

10ms之后,再檢驗該鍵是否仍閉合。若閉合,則該鍵的行、列地址和附加的移位、控制狀態(tài)一起形成鍵盤數(shù)據(jù),送入8279內(nèi)部的鍵盤RAM存儲器??刂疲–NTL)和移位(SHIFT)的狀態(tài)由兩個獨立的附加開關(guān)決定,而掃描(D5、D4、D3)是被按鍵的列編碼,而回復(fù)(D2、D1、D0)則是被按鍵的行位置數(shù)據(jù)?!?.3專用的8279/7279鍵盤顯示器接口(3)鍵盤RAM及其狀態(tài)寄存器鍵盤RAM:8字節(jié)先進先出(FIFO)存儲器。當(dāng)FIFO存儲器空間不足時,狀態(tài)邏輯將產(chǎn)生IRQ=1信號,向CPU發(fā)出中斷申請。內(nèi)部的FIFO狀態(tài)寄存器存放FIFO的工作狀態(tài),如FIFO是空還是滿,其中存有多少字符,是否操作出錯等等?!?.3專用的8279/7279鍵盤顯示器接口(4)顯示RAM和顯示地址寄存器

顯示RAM:存顯示數(shù)據(jù)。16個字節(jié),可存放16位顯示信息。

顯示寄存器:分A、B兩組,即OUTA0~OUTA3和OUTB0~OUTB3,它們可單獨送數(shù),也可共同組成1個8位的字節(jié)。顯示RAM的輸出與顯示掃描配合,同時輪流驅(qū)動被選中的顯示位,使顯示器呈現(xiàn)穩(wěn)定的顯示(動態(tài)掃描)?!?.3專用的8279/7279鍵盤顯示器接口狀態(tài)字:主要用于鍵盤工作方式,以指示鍵盤RAM中的字符數(shù)和有無錯誤發(fā)生。4.8279的命令字和狀態(tài)字命令字:D7、D6、D5為命令特征位,來區(qū)分8條不同的命令字。1)鍵盤/顯示方式設(shè)置命令字2)程控時鐘命令3)讀鍵盤RAM命令字4)讀顯示RAM命令5)寫顯示RAM命令6)顯示禁止寫入/消隱命令7)清除命令8)結(jié)束中斷/錯誤方式設(shè)置命令§8.3專用的8279/7279鍵盤顯示器接口5.8279與鍵盤/顯示器的接口P249【例9.7】1.HD7279A簡介能同時驅(qū)動8個共陰極LED數(shù)碼管(或64個獨立的LED發(fā)光二極管)和64(88)鍵的編碼鍵盤矩陣??刂芁ED數(shù)碼管采用動態(tài)掃描的循環(huán)顯示方式。特性:(1)與單片機采用串口方式,僅占4條口線,接口簡單;(2)內(nèi)部有譯碼器,可直接接收BCD碼或十六進制碼,同時具有兩種譯碼方式,實現(xiàn)LED數(shù)碼管位尋址和段尋址,可方便地控制每位LED數(shù)碼管中任意一段是否發(fā)光;§8.3專用的8279/7279鍵盤顯示器接口(3)內(nèi)部有驅(qū)動器,可直接驅(qū)動不超過25.4mm的LED數(shù)碼管。(4)片選信號輸入,易實現(xiàn)多于8位顯示器或多于64鍵的鍵盤控制。(5)具有自動消除鍵抖動并識別有效鍵值的功能。(6)HD7279A芯片占用口線少,外圍電路簡單,具有較高性價比。§8.3專用的8279/7279鍵盤顯示器接口2.引腳功能(1)與CPU的接口引腳CLK:同步時鐘輸入端。/CS:片選,低電平有效。DATA:串行數(shù)據(jù)輸入/輸出端。KEY:按鍵有效輸出端,高電平有效§8.3專用的8279/7279鍵盤顯示器接口(2)與顯示/鍵盤接口引腳SG~SA:顯示段g~a的驅(qū)動信號輸出端。分別連接至LED數(shù)碼 管的a~g段的陽極,而DP腳連至小數(shù)點dp的陽極。DIG0~DIG7:數(shù)字位0~7驅(qū)動信號輸出端。它連接8只LED 數(shù)碼管的共陰極。DP:小數(shù)點驅(qū)動信號輸出端。RC:RC振動器外接主容端。RESET:復(fù)位信號輸入端,低電平有效。DIG0~DIG7和DP以及SA~SG還分別是64鍵的鍵盤的列線和行線,完成對鍵盤的譯碼和鍵值識別。88矩陣陣列中的每個鍵值可用讀鍵盤命令讀出,鍵值范圍是00H~3FH。§8.3專用的8279/7279鍵盤顯示器接口HD7279A采用串行方式與單片機通信,串行數(shù)據(jù)從DATA引腳送入或輸出,并與CLK端同步。當(dāng)片選信號

變?yōu)榈碗娖胶螅珼ATA引腳上的數(shù)據(jù)在CLK脈沖上升沿作用下寫入或讀出HD7279A的數(shù)據(jù)緩沖器。4.HD7279串行接口傳送時序注意:HD7279A只能給出其中一個按下鍵的代碼,不適合需要兩個或兩個以上鍵同時按下的場合。3.HD7279的控制指令§8.3專用的8279/7279鍵盤顯示器接口

6條純命令、7條帶數(shù)據(jù)命令和1條讀鍵盤命令組成。(1)命令時序a.純命令時序單片機發(fā)出8個CLK脈沖,向HD7279A發(fā)出8位命令,DATA引腳最后為高阻態(tài),如圖10-16所示。

純命令時序§8.3專用的8279/7279鍵盤顯示器接口b.帶數(shù)據(jù)命令時序單片機發(fā)出16個CLK脈沖,前8個向HD7279A發(fā)送8位命令;后8個向HD7279A傳送8位顯示數(shù)據(jù),DATA引腳最后為高阻態(tài),如圖所示。

帶數(shù)據(jù)命令時序§8.3專用的8279/7279鍵盤顯示器接口c.讀鍵盤命令時序單片機發(fā)出16個CLK脈沖,前8個向HD7279A發(fā)送8位命令;發(fā)送完之后DATA引腳為高阻態(tài);后8個CLK由HD7279A

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論