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

下載本文檔

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

文檔簡(jiǎn)介

1、第第1010章章 MCS-51MCS-51與鍵盤(pán)、顯示器、撥盤(pán)、打印機(jī)的接與鍵盤(pán)、顯示器、撥盤(pán)、打印機(jī)的接 口設(shè)計(jì)口設(shè)計(jì)輸入外設(shè)輸入外設(shè):鍵盤(pán)等;鍵盤(pán)等;輸出外設(shè)輸出外設(shè):LEDLED顯示器顯示器10.1 LED10.1 LED顯示器接口原理顯示器接口原理 LEDLED(Light Emitting Diode):(Light Emitting Diode):發(fā)光二極管的縮寫(xiě)。發(fā)光二極管的縮寫(xiě)。顯示器前面冠以顯示器前面冠以“LED”LED”。10.1.1 LED10.1.1 LED顯示器的結(jié)構(gòu)顯示器的結(jié)構(gòu) 常用的常用的LEDLED顯示器為顯示器為8 8段段(或(或7 7段段,8 8段比段比7

2、7段多了一段多了一個(gè)小數(shù)點(diǎn)個(gè)小數(shù)點(diǎn)“dpdp”段)。段)。有有共陽(yáng)極和共陰極共陽(yáng)極和共陰極兩種。如圖兩種。如圖10-110-1所示。所示。為使為使LEDLED顯示不同的符號(hào)或數(shù)字顯示不同的符號(hào)或數(shù)字,要為,要為L(zhǎng)EDLED提供提供段碼段碼(或稱(chēng)(或稱(chēng)字型碼字型碼)。)。提供給提供給LEDLED顯示器的段碼顯示器的段碼(字型碼字型碼)正好是一個(gè)字正好是一個(gè)字節(jié)(節(jié)(8 8段)段)。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:按上述格式,按上述格式,8 8段段LEDLED的段碼如表的段碼如表10-110-1所示。所示。顯示字符顯示字符共陰極共陰極段碼段碼共陽(yáng)極共陽(yáng)極段碼段碼顯示字

3、符顯示字符共陰極共陰極段碼段碼共陽(yáng)極共陽(yáng)極段碼段碼0 03FH3FHC0HC0Hc c39H39HC6HC6H1 106H06HF9HF9Hd d5EH5EHA1HA1H2 25BH5BHA4HA4HE E79H79H86H86H3 34FH4FHB0HB0HF F71H71H8EH8EH4 466H66H99H99HP P73H73H8CH8CH5 56DH6DH92H92HU U3EH3EHC1HC1H6 67DH7DH82H82HT T31H31HCEHCEH7 707H07HF8HF8Hy y6EH6EH91H91H8 87FH7FH80H80HH H76H76H89H89H9 96F

4、H6FH90H90HL L38H38HC7HC7HA A77FH77FH88H88H“滅滅”00H00HFFHFFHb b7CH7CH83H83H表表10-1 LED10-1 LED段碼(段碼(8 8段)段)表表10-110-1只列出了部分段碼,只列出了部分段碼,可根據(jù)實(shí)際情況選用可根據(jù)實(shí)際情況選用。另外,另外,段碼是相對(duì)的段碼是相對(duì)的,它由各字段在字節(jié)中所處的,它由各字段在字節(jié)中所處的位決定。例如表位決定。例如表10-110-1中中8 8段段LEDLED段碼是按格式段碼是按格式:而形成的,而形成的, “0”0”的段碼為的段碼為3FH3FH(共陰)。(共陰)。反之,如反之,如 將格式改為下列格

5、式:將格式改為下列格式:則則 “0”0”的段碼為的段碼為7EH7EH(共陰)(共陰)。字型及段碼由設(shè)計(jì)者自行設(shè)定,字型及段碼由設(shè)計(jì)者自行設(shè)定,習(xí)慣上還是以習(xí)慣上還是以“a”a” 段對(duì)應(yīng)段碼的最低位。段對(duì)應(yīng)段碼的最低位。N N個(gè)個(gè)LEDLED顯示塊有顯示塊有N N位位選線(xiàn)和位位選線(xiàn)和8 8N N根段碼線(xiàn)根段碼線(xiàn)。 10.1.2 LED10.1.2 LED顯示器工作原理顯示器工作原理圖圖10-210-2是是4 4位位 LEDLED顯示器的結(jié)構(gòu)原理圖。顯示器的結(jié)構(gòu)原理圖。段碼線(xiàn)段碼線(xiàn)控制控制顯示的字型顯示的字型,位選線(xiàn)位選線(xiàn)控制控制該顯示位的亮或滅。該顯示位的亮或滅。靜態(tài)顯示和動(dòng)態(tài)顯示靜態(tài)顯示和動(dòng)態(tài)

6、顯示兩種顯示方式。兩種顯示方式。1. 1. 靜態(tài)顯示方式靜態(tài)顯示方式各位的公共端連接在一起(接地或各位的公共端連接在一起(接地或+5V+5V)。)。 每位的段碼線(xiàn)(每位的段碼線(xiàn)(a adpdp)分別)分別與一個(gè)與一個(gè)8 8位的鎖存器位的鎖存器輸出相連。輸出相連。 顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持不變,直到送入另一個(gè)段碼為止。不變,直到送入另一個(gè)段碼為止。顯示的亮度高顯示的亮度高。 圖圖10-310-3: : 4 4位靜態(tài)位靜態(tài)LEDLED顯示器電路。該電路各位顯示器電路。該電路各位可獨(dú)立顯示。可獨(dú)立顯示。2. 2. 動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式

7、所有位的段碼線(xiàn)所有位的段碼線(xiàn)相應(yīng)段并在一起,由一個(gè)相應(yīng)段并在一起,由一個(gè)8 8位位I/OI/O口控制口控制,形成,形成段碼線(xiàn)的多路復(fù)用段碼線(xiàn)的多路復(fù)用,各位的各位的公共端公共端分別由分別由相應(yīng)的相應(yīng)的I/OI/O線(xiàn)控制,形成各位的線(xiàn)控制,形成各位的分時(shí)選通分時(shí)選通。圖圖10-410-4:4 4位位8 8段段LEDLED動(dòng)態(tài)顯示電路。其中段碼線(xiàn)占用一動(dòng)態(tài)顯示電路。其中段碼線(xiàn)占用一個(gè)個(gè)8 8位位I/OI/O口,而位選線(xiàn)占用一個(gè)口,而位選線(xiàn)占用一個(gè)4 4位位I/OI/O口???。圖圖10-510-5為為8 8位位LEDLED動(dòng)態(tài)顯示動(dòng)態(tài)顯示2003.10.102003.10.10的過(guò)程的過(guò)程。圖(圖(

8、a)a)是顯示過(guò)程,是顯示過(guò)程,某一時(shí)刻,只有一位某一時(shí)刻,只有一位LEDLED被選通被選通 顯示,其余位則是熄滅的;顯示,其余位則是熄滅的;圖(圖(b)b)是實(shí)際顯示結(jié)果,是實(shí)際顯示結(jié)果,人眼看到的是人眼看到的是8 8位穩(wěn)定位穩(wěn)定的的 同時(shí)顯示同時(shí)顯示的字符。的字符。10.2 10.2 鍵盤(pán)接口原理鍵盤(pán)接口原理1. 1. 鍵盤(pán)輸入的特點(diǎn)鍵盤(pán)輸入的特點(diǎn)鍵盤(pán):一組按鍵開(kāi)關(guān)的集合。鍵盤(pán):一組按鍵開(kāi)關(guān)的集合。 行線(xiàn)電壓信號(hào)通過(guò)鍵盤(pán)開(kāi)關(guān)機(jī)械觸點(diǎn)的斷開(kāi)、閉合,行線(xiàn)電壓信號(hào)通過(guò)鍵盤(pán)開(kāi)關(guān)機(jī)械觸點(diǎn)的斷開(kāi)、閉合,輸出波形如圖輸出波形如圖10-610-6。2. 2. 按鍵的確認(rèn)按鍵的確認(rèn) 檢測(cè)檢測(cè)行線(xiàn)行線(xiàn)電平電平

9、 高電平:高電平:斷開(kāi);斷開(kāi);低電平:低電平:閉合,閉合,常用常用軟件來(lái)消除按鍵抖動(dòng)。軟件來(lái)消除按鍵抖動(dòng)。 基本思想基本思想:檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的行線(xiàn)為低,軟:檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的行線(xiàn)為低,軟件延時(shí)件延時(shí)10ms10ms后,行線(xiàn)如仍為低,則確認(rèn)該行有鍵按下。后,行線(xiàn)如仍為低,則確認(rèn)該行有鍵按下。3.3.如何消除按鍵的抖動(dòng)如何消除按鍵的抖動(dòng) 當(dāng)鍵松開(kāi)時(shí),當(dāng)鍵松開(kāi)時(shí),行線(xiàn)變高,軟件延時(shí)行線(xiàn)變高,軟件延時(shí)10ms10ms后,行線(xiàn)仍后,行線(xiàn)仍為為高,說(shuō)明按鍵已松開(kāi)。高,說(shuō)明按鍵已松開(kāi)。采取以上措施,采取以上措施,躲開(kāi)了兩個(gè)抖動(dòng)期躲開(kāi)了兩個(gè)抖動(dòng)期t1t1和和t3t3的影響。的影響。10.2.2

10、10.2.2 鍵盤(pán)接口的工作原理鍵盤(pán)接口的工作原理獨(dú)立式獨(dú)立式按鍵接口和按鍵接口和行列式行列式鍵盤(pán)接口。鍵盤(pán)接口。1.1.獨(dú)立式鍵盤(pán)接口獨(dú)立式鍵盤(pán)接口 各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線(xiàn),通過(guò)各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線(xiàn),通過(guò)檢檢測(cè)輸入線(xiàn)的電平狀態(tài)測(cè)輸入線(xiàn)的電平狀態(tài)可很容易判斷那個(gè)鍵被按下。可很容易判斷那個(gè)鍵被按下。此種接口此種接口適于鍵數(shù)較少或操作速度較高適于鍵數(shù)較少或操作速度較高的場(chǎng)合。的場(chǎng)合。圖圖10-710-7(a a)為)為中斷方式的獨(dú)立式中斷方式的獨(dú)立式鍵盤(pán)工作電路鍵盤(pán)工作電路圖圖10-710-7(b b)為)為查詢(xún)方式的獨(dú)立式查詢(xún)方式的獨(dú)立式鍵盤(pán)工作電路鍵盤(pán)工作電路。圖

11、圖10-810-8為為8255A8255A擴(kuò)展擴(kuò)展I/OI/O口口的的獨(dú)立式獨(dú)立式按鍵接口電路。按鍵接口電路。圖圖10-910-9用用三態(tài)緩沖器三態(tài)緩沖器擴(kuò)展的擴(kuò)展的I/OI/O口的按鍵接口電口的按鍵接口電路路。 對(duì)圖對(duì)圖10-910-9獨(dú)立式鍵盤(pán)編程,軟件消抖,查詢(xún)方式檢獨(dú)立式鍵盤(pán)編程,軟件消抖,查詢(xún)方式檢測(cè)鍵的狀態(tài)。僅有一鍵按下時(shí)才有效才處理。測(cè)鍵的狀態(tài)。僅有一鍵按下時(shí)才有效才處理。KEYIN:MOV DPTR,#0BFFFHKEYIN:MOV DPTR,#0BFFFH;鍵盤(pán)端口地址;鍵盤(pán)端口地址BFFFHBFFFHMOVX A,DPTRMOVX A,DPTR;讀鍵盤(pán)狀態(tài);讀鍵盤(pán)狀態(tài)ANL

12、 A,#1FHANL A,#1FH;屏蔽高三位;屏蔽高三位MOV R3,AMOV R3,A;保存鍵盤(pán)狀態(tài)值;保存鍵盤(pán)狀態(tài)值LCALL DELAY10LCALL DELAY10;延時(shí);延時(shí)10ms10ms去鍵盤(pán)抖動(dòng)去鍵盤(pán)抖動(dòng)MOVX A,DPTRMOVX A,DPTR;再讀鍵盤(pán)狀態(tài);再讀鍵盤(pán)狀態(tài)ANL A,#1FHANL A,#1FH;屏蔽高三位;屏蔽高三位 CJNE A,R3,RETURN CJNE A,R3,RETURN ;兩次不同,抖動(dòng)引起轉(zhuǎn);兩次不同,抖動(dòng)引起轉(zhuǎn)RETURNRETURNCJNE A,#1EH,KEY2 CJNE A,#1EH,KEY2 ;相等,有鍵按下,不等轉(zhuǎn);相等,有鍵

13、按下,不等轉(zhuǎn)KEY2KEY2LJMP PKEY1LJMP PKEY1; ;是是K1K1鍵按下,轉(zhuǎn)鍵按下,轉(zhuǎn)K1K1鍵處理鍵處理 ;子程序;子程序PKEY1PKEY1KEY2: CJNE A,#1DH,KEY3 ;S2KEY2: CJNE A,#1DH,KEY3 ;S2鍵未按下,轉(zhuǎn)鍵未按下,轉(zhuǎn)KEY3KEY3LJMP PKEY2LJMP PKEY2 ;S2 ;S2鍵按下,轉(zhuǎn)鍵按下,轉(zhuǎn)PKEY2PKEY2處理處理KEY3:KEY3: CJNE A,#1BH,KEY4CJNE A,#1BH,KEY4 ;S3;S3未按下,轉(zhuǎn)未按下,轉(zhuǎn)KEY4KEY4LJMP PKEY3 ;S3LJMP PKEY3 ;

14、S3按下,轉(zhuǎn)按下,轉(zhuǎn)PKEY3PKEY3處理處理KEY4: CJNE A,#17H,KEY5 ;S4KEY4: CJNE A,#17H,KEY5 ;S4鍵未按下,轉(zhuǎn)鍵未按下,轉(zhuǎn)KEY5KEY5LJMP PKEY4 ;S4LJMP PKEY4 ;S4按下,轉(zhuǎn)按下,轉(zhuǎn)PKEY4PKEY4處理處理KEY5:KEY5: CJNE A,#0FH,PASS ;S5CJNE A,#0FH,PASS ;S5未按下,轉(zhuǎn)未按下,轉(zhuǎn)RETURNRETURNLJMP PKEY5 ;S5LJMP PKEY5 ;S5按下,轉(zhuǎn)按下,轉(zhuǎn)PKEY5PKEY5處理處理RETURN:RET ;RETURN:RET ;重鍵或無(wú)鍵按下

15、,從子程序返回重鍵或無(wú)鍵按下,從子程序返回識(shí)別和編程簡(jiǎn)單,識(shí)別和編程簡(jiǎn)單,用在按鍵數(shù)較少的場(chǎng)合。用在按鍵數(shù)較少的場(chǎng)合。2. 行列式行列式(矩陣式矩陣式)鍵盤(pán)接口鍵盤(pán)接口 用于按鍵數(shù)目較多的場(chǎng)合,由行線(xiàn)和列線(xiàn)組成,用于按鍵數(shù)目較多的場(chǎng)合,由行線(xiàn)和列線(xiàn)組成,按鍵位于行、列的交叉點(diǎn)上。如圖按鍵位于行、列的交叉點(diǎn)上。如圖10-1010-10所示。所示。 按鍵數(shù)目較多的場(chǎng)合按鍵數(shù)目較多的場(chǎng)合,行列式鍵盤(pán)與獨(dú)立式鍵盤(pán),行列式鍵盤(pán)與獨(dú)立式鍵盤(pán)相比,要相比,要節(jié)省很多的節(jié)省很多的I/OI/O口線(xiàn)口線(xiàn)。(1)行列式鍵盤(pán)工作原理)行列式鍵盤(pán)工作原理 無(wú)鍵按下,該行線(xiàn)為高電平,無(wú)鍵按下,該行線(xiàn)為高電平,當(dāng)有鍵按下時(shí)

16、,當(dāng)有鍵按下時(shí),行線(xiàn)電平由列線(xiàn)的電平來(lái)決定行線(xiàn)電平由列線(xiàn)的電平來(lái)決定。 由于行、列線(xiàn)為多鍵共用,各按鍵彼此將相互發(fā)由于行、列線(xiàn)為多鍵共用,各按鍵彼此將相互發(fā)生影響,必須生影響,必須將行、列線(xiàn)信號(hào)配合起來(lái)并作適當(dāng)?shù)奶帉⑿?、列線(xiàn)信號(hào)配合起來(lái)并作適當(dāng)?shù)奶幚恚拍艽_定閉合鍵的位置理,才能確定閉合鍵的位置。(2 2)按鍵的識(shí)別方法)按鍵的識(shí)別方法a. a. 掃描法掃描法 圖圖10-1010-10(b b)中)中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步:步:

17、識(shí)別鍵盤(pán)有無(wú)鍵按下;識(shí)別鍵盤(pán)有無(wú)鍵按下;第第2 2步:步:如有鍵被按下,識(shí)別出具體的按鍵。如有鍵被按下,識(shí)別出具體的按鍵。 把所有列線(xiàn)置把所有列線(xiàn)置0 0,檢查各行線(xiàn)電平是否有變化,如,檢查各行線(xiàn)電平是否有變化,如有變化,說(shuō)明有鍵按下,如無(wú)變化,則無(wú)鍵按下。有變化,說(shuō)明有鍵按下,如無(wú)變化,則無(wú)鍵按下。 上述方法稱(chēng)為上述方法稱(chēng)為掃描法,即先把某一列置低電平,掃描法,即先把某一列置低電平,其余各列為高電平,檢查各行線(xiàn)電平的變化其余各列為高電平,檢查各行線(xiàn)電平的變化,如果某,如果某行線(xiàn)電平為低,可確定行線(xiàn)電平為低,可確定此行列交叉點(diǎn)此行列交叉點(diǎn)處的按鍵被按處的按鍵被按下。下。 b. b. 線(xiàn)反轉(zhuǎn)法線(xiàn)

18、反轉(zhuǎn)法 只需兩步便能獲得此按鍵所在的行列值,線(xiàn)反轉(zhuǎn)只需兩步便能獲得此按鍵所在的行列值,線(xiàn)反轉(zhuǎn)法的原理如圖法的原理如圖10-1110-11。第第1 1步:步:列線(xiàn)輸出為全低電平,則行線(xiàn)中電平由高變低列線(xiàn)輸出為全低電平,則行線(xiàn)中電平由高變低的所在行為按鍵所在行。的所在行為按鍵所在行。第第2 2步:步:行線(xiàn)輸出為全低電平,則列線(xiàn)中電平由高變低行線(xiàn)輸出為全低電平,則列線(xiàn)中電平由高變低所在列為按鍵所在列。所在列為按鍵所在列。 結(jié)合上述兩步,可確定按鍵所在行和列。結(jié)合上述兩步,可確定按鍵所在行和列。10.2.3 10.2.3 鍵盤(pán)的工作方式鍵盤(pán)的工作方式 單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤(pán)的輸單片機(jī)

19、在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤(pán)的輸入,取決于鍵盤(pán)的工作方式。入,取決于鍵盤(pán)的工作方式。原則:原則:即要保證能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占即要保證能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占用用CPUCPU的工作時(shí)間。的工作時(shí)間。 通常,通常,鍵盤(pán)工作方式有鍵盤(pán)工作方式有3 3種種,即編程掃描、定時(shí)掃,即編程掃描、定時(shí)掃描和中斷掃描。描和中斷掃描。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ú)鍵按下。方法:方

20、法:列線(xiàn)列線(xiàn)8 8位輸出全位輸出全0 0,讀行線(xiàn)口低,讀行線(xiàn)口低4 4位狀態(tài),若行線(xiàn)位狀態(tài),若行線(xiàn)為全為全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)生10ms10

21、ms的定時(shí)中斷,對(duì)的定時(shí)中斷,對(duì)鍵盤(pán)進(jìn)行掃描。鍵盤(pán)進(jìn)行掃描。3.3.中斷工作方式中斷工作方式 只有在鍵盤(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è)層次,如圖,如圖10-1310-13。第第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í)別方 法上就是:法上就是

22、:掃描法;掃描法;線(xiàn)反轉(zhuǎn)法。線(xiàn)反轉(zhuǎn)法。第第3 3層:層:執(zhí)行鍵處理程序。執(zhí)行鍵處理程序。10.3 10.3 鍵盤(pán)鍵盤(pán)/ /顯示器接口設(shè)計(jì)實(shí)例顯示器接口設(shè)計(jì)實(shí)例 一般把鍵盤(pán)和顯示器放在一起考慮。一般把鍵盤(pán)和顯示器放在一起考慮。10.3.1 10.3.1 利用并行利用并行I/OI/O芯片實(shí)現(xiàn)鍵盤(pán)芯片實(shí)現(xiàn)鍵盤(pán)/ /顯示器接口顯示器接口 圖圖10-1410-14:80318031用擴(kuò)展用擴(kuò)展I/OI/O接口芯片接口芯片8155H8155H實(shí)現(xiàn)的實(shí)現(xiàn)的6 6位位LEDLED顯示和顯示和3232鍵的鍵盤(pán)鍵的鍵盤(pán)/ /顯示器接口電路。圖中顯示器接口電路。圖中8155H8155H也可用也可用8255A8255

23、A來(lái)替代。來(lái)替代。 8031 8031外擴(kuò)一片外擴(kuò)一片8155H8155H。RAMRAM地址:地址:7E00H7E00H7EFFH7EFFH。I/OI/O口地址:口地址:7F00H7F00H7F05H7F05H。 PAPA口口為輸出口,控制鍵盤(pán)為輸出口,控制鍵盤(pán)列線(xiàn)的掃描列線(xiàn)的掃描,同時(shí)又是,同時(shí)又是6 6位共陰極顯示器的位共陰極顯示器的位掃描口位掃描口。 PBPB口口作為顯示器段碼輸出口,作為顯示器段碼輸出口,PCPC口作為鍵盤(pán)的行口作為鍵盤(pán)的行線(xiàn)狀態(tài)的輸入口。線(xiàn)狀態(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)

24、態(tài)顯示程序設(shè)計(jì) 8031 8031內(nèi)部?jī)?nèi)部RAM 6RAM 6個(gè)顯示緩沖單元:個(gè)顯示緩沖單元:79H79H7EH7EH,存,存放要顯示的放要顯示的6 6位數(shù)據(jù)。位數(shù)據(jù)。 8155H 8155H的的PBPB口輸出相應(yīng)位的段碼,口輸出相應(yīng)位的段碼,依次改變依次改變PAPA口口輸出為輸出為高高的位的位使某一位顯示某一字符,其它位為暗。使某一位顯示某一字符,其它位為暗。動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程序流程如圖序流程如圖10-15 10-15 。2 2鍵盤(pán)程序設(shè)計(jì)鍵盤(pán)程序設(shè)計(jì)(1 1)判別鍵盤(pán)上有無(wú)鍵閉合)判別鍵盤(pán)上有無(wú)鍵閉合(2 2)去除鍵

25、的機(jī)械抖動(dòng))去除鍵的機(jī)械抖動(dòng) (3 3)判別閉合鍵的鍵號(hào))判別閉合鍵的鍵號(hào)(4 4)使)使CPUCPU對(duì)鍵的一次閉合僅作一次處理對(duì)鍵的一次閉合僅作一次處理 鍵盤(pán)程序的流程如圖鍵盤(pán)程序的流程如圖10-1610-16。10.3.2 10.3.2 利用利用80318031的串行口實(shí)現(xiàn)鍵盤(pán)的串行口實(shí)現(xiàn)鍵盤(pán)/ /顯示器接口顯示器接口 串口未作它用,可用來(lái)外擴(kuò)鍵盤(pán)串口未作它用,可用來(lái)外擴(kuò)鍵盤(pán)/ /顯示器。顯示器。 串口為方式串口為方式0 0輸出,串口外接移位寄存器輸出,串口外接移位寄存器74LS16474LS164。接口電路如圖接口電路如圖10-1710-17。 74LS164(0)74LS164(0)7

26、4LS164(7):74LS164(7):作為作為8 8位位LEDLED的段碼輸出,的段碼輸出, 8031 8031的的P3.4P3.4、P3.5P3.5:兩行鍵的行狀態(tài)輸入兩行鍵的行狀態(tài)輸入 P3.3 P3.3(TXDTXD):):同步移位脈沖輸出控制線(xiàn),同步移位脈沖輸出控制線(xiàn), 10.3.3 10.3.3 利用通用鍵盤(pán)利用通用鍵盤(pán)/ /顯示器接口芯片顯示器接口芯片82798279實(shí)現(xiàn)鍵盤(pán)實(shí)現(xiàn)鍵盤(pán)/ / 顯示器接口顯示器接口 Intel 8279 Intel 8279芯片:通用可編程鍵盤(pán)芯片:通用可編程鍵盤(pán)/ /顯示器接口芯片。顯示器接口芯片。 對(duì)鍵盤(pán)部分提供掃描工作方式,能對(duì)對(duì)鍵盤(pán)部分提供

27、掃描工作方式,能對(duì)6464個(gè)個(gè)鍵鍵盤(pán)陣鍵鍵盤(pán)陣列不斷掃描,列不斷掃描,自動(dòng)消抖,自動(dòng)識(shí)別出閉合的鍵并得到鍵自動(dòng)消抖,自動(dòng)識(shí)別出閉合的鍵并得到鍵號(hào),號(hào),能對(duì)能對(duì)雙鍵或雙鍵或N N鍵同時(shí)按下鍵同時(shí)按下進(jìn)行處理。進(jìn)行處理。 優(yōu)點(diǎn):優(yōu)點(diǎn):亮度大亮度大,容易做到,容易做到顯示不閃爍顯示不閃爍,且,且CPUCPU不必不必頻繁的為顯示服務(wù)頻繁的為顯示服務(wù),從而使單片機(jī)有更多的時(shí)間處理,從而使單片機(jī)有更多的時(shí)間處理其它事務(wù)。其它事務(wù)。掃描方式的顯示接口,可顯示多達(dá)掃描方式的顯示接口,可顯示多達(dá)1616位位的字符。的字符。1.82791.8279的引腳及內(nèi)部結(jié)構(gòu)的引腳及內(nèi)部結(jié)構(gòu) 2. 2. 引腳功能介紹引腳功能

28、介紹(1)(1)與與CPUCPU的接口引腳的接口引腳 DB0 DB0DB7DB7:數(shù)據(jù)總線(xiàn)、雙向、三態(tài),與單片機(jī)數(shù)據(jù)數(shù)據(jù)總線(xiàn)、雙向、三態(tài),與單片機(jī)數(shù)據(jù) 總線(xiàn)相連,在總線(xiàn)相連,在CPUCPU和和82798279之間傳送命令或數(shù)據(jù)。之間傳送命令或數(shù)據(jù)。 CLK CLK:系統(tǒng)時(shí)鐘,用于系統(tǒng)時(shí)鐘,用于82798279內(nèi)部定時(shí),以產(chǎn)生其工作內(nèi)部定時(shí),以產(chǎn)生其工作 所需的時(shí)序。所需的時(shí)序。 RESET RESET:高電平時(shí),高電平時(shí),82798279被復(fù)位,被復(fù)位,復(fù)位后的狀態(tài)如下:復(fù)位后的狀態(tài)如下:* * 16 16個(gè)字符左邊輸入顯示方式個(gè)字符左邊輸入顯示方式* * 編碼掃描鍵盤(pán)、雙鍵鎖定方式編碼掃描鍵

29、盤(pán)、雙鍵鎖定方式 CS CS* *:片選片選 A0 A0:=1=1,寫(xiě)入,寫(xiě)入的是的是命令命令字節(jié)字節(jié); ; 讀出讀出的是的是狀態(tài)狀態(tài)字節(jié)。字節(jié)。 =0=0,寫(xiě)入或讀出的字節(jié)均為,寫(xiě)入或讀出的字節(jié)均為數(shù)據(jù)數(shù)據(jù)。 RD RD* *、WRWR* *:讀、寫(xiě)控制引腳讀、寫(xiě)控制引腳 IRQ IRQ:中斷請(qǐng)求線(xiàn)。在鍵盤(pán)方式中,當(dāng)鍵盤(pán)中斷請(qǐng)求線(xiàn)。在鍵盤(pán)方式中,當(dāng)鍵盤(pán)RAMRAM(先(先進(jìn)先出)中進(jìn)先出)中存有按下鍵的數(shù)據(jù)時(shí),存有按下鍵的數(shù)據(jù)時(shí),IRQIRQ為高電平為高電平,向,向CPUCPU提出中斷申請(qǐng)。提出中斷申請(qǐng)。(2 2)掃描信號(hào)輸出引腳)掃描信號(hào)輸出引腳 CPUCPU每次從鍵盤(pán)每次從鍵盤(pán)RAMRA

30、M中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),IRQIRQ就變就變?yōu)榈碗娖綖榈碗娖?。如果鍵盤(pán)如果鍵盤(pán)RAMRAM中還有未讀完的數(shù)據(jù),中還有未讀完的數(shù)據(jù),IRQIRQ將將再次變?yōu)楦唠娖?,再次提出中斷?qǐng)求。再次變?yōu)楦唠娖剑俅翁岢鲋袛嗾?qǐng)求。 SL0 SL0SL3SL3 掃描輸出。用來(lái)掃描鍵盤(pán)和顯示器??删幊淘O(shè)定掃描輸出。用來(lái)掃描鍵盤(pán)和顯示器??删幊淘O(shè)定為為編碼輸出編碼輸出,即,即SL0SL0SL3SL3需外接需外接4-164-16譯碼器,輸出譯碼器,輸出1616取取1 1的掃描信號(hào),也可編程設(shè)定為的掃描信號(hào),也可編程設(shè)定為譯碼輸出譯碼輸出,即由,即由SL0SL0SL3SL3直接輸出直接輸出4 4取

31、取1 1的掃描信號(hào)。的掃描信號(hào)。(3 3)與鍵盤(pán)連接的引腳)與鍵盤(pán)連接的引腳 RL0 RL0RL7RL7 鍵盤(pán)矩陣的行信號(hào)輸入線(xiàn)。鍵盤(pán)矩陣的行信號(hào)輸入線(xiàn)。 SHIFT SHIFT 輸入線(xiàn),通常用作鍵盤(pán)上、下檔功能的控制鍵。輸入線(xiàn),通常用作鍵盤(pán)上、下檔功能的控制鍵。 CNTL/STB CNTL/STB 輸入線(xiàn),高電平有效。在鍵盤(pán)方式時(shí),通常用來(lái)輸入線(xiàn),高電平有效。在鍵盤(pán)方式時(shí),通常用來(lái)作為鍵盤(pán)控制功能鍵使用。作為鍵盤(pán)控制功能鍵使用。(4 4)與顯示器連接的引腳)與顯示器連接的引腳 OUTA0 OUTA0OUTA3OUTA3(A A組顯示數(shù)據(jù))組顯示數(shù)據(jù))、OUTB0OUTB0OUTB3OUTB3

32、(B B組顯示數(shù)據(jù))組顯示數(shù)據(jù)): :向向LEDLED顯示器輸出的段碼顯示器輸出的段碼, , 與掃描信號(hào)與掃描信號(hào)線(xiàn)線(xiàn)SL0SL0SL3SL3同步。兩組可獨(dú)立使用,也可合并使用。同步。兩組可獨(dú)立使用,也可合并使用。 BD BD* *: :消隱顯示控制消隱顯示控制。3. 82793. 8279的基本功能部件的基本功能部件(1 1)掃描計(jì)數(shù)器)掃描計(jì)數(shù)器編碼方式編碼方式: :掃描線(xiàn)掃描線(xiàn)SL0SL0SL3SL3輸出,經(jīng)外部輸出,經(jīng)外部4-164-16譯碼器譯碼器譯碼后,為鍵盤(pán)和顯示器提供譯碼后,為鍵盤(pán)和顯示器提供1616取取1 1的掃描線(xiàn)。的掃描線(xiàn)。譯碼方式譯碼方式: :計(jì)數(shù)器的最低二位在計(jì)數(shù)器的

33、最低二位在82798279內(nèi)部譯碼后,從內(nèi)部譯碼后,從SL0SL0SL3SL3輸出,為鍵盤(pán)和顯示器提供輸出,為鍵盤(pán)和顯示器提供4 4取取1 1掃描線(xiàn)。掃描線(xiàn)。D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0CNTLCNTLSHIFTSHIFT掃掃 描描回回 復(fù)復(fù)(2 2)鍵盤(pán)去抖動(dòng)及回復(fù)緩沖器)鍵盤(pán)去抖動(dòng)及回復(fù)緩沖器 RL0 RL0RL7RL7被接到鍵盤(pán)的行線(xiàn)。被接到鍵盤(pán)的行線(xiàn)。 在逐列掃描時(shí),當(dāng)某一鍵閉合,消抖電路延時(shí)等在逐列掃描時(shí),當(dāng)某一鍵閉合,消抖電路延時(shí)等待待10ms10ms之后,再檢驗(yàn)該鍵是否仍閉合。若閉合,則該之后,再檢驗(yàn)該鍵是否仍閉合。若閉合,則該鍵的行、列地址和

34、附加的移位、控制狀態(tài)一起形成鍵鍵的行、列地址和附加的移位、控制狀態(tài)一起形成鍵盤(pán)數(shù)據(jù),送入盤(pán)數(shù)據(jù),送入82798279內(nèi)部的鍵盤(pán)內(nèi)部的鍵盤(pán)RAMRAM存儲(chǔ)器。格式為:存儲(chǔ)器。格式為: 控制(控制(CNTLCNTL)和移位()和移位(SHIFTSHIFT)的狀態(tài)由兩個(gè)獨(dú)立)的狀態(tài)由兩個(gè)獨(dú)立的附加開(kāi)關(guān)決定,而的附加開(kāi)關(guān)決定,而掃描掃描(D5D5、D4D4、D3D3)是被按鍵的)是被按鍵的列列編碼,而編碼,而回復(fù)回復(fù)(D2D2、D1D1、D0D0)則是被按鍵的)則是被按鍵的行行位置位置數(shù)據(jù)。數(shù)據(jù)。(3 3)鍵盤(pán))鍵盤(pán)RAMRAM及其狀態(tài)寄存器及其狀態(tài)寄存器鍵盤(pán)鍵盤(pán)RAMRAM:8 8字節(jié)先進(jìn)先出(字節(jié)

35、先進(jìn)先出(FIFOFIFO)存儲(chǔ)器。內(nèi)部的)存儲(chǔ)器。內(nèi)部的FIFOFIFO狀態(tài)寄存器存放狀態(tài)寄存器存放FIFOFIFO的工作狀態(tài),如的工作狀態(tài),如FIFOFIFO是空還是滿(mǎn),是空還是滿(mǎn),其中存有多少字符,是否操作出錯(cuò)等等。其中存有多少字符,是否操作出錯(cuò)等等。 當(dāng)當(dāng)FIFOFIFO存儲(chǔ)器有數(shù)據(jù)時(shí)將產(chǎn)生存儲(chǔ)器有數(shù)據(jù)時(shí)將產(chǎn)生IRQ=1IRQ=1信號(hào),向信號(hào),向CPUCPU發(fā)發(fā)出中斷申請(qǐng),讀出一次數(shù)據(jù)后變?yōu)榈?,若出中斷申?qǐng),讀出一次數(shù)據(jù)后變?yōu)榈停鬎IFOFIFO中還有中還有數(shù)據(jù),則數(shù)據(jù),則IRQIRQ又變?yōu)楦?。又變?yōu)楦?。? 4)顯示)顯示RAMRAM和顯示地址寄存器和顯示地址寄存器顯示顯示RAMR

36、AM:存顯示數(shù)據(jù)。存顯示數(shù)據(jù)。1616個(gè)字節(jié),可存放個(gè)字節(jié),可存放1616位顯示信位顯示信息。顯示息。顯示RAMRAM的輸出與顯示掃描配合,同時(shí)輪流驅(qū)動(dòng)被的輸出與顯示掃描配合,同時(shí)輪流驅(qū)動(dòng)被選中的顯示位,使顯示器呈現(xiàn)穩(wěn)定的顯示(動(dòng)態(tài)掃選中的顯示位,使顯示器呈現(xiàn)穩(wěn)定的顯示(動(dòng)態(tài)掃描)。描)。4. 82794. 8279的命令字和狀態(tài)字的命令字和狀態(tài)字命令字:命令字:D7D7、D6D6、D5D5為命令特征位,來(lái)區(qū)分為命令特征位,來(lái)區(qū)分8 8條不同條不同的命令字。的命令字。 狀態(tài)字:狀態(tài)字:主要用于鍵盤(pán)工作方式,以指示鍵盤(pán)主要用于鍵盤(pán)工作方式,以指示鍵盤(pán)RAMRAM中中的字符數(shù)和有無(wú)錯(cuò)誤發(fā)生。具體內(nèi)

37、容參加教材。的字符數(shù)和有無(wú)錯(cuò)誤發(fā)生。具體內(nèi)容參加教材。5. 82795. 8279與鍵盤(pán)與鍵盤(pán)/ /顯示器的接口顯示器的接口 圖圖10-2010-20為為82798279與與8 8位顯示器,位顯示器,4 48 8鍵盤(pán)鍵盤(pán)的接口電路。的接口電路。行線(xiàn)接行線(xiàn)接82798279的的RL0RL0RL3RL3,82798279選用外部譯碼方式,選用外部譯碼方式,SL0SL0SL2SL2經(jīng)經(jīng)74LS13874LS138(1 1)譯碼輸出,接列線(xiàn),實(shí)現(xiàn)鍵盤(pán)逐)譯碼輸出,接列線(xiàn),實(shí)現(xiàn)鍵盤(pán)逐列掃描。列掃描。 SL0 SL0SL2SL2又由又由74LS138(2)74LS138(2)譯碼輸出到顯示器各位的公譯碼輸

38、出到顯示器各位的公共陰極,進(jìn)行逐位掃描顯示。共陰極,進(jìn)行逐位掃描顯示。OUTB0OUTB03 3、OUTA 0OUTA 03 3輸輸出出8 8位段碼。位段碼。 當(dāng)位切換時(shí),當(dāng)位切換時(shí),BDBD* *輸出為低電平,使輸出為低電平,使74LS138(2)74LS138(2)輸出輸出全為高電平,顯示消隱。全為高電平,顯示消隱。 當(dāng)鍵盤(pán)上出現(xiàn)有效的閉合鍵時(shí),鍵輸入數(shù)據(jù)自動(dòng)進(jìn)入當(dāng)鍵盤(pán)上出現(xiàn)有效的閉合鍵時(shí),鍵輸入數(shù)據(jù)自動(dòng)進(jìn)入中斷讀取鍵盤(pán)中斷讀取鍵盤(pán)RAMRAM中的鍵輸入數(shù)據(jù)。若要更新顯示器輸中的鍵輸入數(shù)據(jù)。若要更新顯示器輸出,僅需改變出,僅需改變82798279中顯示中顯示RAMRAM中的內(nèi)容。中的內(nèi)容。

39、82798279的鍵盤(pán)的鍵盤(pán)RAMRAM存儲(chǔ)器,并向存儲(chǔ)器,并向80318031請(qǐng)求中斷,請(qǐng)求中斷,80318031響應(yīng)響應(yīng) 圖圖10-20:827910-20:8279的的命令命令/ /狀態(tài)口地址為狀態(tài)口地址為7FFFH7FFFH,數(shù)據(jù)口,數(shù)據(jù)口地址為地址為7FFEH7FFEH。 82798279初始化程序:初始化程序:編程思路:編程思路:1.1.先選擇端口先選擇端口。命令。命令/ /狀態(tài)口還是數(shù)據(jù)口?狀態(tài)口還是數(shù)據(jù)口?2.2.選擇命令選擇命令/ /狀態(tài)口,狀態(tài)口,寫(xiě)入命令字寫(xiě)入命令字。命令字高。命令字高3 3位用來(lái)確位用來(lái)確定是什么樣的命令?定是什么樣的命令? 清除命令?讀鍵盤(pán)清除命令?讀

40、鍵盤(pán)RAM?RAM?寫(xiě)顯示寫(xiě)顯示RAMRAM?基本設(shè)置命令?基本設(shè)置命令? 后后5 5為確定某種命令的具體操作。為確定某種命令的具體操作。3.3.選擇數(shù)據(jù)口,進(jìn)行數(shù)據(jù)的讀寫(xiě)選擇數(shù)據(jù)口,進(jìn)行數(shù)據(jù)的讀寫(xiě)。例如寫(xiě)入顯示。例如寫(xiě)入顯示RAMRAM數(shù)數(shù)據(jù),或讀鍵盤(pán)據(jù),或讀鍵盤(pán)RAMRAM數(shù)據(jù)。數(shù)據(jù)。 主程序流程簡(jiǎn)介主程序流程簡(jiǎn)介:?jiǎn)纹瑱C(jī)及:?jiǎn)纹瑱C(jī)及82798279初始化,外部中斷初始化,外部中斷1 1為為按鍵中斷入口,顯示子程序一般根據(jù)鍵值狀態(tài)來(lái)調(diào)用。按鍵中斷入口,顯示子程序一般根據(jù)鍵值狀態(tài)來(lái)調(diào)用。INITI: SETB EX1INITI: SETB EX1 ; ; 允許外部中斷允許外部中斷1 1中斷中斷MOVMOV DPTR DPTR,#7FFFH,#7FFFH ; ; 命令命令/ /狀態(tài)口地址寫(xiě)入狀態(tài)口地址寫(xiě)入DPTRDPTRMOVMOV A,#0D1H A,#0D1H ; ; 控制字控制字D1HD1H送送A A,清除指令,清除指令MOVX DPT

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論