版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第1010章章 MCS-51MCS-51與鍵盤、顯示器、撥盤、打印機(jī)的接與鍵盤、顯示器、撥盤、打印機(jī)的接 口設(shè)計(jì)口設(shè)計(jì)輸入外設(shè):輸入外設(shè):鍵盤、鍵盤、BCDBCD碼撥盤等;碼撥盤等;輸出外設(shè):輸出外設(shè):LEDLED顯示器、顯示器、LCDLCD顯示器、打印機(jī)等。顯示器、打印機(jī)等。10.1 10.1 LEDLED顯示器接口原理顯示器接口原理 LED LED(Light Emitting Diode)(Light Emitting Diode): :發(fā)光二極管的縮寫。發(fā)光二極管的縮寫。顯示器前面冠以顯示器前面冠以“LED”LED”。10.1.1 10.1.1 LEDLED顯示器的結(jié)構(gòu)顯示器的結(jié)構(gòu)
2、常用的常用的LEDLED顯示器為顯示器為8 8段段(或(或7 7段段,8 8段比段比7 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提供提供段碼段碼(或稱(或稱字型碼字型碼)。)。提供給提供給LEDLED顯示器的段碼顯示器的段碼(字型碼字型碼)正好是一個(gè)字正好是一個(gè)字節(jié)(節(jié)(8 8段)段)。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:按上述格式,按上述格式,8 8段段LEDLED的段碼如表的段碼如表1
3、0-110-1所示。所示。顯示字符顯示字符共陰極共陰極段碼段碼共陽(yáng)極共陽(yáng)極段碼段碼顯示字符顯示字符共陰極共陰極段碼段碼共陽(yáng)極共陽(yáng)極段碼段碼0 03 3FHFHC0HC0Hc c3939H HC6HC6H1 10606H HF9HF9Hd d5 5EHEHA1HA1H2 25 5BHBHA4HA4HE E7979H H8686H H3 34 4FHFHB0HB0HF F7171H H8 8EHEH4 46666H H9999H HP P7373H H8 8CHCH5 56 6DHDH9292H HU U3 3EHEHC1HC1H6 67 7DHDH8282H HT T3131H HCEHCEH7
4、 70707H HF8HF8Hy y6 6EHEH9191H H8 87 7FHFH8080H HH H7676H H8989H H9 96 6FHFH9090H HL L3838H HC7HC7HA A7777FHFH8888H H“滅滅”0000H HFFHFFHb b7 7CHCH8383H H表表10-1 10-1 LEDLED段碼(段碼(8 8段)段)表表10-110-1只列出了部分段碼,只列出了部分段碼,可根據(jù)實(shí)際情況選用可根據(jù)實(shí)際情況選用。另外,另外,段碼是相對(duì)的段碼是相對(duì)的,它由各字段在字節(jié)中所處的,它由各字段在字節(jié)中所處的位決定。例如表位決定。例如表10-110-1中中8 8
5、段段LEDLED段碼是按格式段碼是按格式:而形成的,而形成的, “0”“0”的段碼為的段碼為3 3FHFH(共陰)。共陰)。反之,如反之,如 將格式改為下列格式:將格式改為下列格式:則則 “0”“0”的段碼為的段碼為7 7EHEH(共陰)共陰)。字型及段碼由設(shè)計(jì)者自行設(shè)定,字型及段碼由設(shè)計(jì)者自行設(shè)定,習(xí)慣上還是以習(xí)慣上還是以“a”a” 段對(duì)應(yīng)段碼的最低位。段對(duì)應(yīng)段碼的最低位。N N個(gè)個(gè)LEDLED顯示塊有顯示塊有N N位位選線位位選線和和8 8N N根段碼線根段碼線。 10.1.2 10.1.2 LEDLED顯示器工作原理顯示器工作原理圖圖10-210-2是是4 4位位 LEDLED顯示器的結(jié)
6、構(gòu)原理圖。顯示器的結(jié)構(gòu)原理圖。段碼線段碼線控制控制顯示的字型顯示的字型,位選線位選線控制控制該顯示位的亮或暗。該顯示位的亮或暗。靜態(tài)顯示靜態(tài)顯示和和動(dòng)態(tài)顯示動(dòng)態(tài)顯示兩種顯示方式。兩種顯示方式。1. 1. 靜態(tài)顯示方式靜態(tài)顯示方式各位的公共端連接在一起(接地或各位的公共端連接在一起(接地或+5+5V V)。)。 每位的段碼線(每位的段碼線(a adpdp)分別分別與一個(gè)與一個(gè)8 8位的鎖存器位的鎖存器輸出相連。輸出相連。 顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持不變,直到送入另一個(gè)段碼為止。不變,直到送入另一個(gè)段碼為止。顯示的亮度高顯示的亮度高。 圖圖
7、10-3:10-3: 4 4位靜態(tài)位靜態(tài)LEDLED顯示器電路。該電路各位顯示器電路。該電路各位可獨(dú)立顯示??瑟?dú)立顯示。2. 2. 動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式 所有位的段碼線所有位的段碼線相應(yīng)段并在一起,由一個(gè)相應(yīng)段并在一起,由一個(gè)8 8位位I/OI/O口控制口控制,形成,形成段碼線的多路復(fù)用,段碼線的多路復(fù)用,各位的各位的公共端公共端分別由分別由相應(yīng)的相應(yīng)的I/OI/O線控制,形成各位的線控制,形成各位的分時(shí)選通。分時(shí)選通。圖圖10-410-4:4 4位位8 8段段LEDLED動(dòng)態(tài)顯示電路。其中段碼線占用一動(dòng)態(tài)顯示電路。其中段碼線占用一個(gè)個(gè)8 8位位I/OI/O口,而位選線占用一個(gè)口,而位選線
8、占用一個(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ò)程。圖(圖(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 鍵盤接口原理鍵盤接口原理1. 1. 鍵盤輸入的特點(diǎn)鍵盤輸入的特點(diǎn)鍵盤:一組按鍵開關(guān)的集合鍵盤:一組按鍵開關(guān)的集合。 行線電壓信號(hào)通過(guò)鍵盤開關(guān)機(jī)械觸點(diǎn)
9、的斷開、閉合,行線電壓信號(hào)通過(guò)鍵盤開關(guān)機(jī)械觸點(diǎn)的斷開、閉合,輸出波形如圖輸出波形如圖10-610-6。2. 2. 按鍵的確認(rèn)按鍵的確認(rèn) 檢測(cè)檢測(cè)行線行線電平電平 高電平:高電平:斷開;斷開;低電平低電平:閉合,:閉合,常用常用軟件來(lái)消除按鍵抖動(dòng)。軟件來(lái)消除按鍵抖動(dòng)。 基本思想基本思想:檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的行線為低,軟檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的行線為低,軟件延時(shí)件延時(shí)1010msms后,行線如仍為低,則確認(rèn)該行有鍵按下。后,行線如仍為低,則確認(rèn)該行有鍵按下。3.3.如何消除按鍵的抖動(dòng)如何消除按鍵的抖動(dòng) 當(dāng)鍵松開時(shí)當(dāng)鍵松開時(shí),行線變高,軟件延時(shí),行線變高,軟件延時(shí)1010msms后,行線仍后,行
10、線仍為為高,說(shuō)明按鍵已松開。高,說(shuō)明按鍵已松開。采取以上措施,采取以上措施,躲開了兩個(gè)抖動(dòng)期躲開了兩個(gè)抖動(dòng)期t1t1和和t3t3的影響的影響。10.2.2 10.2.2 鍵盤接口的工作原理鍵盤接口的工作原理獨(dú)立式獨(dú)立式按鍵接口和按鍵接口和行列式行列式鍵盤接口。鍵盤接口。1.1.獨(dú)立式鍵盤接口獨(dú)立式鍵盤接口 各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過(guò)各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過(guò)檢檢測(cè)輸入線的電平狀態(tài)測(cè)輸入線的電平狀態(tài)可很容易判斷那個(gè)鍵被按下??珊苋菀着袛嗄莻€(gè)鍵被按下。此種接口此種接口適于鍵數(shù)較少適于鍵數(shù)較少或或操作速度較高操作速度較高的場(chǎng)合。的場(chǎng)合。圖圖10-710-7(a a)為
11、為中斷方式的獨(dú)立式中斷方式的獨(dú)立式鍵盤工作電路鍵盤工作電路圖圖10-710-7(b b)為為查詢方式的獨(dú)立式查詢方式的獨(dú)立式鍵盤工作電路鍵盤工作電路。圖圖10-810-8為為82558255A A擴(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ú)立式鍵盤編程,軟件消抖,查詢方式檢獨(dú)立式鍵盤編程,軟件消抖,查詢方式檢測(cè)鍵的狀態(tài)。僅有一鍵按下時(shí)才有效才處理。測(cè)鍵的狀態(tài)。僅有一鍵按下時(shí)才有效才處理。KEYIN:MOV DPTR,#0BFFFHKEYIN:
12、MOV DPTR,#0BFFFH;鍵盤端口地址鍵盤端口地址BFFFHBFFFHMOVX A,DPTRMOVX A,DPTR;讀鍵盤狀態(tài)讀鍵盤狀態(tài)ANL A,#1FHANL A,#1FH;屏蔽高三位屏蔽高三位MOV R3,AMOV R3,A;保存鍵盤狀態(tài)值保存鍵盤狀態(tài)值LCALL DELAY10LCALL DELAY10;延時(shí)延時(shí)1010msms去鍵盤抖動(dòng)去鍵盤抖動(dòng)MOVX A,DPTRMOVX A,DPTR;再讀鍵盤狀態(tài)再讀鍵盤狀態(tài)ANL A,#1FHANL A,#1FH;屏蔽高三位屏蔽高三位 CJNE A,R3,RETURN CJNE A,R3,RETURN ;兩次不同,抖動(dòng)引起轉(zhuǎn)兩次不同,
13、抖動(dòng)引起轉(zhuǎn)RETURNRETURNCJNE A,#1EH,KEY2 CJNE A,#1EH,KEY2 ;相等,有鍵按下,不等轉(zhuǎn)相等,有鍵按下,不等轉(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,KEY4
14、CJNE A,#1BH,KEY4 ;S3;S3未按下,轉(zhuǎn)未按下,轉(zhuǎn)KEY4KEY4LJMP PKEY3 ;S3LJMP PKEY3 ;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 ;S5
15、LJMP PKEY5 ;S5按下,轉(zhuǎn)按下,轉(zhuǎn)PKEY5PKEY5處理處理RETURN:RET ;RETURN:RET ;重鍵或無(wú)鍵按下,從子程序返回重鍵或無(wú)鍵按下,從子程序返回識(shí)別和編程簡(jiǎn)單,識(shí)別和編程簡(jiǎn)單,用在按鍵數(shù)較少的場(chǎng)合。用在按鍵數(shù)較少的場(chǎng)合。2. 行列式行列式(矩陣式矩陣式)鍵盤接口鍵盤接口 用于按鍵數(shù)目較多的場(chǎng)合,用于按鍵數(shù)目較多的場(chǎng)合,由由行線和列線組成行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。如圖按鍵位于行、列的交叉點(diǎn)上。如圖10-1010-10所示。所示。 按鍵數(shù)目較多的場(chǎng)合按鍵數(shù)目較多的場(chǎng)合,行列式鍵盤與獨(dú)立式鍵盤,行列式鍵盤與獨(dú)立式鍵盤相比,要相比,要節(jié)省很多的節(jié)省很多的
16、I/OI/O口線口線。(1)行列式鍵盤工作原理)行列式鍵盤工作原理 無(wú)鍵按下,該行線為高電平,無(wú)鍵按下,該行線為高電平,當(dāng)有鍵按下時(shí),當(dāng)有鍵按下時(shí),行線電平由列線的電平來(lái)決定行線電平由列線的電平來(lái)決定。 由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)生影響,必須生影響,必須將行、列線信號(hào)配合起來(lái)并作適當(dāng)?shù)奶帉⑿?、列線信號(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í)
17、別出來(lái)的。時(shí)如何被識(shí)別出來(lái)的。識(shí)別鍵盤有無(wú)鍵被按下的方法,分兩步進(jìn)行:識(shí)別鍵盤有無(wú)鍵被按下的方法,分兩步進(jìn)行:第第1 1步:步:識(shí)別鍵盤有無(wú)鍵按下;識(shí)別鍵盤有無(wú)鍵按下;第第2 2步:步:如有鍵被按下,識(shí)別出具體的按鍵。如有鍵被按下,識(shí)別出具體的按鍵。 把所有列線置把所有列線置0 0,檢查各行線電平是否有變化,如,檢查各行線電平是否有變化,如有變化,說(shuō)明有鍵按下,如無(wú)變化,則無(wú)鍵按下。有變化,說(shuō)明有鍵按下,如無(wú)變化,則無(wú)鍵按下。 上述方法稱為上述方法稱為掃描法掃描法,即,即先把某一列置低電平,先把某一列置低電平,其余各列為高電平,檢查各行線電平的變化其余各列為高電平,檢查各行線電平的變化,如果某
18、,如果某行線電平為低,可確定行線電平為低,可確定此行列交叉點(diǎn)此行列交叉點(diǎn)處的按鍵被按處的按鍵被按下。下。 b. b. 線反轉(zhuǎn)法線反轉(zhuǎn)法 只需兩步便能獲得此按鍵所在的行列值,線反轉(zhuǎn)只需兩步便能獲得此按鍵所在的行列值,線反轉(zhuǎn)法的原理如圖法的原理如圖10-1110-11。第第1 1步:步:列線輸出為全低電平,則行線中電平由高變低列線輸出為全低電平,則行線中電平由高變低的所在行為按鍵所在行。的所在行為按鍵所在行。第第2 2步:步:行線輸出為全低電平,則列線中電平由高變低行線輸出為全低電平,則列線中電平由高變低所在列為按鍵所在列。所在列為按鍵所在列。 結(jié)合上述兩步,可確定按鍵所在行和列。結(jié)合上述兩步,可
19、確定按鍵所在行和列。(3 3)鍵盤的編碼)鍵盤的編碼 根據(jù)實(shí)際需要靈活編碼。根據(jù)實(shí)際需要靈活編碼。10.2.3 10.2.3 鍵盤的工作方式鍵盤的工作方式 單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤的輸單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。入,取決于鍵盤的工作方式。原則:原則:即要保證能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占即要保證能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占用用CPUCPU的工作時(shí)間。的工作時(shí)間。 通常,通常,鍵盤工作方式有鍵盤工作方式有3 3種種,即編程掃描、定時(shí)掃,即編程掃描、定時(shí)掃描和中斷掃描。描和中斷掃描。1. 1. 編程掃描方式編程掃描方式 只有當(dāng)單片機(jī)空
20、閑時(shí),才調(diào)用鍵盤掃描子程序,只有當(dāng)單片機(jī)空閑時(shí),才調(diào)用鍵盤掃描子程序,掃描鍵盤。掃描鍵盤。工作過(guò)程:工作過(guò)程:(1 1)在鍵盤掃描子程序中,先判斷有無(wú)鍵按下。)在鍵盤掃描子程序中,先判斷有無(wú)鍵按下。方法:方法:PAPA口口8 8位輸出全位輸出全0 0,讀,讀PCPC口低口低4 4位狀態(tài),若位狀態(tài),若PC0PC0PC3PC3為全為全1 1,則說(shuō)明鍵盤無(wú)鍵按下;若不全為,則說(shuō)明鍵盤無(wú)鍵按下;若不全為1 1,則說(shuō)明,則說(shuō)明鍵盤可能有鍵按下。鍵盤可能有鍵按下。(2 2)用軟件來(lái)消除按鍵抖動(dòng)的影響。如有鍵按下,則)用軟件來(lái)消除按鍵抖動(dòng)的影響。如有鍵按下,則進(jìn)行下一步。進(jìn)行下一步。(3 3)求按下鍵的鍵號(hào)
21、。)求按下鍵的鍵號(hào)。(4 4)等待按鍵釋放后,再進(jìn)行按鍵功能的處理操作。)等待按鍵釋放后,再進(jìn)行按鍵功能的處理操作。2. 2. 定時(shí)掃描工作方式定時(shí)掃描工作方式 利用單片機(jī)內(nèi)的定時(shí)器,產(chǎn)生利用單片機(jī)內(nèi)的定時(shí)器,產(chǎn)生1010msms的定時(shí)中斷,對(duì)的定時(shí)中斷,對(duì)鍵盤進(jìn)行掃描。鍵盤進(jìn)行掃描。3.3.中斷工作方式中斷工作方式 只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如無(wú)鍵按下,單片機(jī)將不理睬鍵盤。無(wú)鍵按下,單片機(jī)將不理睬鍵盤。 鍵盤所做的工作分為三個(gè)層次鍵盤所做的工作分為三個(gè)層次,如圖,如圖10-1310-13。第第1 1層:層:?jiǎn)纹瑱C(jī)如何來(lái)監(jiān)視鍵盤的輸入
22、。三種工作方單片機(jī)如何來(lái)監(jiān)視鍵盤的輸入。三種工作方 式:編程掃描定時(shí)掃描中斷掃描。式:編程掃描定時(shí)掃描中斷掃描。第第2 2層:層:確定具體按鍵的鍵號(hào)。體現(xiàn)在按鍵的識(shí)別方確定具體按鍵的鍵號(hào)。體現(xiàn)在按鍵的識(shí)別方 法上就是:掃描法;線反轉(zhuǎn)法。法上就是:掃描法;線反轉(zhuǎn)法。第第3 3層:層:執(zhí)行鍵處理程序。執(zhí)行鍵處理程序。10.3 10.3 鍵盤鍵盤/ /顯示器接口設(shè)計(jì)實(shí)例顯示器接口設(shè)計(jì)實(shí)例 一般把鍵盤和顯示器放在一起考慮。一般把鍵盤和顯示器放在一起考慮。10.3.1 10.3.1 利用并行利用并行I/OI/O芯片實(shí)現(xiàn)鍵盤芯片實(shí)現(xiàn)鍵盤/ /顯示器接口顯示器接口 圖圖10-1410-14:80318031
23、用擴(kuò)展用擴(kuò)展I/OI/O接口芯片接口芯片81558155H H實(shí)現(xiàn)的實(shí)現(xiàn)的6 6位位LEDLED顯示和顯示和3232鍵的鍵盤鍵的鍵盤/ /顯示器接口電路。圖中顯示器接口電路。圖中81558155H H也可用也可用82558255A A來(lái)替代。來(lái)替代。 8031 8031外擴(kuò)一片外擴(kuò)一片81558155H H。RAMRAM地址:地址:7 7E00HE00H7EFFH7EFFH。I/OI/O口地址:口地址:7 7F00HF00H7F05H7F05H。 PAPA口口為輸出口為輸出口,控制鍵盤控制鍵盤列線的掃描列線的掃描,同時(shí)又是,同時(shí)又是6 6位共陰極顯示器的位共陰極顯示器的位掃描口位掃描口。 PB
24、PB口口作為顯示器段碼輸出口,作為顯示器段碼輸出口,PCPC口作為鍵盤的行口作為鍵盤的行線狀態(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ì) 8031 8031內(nèi)部?jī)?nèi)部RAM RAM 6 6個(gè)顯示緩沖單元:個(gè)顯示緩沖單元:7979H H7EH7EH,存存放要顯示的放要顯示的6 6位數(shù)據(jù)。位數(shù)據(jù)。 8155 8155H H的的PBPB口輸出相應(yīng)位的段碼,口輸出相應(yīng)位的段碼,依次改變依次改變PAPA口口輸出為輸出為高高的位的位使某一位顯示某一字符,其它位為暗。使某一位顯示某一字符,其它位為
25、暗。動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程序流程如圖序流程如圖10-15 10-15 。參考程序參考程序:DIRDIR: MOV R0, MOV R0,79H79H;置緩沖器指針初值置緩沖器指針初值MOV R3,MOV R3,01H01H;位選碼的初值送位選碼的初值送R3R3MOV A,R3MOV A,R3LD0LD0: MOV DPTR, MOV DPTR,7F01H7F01H;位選碼位選碼PAPA口(口(PA.0PA.0位)位);最左邊最左邊LEDLED亮亮MOVX DPTR,AMOVX DPTR,AINC DPTRINC DPTR ;
26、數(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 ;段碼段碼81558155HPBHPB口口ACALL DL1ms ACALL DL1ms ;該位顯示該位顯示1 1msmsINC R0INC R0 ;指針指向下一個(gè)數(shù)據(jù)單元指針指向下一個(gè)數(shù)據(jù)單元MOV A
27、,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 ;AJMP LD0 ;LD1LD1: RET ; RET ;DSEGDSEG: DB 3FH,06H,5BH,4FH,66H,6DH DB 3FH,06H,5BH,4FH,66H,6D
28、H ;共陰極段碼表共陰極段碼表 DB 7DH,07H,7FH,6FH,77H,7CH DB 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 R7,MOV R7,02H02H;延時(shí)延時(shí)1 1msms子程序子程序DLDL: MOV R6,MOV R6,0FFH0FFHDL6DL6: DJNZ R6,DL6DJNZ R6,
29、DL6DJNZ R7,DLDJNZ R7,DLRETRET2 2鍵盤程序設(shè)計(jì)鍵盤程序設(shè)計(jì)(1 1)判別鍵盤上有無(wú)鍵閉合)判別鍵盤上有無(wú)鍵閉合(2 2)去除鍵的機(jī)械抖動(dòng))去除鍵的機(jī)械抖動(dòng) (3 3)判別閉合鍵的鍵號(hào))判別閉合鍵的鍵號(hào)(4 4)使)使CPUCPU對(duì)鍵的一次閉合僅作一次處理對(duì)鍵的一次閉合僅作一次處理 鍵盤程序的流程如圖鍵盤程序的流程如圖10-1610-16。鍵盤子程序如下:鍵盤子程序如下:KEYIKEYI:ACALL KS1ACALL KS1 ;調(diào)用判有無(wú)鍵閉合子程序調(diào)用判有無(wú)鍵閉合子程序JNZ LK1 JNZ LK1 ;有鍵閉合,跳有鍵閉合,跳LK1LK1NINI: ACALL D
30、IR ACALL DIR ;無(wú)鍵閉合,調(diào)用顯示子程序無(wú)鍵閉合,調(diào)用顯示子程序, ,延延 ;遲;遲6 6msms后,跳后,跳KEYIKEYIAJMP KEYIAJMP KEYILK1LK1: ACALL DIR ACALL DIR ;可能有鍵閉合,軟件延遲可能有鍵閉合,軟件延遲1212msms去抖去抖ACALL DIRACALL DIRACALL KS1 ACALL KS1 ;調(diào)用判有無(wú)鍵閉合子程序調(diào)用判有無(wú)鍵閉合子程序JNZ LK2JNZ LK2 ;經(jīng)去抖,判鍵確實(shí)閉合,跳經(jīng)去抖,判鍵確實(shí)閉合,跳LK2LK2ACALL DIRACALL DIR;調(diào)用顯示子程序延遲調(diào)用顯示子程序延遲6 6msm
31、sAJMP 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 ;列選碼列選碼81558155H H的的PAPA口口MOV A,R2 ;MOV A,R2 ;MOVX DPTR,A ; MOVX DPTR,A ; INC DPTRINC DPTR ;數(shù)據(jù)指針增數(shù)據(jù)指針增2 2,指向,指向PCPC口口INC DPTR ;INC DPTR ;MOVX
32、 A,DPTRMOVX A,DPTR ;讀讀81558155H PCH PC口口JB Acc.0,LONEJB Acc.0,LONE ;0 0行線為高,無(wú)鍵閉合,跳行線為高,無(wú)鍵閉合,跳 LONE LONE,轉(zhuǎn)判轉(zhuǎn)判1 1行行MOV A,MOV A,00H00H ;0 0行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)00A AAJMP LKPAJMP LKP ;跳跳LKPLKP,計(jì)算鍵號(hào)計(jì)算鍵號(hào)LONELONE:JB Acc.1,LTW0 JB Acc.1,LTW0 ;1 1行線為高,無(wú)鍵閉合,跳行線為高,無(wú)鍵閉合,跳LTW0LTW0, ;轉(zhuǎn)判;轉(zhuǎn)判2 2行行MOV A,MOV A,08H 08H ;
33、1 1行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)88A AAJMP 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)1010HAHAAJMP LKPAJMP LKP;跳跳LKPLKP,計(jì)算鍵號(hào)計(jì)算鍵號(hào)LTHRLTHR:JB Acc.3,NEXT JB Acc.3,NEXT ;3 3行線為高,無(wú)鍵行線為高,無(wú)鍵;閉合,跳;閉合,跳NEXTNEXT,準(zhǔn)備下一列掃描準(zhǔn)備下一列掃描MOV A
34、,MOV A,18H18H;3 3行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)1818HAHALKPLKP: ADD A,R4 ADD 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 DIR ACALL DIR;調(diào)用顯示子程序,延時(shí)調(diào)用顯示子程序,延時(shí)6 6msmsACALL KS1ACALL KS1;調(diào)用判有無(wú)鍵閉合子程序,延時(shí)調(diào)用判有無(wú)鍵閉合子程序,延時(shí);6 6msmsJNZ LK3 JNZ LK3 ;判鍵釋放否,未釋放,則循環(huán)判鍵釋放否,未釋放,則循環(huán)POP A POP A ;鍵已釋放,鍵號(hào)出棧鍵
35、已釋放,鍵號(hào)出棧A ARETRETNEXTNEXT:INC R4 INC R4 ;列計(jì)數(shù)器加列計(jì)數(shù)器加1 1,為下一列掃描作準(zhǔn)備,為下一列掃描作準(zhǔn)備MOV A,R2 MOV A,R2 ;判是否已掃到最后一列(最右一列)判是否已掃到最后一列(最右一列)JNB Acc.7,KND JNB Acc.7,KND ;鍵掃描已掃到最后一列,跳鍵掃描已掃到最后一列,跳KNDKND, ;重新進(jìn)行整個(gè)鍵盤掃描;重新進(jìn)行整個(gè)鍵盤掃描RL A RL A ;鍵掃描未掃到最后一列,位選碼左移鍵掃描未掃到最后一列,位選碼左移;一位;一位MOV R2,A MOV R2,A ;位選碼位選碼R2R2AJMP LK4 ;AJMP
36、 LK4 ;KNDKND: AJMP KEYI ; AJMP KEYI ;KS1KS1: MOV DPTR ,#7F01H MOV DPTR ,#7F01H;判有無(wú)鍵閉合子程序,全判有無(wú)鍵閉合子程序,全“0”“0” ;掃描口(;掃描口(PAPA口)口)MOV A,MOV A,00H00H ;即列線全為低電平即列線全為低電平MOVX DPTR,A ;MOVX DPTR,A ;INC DPTRINC DPTR ;DPTRDPTR增增2 2,指向,指向PCPC口口INC DPTRINC DPTR ;指針增指針增1 1,指向,指向PCPC口口MOVX A,DPTR MOVX A,DPTR ;從從PCP
37、C口讀行線的狀態(tài)口讀行線的狀態(tài)CPL A CPL A ;行線取反,如行線取反,如無(wú)鍵按下,則無(wú)鍵按下,則A A為為0 0;ANL A,ANL A,0FH 0FH ;屏蔽無(wú)用的高屏蔽無(wú)用的高4 4位位RETRET10.3.2 10.3.2 利用利用80318031的串行口實(shí)現(xiàn)鍵盤的串行口實(shí)現(xiàn)鍵盤/ /顯示器接口顯示器接口 串口未作它用,可用來(lái)外擴(kuò)鍵盤串口未作它用,可用來(lái)外擴(kuò)鍵盤/ /顯示器。顯示器。 串口為方式串口為方式0 0輸出,串口外接移位寄存器輸出,串口外接移位寄存器7474LS164LS164。接口電路如圖接口電路如圖10-1710-17。 74 74LS164(0)LS164(0)74
38、LS164(7):74LS164(7):作為作為8 8位位LEDLED的段碼輸出,的段碼輸出, 8031 8031的的P3.4P3.4、P3.5P3.5:兩行鍵的行狀態(tài)輸入兩行鍵的行狀態(tài)輸入 P3.3 P3.3(TXDTXD):同步移位脈沖輸出控制線,同步移位脈沖輸出控制線, 優(yōu)點(diǎn):優(yōu)點(diǎn):亮度大亮度大,容易做到,容易做到顯示不閃爍顯示不閃爍,且,且CPUCPU不必不必頻繁的為顯示服務(wù)頻繁的為顯示服務(wù),從而使單片機(jī)有更多的時(shí)間處理,從而使單片機(jī)有更多的時(shí)間處理其它事務(wù)。其它事務(wù)。 顯示子程序:顯示子程序:DIRDIR: SETB P3.3 SETB P3.3 ;P3.3=1P3.3=1允許允許T
39、XDTXD腳同步移位腳同步移位 ;脈沖輸出;脈沖輸出MOV R7,MOV R7,08H 08H ;送出的段碼個(gè)數(shù),送出的段碼個(gè)數(shù),R7R7為段為段 ;碼個(gè)數(shù)計(jì)數(shù)器;碼個(gè)數(shù)計(jì)數(shù)器MOV R0,MOV R0,7FH 7FH ;7FH7FH78H78H為顯示數(shù)據(jù)緩沖區(qū)為顯示數(shù)據(jù)緩沖區(qū)DL0DL0: MOV A,R0 MOV A,R0 ;取出要顯示的數(shù)送取出要顯示的數(shù)送A AADD A,ADD A,0DH 0DH ;加上偏移量加上偏移量MOVC A,AMOVC A,APC PC ;查段碼表查段碼表SEGTAGSEGTAG,取出段碼取出段碼MOV SBUF ,A MOV SBUF ,A ;將段碼送將段碼
40、送SBUFSBUF DL1DL1: JNB TI,DL1 JNB TI,DL1;輸出段碼,查詢輸出段碼,查詢TITI狀態(tài),狀態(tài),1 1個(gè)字節(jié)個(gè)字節(jié);的段碼輸出完否?;的段碼輸出完否?CLR TI CLR TI ;1 1個(gè)字節(jié)的段碼輸出完個(gè)字節(jié)的段碼輸出完, ,清清TITI標(biāo)志標(biāo)志DEC R0DEC R0;指向下一個(gè)顯示數(shù)據(jù)單元指向下一個(gè)顯示數(shù)據(jù)單元 DJNZ R7,DL0DJNZ R7,DL0;段碼個(gè)數(shù)計(jì)數(shù)器段碼個(gè)數(shù)計(jì)數(shù)器R7R7是否為是否為0, 0, 如不如不; ; 為為0 0,繼續(xù)送段碼,繼續(xù)送段碼CLR P3.3 CLR P3.3 ;8 8個(gè)段碼輸出完畢,關(guān)顯示器輸出個(gè)段碼輸出完畢,關(guān)顯
41、示器輸出RET RET ;返回返回SEGTABSEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99HDB 0C0H,0F9H,0A4H,0B0H,99H ;共陽(yáng)極段碼表,共陽(yáng)極段碼表, ;0,1,2,3,40,1,2,3,4DB 92H,82H,0F8H,90HDB 92H,82H,0F8H,90H;5,6,7,8,95,6,7,8,9DB 88H,83H,0C6H,0A1H,86HDB 88H,83H,0C6H,0A1H,86H;A,B,C,D,EA,B,C,D,EDB 8FH,0BFH,8CH,0FFH,0FFHDB 8FH,0BFH,8CH,0FFH,0FFH;F,F,P,P
42、,暗暗 鍵盤掃描子程序:鍵盤掃描子程序:KEYIKEYI:MOV A,MOV A,00H00H;判有無(wú)鍵按下,使所有列線為判有無(wú)鍵按下,使所有列線為0 0;的編碼送;的編碼送A AMOV SBUF,AMOV SBUF,A;掃描鍵盤的(掃描鍵盤的(8 8)號(hào))號(hào)7474LS164LS164輸輸 ;出為;出為0000H,H,使所有列線為使所有列線為0 0KL0KL0: JNB TI,KL0 JNB TI,KL0;串行輸出完否?串行輸出完否?CLR TICLR TI;串行輸出完畢,清串行輸出完畢,清TITIKL1KL1: JNB P3.4,PK1 JNB P3.4,PK1;第第1 1行有閉合鍵嗎?如
43、有,跳行有閉合鍵嗎?如有,跳;PK1PK1進(jìn)行處理進(jìn)行處理JB P3.5,KL1JB P3.5,KL1;在第在第2 2行鍵中有閉合鍵嗎?無(wú)閉行鍵中有閉合鍵嗎?無(wú)閉;合鍵跳;合鍵跳KL1KL1PK1PK1: ACALL DL10 ACALL DL10;調(diào)用延時(shí)調(diào)用延時(shí)1010msms子程序子程序DL10DL10,軟軟;件消除抖動(dòng);件消除抖動(dòng)JNB P3.4,JNB P3.4,PK2PK2;判是否抖動(dòng)引起的?判是否抖動(dòng)引起的?JB P3.5,KL1JB P3.5,KL1PK2PK2: MOV R7,MOV R7,08H 08H ;不是抖動(dòng)引起的不是抖動(dòng)引起的MOV R6,MOV R6,0FEH0F
44、EH;判別是哪一個(gè)鍵按下,判別是哪一個(gè)鍵按下,F(xiàn)EHFEH為最為最;左一列為低;左一列為低MOV R3,MOV R3,00H 00H ;R3R3為列號(hào)寄存器為列號(hào)寄存器MOV A,R6MOV A,R6 ;KL5KL5: MOV SBUF,A MOV SBUF,A;列掃描碼從串行口輸出列掃描碼從串行口輸出KL2KL2: JNB TI,KL2 JNB TI,KL2;等待串行口發(fā)送完等待串行口發(fā)送完CLR TICLR TI;串行口發(fā)送完畢,清串行口發(fā)送完畢,清TITI標(biāo)志標(biāo)志JNB P3.4,PKONEJNB P3.4,PKONE;讀第讀第1 1行線狀態(tài),第行線狀態(tài),第1 1行有鍵閉行有鍵閉;合,跳
45、;合,跳PKONEPKONE處理處理JB P3.5,NEXT JB P3.5,NEXT ;讀第讀第2 2行狀態(tài),是第行狀態(tài),是第2 2行某鍵否?行某鍵否?MOV R4,MOV R4,08H08H;第第2 2行鍵中有鍵被按下,行首鍵行鍵中有鍵被按下,行首鍵;號(hào);號(hào)0808H H送送R4R4AJMP PK3 ;AJMP PK3 ;PKONEPKONE:MOV R4,MOV R4,00H 00H ;第第1 1行有鍵按下,行首鍵號(hào)行有鍵按下,行首鍵號(hào)0000H H送送R4R4PK3PK3: MOV SBUF, MOV SBUF,00H 00H ;等待鍵釋放,發(fā)送等待鍵釋放,發(fā)送0000H H使所有列使
46、所有列 ;線為低;線為低KL3KL3: JNB TI,KL3 ; JNB TI,KL3 ;CLR TICLR TI ;發(fā)送完畢,清標(biāo)志發(fā)送完畢,清標(biāo)志KL4KL4: JNB P3.4,KL4 JNB P3.4,KL4 ;判行線狀態(tài)判行線狀態(tài)JNB P3.5,KL4 ;JNB P3.5,KL4 ;MOV A,R4MOV A,R4 ;兩行線均為高,說(shuō)明鍵已釋放兩行線均為高,說(shuō)明鍵已釋放 ADD A,R3ADD A,R3 ;計(jì)算得到鍵碼計(jì)算得到鍵碼A ARETRETNEXTNEXT: MOV A,R6 MOV A,R6 ;列掃描碼左移一位,判下列鍵列掃描碼左移一位,判下列鍵RL A ;RL A ;M
47、OV R6,AMOV R6,A ;記住列掃描碼于記住列掃描碼于R6R6中中INC R3INC R3 ;列號(hào)增列號(hào)增1 1DJNZ R7,KL5DJNZ R7,KL5 ;列計(jì)數(shù)器列計(jì)數(shù)器R7R7減減1 1,8 8列鍵都檢查列鍵都檢查 ;完?;完?AJMP KEYIAJMP KEYI ;8 8列鍵掃描完畢,開始下一個(gè)鍵列鍵掃描完畢,開始下一個(gè)鍵;盤掃描周期;盤掃描周期DL10DL10: MOV R7, MOV R7,0AH0AH;延時(shí)延時(shí)1010msms子程序子程序DLDL: MOV R6, MOV R6,0FFH0FFHDL6DL6: DJNZ R6,DL6 DJNZ R6,DL6DJNZ DJ
48、NZ R7,DLR7,DLRETRET10.3.3 10.3.3 利用通用鍵盤利用通用鍵盤/ /顯示器接口芯片顯示器接口芯片82798279實(shí)現(xiàn)鍵盤實(shí)現(xiàn)鍵盤/ / 顯示器接口顯示器接口 Intel Intel 82798279芯片:芯片:通用可編程鍵盤通用可編程鍵盤/ /顯示器接口芯片。顯示器接口芯片。 對(duì)鍵盤部分提供掃描工作方式,能對(duì)對(duì)鍵盤部分提供掃描工作方式,能對(duì)6464個(gè)個(gè)鍵鍵盤陣鍵鍵盤陣列不斷掃描,列不斷掃描,自動(dòng)消抖自動(dòng)消抖,自動(dòng)識(shí)別出閉合的鍵自動(dòng)識(shí)別出閉合的鍵并并得到鍵得到鍵號(hào)號(hào),能對(duì),能對(duì)雙鍵或雙鍵或N N鍵同時(shí)按下鍵同時(shí)按下進(jìn)行處理。進(jìn)行處理。掃描方式的顯示接口,可顯示多達(dá)掃描
49、方式的顯示接口,可顯示多達(dá)1616位位的字符。的字符。1.82791.8279的引腳及內(nèi)部結(jié)構(gòu)的引腳及內(nèi)部結(jié)構(gòu) 2. 2. 引腳功能介紹引腳功能介紹(1)(1)與與CPUCPU的接口引腳的接口引腳 DB0 DB0DB7DB7:數(shù)據(jù)總線、雙向、三態(tài),與單片機(jī)數(shù)據(jù)數(shù)據(jù)總線、雙向、三態(tài),與單片機(jī)數(shù)據(jù) 總線相連,在總線相連,在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ù)位
50、,復(fù)位后的狀態(tài)如下復(fù)位后的狀態(tài)如下:* * 1616個(gè)字符左邊輸入顯示方式個(gè)字符左邊輸入顯示方式* * 編碼掃描鍵盤、雙鍵鎖定方式編碼掃描鍵盤、雙鍵鎖定方式 CS CS* *:片選片選 A0 A0:=1=1,寫入寫入的是的是命令命令字節(jié)字節(jié); ; 讀出讀出的是的是狀態(tài)狀態(tài)字節(jié)。字節(jié)。 =0 =0,寫入或讀出的字節(jié)均為,寫入或讀出的字節(jié)均為數(shù)據(jù)數(shù)據(jù)。 RD RD* *、WRWR* *:讀、寫控制引腳讀、寫控制引腳 IRQ IRQ:中斷請(qǐng)求線。在鍵盤方式中,當(dāng)鍵盤中斷請(qǐng)求線。在鍵盤方式中,當(dāng)鍵盤RAMRAM(先先進(jìn)先出)中進(jìn)先出)中存有按下鍵的數(shù)據(jù)時(shí),存有按下鍵的數(shù)據(jù)時(shí),IRQIRQ為高電平為高電
51、平,向,向CPUCPU提出中斷申請(qǐng)。提出中斷申請(qǐng)。(2 2)掃描信號(hào)輸出引腳掃描信號(hào)輸出引腳 CPUCPU每次從鍵盤每次從鍵盤RAMRAM中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),IRQIRQ就變就變?yōu)榈碗娖?。為低電平。如果鍵盤如果鍵盤RAMRAM中還有未讀完的數(shù)據(jù),中還有未讀完的數(shù)據(jù),IRQIRQ將將再次變?yōu)楦唠娖剑俅翁岢鲋袛嗾?qǐng)求。再次變?yōu)楦唠娖剑俅翁岢鲋袛嗾?qǐng)求。 SL0 SL0SL3SL3 掃描輸出。用來(lái)掃描鍵盤和顯示器。可編程設(shè)定掃描輸出。用來(lái)掃描鍵盤和顯示器??删幊淘O(shè)定為為編碼輸出編碼輸出,即,即SL0SL0SL3SL3需外接需外接4-164-16譯碼器,輸出譯碼器,輸出1616
52、取取1 1的掃描信號(hào),也可編程設(shè)定為的掃描信號(hào),也可編程設(shè)定為譯碼輸出譯碼輸出,即由,即由SL0SL0SL3SL3直接輸出直接輸出4 4取取1 1的掃描信號(hào)。的掃描信號(hào)。(3 3)與鍵盤連接的引腳)與鍵盤連接的引腳 RL0 RL0RL7RL7 鍵盤矩陣的行信號(hào)輸入線。鍵盤矩陣的行信號(hào)輸入線。 SHIFT SHIFT 輸入線,通常用作鍵盤上、下檔功能的控制鍵。輸入線,通常用作鍵盤上、下檔功能的控制鍵。 CNTL/STB CNTL/STB 輸入線,高電平有效。在鍵盤方式時(shí),通常用來(lái)輸入線,高電平有效。在鍵盤方式時(shí),通常用來(lái)作為鍵盤控制功能鍵使用。作為鍵盤控制功能鍵使用。(4 4)與顯示器連接的引腳
53、)與顯示器連接的引腳 OUTA0 OUTA0OUTA3OUTA3(A A組顯示數(shù)據(jù))組顯示數(shù)據(jù))、OUTB0OUTB0OUTB3OUTB3(B B組顯示數(shù)據(jù))組顯示數(shù)據(jù)): :向向LEDLED顯示器輸出的段碼顯示器輸出的段碼, , 與掃描信號(hào)與掃描信號(hào)線線SL0SL0SL3SL3同步。兩組可獨(dú)立使用,也可合并使用。同步。兩組可獨(dú)立使用,也可合并使用。 BD BD* *: :消隱顯示控制消隱顯示控制。3. 82793. 8279的基本功能部件的基本功能部件(1 1)掃描計(jì)數(shù)器)掃描計(jì)數(shù)器編碼方式編碼方式: :掃描線掃描線SL0SL0SL3SL3輸出,經(jīng)外部輸出,經(jīng)外部4-164-16譯碼器譯碼器
54、譯碼后,為鍵盤和顯示器提供譯碼后,為鍵盤和顯示器提供1616取取1 1的掃描線。的掃描線。譯碼方式譯碼方式: :計(jì)數(shù)器的最低二位在計(jì)數(shù)器的最低二位在82798279內(nèi)部譯碼后,從內(nèi)部譯碼后,從SL0SL0SL3SL3輸出,為鍵盤和顯示器提供輸出,為鍵盤和顯示器提供4 4取取1 1掃描線。掃描線。D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0CNTLCNTLSHIFTSHIFT掃掃 描描回回 復(fù)復(fù)(2 2)鍵盤去抖動(dòng)及回復(fù)緩沖器)鍵盤去抖動(dòng)及回復(fù)緩沖器 RL0 RL0RL7RL7被接到鍵盤的行線。被接到鍵盤的行線。 在逐列掃描時(shí),當(dāng)某一鍵閉合,消抖電路延時(shí)等在逐列掃描時(shí),當(dāng)某一
55、鍵閉合,消抖電路延時(shí)等待待1010msms之后,再檢驗(yàn)該鍵是否仍閉合。若閉合,則該之后,再檢驗(yàn)該鍵是否仍閉合。若閉合,則該鍵的行、列地址和附加的移位、控制狀態(tài)一起形成鍵鍵的行、列地址和附加的移位、控制狀態(tài)一起形成鍵盤數(shù)據(jù),送入盤數(shù)據(jù),送入82798279內(nèi)部的鍵盤內(nèi)部的鍵盤RAMRAM存儲(chǔ)器。格式為:存儲(chǔ)器。格式為: 控制(控制(CNTLCNTL)和和移位(移位(SHIFTSHIFT)的狀態(tài)由兩個(gè)獨(dú)立的狀態(tài)由兩個(gè)獨(dú)立的附加開關(guān)決定,而的附加開關(guān)決定,而掃描掃描(D5D5、D4D4、D3D3)是被按鍵的是被按鍵的列列編碼,而編碼,而回復(fù)回復(fù)(D2D2、D1D1、D0D0)則是被按鍵的則是被按鍵的
56、行行位置位置數(shù)據(jù)。數(shù)據(jù)。(3 3)鍵盤)鍵盤RAMRAM及其狀態(tài)寄存器及其狀態(tài)寄存器鍵盤鍵盤RAMRAM:8 8字節(jié)先進(jìn)先出(字節(jié)先進(jìn)先出(FIFOFIFO)存儲(chǔ)器。內(nèi)部的存儲(chǔ)器。內(nèi)部的FIFOFIFO狀態(tài)寄存器狀態(tài)寄存器存放存放FIFOFIFO的工作狀態(tài),如的工作狀態(tài),如FIFOFIFO是空還是滿,是空還是滿,其中存有多少字符,是否操作出錯(cuò)等等。其中存有多少字符,是否操作出錯(cuò)等等。 當(dāng)當(dāng)FIFOFIFO存儲(chǔ)器空間不足時(shí),狀態(tài)邏輯將產(chǎn)生存儲(chǔ)器空間不足時(shí),狀態(tài)邏輯將產(chǎn)生IRQ=1IRQ=1信號(hào),向信號(hào),向CPUCPU發(fā)出中斷申請(qǐng)。發(fā)出中斷申請(qǐng)。(4 4)顯示)顯示RAMRAM和顯示地址寄存器和顯
57、示地址寄存器顯示顯示RAMRAM:存顯示數(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)字:主要用于鍵盤工作方式,以指示鍵盤主要用于鍵盤工作方式,以指示鍵盤RAMRAM中中的
58、字符數(shù)和有無(wú)錯(cuò)誤發(fā)生。的字符數(shù)和有無(wú)錯(cuò)誤發(fā)生。5. 82795. 8279與鍵盤與鍵盤/ /顯示器的接口顯示器的接口 圖圖10-2010-20為為82798279與與8 8位顯示器,位顯示器,4 48 8鍵盤鍵盤的接口電路。的接口電路。行線接行線接82798279的的RL0RL0RL3RL3,82798279選用外部譯碼方式,選用外部譯碼方式,SL0SL0SL2SL2經(jīng)經(jīng)7474LS138LS138(1 1)譯碼輸出,接列線,實(shí)現(xiàn)鍵盤逐譯碼輸出,接列線,實(shí)現(xiàn)鍵盤逐列掃描。列掃描。 SL0 SL0SL2SL2又由又由7474LS138(2)LS138(2)譯碼輸出到顯示器各位的公譯碼輸出到顯示器
59、各位的公共陰極,進(jìn)行逐位掃描顯示。共陰極,進(jìn)行逐位掃描顯示。OUTB0OUTB03 3、OUTA 0OUTA 03 3輸輸出出8 8位段碼。位段碼。 當(dāng)位切換時(shí),當(dāng)位切換時(shí),BDBD* *輸出為低電平,使輸出為低電平,使7474LS138(2)LS138(2)輸出輸出全為高電平,顯示消隱。全為高電平,顯示消隱。 當(dāng)鍵盤上出現(xiàn)有效的閉合鍵時(shí),鍵輸入數(shù)據(jù)自動(dòng)進(jìn)入當(dāng)鍵盤上出現(xiàn)有效的閉合鍵時(shí),鍵輸入數(shù)據(jù)自動(dòng)進(jìn)入中斷讀取鍵盤中斷讀取鍵盤RAMRAM中的鍵輸入數(shù)據(jù)。若要更新顯示器輸中的鍵輸入數(shù)據(jù)。若要更新顯示器輸出,僅需改變出,僅需改變82798279中顯示中顯示RAMRAM中的內(nèi)容。中的內(nèi)容。 圖圖10
60、-20:10-20:82798279的的命令命令/ /狀態(tài)口地址為狀態(tài)口地址為7 7FFFHFFFH,數(shù)據(jù)口數(shù)據(jù)口地址為地址為7 7FFEHFFEH。 82798279初始化程序:初始化程序:INITI: SETB EX1INITI: SETB EX1 ; ; 允許外部中斷允許外部中斷1 1中斷中斷MOVMOV DPTR,#7FFFH ; DPTR,#7FFFH ; 命令命令/ /狀態(tài)口地址寫入狀態(tài)口地址寫入DPTRDPTRMOVMOV A,#0D1H A,#0D1H ; ; 控制字控制字D1HD1H送送A AMOVX DPTR,AMOVX DPTR,A ; ; 向命令向命令/ /狀態(tài)口寫入控
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年健康服務(wù)項(xiàng)目合作醫(yī)療器械采購(gòu)合同
- 2025年體育教育讀物合作協(xié)議
- 2025年國(guó)內(nèi)空運(yùn)貨物責(zé)任協(xié)議
- 2025年借殼上市一般合同協(xié)議
- 院感知識(shí)醫(yī)廢培訓(xùn)課件
- 2025年會(huì)員服務(wù)分成協(xié)議
- 2025年歷史故事版權(quán)轉(zhuǎn)讓合同
- 二零二五年海南二手房買賣合同附帶家居設(shè)備贈(zèng)送條款3篇
- 二零二五版醫(yī)療機(jī)構(gòu)藥品自行采購(gòu)合同3篇
- 2025年機(jī)場(chǎng)宣傳欄設(shè)計(jì)與制作及廣告服務(wù)合同3篇
- 房地產(chǎn)營(yíng)銷策劃 -佛山龍灣壹號(hào)學(xué)區(qū)房項(xiàng)目推廣策略提案方案
- 產(chǎn)品共同研發(fā)合作協(xié)議范本5篇
- 風(fēng)水學(xué)的基礎(chǔ)知識(shí)培訓(xùn)
- 吸入療法在呼吸康復(fù)應(yīng)用中的中國(guó)專家共識(shí)2022版
- 1-35kV電纜技術(shù)參數(shù)表
- 信息科技課程標(biāo)準(zhǔn)測(cè)(2022版)考試題庫(kù)及答案
- 施工組織設(shè)計(jì)方案針對(duì)性、完整性
- 2002版干部履歷表(貴州省)
- DL∕T 1909-2018 -48V電力通信直流電源系統(tǒng)技術(shù)規(guī)范
- 2024年服裝制版師(高級(jí))職業(yè)鑒定考試復(fù)習(xí)題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論