單片機(jī)第10章課件_第1頁
單片機(jī)第10章課件_第2頁
單片機(jī)第10章課件_第3頁
單片機(jī)第10章課件_第4頁
單片機(jī)第10章課件_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章89C51與鍵盤、顯示器、撥盤、打印機(jī)的接口設(shè)計輸入外設(shè):鍵盤、BCD碼撥盤等;輸出外設(shè):LED顯示器、LCD顯示器、打印機(jī)等。10.1LED顯示器接口原理LED(LightEmittingDiode):發(fā)光二極管的縮寫。顯示器前面冠以“LED”。10.1.1LED顯示器的結(jié)構(gòu)LED顯示器為8段(或7段,8段比7段多了一個小數(shù)點(diǎn)“dp”有共陽極和共陰極兩種。如圖10-1所示。圖10-1為使LED顯示不同的符號或數(shù)字,要為LED提供段碼(或稱字型碼)。提供給LED顯示器的段碼(字型碼)正好是一個字節(jié)(8段)。各段與字節(jié)中各位對應(yīng)關(guān)系如表10-1。表10-1按上述格式,8段LED的段碼如表10-2所示。表10-2只列出了部分段碼,可根據(jù)實際情況選用,也可重新定義。

N個LED顯示塊有N位位選線和8×N根段碼線。10.1.2LED顯示器工作原理圖10-2是4位LED顯示器的結(jié)構(gòu)原理圖。圖10-2段碼線控制顯示的字型,位選線控制該顯示位的亮或暗。靜態(tài)顯示和動態(tài)顯示兩種顯示方式。1.LED靜態(tài)顯示方式各位的公共端連接在一起(接地或+5V)。每位的段碼線(a~dp)分別與一個8位的鎖存器輸出相連。顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持不變,直到送入另一個段碼為止。顯示的亮度高。

圖10-3:

4位靜態(tài)LED顯示器電路。該電路各位可獨(dú)立顯示。圖10-4:4位8段LED動態(tài)顯示電路。其中段碼線占用一個8位I/O口,而位選線占用一個4位I/O口。圖10-4圖10-5為8位LED動態(tài)顯示2008.10.10的過程。圖(a)是顯示過程,某一時刻,只有一位LED被選通顯示,其余位則是熄滅的;圖(b)是實際顯示結(jié)果,人眼看到的是8位穩(wěn)定的同時顯示

的字符。圖10-510.2鍵盤接口原理1.鍵盤輸入的特點(diǎn)鍵盤:一組按鍵開關(guān)的集合。行線電壓信號通過鍵盤開關(guān)機(jī)械觸點(diǎn)的斷開、閉合,其輸出波形如圖10-6。圖10-610.2.2鍵盤接口的工作原理獨(dú)立式按鍵接口和行列式鍵盤接口。1.獨(dú)立式鍵盤接口各鍵相互獨(dú)立,每個按鍵各接一根輸入線,通過檢測輸入線的電平狀態(tài)可很容易判斷那個鍵被按下。此種接口適于鍵數(shù)較少或操作速度較高的場合。圖10-7(a)為中斷方式的獨(dú)立式鍵盤工作電路圖10-7(b)為查詢方式的獨(dú)立式鍵盤工作電路。圖10-7圖10-8為82C55擴(kuò)展I/O口的獨(dú)立式按鍵接口電路。圖10-8(1)行列式鍵盤工作原理無鍵按下,該行線為高電平,當(dāng)有鍵按下時,行線電平由列線的電平來決定。由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)生影響,必須將行、列線信號配合起來并作適當(dāng)?shù)奶幚?,才能確定閉合鍵的位置。(2)按鍵的識別方法a.掃描法

圖10-9(b)中3號鍵被按下為例,來說明此鍵時如何被識別出來的。識別鍵盤有無鍵被按下的方法,分兩步進(jìn)行:第1步:識別鍵盤有無鍵按下;第2步:如有鍵被按下,識別出具體的按鍵。把所有列線置0,檢查各行線電平是否有變化,如有變化,說明有鍵按下,如無變化,則無鍵按下。上述方法稱為掃描法,即先把某一列置低電平,其余各列為高電平,檢查各行線電平的變化,如果某行線電平為低,可確定此行列交叉點(diǎn)處的按鍵被按下。b.線反轉(zhuǎn)法

只需兩步便能獲得此按鍵所在的行列值,線反轉(zhuǎn)法的原理如圖10-10。圖10-10原則:即要保證能及時響應(yīng)按鍵操作,又不要過多占用CPU的工作時間。通常,鍵盤工作方式有3種,即編程掃描、定時掃描和中斷掃描。1.編程掃描方式只有當(dāng)單片機(jī)空閑時,才調(diào)用鍵盤掃描子程序,掃描鍵盤。工作過程:(1)在鍵盤掃描子程序中,先判斷有無鍵按下。方法:PA口8位輸出全0,讀PC口低4位狀態(tài),若PC0~PC3為全1,則說明鍵盤無鍵按下;若不全為1,則說明鍵盤可能有鍵按下。(2)用軟件來消除按鍵抖動的影響。如有鍵按下,則進(jìn)行下一步。(3)求按下鍵的鍵號。(4)等待按鍵釋放后,再進(jìn)行按鍵功能的處理操作。2.定時掃描工作方式利用單片機(jī)內(nèi)的定時器,產(chǎn)生10ms的定時中斷,對鍵盤進(jìn)行掃描。3.中斷工作方式只有在鍵盤有鍵按下時,才執(zhí)行鍵盤掃描程序,如無鍵按下,單片機(jī)將不理睬鍵盤。鍵盤所做的工作分為三個層次。第1層:單片機(jī)如何來監(jiān)視鍵盤的輸入。三種工作方式:①編程掃描②定時掃描③中斷掃描。第2層:確定具體按鍵的鍵號。體現(xiàn)在按鍵的識別方法上就是:①掃描法;②線反轉(zhuǎn)法。第3層:執(zhí)行鍵處理程序。10.3鍵盤/顯示器接口設(shè)計實例一般把鍵盤和顯示器放在一起考慮。10.3.1利用并行I/O芯片實現(xiàn)鍵盤/顯示器接口圖10-11:8031用擴(kuò)展I/O接口芯片81C55實現(xiàn)的6位LED顯示和32鍵的鍵盤/顯示器接口電路。圖中81C55也可用82C55來替代。89C51外擴(kuò)一片8155H。RAM地址:7E00H~7EFFH。I/O口地址:7F00H~7F05H。

PA口為輸出口,控制鍵盤列線的掃描,同時又是6位共陰極顯示器的位掃描口。

PB口作為顯示器段碼輸出口,PC口作為鍵盤的行線狀態(tài)的輸入口。75452:反相驅(qū)動器,7407:同相驅(qū)動器。1.動態(tài)顯示程序設(shè)計內(nèi)部RAM6個顯示緩沖單元:79H~7EH,存放要顯示的6位數(shù)據(jù)。81C55的PB口輸出相應(yīng)位的段碼,依次改變PA口輸出為高的位使某一位顯示某一字符,其它位為暗。動態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。參考程序:DIR:MOVR0,#79H ;置緩沖器指針初值MOVR3,#01H ;位選碼的初值送R3MOVA,R3LD0:MOVDPTR,#7F01H;位選碼→PA口(PA.0位);最左邊LED亮MOVX@DPTR,AINCDPTR ;數(shù)據(jù)指針指向PB口MOVA,@R0;顯示數(shù)據(jù)→AADDA,#0DH;加偏移量(下條指令到表首間;所有指令占的單元數(shù))MOVCA,@A+PC;根據(jù)顯示數(shù)據(jù)來查表取段碼DIR1:

MOVX@DPTR,A ;段碼→8155HPB口ACALLDL1ms;該位顯示1msINCR0 ;指針指向下一個數(shù)據(jù)單元MOVA,R3 ;位選碼送入A中JBAcc.5,LD1;判斷是否掃描到最右邊的;LED,如到最右邊則返回RLA;位選碼向左移一位,準(zhǔn)備讓;右邊的下一位LED亮MOVR3,A ;位選碼送R3中保存AJMPLD0;LD1:RET;DSEG:DB3FH,06H,5BH,4FH,66H,6DH;共陰極段碼表 DB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,73H,3EHPA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1

0

1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 …… …… …… 1

0 1 1 1 1 1 1 0 1 1 1 1 1 1 1相應(yīng)地,依次讀PC口的狀態(tài),若PC0~PC3全為“1”,則列線為“0”的這一列上沒有鍵閉合。閉合鍵的鍵號等于為低電平的列號加上行線為低電平的行的首鍵號。例如,PA口輸出為時,讀出PC0~PC3為1101,則1行1列相交的鍵處于閉合狀態(tài),第一列的首鍵號為8,列號為1。因此,閉合鍵的鍵號N為

N=行首鍵號+列號=8+1=9 (4)使CPU對鍵的一次閉合僅作一次處理鍵盤程序的流程如圖10-12。圖10-12鍵盤子程序如下:KEYI:ACALLKS1 ;調(diào)用判有無鍵閉合子程序JNZLK1;有鍵閉合,跳LK1NI:ACALLDIR ;無鍵閉合,調(diào)用顯示子程序,延;遲6ms后,跳KEYIAJMPKEYILK1:ACALLDIR ;可能有鍵閉合,軟件延遲12ms去抖ACALLDIRACALLKS1;調(diào)用判有無鍵閉合子程序JNZLK2 ;經(jīng)去抖,判鍵確實閉合,跳LK2ACALLDIR ;調(diào)用顯示子程序延遲6msAJMPKEYI ;抖動引起,跳KEYILK2:MOVR2,#0FEH ;列選碼→R2MOVR4,#00H ;R4為列號計數(shù)器LK4:MOVDPTR,#7F01H;列選碼→81C55的PA口MOVA,R2;MOVX@DPTR,A;INCDPTR ;數(shù)據(jù)指針增2,指向PC口INCDPTR;MOVXA,@DPTR ;讀81C55

PC口JBAcc.0,LONE ;0行線為高,無鍵閉合,跳LONE,轉(zhuǎn)判1行MOVA,#00H ;0行有鍵閉合,首鍵號0→AAJMPLKP ;跳LKP,計算鍵號LONE:JBAcc.1,LTW0;1行線為高,無鍵閉合,跳LTW0,;轉(zhuǎn)判2行MOVA,#08H;1行有鍵閉合,首鍵號8→AAJMPLKP LTW0:JBA.2,LTHR;2行線為高,無鍵閉合,跳 ;LTHR,轉(zhuǎn)判3行

MOVA,#10H;2行有鍵閉合,首鍵號10H→AAJMPLKP ;跳LKP,計算鍵號LTHR:JBAcc.3,NEXT;3行線為高,無鍵;閉合,跳NEXT,準(zhǔn)備下一列掃描MOVA,#18H ;3行有鍵閉合,首鍵號18H→ALKP:

ADDA,R4;計算鍵號:首鍵號+列號=鍵號PUSHA ;鍵號進(jìn)棧保護(hù)LK3:ACALLDIR ;調(diào)用顯示子程序,延時6msACALLKS1 ;調(diào)用判有無鍵閉合子程序,延時 ;6ms JNZLK3 ;判鍵釋放否,未釋放,則循環(huán)

POPA ;鍵已釋放,鍵號出棧→ARETNEXT:INCR4;列計數(shù)器加1,為下一列掃描作準(zhǔn)備MOVA,R2;判是否已掃到最后一列(最右一列)JNBAcc.7,KND;鍵掃描已掃到最后一列,跳KND, ;重新進(jìn)行整個鍵盤掃描RLA ;鍵掃描未掃到最后一列,,位選碼左移 ;一位MOVR2,A;位選碼→R2AJMPLK4;KND:AJMPKEYI;KS1:MOVDPTR,#7F01H;判有無鍵閉合子程序,全“0”→ ;掃描口(PA口)MOVA,#00H ;即列線全為低電平MOVX@DPTR,A;INCDPTR ;DPTR增2,指向PC口INCDPTR ;指針增1,指向PC口MOVXA,@DPTR;從PC口讀行線的狀態(tài)CPLA ;行線取反,如無鍵按下,則A為0;ANLA,#0FH;屏蔽無用的高4位RET10.3.2鍵盤/顯示器專用芯片8279實現(xiàn)的鍵盤/顯示器接口目前已經(jīng)有各種專用的鍵盤/顯示器接口芯片可供用戶選擇。用戶可省去編寫鍵盤/顯示器動態(tài)掃描程序的繁瑣工作,只需對鍵盤/顯示器接口芯片中的各個控制寄存器進(jìn)行正確的設(shè)置以及與鍵盤/顯示器進(jìn)行正確的連接即可。常用的專用可編程鍵盤/顯示器接口電路芯片為Intel8279

和HD7279A。Intel8279芯片是一種可編程的專用鍵盤/顯示器接口電路芯片,它能同時完成監(jiān)視鍵盤輸入和顯示控制兩種功能。8279芯片對鍵盤部分提供掃描工作方式,能對64個按鍵的鍵盤陣列不斷掃描,自動消除抖動,自動識別出閉合的鍵并得到鍵號,能對雙鍵或N個鍵同時按下進(jìn)行處理。顯示部分為LED或其他顯示器提供按掃描方式工作的顯示接口,可顯示多達(dá)16位的字符或數(shù)字。1.8279的引腳及內(nèi)部結(jié)構(gòu)

圖10-13圖10-142.引腳功能介紹(1)與單片機(jī)的接口引腳DB0~DB7:數(shù)據(jù)總線、雙向、三態(tài),與單片機(jī)數(shù)據(jù)總線相連,在單片機(jī)和8279之間傳送命令或數(shù)據(jù)。CLK:系統(tǒng)時鐘,用于8279內(nèi)部定時,以產(chǎn)生其工作所需的時序。RESET:高電平時,8279被復(fù)位,復(fù)位后的狀態(tài)如下:*16個字符左邊輸入顯示方式*編碼掃描鍵盤、雙鍵鎖定方式CS*:片選A0:=1,寫入的是命令字節(jié);讀出的是狀態(tài)字節(jié)。=0,寫入或讀出的字節(jié)均為數(shù)據(jù)。RD*、WR*:讀、寫控制引腳IRQ:中斷請求線。在鍵盤方式中,當(dāng)鍵盤RAM(先進(jìn)先出)中存有按下鍵的數(shù)據(jù)時,IRQ為高電平,向CPU提出中斷申請。(2)掃描信號輸出引腳CPU每次從鍵盤RAM中讀出一個字節(jié)數(shù)據(jù)時,IRQ就變?yōu)榈碗娖健?/p>

如果鍵盤RAM中還有未讀完的數(shù)據(jù),IRQ將再次變?yōu)楦唠娖?,再次提出中斷請求。SL0~SL3

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

控制(CNTL)和移位(SHIFT)的狀態(tài)由兩個獨(dú)立的附加開關(guān)決定,而掃描(D5、D4、D3)是被按鍵的列編碼,而回復(fù)(D2、D1、D0)則是被按鍵的行位置數(shù)據(jù)。(3)鍵盤RAM及其狀態(tài)寄存器鍵盤RAM:8字節(jié)先進(jìn)先出(FIFO)存儲器。內(nèi)部的FIFO狀態(tài)寄存器存放FIFO的工作狀態(tài),如FIFO是空還是滿,其中存有多少字符,是否操作出錯等等。當(dāng)FIFO存儲器空間不足時,狀態(tài)邏輯將產(chǎn)生IRQ=1信號,向單片機(jī)發(fā)出中斷申請。(4)顯示RAM和顯示地址寄存器顯示RAM:存顯示數(shù)據(jù)。16個字節(jié),可存放16位顯示信息。顯示RAM的輸出與顯示掃描配合,同時輪流驅(qū)動被選中的顯示位,使顯示器呈現(xiàn)穩(wěn)定的顯示(動態(tài)掃描)。4.8279的命令字和狀態(tài)字命令字:D7、D6、D5為命令特征位,來區(qū)分8條不同的命令字。狀態(tài)字:主要用于鍵盤工作方式,以指示鍵盤RAM中的字符數(shù)和有無錯誤發(fā)生。5.8279與鍵盤/顯示器的接口圖10-15為8279與8位顯示器,4×8鍵盤的接口電路。行線接8279的RL0~RL3,8279選用編碼方式,SL0~SL2經(jīng)74LS138(1)譯碼輸出,接列線,實現(xiàn)鍵盤逐列掃描。SL0~SL2又由74LS138(2)譯碼輸出到顯示器各位的公共陰極,進(jìn)行逐位掃描顯示。OUTB0~3、OUTA0~3輸出8位段碼。當(dāng)位切換時,BD*輸出為低電平,使74LS138(2)輸出全為高電平,顯示消隱。當(dāng)鍵盤上出現(xiàn)有效的閉合鍵時,鍵輸入數(shù)據(jù)自動進(jìn)入8279圖10-15鍵盤RAM中的鍵輸入數(shù)據(jù)。若要更新顯示器輸出,僅需改變顯示RAM中的內(nèi)容。圖10-15:8279的命令/狀態(tài)口地址為7FFFH,數(shù)據(jù)口地址為7FFEH。8279初始化程序如下:INITI:SETBEX1 ;允許外部中斷1中斷MOV DPTR,#7FFFH;命令/狀態(tài)口地址寫入DPTRMOV A,#0D1H ;控制字D1H送AMOVX @DPTR,A ;向命令/狀態(tài)口寫入控制字LP:MOVXA,@DPTR;讀8279的狀態(tài)JB Acc.7,LPMOV A,#00HMOVX@DPTR,AMOVA,#2AHMOVX@DPTR,ASETBEA……鍵輸入中斷服務(wù)程序:PINT1:PUSHPSWPUSHDPHPUSHDPLPUSHAccMOVDPTR,#7FFFH;向命令口寫入讀鍵盤RAM命令MOVA,#40HMOVX@DPTR,AMOVDPTR,#7FFEH;讀鍵輸入值MOVXA,@DPTRCJNEA,#37H,PRI1;判輸入停機(jī)命令否SETB20HPRI1:POPAccPOPDPLPOPDPHPOPPSWRETI顯示子程序:DIR:MOVDPTR,#7FFFH;輸出寫顯示RAM命令MOVA,#90HMOVX@DPTR,AMOVR0,#70HMOVR7,#08H ;送顯示RAM數(shù)據(jù)的個數(shù)MOVDPTR,#7FFEHDL0:MOVA,@R0ADDA,#05H ;05H為查表偏移量MOVCA,@A+PC ;查表得到段碼MOVX@DPTR,A ;寫入顯示RAMINCR0 ;顯示數(shù)據(jù)單元地址增1DJNZR7,DL0 ;8個顯示數(shù)據(jù)是否輸出完畢RETADSEG:DB3FH,06H,5BH,4FH,66H,6DH;段碼表(共陰極)

DB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,73H,3EHDB31H,6EH,1CH,23H,40H,03H DB18H,38H,00H10.3.3鍵盤/顯示器專用芯片HD7279A實現(xiàn)的鍵盤/顯示器接口1.鍵盤/顯示器專用芯片HD7279A簡介8279芯片是動態(tài)循環(huán)掃描顯示方式,與89C51單片機(jī)的接口需要8位數(shù)據(jù)線,還要擴(kuò)充譯碼器、段驅(qū)動器和位驅(qū)動器,接口電路復(fù)雜,占用印制板面積大。本節(jié)介紹的HD7279A是鍵盤/顯示器的串行控制芯片,能同時驅(qū)動8個共陰極LED顯示器(或64個獨(dú)立的LED發(fā)光二極管)和64(8×8)鍵的鍵盤矩陣。HD7279A采用的也是動態(tài)循環(huán)顯示方式,具有如下特點(diǎn):(1)與89C51單片機(jī)間采用串行接口方式,僅占用4條口線,接口簡單;(2)內(nèi)部含有譯碼器,可直接接收BCD碼或十六進(jìn)制碼,同時具有兩種譯碼方式,實現(xiàn)LED顯示器位尋址和段尋址,可以方便地控制每位LED顯示器中任意一段是否發(fā)光;(3)內(nèi)部含有驅(qū)動器,可以直接驅(qū)動25.4mm及以下LED數(shù)碼管,使外圍電路變得簡單可靠;(4)多種控制命令,如消隱、閃爍、左移、右移和段尋址、位尋址等;(5)含有片選信號輸入端,容易實現(xiàn)多于8位顯示器或多于64鍵的鍵盤控制;(6)具有自動消除鍵抖動并識別按鍵鍵值的功能。HD7279A芯片占用口線少,外圍電路簡單,還具有較高的性能價格比,已在智能儀器、家用電器、控制面板等單片機(jī)應(yīng)用領(lǐng)域日益獲得廣泛應(yīng)用。(1)引腳說明與電氣特性HD7279A芯片為28引腳標(biāo)準(zhǔn)雙列直插式封裝,單一的+5V供電。引腳如圖10-16所示,引腳功能如表10-6所列。位驅(qū)動輸出端DIG0~DIG7可分別連接8只LED數(shù)碼管的共陰極;段驅(qū)動輸出端SA~SG分別連接至LED數(shù)碼管的a~g段的陽極,而DP連至小數(shù)點(diǎn)dp的陽極。DIG0~DIG7和DP及SA~SG還分別是64鍵的鍵盤的列線和行線的端口,完成對鍵盤的譯碼和鍵值識別。8×8陣列中的每個鍵值可用讀鍵盤命令讀出,鍵值范圍是00H~3FH。圖10-16HD7279A引腳圖圖10-16HD7279A芯片與單片機(jī)連接僅需4條口線:CS*,DATA,CLK和KEY。CS*:當(dāng)單片機(jī)訪問HD7279A芯片(寫入命令、顯示數(shù)據(jù)、位地址、段地址或讀出鍵值)時,應(yīng)將CS*置為低電平。DATA:串行數(shù)據(jù)端,當(dāng)單片機(jī)向HD7279A芯片發(fā)送數(shù)據(jù)時,DATA為輸入端;當(dāng)單片機(jī)從HD7279A芯片讀入鍵值時,DATA為輸出端。CLK:數(shù)據(jù)串行傳送的同步時鐘輸入端,時鐘的上升沿將數(shù)據(jù)寫入HD7279A中或從HD7279A中讀出數(shù)據(jù)。KEY:按鍵信號輸出端,在無鍵按下時為高電平,在有鍵按下時變?yōu)榈碗娖?,并且一直保持到該按下鍵至釋放為止。RESET*:復(fù)位端,由低電平變?yōu)楦唠娖?,并?jīng)過18~25ms復(fù)位結(jié)束。通常,該端接+5V即可。若對可靠性要求較高,則可外接復(fù)位電路,或直接由單片機(jī)控制。RC:用于外接振蕩元件,其典型值:R=1.5k,C=15pF。NC:必須懸空,即不得有任何外部連接。表10-7所列為HD7279A的電氣特性。(2)控制命令與時序HD7279A芯片的控制命令由6條純命令、7條帶數(shù)據(jù)命令和1條讀鍵盤命令組成。①純命令(6條)。所有純命令都是1字節(jié)命令,如表10-8所列。②帶數(shù)據(jù)命令(7條)。均由雙字節(jié)組成,第1字節(jié)為命令標(biāo)志碼(有的還有位地址),第2字節(jié)為顯示內(nèi)容。按方式0譯碼顯示命令b.按方式1譯碼顯示命令c.不譯碼顯示命令d.閃爍控制命令e.消隱控制命令f.段點(diǎn)亮命令g.段關(guān)閉命令③讀取鍵盤命令

從HD7279A讀出當(dāng)前的按鍵值。命令第1字節(jié)為15H,表示單片機(jī)寫到HD7279A的是讀鍵命令,而第2字節(jié)d7~d0為從HD7279A中讀出的按鍵值,其范圍為00H~3FH。當(dāng)按鍵按下時,KEY引腳從高電平變?yōu)榈碗娖?,并保持到按鍵釋放為止。在此期間,若HD7279A收到來自單片機(jī)的讀鍵盤命令15H,則HD7279A輸出當(dāng)前的按鍵代碼。應(yīng)注意,HD7279A只能給出其中一個按下鍵的代碼,不適合需要2個或2個以上鍵同時按下的場合。如果確實需要雙鍵組合使用,可在單片機(jī)某位I/O引腳接一鍵,HD7279A所連鍵盤共同組成雙鍵功能。④時序。HD7279A采用串行方式與單片機(jī)通信,串行數(shù)據(jù)從DATA引腳送入或輸出,并與CLK端同步。當(dāng)片選信號CS*變?yōu)榈碗娖胶螅珼ATA引腳上的數(shù)據(jù)在CLK脈沖上升沿作用下寫入或讀出HD7279A的數(shù)據(jù)緩沖器。圖10-17a.純命令時序單片機(jī)發(fā)出8個CLK脈沖,向HD7279A發(fā)出8位命令,DATA引腳最后為高阻態(tài),如圖10-17所示。圖10-18b.帶數(shù)據(jù)命令時序單片機(jī)發(fā)出16個CLK脈沖,前8個向HD7279A發(fā)送8位命令;后8個向HD7279A傳送8位顯示數(shù)據(jù),DATA引腳最后為高阻態(tài),如圖10-18所示。c.讀鍵盤命令時序單片機(jī)發(fā)出16個CLK脈沖,前8個向HD7279A發(fā)送8位命令;發(fā)送完之后DATA引腳為高阻態(tài);后8個CLK由HD7279A向單片機(jī)返回8位按鍵值,DATA引腳為輸出狀態(tài)。最后一個CLK脈沖的下降沿將DATA引腳恢復(fù)為高阻態(tài),如圖10-19所示。圖10-19保證正確的時序是HD7279A正常工作的前提條件。當(dāng)選定HD7279A的振蕩元件RC和單片機(jī)的晶振之后,應(yīng)調(diào)節(jié)延時時間,使時序中的T1~T8滿足表10-16所列要求。由表中的數(shù)值可知HD7279A的速度,應(yīng)仔細(xì)調(diào)整HD7279A的時序,使其運(yùn)行時間接近最短。2.89C51與HD7279A接口設(shè)計(1)硬件接口電路圖10-20是與AT89C51單片機(jī)的接口電路,外接振蕩元件為典型值,89C51的晶振頻率為12MHz。上電后,HD7279A大約經(jīng)過15~18ms的時間才進(jìn)入工作狀態(tài)。HD7279A應(yīng)連接共陰極顯示器。對于不使用的按鍵和顯示器,可以不連接。省去的顯示器或?qū)︼@示器設(shè)置的消隱、閃爍屬性,均不影響鍵盤的使用。除非不使用顯示器,否則串聯(lián)在DP及SA~SG引線上的200Ω電阻不可省去。如果不使用鍵盤,圖10-20中與鍵盤連接的10kΩ電阻和100kΩ電阻便可省去。如果使用鍵盤,電路中的100kΩ下拉電阻則不可省去。單片機(jī)通過KEY引線電平判斷是否有鍵按下。在使用查詢方式時,該引腳接至單片機(jī)的外部中斷輸入端,同時應(yīng)將中斷觸發(fā)控制位設(shè)置成下降沿有效觸發(fā)方式;若設(shè)置成電平觸發(fā)方式,則在按鍵時間較長時可引發(fā)多次中斷申請問題。HD7279A采用動態(tài)循環(huán)掃描方式,如果采用的普通LED顯示器亮度不夠,則可采用高亮度或超高亮度的型號。圖10-20中的3、5、26引腳懸空。圖10-20(2)接口程序舉例根據(jù)圖10-20,編制程序?qū)崿F(xiàn)當(dāng)有按鍵按下時,單片機(jī)讀取該按鍵代碼并將其顯示在LED上。程序中使用單片機(jī)內(nèi)RAM位尋址的29H和28H兩個單元。29H單元的位地址為48H~4FH;28H單元的位地址為40H~47H。①發(fā)送29H單元中的數(shù)據(jù)到HD7279A,高位在前。程序入口條件為CS*=1,CLK=0。SEND: MOV R2,#08H ;發(fā)送8位數(shù)據(jù)

CLR P1.0 ;CS*=0 LCALL DELY1 ;延時50s(T1)LOOP1: MOV C,4FH ;29H單元的D7位傳至HD7279A MOV P1.2,C ;數(shù)據(jù)出現(xiàn)在DATA引腳上

SETB P1.1 ;置CLK為高電平,

數(shù)據(jù)寫入HD7279A MOV A,29H ;待發(fā)數(shù)據(jù)左移1位 RL AMOV 29H,ALCALL DELY2 ;延時8s(T2)CLR P1.1 ;置CLK為低電平 LCALL DELY2 ;延時8s(T3) DJNZ R2,LOOP1 ;檢測8位數(shù)據(jù)是否發(fā)送完畢

CLR P1.2 ;發(fā)送完畢,

DATA為低(輸出狀態(tài))

RET ;返回②讀入的鍵碼送到28H單元,高位在前。程序入口條件為CS*=0,CLK=0。RESE: MOV R2,#08H ;接收8位數(shù)據(jù) SETB P1.2 ;P1.2輸出鎖存器為高電平,

準(zhǔn)備輸入 LCALL DELY3 ;延時25s(T5)LOOP2:SETB P1.1 ;置CLK為高電平,

讀出HD7279A數(shù)據(jù) LCALL DELY2 ;延時8s(T6和T7) MOV A,28H ;接收數(shù)據(jù)左移1位 RL A MOV 28H,A MOV C,P1.2 ;接收1位數(shù)據(jù) MOV 40H,C ;讀入數(shù)據(jù)存入28H的D0位 CLR P1.1 ;置P1.1為低電平 LCALL DELY2 ;延時8s(T3) DJNZ R2,LOOP2 ;檢測8位數(shù)據(jù)是否發(fā)送完畢 CLR P1.2 ;接收完畢,

DATA引腳置低電平(輸出狀態(tài)) RET ;返回③查詢方式讀鍵值并顯示。 MOV P1,#0F9H ;CS*=1,KEY=1,CLK=0,DATA=0LCALL DELY4 ;延時25msMOV 29H,#0A4H ;復(fù)位命令 LCALL SEND SETB P1.0 ;CS*=1MAIN: JB P1.3,MAIN ;檢測按鍵,無鍵按下則等待 MOV 29H,#15H ;發(fā)讀鍵盤命令

LCALL SEND ;寫入HD7279A LCALL RESE ;讀鍵值到28H單元

SETB P1.0 ;CS*=1 MOV B,#0AH ;十六進(jìn)制鍵值轉(zhuǎn)換成BCD碼 MOV A,28H DIV AB MOV R1,A ;十位暫存于R1 MOV 29H,#81H ;按方式0譯碼顯示在L2位LED LCALL SEND ;命令寫入HD7279A LCALL DELY3 ;延時25s(T4) MOV 29H,R1 LCALL SEND ;顯示十位 SETB P1.0 ;CS*=1 MOV 29H,#80H ;按方式0譯碼顯示在L1位LED LCALL SEND LCALL DELY3 ;延時25s(T4) MOV 29H,B ;顯示個位 LCALL SEND SETB P1.0 ;CS*=1WAIT: JNB P1.3,WAIT ;等待按鍵釋放 SJMP MAIN延時子程序由用戶自行編寫。10.489C51與液晶顯示器(LCD)的接口LCD(LiquidCrystalDisplay):液晶顯示器的縮寫,被動式顯示器-液晶本身并不發(fā)光,而是經(jīng)液晶經(jīng)過處理后能改變光線通過方向的特性,而達(dá)到白底黑字或黑底白字顯示的目的。液晶顯示器具有功耗低、抗干擾能力強(qiáng)等優(yōu)點(diǎn),廣泛用在儀器儀表和控制系統(tǒng)中。10.4.1LCD顯示器的分類按排列形狀分:字段型、點(diǎn)陣字符型和點(diǎn)陣圖形。(1)字段型廣泛用于電子表、數(shù)字儀表、計算器中。(2)點(diǎn)陣字符型顯示字母、數(shù)字、符號。它是由5×7或5×10點(diǎn)陣組成,廣泛用在單片機(jī)系統(tǒng)中。(3)點(diǎn)陣圖形型筆記本電腦和彩色電視等設(shè)備中。10.4.2點(diǎn)陣字符型液晶顯示模塊介紹點(diǎn)陣字符型LCD顯示器,需相應(yīng)的LCD控制器、驅(qū)動器,來對LCD顯示器進(jìn)行掃描、驅(qū)動,以及一定空間的RAM和ROM來存儲寫入的命令和顯示字符的點(diǎn)陣?,F(xiàn)已將上述元部件和LCD顯示器用PCB連接到一起,稱為液晶顯示模塊LCM(LCDModule)。只向LCM送入相應(yīng)的命令和數(shù)據(jù)就可實現(xiàn)所需要的顯示內(nèi)容,接口簡單,靈活方便。分字符和圖形兩種。1.基本結(jié)構(gòu)(1)液晶板在上面排列著若干5×7或5×10點(diǎn)陣的字符顯示位,從規(guī)格上分為每行8、16、20、24、32、40位,有1行、2行及4行三類,根據(jù)需要,來選擇。(2)模塊電路框圖由控制器HD44780、驅(qū)動器HD44100及幾個電阻電容組成。HD44100是擴(kuò)展顯示字符位用的(例如:16字符×1行模塊就可不用HD44100,16字符×2行模塊就要用一片HD44100)。圖10-21引線號符號名稱功能1VSS地0V2VDD電源5V±5%3VEE液晶驅(qū)動電壓4RS寄存器選擇1:數(shù)據(jù)寄存器,0:命令寄存器5R/W*讀/寫1:讀;0:寫6E使能下降沿觸發(fā)7-14DB0-DB78位數(shù)據(jù)線數(shù)據(jù)傳輸表10-17液晶顯示模塊的引腳模塊14個引腳,其中有8條數(shù)據(jù)線,3條控制線,3條電源線,見表10-17。通過單片機(jī)寫入模塊的數(shù)據(jù)和指令,就可對顯示方式和顯示內(nèi)容作出選擇。RSR/W*操作00命令寄存器寫入01忙標(biāo)志和地址計數(shù)器讀出10數(shù)據(jù)寄存器寫入11數(shù)據(jù)寄存器讀出表10-18寄存器的選擇命令格式及命令功能說明

(1)內(nèi)部寄存器控制器HD44780內(nèi)有多個寄存器,如表10-18所示。RS位和R/W*引腳上的電平來選擇寄存器,讀還是寫,而DB7~DB0則決定命令功能。命令共11種:清除,返回,輸入方式設(shè)置,顯示開關(guān)控制,移位控制,功能設(shè)置,CGRAM(字符生成RAM)地址設(shè)置,DDRAM(顯示數(shù)據(jù)RAM)地址設(shè)置,讀忙標(biāo)志和地址,寫數(shù)據(jù)到CGRAM或DDRAM,從CGRAM或DDRAM讀數(shù)據(jù)。這些命令功能強(qiáng):可組合成各種輸入、顯示、移位方式以滿足不同的要求。(2)標(biāo)準(zhǔn)字符庫

圖10-22:字符庫的內(nèi)容、字符碼和字型的對應(yīng)關(guān)系。例如“A”的字符碼為41H,“B”的字符碼為42H。圖10-2210.4.389C51與LCD的接口及軟件編程1.89C51與LCD模塊的接口接口電路見圖10-23。將LCM掛接在89C51的總線上,通過對數(shù)據(jù)總線的讀寫實現(xiàn)對LCM的控制。圖10-232.軟件編程初始化用戶所編的顯示程序,開始必須進(jìn)行初始化,否則模塊無法正常顯示。初始化流程如圖10-24所示。

圖10-24顯示程序(自己閱讀)

10.589C51與TPμP-40A/16A微型打印機(jī)的接口內(nèi)部有一個控制用單片機(jī),固化有控打程序,智能化程度高。常用的微型打印機(jī):TPμP-40A/16A、GP16以及XLF嵌入儀器面板上的漢字微型打印機(jī)。1.TPμP-40A/16A微型打印機(jī)

單片機(jī)控制的微型智能打印機(jī)。TPμP-40A與TPμP-16A的接口信號與時序完全相同,操作方式相近,硬件電路及插腳完全兼容,只是指令代碼不完全相同。TPμP-40A每行40個字符,TPμP-16A則打印16個字符。2.主要性能、接口要求及時序(1)TPμP-40A主要技術(shù)性能單片機(jī)控制,2KB控打程序及標(biāo)準(zhǔn)的Centronics并行接口??纱蛴∪緼SCII代碼字符及128個非標(biāo)準(zhǔn)字符和圖符。用戶定義的16個代碼字符(6×7點(diǎn)陣)。可打印出8×240點(diǎn)陣的圖樣(漢字或圖案點(diǎn)陣)。字符、圖符和點(diǎn)陣圖可在寬和高的方向放大為×2、×3、×4倍。每行字符的點(diǎn)行數(shù)(包括字符的行間距)可用命令更換。即字符行間距空點(diǎn)行在0~256間任選。(2)接口信號采用國際上流行的Centronics打印機(jī)并行接口,與單片機(jī)間是通過一條20芯扁平電纜及接插件相連。打印機(jī)有一個20線扁平插座,信號引腳排列如圖10-25所示。引腳介紹:DB0~DB7:數(shù)據(jù)線,單向傳輸,由單片機(jī)輸入給打印機(jī)。STB*:數(shù)據(jù)選通信號。在該信號的上升沿時,數(shù)據(jù)線上的8位并行數(shù)據(jù)被打印機(jī)讀入機(jī)內(nèi)鎖存。圖10-25BUSY:打印機(jī)“忙”狀態(tài)信號。當(dāng)該信號有效(高電平)時,表示打印機(jī)正忙。此時,單片機(jī)不得向打印機(jī)送入新的數(shù)據(jù)。ACK*:打印機(jī)的應(yīng)答信號。低電平有效,表明打印機(jī)已取走數(shù)據(jù)線上的數(shù)據(jù)。ERR*:“出錯”信號。當(dāng)送入打印機(jī)的命令格式出錯時,打印機(jī)立即打印一行出錯信息,提示出錯。在打印出錯信息之前,該信號線出現(xiàn)一個負(fù)脈沖,脈沖寬度為30μs。(3)接口信號時序接口信號時序如圖10-26所示。圖10-26選通信號STB*寬度需大于0.5μs。應(yīng)答信號ACK*可與STB*信號作為一對應(yīng)答聯(lián)絡(luò)信號,也可與BUSY作為一對應(yīng)答聯(lián)絡(luò)信號。3.字符代碼及打印命令寫入的全部代碼共256個,其中00H無效。代碼:01H~0FH為打印命令;代碼:10H~1FH為用戶自定義代碼;代碼:20H~7FH為標(biāo)準(zhǔn)ASCII代碼;代碼:80H~FFH為非ASCII代碼,如圖10-27所示。其中包括少量漢字、希臘字母、塊圖圖符和一些特殊字符。圖10-274.TPμP-40A/16A與89C51單片機(jī)接口設(shè)計TPμP-

溫馨提示

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

最新文檔

評論

0/150

提交評論