版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 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”LE
2、D”。 10.1.1 10.1.1 LEDLED顯示器的結(jié)構(gòu)顯示器的結(jié)構(gòu) 常用的常用的LEDLED顯示器為顯示器為8 8段段(或(或7 7段段,8 8段比段比7 7段多了一段多了一 個(gè)小數(shù)點(diǎn)個(gè)小數(shù)點(diǎn)“dp”dp”段)。段)。 有有共陽極共陽極和和共陰極共陰極兩種。如圖兩種。如圖10-110-1所示。所示。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 2 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 3 為使為使LEDLED顯示不同的符號(hào)或數(shù)字顯示不同的符號(hào)或數(shù)字,要為,要為LEDLED提供提供段碼段碼 (或稱(或稱字型碼字型碼)。)。 提供給提供給LEDLED顯示
3、器的段碼顯示器的段碼(字型碼字型碼)正好是一個(gè)字正好是一個(gè)字 節(jié)(節(jié)(8 8段)段)。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下: 按上述格式,按上述格式,8 8段段LEDLED的段碼如表的段碼如表10-110-1所示。所示。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 4 顯示字符顯示字符共陰極共陰極 段碼段碼 共陽極共陽極 段碼段碼 顯示字符顯示字符共陰極共陰極 段碼段碼 共陽極共陽極 段碼段碼 0 03 3FHFHC0HC0Hc c3939H HC6HC6H 1 10606H HF9HF9Hd d5 5EHEHA1HA1H 2 25 5BHBHA4HA4
4、HE E7979H H8686H H 3 34 4FHFHB0HB0HF F7171H H8 8EHEH 4 46666H H9999H HP P7373H H8 8CHCH 5 56 6DHDH9292H HU U3 3EHEHC1HC1H 6 67 7DHDH8282H HT T3131H HCEHCEH 7 70707H HF8HF8Hy y6 6EHEH9191H H 8 87 7FHFH8080H HH H7676H H8989H H 9 96 6FHFH9090H HL L3838H HC7HC7H A A7777FHFH8888H H“滅滅”0000H HFFHFFH b b7
5、7CHCH8383H H 表表10-1 10-1 LEDLED段碼(段碼(8 8段)段) MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 5 表表10-110-1只列出了部分段碼,只列出了部分段碼,可根據(jù)實(shí)際情況選用可根據(jù)實(shí)際情況選用。 另外,另外,段碼是相對(duì)的段碼是相對(duì)的,它由各字段在字節(jié)中所處的,它由各字段在字節(jié)中所處的 位決定。例如表位決定。例如表10-110-1中中8 8段段LEDLED段碼是按格式段碼是按格式: 而形成的,而形成的, “0”“0”的段碼為的段碼為3 3FHFH(共陰)。共陰)。反之,如反之,如 將格式改為下列格式:將格式改為下列格式: 則則 “0”“0”的
6、段碼為的段碼為7 7EHEH(共陰)共陰)。 字型及段碼由設(shè)計(jì)者自行設(shè)定,字型及段碼由設(shè)計(jì)者自行設(shè)定,習(xí)慣上還是以習(xí)慣上還是以“a”a” 段對(duì)應(yīng)段碼的最低位。段對(duì)應(yīng)段碼的最低位。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 6 N N個(gè)個(gè)LEDLED顯示塊有顯示塊有N N位位選線位位選線和和8 8N N根段碼線根段碼線。 10.1.2 10.1.2 LEDLED顯示器工作原理顯示器工作原理 圖圖10-210-2是是4 4位位 LEDLED顯示器的結(jié)構(gòu)原理圖。顯示器的結(jié)構(gòu)原理圖。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 7 段碼線段碼線控制控制顯示的字型顯示的
7、字型, 位選線位選線控制控制該顯示位的亮或暗。該顯示位的亮或暗。 靜態(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è)段碼為止。顯示的亮度高顯示的亮度高。 圖圖10-3:10-3: 4 4位靜態(tài)位靜態(tài)LEDLED顯
8、示器電路。該電路各位顯示器電路。該電路各位 可獨(dú)立顯示。可獨(dú)立顯示。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 8 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í)選通。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 9 圖圖10-410-4:4 4位位8 8段段LEDLED動(dòng)態(tài)顯示電路。其中段碼線占用一動(dòng)態(tài)
9、顯示電路。其中段碼線占用一 個(gè)個(gè)8 8位位I/OI/O口,而位選線占用一個(gè)口,而位選線占用一個(gè)4 4位位I/OI/O口。口。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 10 圖圖10-510-5為為8 8位位LEDLED動(dòng)態(tài)顯示動(dòng)態(tài)顯示2003.10.102003.10.10的過程的過程。 圖(圖(a)a)是顯示過程,是顯示過程,某一時(shí)刻,只有一位某一時(shí)刻,只有一位LEDLED被選通被選通 顯示,其余位則是熄滅的;顯示,其余位則是熄滅的; 圖(圖(b)b)是實(shí)際顯示結(jié)果,是實(shí)際顯示結(jié)果,人眼看到的是人眼看到的是8 8位穩(wěn)定位穩(wěn)定的的 同時(shí)顯示同時(shí)顯示的字符。的字符。 MCS-
10、51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 11 10.2 10.2 鍵盤接口原理鍵盤接口原理 1. 1. 鍵盤輸入的特點(diǎn)鍵盤輸入的特點(diǎn) 鍵盤:一組按鍵開關(guān)的集合鍵盤:一組按鍵開關(guān)的集合。 行線電壓信號(hào)通過鍵盤開關(guān)機(jī)械觸點(diǎn)的斷開、閉合,行線電壓信號(hào)通過鍵盤開關(guān)機(jī)械觸點(diǎn)的斷開、閉合, 輸出波形如圖輸出波形如圖10-610-6。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 12 2. 2. 按鍵的確認(rèn)按鍵的確認(rèn) 檢測檢測行線行線電平電平 高電平:高電平:斷開;斷開;低電平低電平:閉合,:閉合, 常用常用軟件來消除按鍵抖動(dòng)。軟件來消除按鍵抖動(dòng)。 基本思想基本思想:檢測到有鍵按
11、下,鍵對(duì)應(yīng)的行線為低,軟檢測到有鍵按下,鍵對(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后,行線仍后,行線仍 為為 高,說明按鍵已松開。高,說明按鍵已松開。 采取以上措施,采取以上措施,躲開了兩個(gè)抖動(dòng)期躲開了兩個(gè)抖動(dòng)期t1t1和和t3t3的影響的影響。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 13 10.2.2 10.2.2 鍵盤接口的工作原理鍵盤接口的工作原理 獨(dú)立式獨(dú)立式
12、按鍵接口和按鍵接口和行列式行列式鍵盤接口。鍵盤接口。 1.1.獨(dú)立式鍵盤接口獨(dú)立式鍵盤接口 各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過檢檢 測輸入線的電平狀態(tài)測輸入線的電平狀態(tài)可很容易判斷那個(gè)鍵被按下??珊苋菀着袛嗄莻€(gè)鍵被按下。 此種接口此種接口適于鍵數(shù)較少適于鍵數(shù)較少或或操作速度較高操作速度較高的場合。的場合。 圖圖10-710-7(a a)為為中斷方式的獨(dú)立式中斷方式的獨(dú)立式鍵盤工作電路鍵盤工作電路 圖圖10-710-7(b b)為為查詢方式的獨(dú)立式查詢方式的獨(dú)立式鍵盤工作電路鍵盤工作電路。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3
13、) 14 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 15 圖圖10-810-8為為82558255A A擴(kuò)展擴(kuò)展I/OI/O口口的的獨(dú)立式獨(dú)立式按鍵接口電路。按鍵接口電路。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 16 圖圖10-910-9用用三態(tài)緩沖器三態(tài)緩沖器擴(kuò)展的擴(kuò)展的I/OI/O口的按鍵接口電口的按鍵接口電 路路。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 17 對(duì)圖對(duì)圖10-910-9獨(dú)立式鍵盤編程,軟件消抖,查詢方式檢獨(dú)立式鍵盤編程,軟件消抖,查詢方式檢 測鍵的狀態(tài)。僅有一鍵按下時(shí)才有效才處理。測鍵的狀態(tài)。僅有一鍵按下時(shí)才有效
14、才處理。 KEYIN:MOV DPTR,#0BFFFHKEYIN:MOV DPTR,#0BFFFH;鍵盤端口地址鍵盤端口地址BFFFHBFFFH MOVX 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,R
15、ETURN CJNE A,R3,RETURN ;兩次不同,抖動(dòng)引起轉(zhuǎn)兩次不同,抖動(dòng)引起轉(zhuǎn)RETURNRETURN CJNE A,#1EH,KEY2 CJNE A,#1EH,KEY2 ;相等,有鍵按下,不等轉(zhuǎn)相等,有鍵按下,不等轉(zhuǎn)KEY2KEY2 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 18 LJMP PKEY1LJMP PKEY1; ;是是K1K1鍵按下,轉(zhuǎn)鍵按下,轉(zhuǎn)K1K1鍵處理鍵處理 ;子程序子程序PKEY1PKEY1 KEY2: CJNE A,#1DH,KEY3 ;S2KEY2: CJNE A,#1DH,KEY3 ;S2鍵未按下,轉(zhuǎn)鍵未按下,轉(zhuǎn)KEY3KEY3 LJM
16、P PKEY2LJMP PKEY2 ;S2 ;S2鍵按下,轉(zhuǎn)鍵按下,轉(zhuǎn)PKEY2PKEY2處理處理 KEY3:KEY3: CJNE A,#1BH,KEY4CJNE A,#1BH,KEY4 ;S3;S3未按下,轉(zhuǎn)未按下,轉(zhuǎn)KEY4KEY4 LJMP PKEY3 ;S3LJMP PKEY3 ;S3按下,轉(zhuǎn)按下,轉(zhuǎn)PKEY3PKEY3處理處理 KEY4: CJNE A,#17H,KEY5 ;S4KEY4: CJNE A,#17H,KEY5 ;S4鍵未按下,轉(zhuǎn)鍵未按下,轉(zhuǎn)KEY5KEY5 LJMP PKEY4 ;S4LJMP PKEY4 ;S4按下,轉(zhuǎn)按下,轉(zhuǎn)PKEY4PKEY4處理處理 KEY5:K
17、EY5: CJNE A,#0FH,PASS ;S5CJNE A,#0FH,PASS ;S5未按下,轉(zhuǎn)未按下,轉(zhuǎn)RETURNRETURN LJMP PKEY5 ;S5LJMP PKEY5 ;S5按下,轉(zhuǎn)按下,轉(zhuǎn)PKEY5PKEY5處理處理 RETURN:RET ;RETURN:RET ;重鍵或無鍵按下,從子程序返回重鍵或無鍵按下,從子程序返回 識(shí)別和編程簡單,識(shí)別和編程簡單,用在按鍵數(shù)較少的場合。用在按鍵數(shù)較少的場合。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 19 2. 行列式行列式(矩陣式矩陣式)鍵盤接口鍵盤接口 用于按鍵數(shù)目較多的場合,用于按鍵數(shù)目較多的場合,由由行線和列
18、線組成行線和列線組成, 按鍵位于行、列的交叉點(diǎn)上。如圖按鍵位于行、列的交叉點(diǎn)上。如圖10-1010-10所示。所示。 按鍵數(shù)目較多的場合按鍵數(shù)目較多的場合,行列式鍵盤與獨(dú)立式鍵盤,行列式鍵盤與獨(dú)立式鍵盤 相比,要相比,要節(jié)省很多的節(jié)省很多的I/OI/O口線口線。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 20 (1)行列式鍵盤工作原理)行列式鍵盤工作原理 無鍵按下,該行線為高電平,無鍵按下,該行線為高電平,當(dāng)有鍵按下時(shí),當(dāng)有鍵按下時(shí), 行線電平由列線的電平來決定行線電平由列線的電平來決定。 由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)
19、生影響,必須生影響,必須將行、列線信號(hào)配合起來并作適當(dāng)?shù)奶帉⑿小⒘芯€信號(hào)配合起來并作適當(dāng)?shù)奶?理,才能確定閉合鍵的位置理,才能確定閉合鍵的位置。 (2 2)按鍵的識(shí)別方法按鍵的識(shí)別方法 a. a. 掃描法掃描法 圖圖10-1010-10(b b)中中3 3號(hào)鍵被按下為例,來說明此鍵號(hào)鍵被按下為例,來說明此鍵 時(shí)如何被識(shí)別出來的。時(shí)如何被識(shí)別出來的。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 21 識(shí)別鍵盤有無鍵被按下的方法,分兩步進(jìn)行:識(shí)別鍵盤有無鍵被按下的方法,分兩步進(jìn)行: 第第1 1步:步:識(shí)別鍵盤有無鍵按下;識(shí)別鍵盤有無鍵按下; 第第2 2步:步:如有鍵被按下,識(shí)別出具
20、體的按鍵。如有鍵被按下,識(shí)別出具體的按鍵。 把所有列線置把所有列線置0 0,檢查各行線電平是否有變化,如,檢查各行線電平是否有變化,如 有變化,說明有鍵按下,如無變化,則無鍵按下。有變化,說明有鍵按下,如無變化,則無鍵按下。 上述方法稱為上述方法稱為掃描法掃描法,即,即先把某一列置低電平,先把某一列置低電平, 其余各列為高電平,檢查各行線電平的變化其余各列為高電平,檢查各行線電平的變化,如果某,如果某 行線電平為低,可確定行線電平為低,可確定此行列交叉點(diǎn)此行列交叉點(diǎn)處的按鍵被按處的按鍵被按 下。下。 b. b. 線反轉(zhuǎn)法線反轉(zhuǎn)法 只需兩步便能獲得此按鍵所在的行列值,線反轉(zhuǎn)只需兩步便能獲得此按鍵
21、所在的行列值,線反轉(zhuǎn) 法的原理如圖法的原理如圖10-1110-11。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 22 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 23 第第1 1步:步:列線輸出為全低電平,則行線中電平由高變低列線輸出為全低電平,則行線中電平由高變低 的所在行為按鍵所在行。的所在行為按鍵所在行。 第第2 2步:步:行線輸出為全低電平,則列線中電平由高變低行線輸出為全低電平,則列線中電平由高變低 所在列為按鍵所在列。所在列為按鍵所在列。 結(jié)合上述兩步,可確定按鍵所在行和列。結(jié)合上述兩步,可確定按鍵所在行和列。 (3 3)鍵盤的編碼)鍵盤的編碼 根
22、據(jù)實(shí)際需要靈活編碼。根據(jù)實(shí)際需要靈活編碼。 10.2.3 10.2.3 鍵盤的工作方式鍵盤的工作方式 單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤的輸單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤的輸 入,取決于鍵盤的工作方式。入,取決于鍵盤的工作方式。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 24 原則:原則:即要保證能及時(shí)響應(yīng)按鍵操作,又不要過多占即要保證能及時(shí)響應(yīng)按鍵操作,又不要過多占 用用CPUCPU的工作時(shí)間。的工作時(shí)間。 通常,通常,鍵盤工作方式有鍵盤工作方式有3 3種種,即編程掃描、定時(shí)掃,即編程掃描、定時(shí)掃 描和中斷掃描。描和中斷掃描。 1. 1. 編程掃描方式編程掃
23、描方式 只有當(dāng)單片機(jī)空閑時(shí),才調(diào)用鍵盤掃描子程序,只有當(dāng)單片機(jī)空閑時(shí),才調(diào)用鍵盤掃描子程序, 掃描鍵盤。掃描鍵盤。 工作過程:工作過程: (1 1)在鍵盤掃描子程序中,先判斷有無鍵按下。)在鍵盤掃描子程序中,先判斷有無鍵按下。 方法:方法:PAPA口口8 8位位輸出輸出全全0 0,讀讀PCPC口口低低4 4位狀態(tài),若位狀態(tài),若PC0PC0 PC3PC3為全為全1 1,則說明鍵盤無鍵按下;若不全為,則說明鍵盤無鍵按下;若不全為1 1,則說明,則說明 鍵盤可能有鍵按下。鍵盤可能有鍵按下。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 25 (2 2)用軟件來消除按鍵抖動(dòng)的影響。如有鍵
24、按下,則)用軟件來消除按鍵抖動(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)生1010msms的定時(shí)中斷,對(duì)的定時(shí)中斷,對(duì) 鍵盤進(jìn)行掃描。鍵盤進(jìn)行掃描。 3.3.中斷工作方式中斷工作方式 只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如 無鍵按下,單片機(jī)將不理睬鍵盤。無鍵按下,單片機(jī)將不理睬鍵盤。 鍵盤所做的工作分
25、為三個(gè)層次鍵盤所做的工作分為三個(gè)層次,如圖,如圖10-1310-13。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 26 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 27 第第1 1層:層:單片機(jī)如何來監(jiān)視鍵盤的輸入。三種工作方單片機(jī)如何來監(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 鍵盤鍵盤/
26、/顯示器接口設(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用擴(kuò)展用擴(kuò)展I/OI/O接口芯片接口芯片81558155H H實(shí)現(xiàn)的實(shí)現(xiàn)的 6 6位位LEDLED顯示和顯示和3232鍵的鍵盤鍵的鍵盤/ /顯示器接口電路。圖中顯示器接口電路。圖中 81558155H H也可用也可用82558255A A來替代。來替代。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 28 MCS-51與鍵盤、顯
27、示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 29 8031 8031外擴(kuò)一片外擴(kuò)一片81558155H H。RAMRAM地址:地址:7 7E00HE00H7EFFH7EFFH。 I/OI/O口地址:口地址:7 7F00HF00H7F05H7F05H。 PAPA口口為輸出口為輸出口,控制鍵盤控制鍵盤列線的掃描列線的掃描,同時(shí)又是,同時(shí)又是6 6 位共陰極顯示器的位共陰極顯示器的位掃描口位掃描口。 PBPB口口作為顯示器段碼輸出口,作為顯示器段碼輸出口,PCPC口作為鍵盤的行口作為鍵盤的行 線狀態(tài)的輸入口。線狀態(tài)的輸入口。 75452 75452:反相驅(qū)動(dòng)器,反相驅(qū)動(dòng)器,74077407:同相驅(qū)動(dòng)器。同
28、相驅(qū)動(dòng)器。 1 1動(dòng)態(tài)顯示程序設(shè)計(jì)動(dòng)態(tài)顯示程序設(shè)計(jì) 內(nèi)部內(nèi)部RAM RAM 6 6個(gè)顯示緩沖單元:個(gè)顯示緩沖單元:7979H H7EH7EH,存放要顯示的存放要顯示的 6 6位數(shù)據(jù)。位數(shù)據(jù)。 81558155H H的的PBPB口輸出相應(yīng)位的段碼,口輸出相應(yīng)位的段碼,依次改變依次改變PAPA口輸出為口輸出為 高高的位的位使某一位顯示某一字符,其它位為暗。使某一位顯示某一字符,其它位為暗。 動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。程 序流程如圖序流程如圖10-15 10-15 。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 30 M
29、CS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 31 參考程序參考程序: DIRDIR: MOV R0, MOV R0,79H79H;置緩沖器指針初值置緩沖器指針初值 MOV R3,MOV R3,01H01H;位選碼的初值送位選碼的初值送R3R3 MOV A,R3MOV A,R3 LD0LD0: MOV DPTR, MOV DPTR,7F01H 7F01H ;位選碼位選碼PAPA口(口(PA.0PA.0位)位) ;最左邊最左邊LEDLED亮亮 MOVX DPTR,AMOVX DPTR,A INC DPTRINC DPTR ;數(shù)據(jù)指針指向數(shù)據(jù)指針指向PBPB口口 MOV A,R0 MO
30、V A,R0 ;顯示數(shù)據(jù)顯示數(shù)據(jù)A A ADD A,ADD A,0DH 0DH ;加偏移量(下條指令到表首間加偏移量(下條指令到表首間 ;所有指令占的單元數(shù));所有指令占的單元數(shù)) MOVC A,AMOVC A,APC PC ;根據(jù)顯示數(shù)據(jù)來查表取段碼根據(jù)顯示數(shù)據(jù)來查表取段碼 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 32 DIR1DIR1: MOVX DPTR,AMOVX DPTR,A ;段碼段碼81558155H H PBPB口口 ACALL DL1ms ACALL DL1ms ;該位顯示該位顯示1 1msms INC R0INC R0 ;指針指向下一個(gè)數(shù)據(jù)單元指針指向下
31、一個(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 ;AJMP LD0 ; LD1LD1: RET ; RET ; DSEGDSEG: DB 3FH,06H,5BH,4FH,66H,6DH DB 3FH,
32、06H,5BH,4FH,66H,6DH ;共陰極段碼表共陰極段碼表 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,3EH MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 33 DB 31H,6EH,1CH,23H,40H,03HDB 31H,6EH,1CH,23H,40H,03H DB 18H,00HDB 18H,00H DL1msDL1ms: MOV R7,MOV R7,02H02H;延時(shí)延時(shí)1 1msms子程序子程序
33、DLDL: MOV R6,MOV R6,0FFH0FFH DL6DL6: DJNZ R6,DL6DJNZ R6,DL6 DJNZ R7,DLDJNZ R7,DL RETRET 2 2鍵盤程序設(shè)計(jì)鍵盤程序設(shè)計(jì) (1 1)判別鍵盤上有無鍵閉合)判別鍵盤上有無鍵閉合 (2 2)去除鍵的機(jī)械抖動(dòng))去除鍵的機(jī)械抖動(dòng) (3 3)判別閉合鍵的鍵號(hào))判別閉合鍵的鍵號(hào) (4 4)使)使CPUCPU對(duì)鍵的一次閉合僅作一次處理對(duì)鍵的一次閉合僅作一次處理 鍵盤程序的流程如圖鍵盤程序的流程如圖10-1610-16。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 34 MCS-51與鍵盤、顯示器、撥盤、 打
34、印機(jī)的接口設(shè)計(jì)(3) 35 鍵盤子程序如下:鍵盤子程序如下: KEYIKEYI:ACALL KS1ACALL KS1 ;調(diào)用判有無鍵閉合子程序調(diào)用判有無鍵閉合子程序 JNZ LK1 JNZ LK1 ;有鍵閉合,跳有鍵閉合,跳LK1LK1 NINI: ACALL DIR ACALL DIR ;無鍵閉合,調(diào)用顯示子程序無鍵閉合,調(diào)用顯示子程序, ,延延 ;遲;遲6 6msms后,跳后,跳KEYIKEYI AJMP KEYIAJMP KEYI LK1LK1: ACALL DIR ACALL DIR ;可能有鍵閉合,軟件延遲可能有鍵閉合,軟件延遲1212msms去抖去抖 ACALL DIRACALL
35、DIR ACALL KS1 ACALL KS1 ;調(diào)用判有無鍵閉合子程序調(diào)用判有無鍵閉合子程序 JNZ LK2JNZ LK2 ;經(jīng)去抖,判鍵確實(shí)閉合,跳經(jīng)去抖,判鍵確實(shí)閉合,跳LK2LK2 ACALL DIRACALL DIR;調(diào)用顯示子程序延遲調(diào)用顯示子程序延遲6 6msms AJMP KEYIAJMP KEYI;抖動(dòng)引起,跳抖動(dòng)引起,跳KEYIKEYI LK2LK2: MOV R2, MOV R2,0FEH0FEH ;列選碼列選碼R2R2 MOV R4,MOV R4,00H00H;R4R4為列號(hào)計(jì)數(shù)器為列號(hào)計(jì)數(shù)器 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 36 LK4LK
36、4: 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 A,DPTRMOVX A,DPTR ;讀讀81558155H PCH PC口口 JB Acc.0,LONEJB Acc.0,LONE ;0 0行線為高,無鍵閉合,跳行線為高,無鍵閉合,跳 LONE LONE,轉(zhuǎn)判轉(zhuǎn)判1 1行行 MOV A,
37、MOV A,00H00H ;0 0行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)00A A AJMP LKPAJMP LKP ;跳跳LKPLKP,計(jì)算鍵號(hào)計(jì)算鍵號(hào) LONELONE:JB Acc.1,LTW0 JB Acc.1,LTW0 ;1 1行線為高,無鍵閉合,跳行線為高,無鍵閉合,跳LTW0LTW0, ;轉(zhuǎn)判;轉(zhuǎn)判2 2行行 MOV A,MOV A,08H 08H ;1 1行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)88A A AJMP LKPAJMP LKP MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 37 LTW0LTW0:JB A.2,LTHR JB A.2,LTHR ;2 2行
38、線為高,無鍵閉合,跳行線為高,無鍵閉合,跳 ;LTHRLTHR,轉(zhuǎn)判轉(zhuǎn)判3 3行行 MOV A,MOV A,10H 10H ;2 2行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)1010HAHA AJMP LKPAJMP LKP;跳跳LKPLKP,計(jì)算鍵號(hào)計(jì)算鍵號(hào) LTHRLTHR:JB Acc.3,NEXT JB Acc.3,NEXT ;3 3行線為高,無鍵行線為高,無鍵 ;閉合,跳;閉合,跳NEXTNEXT,準(zhǔn)備下一列掃描準(zhǔn)備下一列掃描 MOV A,MOV A,18H18H;3 3行有鍵閉合行有鍵閉合, ,首鍵號(hào)首鍵號(hào)1818HAHA LKPLKP: ADD A,R4ADD A,R4 ;計(jì)算鍵號(hào):
39、首鍵號(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 6msms ACALL KS1ACALL KS1;調(diào)用判有無鍵閉合子程序,延時(shí)調(diào)用判有無鍵閉合子程序,延時(shí) ;6 6msms JNZ LK3 JNZ LK3 ;判鍵釋放否,未釋放,則循環(huán)判鍵釋放否,未釋放,則循環(huán) POP A POP A ;鍵已釋放,鍵號(hào)出棧鍵已釋放,鍵號(hào)出棧A A RETRET MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 38 NEXTNEXT:INC R4 IN
40、C 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 ;位選碼位選碼R2R2 AJMP LK4 ;AJMP LK4 ; KNDKND: AJMP KEYI ; AJ
41、MP KEYI ; KS1KS1: MOV DPTR ,#7F01H MOV DPTR ,#7F01H;判有無鍵閉合子程序,全判有無鍵閉合子程序,全 “0”“0” ;掃描口(;掃描口(PAPA口)口) MOV A,MOV A,00H00H ;即列線全為低電平即列線全為低電平 MOVX DPTR,A ;MOVX DPTR,A ; INC DPTRINC DPTR ;DPTRDPTR增增2 2,指向,指向PCPC口口 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 39 INC DPTRINC DPTR ;指針增指針增1 1,指向,指向PCPC口口 MOVX A,DPTR MOVX A
42、,DPTR ;從從PCPC口讀行線的狀態(tài)口讀行線的狀態(tài) CPL A CPL A ;行線取反,如行線取反,如無鍵按下,則無鍵按下,則A A為為0 0; ANL A,ANL A,0FH 0FH ;屏蔽無用的高屏蔽無用的高4 4位位 RETRET 10.3.2 10.3.2 利用利用80318031的串行口實(shí)現(xiàn)鍵盤的串行口實(shí)現(xiàn)鍵盤/ /顯示器接口顯示器接口 串口未作它用,可用來外擴(kuò)鍵盤串口未作它用,可用來外擴(kuò)鍵盤/ /顯示器。顯示器。 串口為方式串口為方式0 0輸出,串口外接移位寄存器輸出,串口外接移位寄存器7474LS164LS164。 接口電路如圖接口電路如圖10-1710-17。 74 74L
43、S164(0)LS164(0)74LS164(7):74LS164(7):作為作為8 8位位LEDLED的段碼輸出,的段碼輸出, 8031 8031的的P3.4P3.4、P3.5P3.5:兩行鍵的行狀態(tài)輸入兩行鍵的行狀態(tài)輸入 P3.3 P3.3(TXDTXD):同步移位脈沖輸出控制線,同步移位脈沖輸出控制線, MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 40 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 41 優(yōu)點(diǎn):優(yōu)點(diǎn):亮度大亮度大,容易做到,容易做到顯示不閃爍顯示不閃爍,且,且CPUCPU不必不必 頻繁的為顯示服務(wù)頻繁的為顯示服務(wù),從而使單片機(jī)有更多的時(shí)間處理
44、,從而使單片機(jī)有更多的時(shí)間處理 其它事務(wù)。其它事務(wù)。 顯示子程序:顯示子程序: DIRDIR: SETB P3.3 SETB P3.3 ;P3.3=1P3.3=1允許允許TXDTXD腳同步移位腳同步移位 ;脈沖輸出;脈沖輸出 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 A ADD A,ADD A,0DH 0DH ;加上偏移
45、量加上偏移量 MOVC A,AMOVC A,APC PC ;查段碼表查段碼表SEGTAGSEGTAG,取出段碼取出段碼 MOV SBUF ,A MOV SBUF ,A ;將段碼送將段碼送SBUFSBUF MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 42 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ù)
46、據(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)顯示器輸出 RET RET ;返回返回 SEGTABSEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99HDB 0C0H,0F9H,0A4H,0B0H,99H ;共陽極段碼表,共陽極段碼表, ;0,1,2,3,40,1,2,3,4 DB 92H,82H,0F8H,90HDB 92H,82H,0F8H,90H;5,6,7,8,95
47、,6,7,8,9 DB 88H,83H,0C6H,0A1H,86HDB 88H,83H,0C6H,0A1H,86H;A,B,C,D,EA,B,C,D,E DB 8FH,0BFH,8CH,0FFH,0FFHDB 8FH,0BFH,8CH,0FFH,0FFH;F,F,P,P,暗暗 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 43 鍵盤掃描子程序:鍵盤掃描子程序: KEYIKEYI:MOV A,MOV A,00H00H;判有無鍵按下,使所有列線為判有無鍵按下,使所有列線為0 0 ;的編碼送;的編碼送A A MOV SBUF,AMOV SBUF,A;掃描鍵盤的(掃描鍵盤的(8 8)號(hào))
48、號(hào)7474LS164LS164輸輸 ;出為;出為0000H,H,使使所有列線為所有列線為0 0 KL0KL0: JNB TI,KL0 JNB TI,KL0;串行輸出完否?串行輸出完否? CLR TICLR TI;串行輸出完畢,清串行輸出完畢,清TITI KL1KL1: JNB P3.4,PK1 JNB P3.4,PK1;第第1 1行有閉合鍵嗎?如有,跳行有閉合鍵嗎?如有,跳 ;PK1PK1進(jìn)行處理進(jìn)行處理 JB P3.5,KL1JB P3.5,KL1;在第在第2 2行鍵中有閉合鍵嗎?無閉行鍵中有閉合鍵嗎?無閉 ;合鍵跳;合鍵跳KL1KL1 PK1PK1: ACALL DL10 ACALL DL
49、10;調(diào)用延時(shí)調(diào)用延時(shí)1010msms子程序子程序DL10DL10,軟軟 ;件消除抖動(dòng);件消除抖動(dòng) JNB P3.4,JNB P3.4,PK2PK2;判是否抖動(dòng)引起的?判是否抖動(dòng)引起的? MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 44 JB P3.5,KL1 JB P3.5,KL1 ;不是抖動(dòng)引起的,往下執(zhí)行不是抖動(dòng)引起的,往下執(zhí)行 PK2PK2: MOV R7MOV R7, ,08H08H ;R7R7為列計(jì)數(shù)器,掃一列減為列計(jì)數(shù)器,掃一列減1 1 MOV R6,MOV R6,0FEH0FEH;判別是哪一個(gè)鍵按下,判別是哪一個(gè)鍵按下,F(xiàn)EHFEH為最為最 ;左一列為低;左一列
50、為低 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行有鍵閉行有鍵閉 ;合,跳;合,跳PKONEPKONE處理處理 JB P3.5,NEXT JB P
51、3.5,NEXT ;讀第讀第2 2行狀態(tài),是第行狀態(tài),是第2 2行某鍵否?行某鍵否? MOV R4MOV R4, ,08H08H;第第2 2行鍵中有鍵被按下,行首鍵行鍵中有鍵被按下,行首鍵 ;號(hào);號(hào)0808H H送送R4R4 AJMP PK3 ;AJMP PK3 ; MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 45 PKONEPKONE:MOV R4MOV R4, ,00H00H ;第第1 1行有鍵按下,行首鍵號(hào)行有鍵按下,行首鍵號(hào)0000H H送送R4R4 PK3PK3: MOV SBUF, MOV SBUF,00H 00H ;等待鍵釋放,發(fā)送等待鍵釋放,發(fā)送0000H H使
52、所有列使所有列 ;線為低;線為低 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 ;兩行線均為高,說明鍵已釋放兩行線均為高,說明鍵已釋放 ADD A,R3ADD A,R3 ;計(jì)算得到鍵碼計(jì)算得到鍵碼A A RETRET NEXTNEXT: MOV A,R6 MOV A,R6 ;列掃描碼左移一位,判下列鍵列掃描碼左移一位,判下列鍵 R
53、L A ;RL A ; MOV R6,AMOV R6,A ;記住列掃描碼于記住列掃描碼于R6R6中中 INC R3INC R3 ;列號(hào)增列號(hào)增1 1 DJNZ R7,KL5DJNZ R7,KL5 ;列計(jì)數(shù)器列計(jì)數(shù)器R7R7減減1 1,8 8列鍵都檢查列鍵都檢查 ;完?;完? MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 46 AJMP KEYIAJMP KEYI ;8 8列鍵掃描完畢,開始下一個(gè)鍵列鍵掃描完畢,開始下一個(gè)鍵 ;盤掃描周期;盤掃描周期 DL10DL10: MOV R7, MOV R7,0AH0AH;延時(shí)延時(shí)1010msms子程序子程序 DLDL: MOV R6, M
54、OV R6,0FFH0FFH DL6DL6: DJNZ R6,DL6 DJNZ R6,DL6 DJNZ DJNZ R7,DLR7,DL RETRET 10.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í)別出閉合的鍵并并得到鍵
55、得到鍵 號(hào)號(hào),能對(duì),能對(duì)雙鍵或雙鍵或N N鍵同時(shí)按下鍵同時(shí)按下進(jìn)行處理。進(jìn)行處理。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 47 掃描方式的顯示接口,可顯示多達(dá)掃描方式的顯示接口,可顯示多達(dá)1616位位的字符。的字符。 1.82791.8279的引腳及內(nèi)部結(jié)構(gòu)的引腳及內(nèi)部結(jié)構(gòu) MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 48 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 49 2. 2. 引腳功能介紹引腳功能介紹 (1)(1)與與CPUCPU的接口引腳的接口引腳 DB0 DB0DB7DB7:數(shù)據(jù)總線、雙向、三態(tài),與單片機(jī)數(shù)據(jù)數(shù)據(jù)總線、雙向、三態(tài)
56、,與單片機(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ù)位,復(fù)位后的狀態(tài)如下復(fù)位后的狀態(tài)如下: * * 1616個(gè)字符左邊輸入顯示方式個(gè)字符左邊輸入顯示方式 * * 編碼掃描鍵盤、雙鍵鎖定方式編碼掃描鍵盤、雙鍵鎖定方式 CS CS* *:片選片選 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 50 A0 A0:=1=1,寫
57、入寫入的是的是命令命令字節(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為高電平為高電平,向,向 CPUCPU提出中斷申請(qǐng)。提出中斷申請(qǐng)。 (2 2)掃描信號(hào)輸出引腳掃描信號(hào)輸出引腳 CPUCPU每次從鍵盤每次從鍵盤RAMRAM中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),IRQIRQ就變就變
58、為低電平。為低電平。如果鍵盤如果鍵盤RAMRAM中還有未讀完的數(shù)據(jù),中還有未讀完的數(shù)據(jù),IRQIRQ將將 再次變?yōu)楦唠娖剑俅翁岢鲋袛嗾?qǐng)求。再次變?yōu)楦唠娖剑俅翁岢鲋袛嗾?qǐng)求。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 51 SL0 SL0SL3SL3 掃描輸出。用來掃描鍵盤和顯示器??删幊淘O(shè)定掃描輸出。用來掃描鍵盤和顯示器。可編程設(shè)定 為為編碼輸出編碼輸出,即,即SL0SL0SL3SL3需外接需外接4-164-16譯碼器,輸出譯碼器,輸出1616 取取1 1的掃描信號(hào),也可編程設(shè)定為的掃描信號(hào),也可編程設(shè)定為譯碼輸出譯碼輸出,即由,即由SL0SL0 SL3SL3直接輸出直接輸
59、出4 4取取1 1的掃描信號(hào)。的掃描信號(hào)。 (3 3)與鍵盤連接的引腳)與鍵盤連接的引腳 RL0 RL0RL7RL7 鍵盤矩陣的行信號(hào)輸入線。鍵盤矩陣的行信號(hào)輸入線。 SHIFT SHIFT 輸入線,通常用作鍵盤上、下檔功能的控制鍵。輸入線,通常用作鍵盤上、下檔功能的控制鍵。 CNTL/STB CNTL/STB 輸入線,高電平有效。在鍵盤方式時(shí),通常用來輸入線,高電平有效。在鍵盤方式時(shí),通常用來 作為鍵盤控制功能鍵使用。作為鍵盤控制功能鍵使用。 MCS-51與鍵盤、顯示器、撥盤、 打印機(jī)的接口設(shè)計(jì)(3) 52 (4 4)與顯示器連接的引腳)與顯示器連接的引腳 OUTA0 OUTA0OUTA3O
60、UTA3(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譯碼器譯碼器 譯碼后,為鍵盤和顯示器提供譯碼后,為鍵盤和顯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司員工團(tuán)建活動(dòng)總結(jié)5篇
- 2023六年級(jí)數(shù)學(xué)下冊(cè) 第4單元 比例 1比例的意義和基本性質(zhì)第2課時(shí) 比例的基本性質(zhì)教學(xué)實(shí)錄 新人教版
- 保安隊(duì)長工作計(jì)劃
- 2024年九年級(jí)語文上冊(cè) 第六單元 第22課《出師表》教學(xué)實(shí)錄 北京課改版
- 二年級(jí)語文下冊(cè) 課文3 11 我是一只小蟲子第1課時(shí)教學(xué)實(shí)錄 新人教版
- 社會(huì)實(shí)習(xí)報(bào)告范文錦集9篇
- 細(xì)胞免疫過程
- 第3講市場風(fēng)險(xiǎn)敏感性因子
- 2024年水電站土建安裝工程承攬合同3篇
- 思想品德課程目標(biāo)
- 中傳文史哲2023初試真題及答案
- DB4201T622-2020燃?xì)夤艿涝O(shè)施安全保護(hù)規(guī)程
- 廣東省中山市2023-2024學(xué)年九年級(jí)上學(xué)期期末考試歷史試卷
- 中醫(yī)診療設(shè)備種類目錄
- 統(tǒng)編語文八上文言文過關(guān)小測驗(yàn)-《愚公移山》
- 中原文化介紹
- 分離工程課件
- 珠寶店應(yīng)急預(yù)案范本
- 醫(yī)藥電商行業(yè)發(fā)展趨勢報(bào)告
- 有限空間作業(yè)安全管理協(xié)議
- 勞務(wù)派遣方案
評(píng)論
0/150
提交評(píng)論