第7章AT89C51人機(jī)交互通道接口技術(shù)_第1頁
第7章AT89C51人機(jī)交互通道接口技術(shù)_第2頁
第7章AT89C51人機(jī)交互通道接口技術(shù)_第3頁
第7章AT89C51人機(jī)交互通道接口技術(shù)_第4頁
第7章AT89C51人機(jī)交互通道接口技術(shù)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

7.1單片機(jī)與數(shù)碼管動態(tài)顯示的接口技術(shù)7.1.1基礎(chǔ)知識1.LED數(shù)碼管動態(tài)顯示方式數(shù)碼管靜態(tài)顯示穩(wěn)定,但占用單片機(jī)I/O口線多。在多位數(shù)碼管顯示的情況下,為節(jié)省口線,簡化電路,將所有數(shù)碼管段選線一一對應(yīng),并聯(lián)在一起,由(有時(shí)要通過驅(qū)動元件)單片機(jī)同一個(gè)8位I/O口控制;而位選線獨(dú)立,分別(一般要通過驅(qū)動元件)由各I/O口線控制。本項(xiàng)目采用四聯(lián)(位)共陽數(shù)碼管。其實(shí)物照片、結(jié)構(gòu)示意如圖7-1所示。圖7-2為單片機(jī)控制四聯(lián)(位)數(shù)碼管動態(tài)顯示的典型電路原理圖。4個(gè)數(shù)碼管的段碼共用一個(gè)I/O口P2,在每個(gè)瞬間,數(shù)碼管的段碼相同。要達(dá)到多位顯示的目的,就要在每一瞬間只有一位數(shù)碼管com端有效,即只選通一位數(shù)碼管,四位數(shù)碼管依次輪流選通,每位顯示本位的字符,并延時(shí)一段時(shí)間,以適應(yīng)視覺暫留的效果。2.延時(shí)時(shí)間的估算延時(shí)可由人眼視覺暫留時(shí)間來估算。一般來說,1s內(nèi)對4位數(shù)碼管掃描24次,就可看到不閃爍的顯示,即掃描一次時(shí)間約42ms。由此可以計(jì)算出,對應(yīng)于每位數(shù)碼管顯示延時(shí)約為11ms。經(jīng)實(shí)驗(yàn)證實(shí),每位延時(shí)超過18ms,則可以觀察到明顯閃爍。本例中選擇每位數(shù)碼管延時(shí)時(shí)間為10ms。3.?dāng)?shù)碼管LED限流(保護(hù))電阻的估算數(shù)碼管由LED發(fā)光管組成。一般數(shù)碼管的壓降(VLED)為1.8V左右。若電源電壓為5V,數(shù)碼管每段LED的電流為10mA,則估算的限流電阻阻值為R=(VVLED)/0.010=320。本例取為300。7.1.2“數(shù)碼管動態(tài)顯示裝置”電路設(shè)計(jì)和程序設(shè)計(jì)1.電路設(shè)計(jì)2.匯編語言程序設(shè)計(jì)、匯編ORG 00HSJMP STARORG 30HSTAR: MOV P1,#0FFH ;關(guān)閉位選口

MOV P2,#0FFH ;關(guān)閉段選口ST1: MOV R0,#0 ;(R0)=0 MOV R1,#0FEH ;選通P1.0控制的顯示器ST2: MOV A,R0 LCALL SEG7 ;將R0中數(shù)字轉(zhuǎn)換為顯示碼,從P2口輸出CPL A ;取反,將陰碼變?yōu)殛柎a MOVP2,A ;通過R0得到的顯示段碼送P2口 MOV A,R1 ;位選通數(shù)據(jù)送P1 MOV P1,A LCALL DLY ;延時(shí)10ms MOV P1,#0FFH ;關(guān)閉位選通 INC R0 ;計(jì)數(shù)+1 CJNE R0,#4H,ST3 ;4位是否掃描完 SJMP ST1 ;0~3掃描完,重新開始ST3: MOV A,R1 ;0~3依次顯示 RL A ;更新選通位 MOV R1,A SJMP ST2 ;循環(huán),顯示下一位DLY: MOV R7,#20 ;延時(shí)10ms MOV R6,#0DLY1: DJNZ R6,$ DJNZ R7,DLY1 RETSEG7: INC A ;將數(shù)字轉(zhuǎn)換為顯示碼 MOVC A,@A+PC RET DB 3FH,6,5BH,4FH ;共陰極段碼:0,1,2,3 DB 66H,6DH,7DH,7 ;4,5,6,7 DB 7FH,6FH,77H,7CH ;8,9,A,B DB 39H,5EH,79H,71H ;C,D,E,F END7.2單片機(jī)與LCD液晶顯示器的接口技術(shù)7.2.1基礎(chǔ)知識1.LCD液晶顯示器優(yōu)點(diǎn)和分類在單片機(jī)應(yīng)用系統(tǒng)中,LCD液晶顯示器因具有微功耗、小體積、使用靈活等優(yōu)點(diǎn)而得到了廣泛應(yīng)用。LCD可分筆段型、點(diǎn)陣字符型和點(diǎn)陣圖符型。各類型都有與之配套的控制、驅(qū)動芯片。本項(xiàng)目以“字符型LCD液晶顯示裝置”(簡稱“字符型液晶顯示裝置”)為例講解單片機(jī)與LED顯示器的接口技術(shù)。該裝置使用點(diǎn)陣字符型(簡稱字符型)1602C。首先熟悉有關(guān)字符型LCD液晶顯示器等的基礎(chǔ)知識。2.字符型LCD液晶顯示器字符型LCD液晶顯示器是專用于顯示字母、數(shù)字、符號等的點(diǎn)陣式LCD。它們多與HD44780控制驅(qū)動器集成在一起,構(gòu)成字符型LCD液晶顯示模塊,用LCM(LiquidCrystalDisplayModule)表示,有16×1、16×2、20×2、40×2等產(chǎn)品。圖7-4是16×2(可顯示兩行16個(gè)字符)的1602型字符液晶模塊JM1602CLCM實(shí)物照片。3.液晶顯示模塊LCM液晶顯示模塊LCM由字符型LCD液晶顯示器和HD44780控制驅(qū)動器構(gòu)成。HD44780由DDRAM、CGROM、IR、DR、BF、AC等大規(guī)模集成電路組成,具有簡單且功能較強(qiáng)的指令集,可實(shí)現(xiàn)字符移動、閃爍等顯示效果。(1)引腳定義(2)數(shù)據(jù)顯示RAM:DDRAM數(shù)據(jù)顯示RAM(DataDisplayRAM,DDRAM)用以存放要顯示的字符碼,只要將標(biāo)準(zhǔn)的ASCII碼放入DDRAM中,內(nèi)部控制線路就會自動將數(shù)據(jù)傳送到顯示器上,并顯示出該ASCII碼對應(yīng)的字符。(3)指令寄存器IR、數(shù)據(jù)寄存器DRLCD內(nèi)有兩個(gè)寄存器:一個(gè)是指令寄存器(InstructionRegister,IR),另一個(gè)是數(shù)據(jù)寄存器(DataRegister,DR)。IR用來存放由CPU送來的指令代碼,如光標(biāo)復(fù)位、清屏、CGRAM、DDRAM地址信息等;DR則用來存放要顯示的數(shù)據(jù)。字符型LCD寄存器選擇如表7-2所示。(4)忙碌標(biāo)志BF當(dāng)BF=1時(shí),LCM正忙于處理內(nèi)部數(shù)據(jù),執(zhí)行完當(dāng)前指令后,系統(tǒng)會自動清除BF。寫指令前必須先檢查BF標(biāo)志,當(dāng)BF=0時(shí),才可將指令寫入LCM控制器。(5)顯示器地址①地址計(jì)數(shù)器AC。AC根據(jù)指令對DDRAM或CGRAM指派地址。當(dāng)指令地址寫入IR時(shí),地址信息也由IR送入AC中。執(zhí)行將數(shù)據(jù)寫入DDRAM或CGRAM(或由此讀出)命令后,AC的內(nèi)容會自動加1或減1。當(dāng)讀命令寄存器IR時(shí)(RS=0、R/=1),AC的內(nèi)容輸出到DB0~DB6。由此得到當(dāng)前字符顯示地址,判斷是否需要換行。②字符在LCD上的顯示地址如表7-3所示。DB7=1(DB6~DB0),第一行為80H、81H…8FH,第二行為C0H、C1H…CFH。(6)LCD字庫HD44780內(nèi)置了192個(gè)常用字符,存于字符產(chǎn)生器CGROM(CharacterGeneratorROM)中。另外,還有由用戶自定義的字符產(chǎn)生RAM,稱為CGRAM(CharacterGeneratorRAM)。用戶可以通過編程將字符圖案寫入CGRAM中,可寫8個(gè)5×8點(diǎn)陣或4個(gè)5×10點(diǎn)陣的字符圖案。字庫中的0x00~0x0F為用戶自定義CGRAM,0x20~0x7F為標(biāo)準(zhǔn)的ASCII碼,0xA0~0xFF為日文字符和希臘文字符,其余字符碼(0x10~0x1F及0x80~0x9F)沒有定義。(7)指令組表表7-4列出了LCM指令組表,說明如下。①清除顯示屏,即將20H(空格的ASCII碼)填入所有的DDRAM,使LCD顯示器全部清除,地址計(jì)數(shù)器清零,光標(biāo)移到原點(diǎn)。②光標(biāo)回原點(diǎn)(屏幕左上角),DDRAM中的數(shù)據(jù)庫不變。③CGRAM地址設(shè)定。此命令用來設(shè)定CGRAM地址,由A5~A0位決定,范圍為0~3FH。地址存放在地址計(jì)數(shù)器AC中。寫入本指令后,隨后必須是數(shù)據(jù)寫入/讀取CGRAM的指令。④DDRAM地址設(shè)定。由A6~A0來決定地址,并存放于AC中,寫入本指令后,隨后必須是數(shù)據(jù)寫入/讀取DDRAM的指令。⑤讀取BF/地址計(jì)數(shù)器。讀取數(shù)據(jù)前可檢查BF,BF=1,不可存取LCD,直到BF=0。而地址計(jì)數(shù)器的內(nèi)容則為DDRAM或CGRAMM的地址。⑥寫入CGRAM或DDRAM。在地址設(shè)定指令后,本指令把字符碼寫入DDRAM內(nèi),以便顯示相應(yīng)的字符,或把自創(chuàng)的字符碼存入CGRAM中。⑦讀取CGRAM或DDRAM中的數(shù)據(jù)。在地址設(shè)定指令后,用來讀取CGRAM或DDRAM中的數(shù)據(jù)。7.2.2“字符型液晶顯示裝置”電路設(shè)計(jì)和程序設(shè)計(jì)1.電路設(shè)計(jì)單片機(jī)與16×2字符型LCM的接口電路如圖7-5所示,圖左下方為所用元件列表。圖中的16×2LCD采用1602。2.匯編語言程序設(shè)計(jì)、匯編ORG 00HRS EQUP3.5 ;位定義RW EQUP3.6E EQUP3.7MOV P3,#0FFHMOV P1,#01H ;清除屏幕ACALL ENABLEMOV P1,#38H ;8位、兩行、5×7點(diǎn)陣ACALL ENABLEMOV P1,#0FH ;開顯示ACALL ENABLEMOV P1,#06H ;移動光標(biāo)ACALL ENABLEMOV P1,#80H ;顯示位置ACALL ENABLEL3: MOV P1,#01HACALL ENABLEMOV DPTR,#TAB1 ;送第一字符CALL WRITE1MOV P1,#0C0H ;寫入顯示起始地址(第二行第一個(gè)位置)ACALL ENABLE ;調(diào)用寫入命令子程序MOV DPTR,#TAB2 ;送第二字符CALL WRITE1CALL DELAYCALL DELAYCALL DELAYJMP L3ENABLE: ;送命令,LCD使能CLR RSCLR RWCLR EACALL DELAYSETB ERETWRITE1: ;送字符串MOV R1,#00HA1: MOV A,R1MOVC A,@A+DPTRCALL WRITE2INC R1CJNE A,#00H,A1 ;以00H做字符串結(jié)束標(biāo)志RETWRITE2: ;送單個(gè)字符MOV P1,ASETB RSCLR RWCLR ECALL DELAYSETB ERETDELAY: ;延時(shí)子程序MOV R7,#255D1: MOV R6,#255D2: DJNZ R6,D2DJNZ R7,D1RET;以下每個(gè)表格都是一行字符,以00H作為結(jié)尾。TAB1: DB'^_^TOLCD',00TAB2: DB'Gladtoseeyou',00END7.3單片機(jī)與矩陣式鍵盤的接口技術(shù)7.3.1基礎(chǔ)知識1.鍵的可靠輸入機(jī)械型按鍵的開、關(guān)分別是機(jī)械觸點(diǎn)的合、斷作用。按鍵的電波形如圖7-7所示(設(shè)按鍵口平時(shí)接高電平,有鍵按下時(shí)為低電平)。由于機(jī)械觸點(diǎn)的彈性作用,在閉合及斷開的瞬間均有抖動過程,會出現(xiàn)一系列電脈沖。抖動時(shí)間長短,與開關(guān)的機(jī)械特性、按鍵動作等因素有關(guān),一般為5~10ms。按鍵的鍵穩(wěn)定時(shí)間,由操作者的按鍵動作決定,一般大于0.1s。為保證單片機(jī)對鍵的一次閉合僅做一次鍵輸入處理,必須去除抖動影響。通??捎糜布蜍浖椒ㄈコ秳佑绊?。硬件消抖可采用R-S觸發(fā)器或單穩(wěn)態(tài)電路,軟件消抖可用延時(shí)法。單片機(jī)在檢測到有鍵按下時(shí),執(zhí)行約10ms的延時(shí)程序,以消除前沿抖動影響。接著檢查該鍵是否仍保持鍵閉合狀態(tài)電平,若保持閉合狀態(tài)電平,則確認(rèn)該鍵按下。再檢測按鍵是否彈起,一旦檢測到按鍵彈起,再延時(shí)約10ms,消除后沿抖動影響。完成一個(gè)完整的確認(rèn)按鍵的過程。2.獨(dú)立式按鍵獨(dú)立式按鍵是指直接用I/O口線構(gòu)成的單個(gè)按鍵電路,如圖7-8所示。3.矩陣式鍵盤矩陣式鍵盤又稱行列式鍵盤。用I/O口線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上。N條口線最多可構(gòu)造N2個(gè)按鍵。4×4的行列結(jié)構(gòu)可構(gòu)成16個(gè)鍵的鍵盤,如圖7-9中部所示。無按鍵時(shí)各行、列線彼此相交而不相連。當(dāng)有鍵按下時(shí),如按下“F”鍵,則與“F”相連的行線P2.3、列線P2.7相連。由行、列線的電平狀態(tài)可以識別唯一與之相連的按鍵,此識別過程稱為讀鍵。7.3.2“矩陣式鍵盤接口裝置”電路設(shè)計(jì)和程序設(shè)計(jì)1.電路設(shè)計(jì)2.匯編語言程序設(shè)計(jì)、匯編程序功能:按0-F任意一個(gè)鍵,數(shù)碼管就顯示該鍵的碼號。反轉(zhuǎn)讀鍵法的程序設(shè)計(jì)ORG 00HSJMP STARORG 30HSTAR: ACALL DE100 ;調(diào)用延時(shí)KEY: MOV P2,#0FH ;查鍵開始,行定義輸入,列定義輸出為0 MOV A,P2 ;讀入P2的值 CPL A ANL A,#0FH ;確保低4位 JZ KEY ;無鍵按下,返回 MOV R5,A ;有鍵按下,暫存 MOV P2,#0F0H ;列定義輸入,行定義輸出為0 MOV A,P2 CPL A ANL A,#0F0H JZ KEY MOV R4,A ;暫存高4位輸入 LCALL DE10 ;消抖動KEY1: MOV A,P2 ;等待鍵松開 CPL A ANL A,#0F0H JNZ KEY1 ;按鍵沒松開,等待 LCALL DE10 MOV A,R4 ;取列值 ORL A,R5 ;與行值相或?yàn)榻M合鍵值 MOV B,A ;結(jié)果暫存于B中 MOV R1,#0 ;鍵值寄存器R1賦初值=0 MOV DPTR,#TAB ;取鍵碼表首址到DPTRVAL0: MOV A,R1 MOVC A,@A+DPTR ;查鍵碼表 CJNE A,B,VAL ;非當(dāng)前按鍵碼,繼續(xù)查找 ACALL KEYV ;以按鍵碼查顯示碼 MOV P1,A ;查找到顯示碼送P1二極管顯示 SJMP KEY ;下一次按鍵輸入,循環(huán)VAL: I

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論