第8章人機(jī)接口_第1頁(yè)
第8章人機(jī)接口_第2頁(yè)
第8章人機(jī)接口_第3頁(yè)
第8章人機(jī)接口_第4頁(yè)
第8章人機(jī)接口_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第8章章 人機(jī)通道配置人機(jī)通道配置與接口技術(shù)與接口技術(shù)段顯示(7段、米字型等)和點(diǎn)陣顯示(58、88點(diǎn)陣等)。8.1 8.1 顯示器及其接口顯示器及其接口發(fā)光二極管LED(Light Emitting Diode)顯示器液晶LCD(Liquid Crystal Display)顯示器CRT顯示器8.1.1 LED8.1.1 LED顯示器接口顯示器接口 w 1LED顯示器結(jié)構(gòu) LED顯示器內(nèi)部由多個(gè)發(fā)光二極管組成。 為使為使LEDLED顯示不同的符號(hào)或數(shù)字顯示不同的符號(hào)或數(shù)字,要為,要為L(zhǎng)EDLED提供提供段碼段碼(或稱(或稱字型碼字型碼)。)。提供給提供給LEDLED顯示器的段碼顯示器的段碼

2、(字型碼字型碼)正好是一個(gè)字正好是一個(gè)字節(jié)(節(jié)(8 8段)段)。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:2顯示字形與字段碼關(guān)系顯示字形與字段碼關(guān)系 aabcdefga bcedgfGNDGND7 6 91 254938dpdpD7 D6 D5 D4 D3 D2 D1 D0字 dp gfedcba011 0 0 0000111 1 1 1001210 1 0 0100310 1 1 0000410 0 1 1001510 0 1 0010610 0 0 0010711 1 1 1000810 0 0 0000910 0 1 0000 LED LED數(shù)碼管顯示字形與字段碼關(guān)系

3、數(shù)碼管顯示字形與字段碼關(guān)系 顯示字形顯示字形共陽(yáng)極字段碼共陰極字段碼顯示字形顯示字形共陽(yáng)極字段碼共陰極字段碼0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHb83H7CH3B0H4FHCC6H39H499H66HdA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H“熄滅”FFH00H880H7FH 數(shù)碼管與數(shù)碼管與P1P1口接口連接電路口接口連接電路 8051 MOV P1, #3FH(共陰極)共陰極)MOV P1, #0C0H(共陽(yáng)極)(共陽(yáng)極)dpgfedcbaLED顯示器的接口方式顯示器的接口方式w 硬件譯碼方式 采用BCD碼譯碼器/

4、驅(qū)動(dòng)器(如4511、74LS48),通過(guò)譯碼把一位BCD碼數(shù)翻譯為相應(yīng)的字形代碼,然后由驅(qū)動(dòng)器提供足夠的功率去驅(qū)動(dòng)發(fā)光二極管。特點(diǎn):占用資源少,編程簡(jiǎn)單 但顯示字形有限電路:課本P131 圖8-2硬件譯碼方式硬件譯碼方式LED顯示器的接口方式顯示器的接口方式w 軟件譯碼方式 由軟件完成硬件譯碼器的功能特點(diǎn):顯示字形較多,可由用戶自己編碼決定。 但占用接口資源較多,且一般要配置驅(qū)動(dòng)器,編程相對(duì)復(fù)雜。電路:課本P132 圖8-3軟件譯碼方式軟件譯碼方式圖圖 軟件譯碼流程圖軟件譯碼流程圖開(kāi)始開(kāi)始取顯示內(nèi)容值取顯示內(nèi)容值查段碼表值查段碼表值送段碼值至顯示送段碼值至顯示返回返回N N個(gè)個(gè)LEDLED顯示

5、塊有顯示塊有N N位位選線位位選線和和8 8N N根段碼線根段碼線。 下圖是下圖是4 4位位 LEDLED顯示器的結(jié)構(gòu)原理圖。顯示器的結(jié)構(gòu)原理圖。3LED數(shù)碼顯示方式及電路數(shù)碼顯示方式及電路 段碼線段碼線控制控制顯顯示的字型示的字型,位選線位選線控制控制該該顯示位的亮或顯示位的亮或暗。暗。(1)靜態(tài)顯示方式:)靜態(tài)顯示方式:靜態(tài)顯示和動(dòng)態(tài)顯示靜態(tài)顯示和動(dòng)態(tài)顯示各位的公共端連接在一起(接地或各位的公共端連接在一起(接地或+5V+5V)。)。 每位的段碼線(每位的段碼線(a adpdp)分別)分別與一個(gè)與一個(gè)8 8位的鎖存器位的鎖存器輸出相連。輸出相連。 顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持

6、顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持不變,直到送入另一個(gè)段碼為止。不變,直到送入另一個(gè)段碼為止。顯示的亮度高顯示的亮度高。圖7-33 N位LED靜態(tài)顯示原理圖 該電路各位可獨(dú)立顯示。該電路各位可獨(dú)立顯示。 公共端直接接地(共陰極)或接電源公共端直接接地(共陰極)或接電源(共陽(yáng)極),段碼線分別與(共陽(yáng)極),段碼線分別與I/O口線相連??诰€相連。圖圖 4511驅(qū)動(dòng)驅(qū)動(dòng)LED顯示原理圖(靜態(tài))顯示原理圖(靜態(tài))輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺(jué)暫留作用,使人的感覺(jué)好像各位數(shù)碼管同時(shí)都在顯示。(2)動(dòng)態(tài)顯示動(dòng)態(tài)顯示w 特點(diǎn):將所有數(shù)碼管的段選線并聯(lián)在一起,通過(guò)控制

7、位選信號(hào)來(lái)控制數(shù)碼管的點(diǎn)亮。數(shù)碼管采用動(dòng)態(tài)掃描顯示。w 動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的限流電阻。 4 4位位8 8段段LEDLED動(dòng)態(tài)顯示電路。其中段碼線占用一個(gè)動(dòng)態(tài)顯示電路。其中段碼線占用一個(gè)8 8位位I/OI/O口,而位選線占用一個(gè)口,而位選線占用一個(gè)4 4位位I/OI/O口???。圖為圖為8 8位位LEDLED動(dòng)態(tài)顯示動(dòng)態(tài)顯示2003.10.102003.10.10的過(guò)程的過(guò)程。圖(圖(a)a)是顯示過(guò)程,是顯示過(guò)程,某一時(shí)刻,只有一位某一時(shí)刻,只有一位LEDLED被選通被選通 顯示,其余位則是熄滅的;顯示,其余位則是熄滅的;圖(圖(b)b)

8、是實(shí)際顯示結(jié)果,是實(shí)際顯示結(jié)果,人眼看到的是人眼看到的是8 8位穩(wěn)定位穩(wěn)定的的 同時(shí)顯示同時(shí)顯示的字符。的字符。圖圖 8155擴(kuò)展擴(kuò)展LED顯示原理圖(動(dòng)態(tài))顯示原理圖(動(dòng)態(tài))公共端分別接公共端分別接I/O口線,段碼線共用一組口線,段碼線共用一組I/O口線??诰€。w 靜態(tài)顯示n課本P134 例8-3w 動(dòng)態(tài)顯示n課本P138 例8-58.2 8.2 鍵盤(pán)及其接口鍵盤(pán)及其接口w 鍵盤(pán)是由若干按鍵組成的開(kāi)關(guān)矩陣,它是微型計(jì)算機(jī)最常用的輸入設(shè)備,用戶可以通過(guò)鍵盤(pán)向計(jì)算機(jī)輸入指令、地址和數(shù)據(jù)。鍵盤(pán):一組按鍵開(kāi)關(guān)的集合鍵盤(pán):一組按鍵開(kāi)關(guān)的集合。8.2.1 8.2.1 按鍵開(kāi)關(guān)的抖動(dòng)問(wèn)題按鍵開(kāi)關(guān)的抖動(dòng)問(wèn)題

9、組成鍵盤(pán)的按鍵有觸點(diǎn)式和非觸點(diǎn)式兩種,單片機(jī)中應(yīng)用的一般是由機(jī)械觸點(diǎn)構(gòu)成的。由于按鍵是機(jī)械觸點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),會(huì)有抖動(dòng)。 抖動(dòng)對(duì)于人來(lái)說(shuō)是感覺(jué)不到的,但對(duì)單片機(jī)來(lái)說(shuō),這已是一段“漫長(zhǎng)”的時(shí)間了。 消除抖動(dòng)的方法消除抖動(dòng)的方法經(jīng)過(guò)削抖電路后使按鍵的電平信號(hào)只有兩種穩(wěn)定的狀態(tài)。常用的削抖電路有觸發(fā)器削抖電路、濾波削抖電路兩種。硬件消抖軟件消抖當(dāng)系統(tǒng)中需要鍵盤(pán)數(shù)量比較多時(shí)可采用軟件削抖方法對(duì)鍵盤(pán)抖動(dòng)進(jìn)行消除。 采用軟件削抖方法可省去硬件削抖電路,但鍵盤(pán)的工作速度將被降低。 軟件消抖的原理: 按鍵觸點(diǎn)閉合或斷開(kāi)瞬間的抖動(dòng)時(shí)間一般為5l0ms。而鍵的穩(wěn)定閉合時(shí)間大約為十分之幾秒到幾秒。軟件消抖

10、采用延時(shí)比較判斷消除抖動(dòng)。圖圖 軟件消抖流程圖軟件消抖流程圖延時(shí)時(shí)間如何延時(shí)時(shí)間如何設(shè)定?設(shè)定?8.2.2 8.2.2 鍵盤(pán)接口的工作原理鍵盤(pán)接口的工作原理獨(dú)立式獨(dú)立式按鍵接口和按鍵接口和行列式行列式鍵盤(pán)接口。鍵盤(pán)接口。1.1.獨(dú)立式鍵盤(pán)接口獨(dú)立式鍵盤(pán)接口 各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過(guò)各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過(guò)檢檢測(cè)輸入線的電平狀態(tài)測(cè)輸入線的電平狀態(tài)可很容易判斷那個(gè)鍵被按下??珊苋菀着袛嗄莻€(gè)鍵被按下。此種接口此種接口適于鍵數(shù)較少適于鍵數(shù)較少或或操作速度較高操作速度較高的場(chǎng)合。的場(chǎng)合。圖(圖(a a)為)為中斷方式的獨(dú)立式中斷方式的獨(dú)立式鍵盤(pán)工作電路鍵盤(pán)工作電路圖(

11、圖(b b)為)為查詢方式的獨(dú)立式查詢方式的獨(dú)立式鍵盤(pán)工作電路鍵盤(pán)工作電路。例:獨(dú)立式按鍵,查詢方式,設(shè)例:獨(dú)立式按鍵,查詢方式,設(shè)Program0 Program7分別為按鍵分別為按鍵K0K7的功能程序。程序清單如下:的功能程序。程序清單如下:ORG 0000HKEY0:MOV P1,#0FFHMOV A,P1CPL AJZ KEY0ACALL DEL12msMOV A,P1CPL AJZ KEY0JNBACC.0,KEY_1AJMP Program0KEY_1:JNB ACC.1,KEY_2AJMP Program1KEY_2:JNB ACC.2,KEY_3AJMP Program2AJM

12、P Program7Program0:AJMP KEY_0Program1:AJMP KEY_0Program7:RET2. 行列式行列式(矩陣式矩陣式)鍵盤(pán)接口鍵盤(pán)接口 用于按鍵數(shù)目較多的場(chǎng)合,用于按鍵數(shù)目較多的場(chǎng)合,由由行線和列線組成行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。按鍵位于行、列的交叉點(diǎn)上。 按鍵數(shù)目較多的場(chǎng)合按鍵數(shù)目較多的場(chǎng)合,行列式鍵盤(pán)與獨(dú)立式鍵盤(pán),行列式鍵盤(pán)與獨(dú)立式鍵盤(pán)相比,要相比,要節(jié)省很多的節(jié)省很多的I/OI/O口線口線。(1)行列式鍵盤(pán)工作原理)行列式鍵盤(pán)工作原理 無(wú)鍵按下,該行線為高電平,無(wú)鍵按下,該行線為高電平,當(dāng)有鍵按下時(shí),當(dāng)有鍵按下時(shí),行線電平由列線的電平來(lái)決

13、定行線電平由列線的電平來(lái)決定。 由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)生影響,必須生影響,必須將行、列線信號(hào)配合起來(lái)并作適當(dāng)?shù)奶帉⑿?、列線信號(hào)配合起來(lái)并作適當(dāng)?shù)奶幚恚拍艽_定閉合鍵的位置理,才能確定閉合鍵的位置。(2 2)按鍵的識(shí)別方法)按鍵的識(shí)別方法a. a. 掃描法掃描法 以以4X44X4鍵盤(pán)中鍵盤(pán)中3 3號(hào)鍵被按下為例,來(lái)說(shuō)明此鍵號(hào)鍵被按下為例,來(lái)說(shuō)明此鍵時(shí)如何被識(shí)別出來(lái)的。時(shí)如何被識(shí)別出來(lái)的。識(shí)別鍵盤(pán)有無(wú)鍵被按下的方法,分兩步進(jìn)行:識(shí)別鍵盤(pán)有無(wú)鍵被按下的方法,分兩步進(jìn)行:第第1 1步:步:識(shí)別鍵盤(pán)有無(wú)鍵按下;識(shí)別鍵盤(pán)有無(wú)鍵按下;方法:鍵盤(pán)方

14、法:鍵盤(pán)行行線一端經(jīng)電阻接線一端經(jīng)電阻接+5V+5V電源,另一端接電源,另一端接單片機(jī)的單片機(jī)的輸入口輸入口鍵盤(pán)鍵盤(pán)列列線一端接單片機(jī)的線一端接單片機(jī)的輸出口輸出口經(jīng)輸出口向所有列線輸出低電平,讀取行線狀態(tài)。經(jīng)輸出口向所有列線輸出低電平,讀取行線狀態(tài)。若行線全為高電平,表示無(wú)鍵按下;若行線全為高電平,表示無(wú)鍵按下;若行線不全為高電平,表示有鍵按下若行線不全為高電平,表示有鍵按下第第2 2步:步:如有鍵被按下,識(shí)別出具體的按鍵。如有鍵被按下,識(shí)別出具體的按鍵。方法:依次使某一列線為低電平,其余各列為高電平,方法:依次使某一列線為低電平,其余各列為高電平,再判斷行線狀態(tài)。再判斷行線狀態(tài)。若行線全為

15、高電平,表示被按下的鍵不在此列;若行線全為高電平,表示被按下的鍵不在此列;若某行線為低電平,表示被按下的鍵在此列??纱_定若某行線為低電平,表示被按下的鍵在此列??纱_定此行列交叉點(diǎn)處的按鍵被按下。此行列交叉點(diǎn)處的按鍵被按下。示例示例8051單片機(jī)的P1口用作鍵盤(pán)I/O口。鍵盤(pán)的行線H1H4連接到51單片機(jī)P1口的P1.0P1.3,列線L1L4連接到P1口的P1.4P1.7上。把行線P1.0P1.3設(shè)置為輸入線,列線P1.4P1.7設(shè)置為輸出線。4根行線和4根列線形成16個(gè)相交點(diǎn)。P1.7P1.6P1.5P1.4P1.0P1.1P1.2P1.3L1L2L4L3H1H2H4H3鍵掃描步驟鍵掃描步驟(

16、1)檢測(cè)當(dāng)前是否有鍵被按下:檢測(cè)的方法是P1.4P1.7輸出全“0”,讀取P1.0P1.3的狀態(tài),若P1.0P1.3為全“1”,則無(wú)鍵閉合,否則有鍵閉合。 (2)去除鍵抖動(dòng):當(dāng)檢測(cè)到有鍵按下后,延時(shí)一段時(shí)間再做下一步的檢測(cè)判斷。 (3)若有鍵被按下,應(yīng)識(shí)別出是哪一個(gè)鍵閉合:方法是對(duì)鍵盤(pán)的行線進(jìn)行掃描。P1.4P1.7按下述4種組合依次輸出: P1.7 1 1 1 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1在每組列輸出時(shí)讀取P1.0P1.3,若全為“1”,則表示為這一列沒(méi)有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法得到鍵值。 鍵盤(pán)掃

17、描鍵盤(pán)掃描程序流程程序流程圖圖程序參考 KEY: MOV P1,#0FH;列輸出低電平,行輸出高電平 MOV A,P1;讀P1口狀態(tài) ANL A,#0FH;保留行狀態(tài) CJNE A,#0FH,KEY0;有鍵按下轉(zhuǎn)KEY0 SJMP KEY;無(wú)鍵按下等待,轉(zhuǎn)鍵檢測(cè)KEY0: LCALL DELAY10;調(diào)10mS延時(shí)取抖 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY1;不是抖動(dòng)轉(zhuǎn)鍵值判斷 SJMP KEY ;是抖動(dòng)到鍵檢測(cè)KEY1: MOV P1,#11101111B;第一列鍵被按下判斷 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY11;第一列

18、鍵被按下轉(zhuǎn)KEY11處理 MOV P1,#11011111B;第二列鍵被按下判斷 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY11;第二列鍵被按下轉(zhuǎn)KEY11處理 MOV P1,#01111111B;第四列鍵被按下判斷 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY11;第四列鍵被按下轉(zhuǎn)KEY11處理 LJMP KEY ;均不是轉(zhuǎn)到鍵檢測(cè)KEY11:MOV A,P1;讀鍵值 鍵值處理 第第1 1步:步:列線輸出為全低電平,則行線中電平由高變低列線輸出為全低電平,則行線中電平由高變低的所在行為按鍵所在行。的所在行為按鍵所在行。第第2 2步:步:行

19、線輸出為全低電平,則列線中電平由高變低行線輸出為全低電平,則列線中電平由高變低所在列為按鍵所在列。所在列為按鍵所在列。 結(jié)合上述兩步,可確定按鍵所在行和列。結(jié)合上述兩步,可確定按鍵所在行和列。(3 3)鍵盤(pán)的編碼)鍵盤(pán)的編碼 根據(jù)實(shí)際需要靈活編碼。根據(jù)實(shí)際需要靈活編碼。如:如:鍵值=行號(hào)列數(shù)+列號(hào) 鍵值=行首鍵號(hào)+列號(hào) b. b. 線反轉(zhuǎn)法線反轉(zhuǎn)法 只需兩步便能獲得此按鍵所在的行列值只需兩步便能獲得此按鍵所在的行列值原則:原則:即要保證能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占即要保證能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占用用CPUCPU的工作時(shí)間。的工作時(shí)間。 通常,通常,鍵盤(pán)工作方式有鍵盤(pán)工作方式有3 3

20、種種,即編程掃描、定時(shí)掃,即編程掃描、定時(shí)掃描和中斷掃描。描和中斷掃描。鍵盤(pán)的工作方式鍵盤(pán)的工作方式 單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤(pán)的輸單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤(pán)的輸入,取決于鍵盤(pán)的工作方式。入,取決于鍵盤(pán)的工作方式。1. 1. 編程掃描方式編程掃描方式 只有當(dāng)單片機(jī)空閑時(shí),才調(diào)用鍵盤(pán)掃描子程序,只有當(dāng)單片機(jī)空閑時(shí),才調(diào)用鍵盤(pán)掃描子程序,掃描鍵盤(pán)。掃描鍵盤(pán)。工作過(guò)程:工作過(guò)程:(1 1)在鍵盤(pán)掃描子程序中,先判斷有無(wú)鍵按下。)在鍵盤(pán)掃描子程序中,先判斷有無(wú)鍵按下。方法:方法:PAPA口口8 8位位輸出輸出全全0 0,讀讀PCPC口口低低4 4位狀態(tài),若位狀態(tài),若PC0P

21、C0PC3PC3為全為全1 1,則說(shuō)明鍵盤(pán)無(wú)鍵按下;若不全為,則說(shuō)明鍵盤(pán)無(wú)鍵按下;若不全為1 1,則說(shuō)明,則說(shuō)明鍵盤(pán)可能有鍵按下。鍵盤(pán)可能有鍵按下。(2 2)用軟件來(lái)消除按鍵抖動(dòng)的影響。如有鍵按下,則)用軟件來(lái)消除按鍵抖動(dòng)的影響。如有鍵按下,則進(jìn)行下一步。進(jìn)行下一步。(3 3)求按下鍵的鍵號(hào)。)求按下鍵的鍵號(hào)。(4 4)等待按鍵釋放后,再進(jìn)行按鍵功能的處理操作。)等待按鍵釋放后,再進(jìn)行按鍵功能的處理操作。2. 2. 定時(shí)掃描工作方式定時(shí)掃描工作方式 利用單片機(jī)內(nèi)的定時(shí)器,產(chǎn)生利用單片機(jī)內(nèi)的定時(shí)器,產(chǎn)生10ms10ms的定時(shí)中斷,對(duì)的定時(shí)中斷,對(duì)鍵盤(pán)進(jìn)行掃描。鍵盤(pán)進(jìn)行掃描。3.3.中斷工作方式中

22、斷工作方式 只有在鍵盤(pán)有鍵按下時(shí),才執(zhí)行鍵盤(pán)掃描程序,如只有在鍵盤(pán)有鍵按下時(shí),才執(zhí)行鍵盤(pán)掃描程序,如無(wú)鍵按下,單片機(jī)將不理睬鍵盤(pán)。無(wú)鍵按下,單片機(jī)將不理睬鍵盤(pán)。 鍵盤(pán)所做的工作分為三個(gè)層次鍵盤(pán)所做的工作分為三個(gè)層次,如下圖。,如下圖。第第1 1層:層:?jiǎn)纹瑱C(jī)如何來(lái)監(jiān)視鍵盤(pán)的輸入。三種工作方單片機(jī)如何來(lái)監(jiān)視鍵盤(pán)的輸入。三種工作方 式:編程掃描定時(shí)掃描中斷掃描。式:編程掃描定時(shí)掃描中斷掃描。第第2 2層:層:確定具體按鍵的鍵號(hào)。體現(xiàn)在按鍵的識(shí)別方確定具體按鍵的鍵號(hào)。體現(xiàn)在按鍵的識(shí)別方 法上就是:掃描法;線反轉(zhuǎn)法。法上就是:掃描法;線反轉(zhuǎn)法。第第3 3層:層:執(zhí)行鍵處理程序。執(zhí)行鍵處理程序。鍵盤(pán)鍵盤(pán)

23、/ /顯示器接口設(shè)計(jì)實(shí)例顯示器接口設(shè)計(jì)實(shí)例 一般把鍵盤(pán)和顯示器放在一起考慮。一般把鍵盤(pán)和顯示器放在一起考慮。1 1 利用并行利用并行I/OI/O芯片實(shí)現(xiàn)鍵盤(pán)芯片實(shí)現(xiàn)鍵盤(pán)/ /顯示器接口顯示器接口80318031用擴(kuò)展用擴(kuò)展I/OI/O接口芯片接口芯片8155H8155H實(shí)現(xiàn)的實(shí)現(xiàn)的6 6位位LEDLED顯示和顯示和3232鍵的鍵盤(pán)鍵的鍵盤(pán)/ /顯示器接口電路。圖中顯示器接口電路。圖中8155H8155H也可用也可用8255A8255A來(lái)替代。來(lái)替代。 8031 8031外擴(kuò)一片外擴(kuò)一片8155H8155H。RAMRAM地址:地址:7E00H7E00H7EFFH7EFFH。I/OI/O口地址:口

24、地址:7F00H7F00H7F05H7F05H。 PAPA口口為輸出口,控制鍵盤(pán)為輸出口,控制鍵盤(pán)列線的掃描列線的掃描,同時(shí)又是,同時(shí)又是6 6位共陰極顯示器的位共陰極顯示器的位掃描口位掃描口。 PBPB口口作為顯示器段碼輸出口,作為顯示器段碼輸出口,PCPC口作為鍵盤(pán)的行口作為鍵盤(pán)的行線狀態(tài)的輸入口。線狀態(tài)的輸入口。 75452 75452:反相驅(qū)動(dòng)器,反相驅(qū)動(dòng)器,74077407:同相驅(qū)動(dòng)器。同相驅(qū)動(dòng)器。1 1動(dòng)態(tài)顯示程序設(shè)計(jì)動(dòng)態(tài)顯示程序設(shè)計(jì)內(nèi)部?jī)?nèi)部RAM 6RAM 6個(gè)顯示緩沖單元:個(gè)顯示緩沖單元:79H79H7EH7EH,存放要顯示的,存放要顯示的 6 6位數(shù)據(jù)。位數(shù)據(jù)。8155H81

25、55H的的PBPB口輸出相應(yīng)位的段碼,口輸出相應(yīng)位的段碼,依次改變依次改變PAPA口輸出為口輸出為 高高的位的位使某一位顯示某一字符,其它位為暗。使某一位顯示某一字符,其它位為暗。動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程 序流程如圖。序流程如圖。參考程序參考程序:DIRDIR: MOV R0,MOV R0,79H79H;置緩沖器指針初值;置緩沖器指針初值MOV R3,MOV R3,01H01H;位選碼的初值送;位選碼的初值送R3R3MOV A,R3MOV A,R3LD0LD0: MOV DPTR,MOV DPTR,7F01H 7F01H ;位

26、選碼;位選碼PAPA口(口(PA.0PA.0位)位);最左邊最左邊LEDLED亮亮MOVX DPTR,AMOVX DPTR,AINC DPTRINC DPTR ;數(shù)據(jù)指針指向;數(shù)據(jù)指針指向PBPB口口MOV A,R0 MOV A,R0 ;顯示數(shù)據(jù);顯示數(shù)據(jù)A AADD A,ADD A,0DH 0DH ;加偏移量(下條指令到表首間;加偏移量(下條指令到表首間 ;所有指令占的單元數(shù));所有指令占的單元數(shù))MOVC A,AMOVC A,APC PC ;根據(jù)顯示數(shù)據(jù)來(lái)查表取段碼;根據(jù)顯示數(shù)據(jù)來(lái)查表取段碼DIR1DIR1: MOVX DPTR,AMOVX DPTR,A ;段碼段碼8155H 8155H

27、PBPB口口ACALL DL1ms ACALL DL1ms ;該位顯示;該位顯示1ms1msINC R0INC R0 ;指針指向下一個(gè)數(shù)據(jù)單元;指針指向下一個(gè)數(shù)據(jù)單元MOV A,R3MOV A,R3 ;位選碼送入;位選碼送入A A中中JB Acc.5,LD1 JB Acc.5,LD1 ;判斷是否掃描到最右邊的;判斷是否掃描到最右邊的 ; LEDLED,如到最右邊則返回,如到最右邊則返回RL A RL A ;位選碼向左移一位,準(zhǔn)備讓;位選碼向左移一位,準(zhǔn)備讓 ; ; 右邊的下一位右邊的下一位LEDLED亮亮MOV R3,AMOV R3,A ;位選碼位選碼送送R3R3中保存中保存AJMP LD0

28、;AJMP LD0 ;LD1LD1: RET ;RET ;DSEGDSEG: DB 3FH,06H,5BH,4FH,66H,6DH DB 3FH,06H,5BH,4FH,66H,6DH ;共陰極段碼表共陰極段碼表 DB 7DH,07H,7FH,6FH,77H,7CHDB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH DB 39H,5EH,79H,71H,73H,3EHDB 31H,6EH,1CH,23H,40H,03HDB 31H,6EH,1CH,23H,40H,03HDB 18H,00HDB 18H,00HDL1msDL1ms: MOV

29、 R7,MOV R7,02H02H;延時(shí)延時(shí)1ms1ms子程序子程序DLDL: MOV R6,MOV R6,0FFH0FFHDL6DL6: DJNZ R6,DL6DJNZ R6,DL6DJNZ R7,DLDJNZ R7,DLRETRET2 2鍵盤(pán)程序設(shè)計(jì)鍵盤(pán)程序設(shè)計(jì)(1 1)判別鍵盤(pán)上有無(wú)鍵閉合)判別鍵盤(pán)上有無(wú)鍵閉合(2 2)去除鍵的機(jī)械抖動(dòng))去除鍵的機(jī)械抖動(dòng) (3 3)判別閉合鍵的鍵號(hào))判別閉合鍵的鍵號(hào)(4 4)使)使CPUCPU對(duì)鍵的一次閉合僅作一次處理對(duì)鍵的一次閉合僅作一次處理 鍵盤(pán)程序的流程如圖。鍵盤(pán)程序的流程如圖。鍵盤(pán)子程序如下:鍵盤(pán)子程序如下:KEYIKEYI:ACALL KS1A

30、CALL KS1 ;調(diào)用判有無(wú)鍵閉合子程序;調(diào)用判有無(wú)鍵閉合子程序JNZ LK1 JNZ LK1 ;有鍵閉合,跳;有鍵閉合,跳LK1LK1NINI: ACALL DIRACALL DIR ;無(wú)鍵閉合,調(diào)用顯示子程序;無(wú)鍵閉合,調(diào)用顯示子程序, ,延延 ;遲;遲6ms6ms后,跳后,跳KEYIKEYIAJMP KEYIAJMP KEYILK1LK1: ACALL DIRACALL DIR ;可能有鍵閉合,軟件延遲;可能有鍵閉合,軟件延遲12ms12ms去抖去抖ACALL DIRACALL DIRACALL KS1 ACALL KS1 ;調(diào)用判有無(wú)鍵閉合子程序;調(diào)用判有無(wú)鍵閉合子程序JNZ LK2

31、JNZ LK2 ;經(jīng)去抖,判鍵確實(shí)閉合,跳;經(jīng)去抖,判鍵確實(shí)閉合,跳LK2LK2ACALL DIRACALL DIR;調(diào)用顯示子程序延遲;調(diào)用顯示子程序延遲6ms6msAJMP KEYIAJMP KEYI;抖動(dòng)引起,跳;抖動(dòng)引起,跳KEYIKEYILK2LK2: MOV R2,MOV R2,0FEH0FEH ;列選碼;列選碼R2R2MOV R4,MOV R4,00H00H;R4R4為列號(hào)計(jì)數(shù)器為列號(hào)計(jì)數(shù)器LK4LK4: MOV DPTR,MOV DPTR,7F01H 7F01H ;列選碼;列選碼8155H8155H的的PAPA口口MOV A,R2 ;MOV A,R2 ;MOVX DPTR,A

32、; MOVX DPTR,A ; INC DPTRINC DPTR ;數(shù)據(jù)指針增;數(shù)據(jù)指針增2 2,指向,指向PCPC口口INC DPTR ;INC DPTR ;MOVX A,DPTRMOVX A,DPTR ;讀;讀8155H PC8155H PC口口JB Acc.0,LONEJB Acc.0,LONE ;0 0行線為高,無(wú)鍵閉合,跳行線為高,無(wú)鍵閉合,跳 LONELONE,轉(zhuǎn)判,轉(zhuǎn)判1 1行行MOV A,MOV A,00H00H ;0 0行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)0A0AAJMP LKPAJMP LKP ;跳;跳LKPLKP,計(jì)算鍵號(hào),計(jì)算鍵號(hào)LONELONE:JB Acc.1,L

33、TW0 JB Acc.1,LTW0 ;1 1行線為高,無(wú)鍵閉合,跳行線為高,無(wú)鍵閉合,跳LTW0LTW0, ;轉(zhuǎn)判;轉(zhuǎn)判2 2行行MOV A,MOV A,08H 08H ;1 1行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)8A8AAJMP LKPAJMP LKPLTW0LTW0:JB A.2,LTHR JB A.2,LTHR ;2 2行線為高,無(wú)鍵閉合,跳行線為高,無(wú)鍵閉合,跳 ;LTHRLTHR,轉(zhuǎn)判,轉(zhuǎn)判3 3行行MOV A,MOV A,10H 10H ;2 2行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)10HA10HAAJMP LKPAJMP LKP;跳;跳LKPLKP,計(jì)算鍵號(hào),計(jì)算鍵號(hào)LTHRL

34、THR:JB Acc.3,NEXT JB Acc.3,NEXT ;3 3行線為高,無(wú)鍵行線為高,無(wú)鍵;閉合,跳;閉合,跳NEXTNEXT,準(zhǔn)備下一列掃描,準(zhǔn)備下一列掃描MOV A,MOV A,18H18H;3 3行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)18HA18HALKPLKP: ADD A,R4ADD A,R4 ;計(jì)算鍵號(hào):首鍵號(hào)列號(hào);計(jì)算鍵號(hào):首鍵號(hào)列號(hào)= =鍵號(hào)鍵號(hào)PUSH APUSH A ;鍵號(hào)進(jìn)棧保護(hù);鍵號(hào)進(jìn)棧保護(hù)LK3LK3: ACALL DIRACALL DIR;調(diào)用顯示子程序,延時(shí);調(diào)用顯示子程序,延時(shí)6ms6msACALL KS1ACALL KS1;調(diào)用判有無(wú)鍵閉合子程序,延時(shí);調(diào)用判有無(wú)鍵閉合子程序,延時(shí);6ms6msJNZ LK3 JNZ LK3 ;判鍵釋放否,未釋放,則循環(huán);判鍵釋放否,未釋放,則循環(huán)POP A POP A ;鍵已釋放,鍵號(hào)出棧;鍵已釋放,鍵號(hào)出棧A ARETRETNEXTNEXT:INC R4 INC R4 ;列計(jì)數(shù)器加;列計(jì)數(shù)器加1 1,為下一列掃描作準(zhǔn)備,為下一列掃描作準(zhǔn)備MOV A,R2 MOV A,R2 ;判是否已掃到最后一列(最右一列);判

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論