![第5章 可編程并行接口8255A_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe1.gif)
![第5章 可編程并行接口8255A_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe2.gif)
![第5章 可編程并行接口8255A_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe3.gif)
![第5章 可編程并行接口8255A_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe4.gif)
![第5章 可編程并行接口8255A_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe/210fcbca-0c7f-4a3b-a3cd-2ce5c216dffe5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、要求: 1、掌握8255方式0的硬件及其編程 2、 了解8255方式1、方式2的特點(diǎn)及應(yīng)用 3、 掌握LED數(shù)碼管的硬件及其編程(靜態(tài)顯示、 動(dòng)態(tài)顯示) 4、掌握簡單鍵盤的硬件及其編程。第第5 5章章 可編程并行接口可編程并行接口8255A8255A存儲(chǔ)器RAM存儲(chǔ)器ROMAB地址總線DB數(shù)據(jù)總線CB控制總線I/O接口1設(shè)備1I/O接口2設(shè)備2一、為什么擴(kuò)展一、為什么擴(kuò)展I/OI/O接口接口二、二、I/OI/O接口的功能接口的功能I/OI/O接口電路應(yīng)滿足以下要求:接口電路應(yīng)滿足以下要求:1.1.實(shí)現(xiàn)和不同外設(shè)的速度匹配實(shí)現(xiàn)和不同外設(shè)的速度匹配 大多數(shù)的外設(shè)的速度很慢,無法和大多數(shù)的外設(shè)的速度
2、很慢,無法和s s量級(jí)的計(jì)算機(jī)量級(jí)的計(jì)算機(jī)速度相比速度相比。 CPU CPU只有在只有在確認(rèn)確認(rèn)外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備的前提外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備的前提下才能進(jìn)行下才能進(jìn)行I/OI/O操作。操作。 想知道外設(shè)是否準(zhǔn)備好想知道外設(shè)是否準(zhǔn)備好,需需I/OI/O接口電路與外設(shè)之接口電路與外設(shè)之間傳送狀態(tài)信息。間傳送狀態(tài)信息。2. 2. 輸出數(shù)據(jù)鎖存輸出數(shù)據(jù)鎖存 由于由于CPUCPU工作速度快,工作速度快,數(shù)據(jù)在數(shù)據(jù)總線上保留的時(shí)數(shù)據(jù)在數(shù)據(jù)總線上保留的時(shí)間十分短暫,間十分短暫,無法滿足慢速外設(shè)的數(shù)據(jù)接收無法滿足慢速外設(shè)的數(shù)據(jù)接收。I/OI/O電路電路應(yīng)具有數(shù)據(jù)鎖存器,以保證接收設(shè)備接收。應(yīng)具有數(shù)據(jù)
3、鎖存器,以保證接收設(shè)備接收。3. 3. 輸入數(shù)據(jù)三態(tài)緩沖輸入數(shù)據(jù)三態(tài)緩沖 輸入設(shè)備向輸入設(shè)備向CPU輸入數(shù)據(jù)時(shí),但輸入數(shù)據(jù)時(shí),但數(shù)據(jù)總線上面可數(shù)據(jù)總線上面可能能“掛掛”有多個(gè)數(shù)據(jù)源有多個(gè)數(shù)據(jù)源,為不發(fā)生沖突,為不發(fā)生沖突,只允許當(dāng)前正只允許當(dāng)前正在進(jìn)行數(shù)據(jù)傳送的數(shù)據(jù)源使用數(shù)據(jù)總線,其余的應(yīng)處在進(jìn)行數(shù)據(jù)傳送的數(shù)據(jù)源使用數(shù)據(jù)總線,其余的應(yīng)處于隔離狀態(tài)。于隔離狀態(tài)。常用的外圍常用的外圍I/OI/O接口芯片有:接口芯片有:(1 1)8255A8255A:可編程的通用并行接口電路(:可編程的通用并行接口電路(3 3個(gè)個(gè)8 8位位I/OI/O口)??冢?。(2 2)8155H8155H:可編程的:可編程的I
4、O/RAMIO/RAM擴(kuò)展接口電路(擴(kuò)展接口電路(2 2個(gè)個(gè)8 8位位I/OI/O口口,1,1個(gè)個(gè)6 6位位I/OI/O口口, , 256256個(gè)個(gè)RAMRAM字節(jié)單元,字節(jié)單元,1 1個(gè)個(gè)1414位的減法定時(shí)器位的減法定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器)。)。 (3 3)74LS74LS系列的系列的TTLTTL電路電路也可以作為也可以作為MCS-51MCS-51的擴(kuò)展的擴(kuò)展I/OI/O口,如口,如74LS24474LS244(緩沖器)、(緩沖器)、 74LS27374LS273(鎖存器)等。(鎖存器)等。三、三、 常用常用 I/OI/O接口電路接口電路數(shù)據(jù)線5.1.25.1.2、 8255A8255A
5、芯片介紹芯片介紹 8255A 8255A是是IntelIntel公司生產(chǎn)的公司生產(chǎn)的可編程可編程并行并行I/OI/O接口芯片,接口芯片,具有具有3 3個(gè)個(gè)8 8位的并行位的并行I/OI/O口口,3 3種工作方式種工作方式,可通過編,可通過編程改變其功能,因而程改變其功能,因而使用靈活方便,通用性強(qiáng)使用靈活方便,通用性強(qiáng)。1.1.引腳說明引腳說明4040只引腳,雙列直插式封裝,引腳功能如下:只引腳,雙列直插式封裝,引腳功能如下:D7D7D0D0:三態(tài)雙向數(shù)據(jù)線,與單片機(jī)數(shù)據(jù)總線連接三態(tài)雙向數(shù)據(jù)線,與單片機(jī)數(shù)據(jù)總線連接CSCS* *:片選信號(hào)線,低電平有效,表示本芯片被選中片選信號(hào)線,低電平有效,
6、表示本芯片被選中RDRD* *:讀出信號(hào)線,控制讀出信號(hào)線,控制8255A8255A中數(shù)據(jù)的讀出高中數(shù)據(jù)的讀出高WRWR* *:寫入信號(hào)線,控制向?qū)懭胄盘?hào)線,控制向8255A8255A數(shù)據(jù)的寫入。數(shù)據(jù)的寫入。VccVcc:+5V+5V電源。電源。PA7PA7PA0PA0:A A口輸入口輸入/ /輸出線。輸出線。PB7PB7PB0PB0:B B口輸入口輸入/ /輸出線。輸出線。PC7PC7PC0PC0:C C口輸入口輸入/ /輸出線。輸出線。A1A1、A0A0:地址線,用來選擇地址線,用來選擇8255A8255A內(nèi)部的內(nèi)部的4 4個(gè)端口。個(gè)端口。2.2.內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)(1 1)端口)端口A A
7、、B B、C C功能和結(jié)構(gòu)上有些差異功能和結(jié)構(gòu)上有些差異 PA PA口口:輸出鎖存和緩沖;輸入鎖存:輸出鎖存和緩沖;輸入鎖存 PB PB口口:輸出鎖存和緩沖;輸入緩沖:輸出鎖存和緩沖;輸入緩沖 PC PC口口:輸出鎖存;數(shù)據(jù)輸入緩沖:輸出鎖存;數(shù)據(jù)輸入緩沖 PC PC口可在軟件的控制下,口可在軟件的控制下,分為兩個(gè)分為兩個(gè)4 4位端口位端口,作為,作為PAPA口、口、PBPB口選通方式操作時(shí)的狀態(tài)控制信號(hào)。口選通方式操作時(shí)的狀態(tài)控制信號(hào)。(2)A(2)A組和組和B B組控制電路組控制電路A A組:組:PAPA口和口和PCPC口的上半部(口的上半部(PC7PC7PC4PC4););B B組:組:
8、PBPB口和口和PCPC口的下半部(口的下半部(PC3PC3PC0PC0), ,可根據(jù)可根據(jù)“命命 令字令字”對(duì)對(duì)PCPC口口按位按位“置置1”1”或或“清清0”0”。(3)(3)數(shù)據(jù)總線緩沖器線線數(shù)據(jù)總線緩沖器線線 三態(tài)雙向,作為三態(tài)雙向,作為8255A8255A與計(jì)算機(jī)數(shù)據(jù)線之間接口,與計(jì)算機(jī)數(shù)據(jù)線之間接口,傳送數(shù)據(jù)、指令、控制命令及外部狀態(tài)信息。傳送數(shù)據(jù)、指令、控制命令及外部狀態(tài)信息。(4)(4)讀讀/ /寫控制邏輯電路線寫控制邏輯電路線 該電路接收該電路接收CPUCPU發(fā)來的控制信號(hào)、發(fā)來的控制信號(hào)、RESETRESET、地址信、地址信號(hào)號(hào)A1A1、A0A0等。對(duì)端口進(jìn)行讀寫。等。對(duì)端
9、口進(jìn)行讀寫。各端口的工作狀態(tài)與控制信號(hào)的關(guān)系各端口的工作狀態(tài)與控制信號(hào)的關(guān)系如表如表9-19-1所示。所示。表表9-1 8255A9-1 8255A端口工作狀態(tài)選擇端口工作狀態(tài)選擇A1A1A0A0RDRD* *WRWR* *CSCS* *工作狀態(tài)工作狀態(tài)0 00 00 01 10 0讀端口讀端口A A:A A口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線讀端口讀端口B B:B B口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線 讀端口讀端口C C:C C口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線0 01 10 01 10 01 10 00 01 10 00 00 01 10 00 0寫端口寫端口A A:總線數(shù)據(jù):總線數(shù)據(jù)AA口口寫端口寫端口B
10、B:總線數(shù)據(jù):總線數(shù)據(jù)BB口口寫端口寫端口C C:總線數(shù)據(jù):總線數(shù)據(jù)CC口口寫控制字:總線數(shù)據(jù)寫控制字:總線數(shù)據(jù)控制字寄控制字寄存器存器0 01 11 10 00 01 10 01 10 00 01 11 11 10 00 01 1數(shù)據(jù)總線為三態(tài)數(shù)據(jù)總線為三態(tài)1 11 10 01 10 0非法狀態(tài)非法狀態(tài)1 11 10 0數(shù)據(jù)總線為三態(tài)數(shù)據(jù)總線為三態(tài)5.2.2 5.2.2 工作方式選擇控制字及工作方式選擇控制字及C C口置位口置位/ /復(fù)位控制字復(fù)位控制字8255A8255A有三種工作方式:有三種工作方式: (1) (1) 方式方式0 0:基本輸入輸出;基本輸入輸出;(2) (2) 方式方式1
11、 1:選通輸入輸出;選通輸入輸出;(3) (3) 方式方式2 2:雙向傳送(僅雙向傳送(僅A A口有)??谟校?.1.工作方式選擇控制字工作方式選擇控制字三種工作方式由方式控制字來決定。三種工作方式由方式控制字來決定??刂谱指袷饺缦隆?刂谱指袷饺缦?。C C口上半部分(口上半部分(PC7PC7PC4PC4)隨)隨A A口稱為口稱為A A組組,C C口下半部分(口下半部分(PC3PC3PC0PC0)隨)隨B B口稱為口稱為B B組組。 其中其中A A口口可工作于方式可工作于方式0 0、1 1、和、和2 2,而,而B B口口只能工作在只能工作在方式方式0 0和和1 1。例如:例如:寫入工作方式寫入
12、工作方式控制字控制字95H95H可將可將8255A8255A編程為:編程為:A A口口方式方式0 0輸入輸入,B B口口方式方式1 1輸出輸出,C C口的上半部分(口的上半部分(PC7PC7 PC4PC4)輸出,)輸出,C C口的下半部分口的下半部分(PC3PC3PC0PC0)輸入。)輸入。2. C2. C口按位置位口按位置位/ /復(fù)位控制字復(fù)位控制字可對(duì)可對(duì)C C口口8 8位中的任一位置位中的任一位置“1”1”或清或清“0”0”。用于。用于位控位控。例如:例如:控制字控制字07H07H寫入控制口,置寫入控制口,置“1” PC31” PC3; 08H08H寫入控制口,清寫入控制口,清“0” P
13、C40” PC4。5.3.2 8255A5.3.2 8255A的三種工作方式的三種工作方式1.1.方式方式0 0基本的輸入基本的輸入/ /輸出方式。輸出方式。外設(shè)的外設(shè)的I/OI/O數(shù)據(jù)可在數(shù)據(jù)可在8255A8255A的各端口得到鎖存和緩沖的各端口得到鎖存和緩沖CPUCPU可對(duì)可對(duì)8255A8255A進(jìn)行數(shù)據(jù)的進(jìn)行數(shù)據(jù)的無條件傳送無條件傳送 例如例如: :從口線從口線讀入一組開關(guān)狀態(tài)讀入一組開關(guān)狀態(tài),向端口輸出數(shù)字,向端口輸出數(shù)字量,量,控制一組指示燈的亮、滅??刂埔唤M指示燈的亮、滅。不需要聯(lián)絡(luò)信號(hào)不需要聯(lián)絡(luò)信號(hào),基本功能為:基本功能為:(1 1)具有兩個(gè))具有兩個(gè)8 8位端口(位端口(A A
14、、B B)和兩個(gè))和兩個(gè)4 4位端口(位端口(C C的上半部分和下半部分)。的上半部分和下半部分)。(2 2)任一個(gè)端口都可以設(shè)定為輸入或輸出,各端口)任一個(gè)端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出可構(gòu)成的輸入、輸出可構(gòu)成1616種組合。種組合。(3 3)數(shù)據(jù)輸出鎖存,輸入不鎖存。)數(shù)據(jù)輸出鎖存,輸入不鎖存。例例 項(xiàng)目項(xiàng)目3:用:用8255A控制控制LED燈左右循環(huán)亮燈左右循環(huán)亮 1項(xiàng)目要求與目的(1)項(xiàng)目要求:根據(jù)開關(guān)的狀態(tài),用8255的端口PA控制8只LED發(fā)光二極管,PB口接兩只開關(guān)K0和K1,編寫程序?qū)崿F(xiàn)K0閉合,LED燈左循環(huán)亮,K1閉合,LED燈右循環(huán)亮。(2)項(xiàng)目目的: 了
15、解8255控制方式的設(shè)置。 掌握8255的編程方法。 了解8255控制外部設(shè)備的常用電路。2項(xiàng)目說明 8255是常用的并行接口芯片,在使用時(shí),只要對(duì)8255進(jìn)行初始化就可使用。本項(xiàng)目PA口作為輸出口,PB口作為輸入口,工作于方式0。當(dāng)開關(guān)K0閉合,LED燈左循環(huán)亮,當(dāng)開關(guān)K1閉合,LED燈右循環(huán)亮。3項(xiàng)目電路原理框圖 用8255A控制LED燈左右循環(huán)亮電路框圖如圖5-8所示。電路由8086CPU芯片、8255A芯片、8只LED發(fā)光二極管和兩只開關(guān)K0和K1等組成。圖5-8 用8255A控制LED燈左右循環(huán)亮電路框圖 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0接口片內(nèi)地址 接入1
16、38譯碼器地址 1 0 , 0 0 0 0 , 0地址 200H207H I/O接口芯片各端口地址 1 0 , 0 0 0 0 , 1地址 208H20FH 1 0 , 0 0 0 1 , 0 1 0 , 0 0 0 1 , 1A15A10 000000 000000 000000 000000 接入邏輯門電路 地址 地址 210H218H 地址 218H21FH 1 0 , 0 0 1 0 , 0000000 地址 220H228H 1 0 , 0 0 1 0 , 1000000 地址 228H22FH 1 0 , 0 0 1 1 , 0000000 地址 230H238H 1 0 , 0
17、0 1 1 , 1000000 地址 238H23FH CS片選 信號(hào)范圍 AB地址總線A0A19DB數(shù)據(jù)總線CB控制總線ABCG2BG1AG1Y0Y1Y2Y3Y4Y5Y6Y720根A0A19接口0 地址范圍:200H207H接口0CS接口1CS接口2CS接口3CS接口4CS接口5CS接口1地址范圍:208H20FH3根A0A2A7A5M/IOA6A4A374LS138譯碼器 D0D151A9A8接口2地址范圍:210H217H接口3地址范圍:218H21FH接口4地址范圍:220H217HA10A11A12A13A14A15AB地址總線A0A19DB數(shù)據(jù)總線CB控制總線RDA1A0D0D7W
18、RCSA0A18255PAPBPC200H203H當(dāng)/CS有效時(shí)PA端口地址 200H A1 A0 0 0 0 1PB端口地址 201H 1 0PC端口地址 202H 1 1控制字端口地址 203H ABCG2BG1AG1Y0Y1Y2Y3Y4Y5Y6Y720根A0A19A7A5M/IOA6A4A374LS138譯碼器 D0D151A9A8A10A11A12A13A14A158086CPU的三種總線與8255詳細(xì)的連線圖用8255A控制LED燈左右循環(huán)亮電路框圖如圖5-8所示。電路由8086CPU芯片、8255A芯片、8只LED發(fā)光二極管和兩只開關(guān)K0和K1等組成。圖5-8 用8255A控制LE
19、D燈左右循環(huán)亮電路框圖 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 0 , 0 0 0 0 , 0 x 0 0PA端口地址 200H 1 0 , 0 0 0 0 , 0 x 0 1PB端口地址 201H 1 0 , 0 0 0 0 , 0 x 1 0PC端口地址 202H 1 0 , 0 0 0 0 , 0 x 1 1控制字端口地址 203H A15A10 000000 000000 000000 000000 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0接口片內(nèi)地址 接入138譯碼器地址 A15A10 接入邏輯門電路 地址 CS片選 信號(hào)范圍 8255接口芯
20、片各端口地址4項(xiàng)目程序設(shè)計(jì)(1)程序流程圖用8255A控制LED燈左右循環(huán)亮程序流程圖如圖5-9所示。圖5-9用8255A控制LED燈左右循環(huán)亮程序流程圖(2)程序清單用8255A控制LED燈左右循環(huán)亮程序清單如下所示。CODE SEGMENT ASSUME CS:CODE START: MOV DX , 203H;8255控制口地址 MOV AL ,82H;PA口輸出,PB口輸入 OUT DX , AL MOV DX , 200H;PA口地址 MOV AH , 0FEH;置LED0亮初始值BG: MOV AL , AH OUT DX , AL ; 點(diǎn)亮LED燈 CALL DELAY ;調(diào)延時(shí)
21、子程序 MOV DX , 201H ;PB端口地址 IN AL , DX ;讀開關(guān)的狀態(tài) TEST AL , 01H ;PB0=0嗎?(K0閉合嗎) JNZ OPR ;PB00,轉(zhuǎn)移 ROL AH , 1 ; PB0=0,左移 MOV DX , 200H ;PA口地址 JMP BG OPR: IN AL , DX ;讀開關(guān)的狀態(tài) TEST AL , 02H ;PB1=0嗎?(K1閉合嗎) JNZ BG ;PB10,轉(zhuǎn)移 ROR AH , 1 ; PB1=0右移 MOV DX , 200H ;PA口地址 JMP BG DELAY PROC NEAR ;延時(shí)子程序MOV BL,100 ;4個(gè)時(shí)鐘周
22、期 DELAY2: MOV CX,374 ; 4個(gè)時(shí)鐘周期 DELAY1: NOP ; 1個(gè)時(shí)鐘周期 NOP ; 1個(gè)時(shí)鐘周期 LOOP DELAY1 ; 5個(gè)時(shí)鐘周期 DEC BL ; 2個(gè)時(shí)鐘周期 JNZ DELAY2 ; 4個(gè)時(shí)鐘周期 RET ; 20個(gè)時(shí)鐘周期 DELAY ENDPCODE ENDS END START2. 2. 方式方式1 1 選通輸入選通輸入/ /輸出工作方式。輸出工作方式。A A口和口和B B口通常用于口通常用于I/OI/O數(shù)數(shù)據(jù)傳送,據(jù)傳送,C C口用作口用作A A口和口和B B口的聯(lián)絡(luò)線,以中斷方式傳口的聯(lián)絡(luò)線,以中斷方式傳送數(shù)據(jù)。送數(shù)據(jù)。 (1) (1) 方
23、式方式1 1輸入輸入 控制聯(lián)絡(luò)信號(hào)如圖控制聯(lián)絡(luò)信號(hào)如圖9-59-5所示,所示,STBSTB* *與與IBFIBF構(gòu)成了一構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),聯(lián)絡(luò)信號(hào)的功能如下圖:聯(lián)絡(luò)信號(hào)的功能如下圖:STBSTB* *:選通輸入,是由輸入外設(shè)送來的輸入信號(hào)。選通輸入,是由輸入外設(shè)送來的輸入信號(hào)。IBFIBF:輸入緩沖器滿,高電平有效。表示數(shù)據(jù)已送入輸入緩沖器滿,高電平有效。表示數(shù)據(jù)已送入 8255A8255A的輸入鎖存器,它由的輸入鎖存器,它由STBSTB* *信號(hào)的下降沿置信號(hào)的下降沿置 位,由信號(hào)的上升沿使其復(fù)位位,由信號(hào)的上升沿使其復(fù)位INTRINTR:中斷請(qǐng)求信號(hào),高電平有效。由中斷
24、請(qǐng)求信號(hào),高電平有效。由8255A8255A輸出,輸出, 向計(jì)算機(jī)發(fā)中斷請(qǐng)求。向計(jì)算機(jī)發(fā)中斷請(qǐng)求。INTE AINTE A:A A口中斷允許,由口中斷允許,由PC4PC4控制,控制, INTE BINTE B:B B口中斷允許,由口中斷允許,由PC2PC2控制??刂?。A A口的方式口的方式1 1輸入輸入工作方式見圖工作方式見圖9-69-6。(2 2)方式)方式1 1輸出輸出 如圖如圖9-79-7所示。所示。OBFOBF* *與與ACKACK* *構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)信號(hào),各信號(hào)的功能如下:各信號(hào)的功能如下:OBFOBF* *:輸出緩沖器滿信號(hào),輸出緩沖器滿信號(hào),8255A8
25、255A給外設(shè)的聯(lián)絡(luò)信號(hào),給外設(shè)的聯(lián)絡(luò)信號(hào),外設(shè)可以將數(shù)據(jù)取走。外設(shè)可以將數(shù)據(jù)取走。ACKACK* *:外設(shè)的響應(yīng)信號(hào),外設(shè)已將數(shù)據(jù)取走。外設(shè)的響應(yīng)信號(hào),外設(shè)已將數(shù)據(jù)取走。INTRINTR* *:中斷請(qǐng)求信號(hào)。表示該數(shù)據(jù)已被外設(shè)取走,中斷請(qǐng)求信號(hào)。表示該數(shù)據(jù)已被外設(shè)取走, 請(qǐng)求單片機(jī)繼續(xù)輸出下一個(gè)數(shù)據(jù)。請(qǐng)求單片機(jī)繼續(xù)輸出下一個(gè)數(shù)據(jù)。INTE AINTE A:中斷允許,由:中斷允許,由PC6PC6控制??刂啤NTE BINTE B:中斷允許,由:中斷允許,由PC2PC2控制控制。B B口的口的方式方式1 1輸出輸出如圖如圖9-89-8所示:所示:3.3.方式方式2 2只有只有A A口才能設(shè)定為
26、方式口才能設(shè)定為方式2 2。圖圖9-99-9為方式為方式2 2工作示意圖。工作示意圖。在方式在方式2 2下,下,PA7PA7PA0PA0為雙向?yàn)殡p向I/OI/O總線??偩€。 當(dāng)當(dāng)輸入輸入時(shí),時(shí),PA7PA7PA0PA0受受STBASTBA* *和和IBFAIBFA控制,其工作控制,其工作過程和方式過程和方式1 1輸入時(shí)相同;輸入時(shí)相同; 當(dāng)當(dāng)輸出輸出時(shí),時(shí),PA7PA7PA0PA0受受OBFAOBFA* *、ACKAACKA* *控制,其工作控制,其工作過程和方式過程和方式1 1輸出時(shí)相同。輸出時(shí)相同。5.5 顯示及顯示接口技術(shù) 要求: 掌握LED數(shù)碼管的硬件及其編程(靜 態(tài)顯示、 動(dòng)態(tài)顯示)
27、 一、 顯示及顯示接口技術(shù) 單片機(jī)應(yīng)用系統(tǒng)中,使用的顯示設(shè)備主要有發(fā)光二極管LED(Light Emitting Diode)顯示器和液晶顯示器LCD(Liquid Crystal Display)兩種。這兩種顯示器成本低廉,配置靈活,與單片機(jī)接口方便。近年來也開始配置簡易形式的CRT接口,可以較方便地進(jìn)行圖形顯示。 1 、 發(fā)光二極管 發(fā)光二極管半導(dǎo)體是用發(fā)光材料做成的PN節(jié),只要在發(fā)光二極管兩端通過正向電流5-20mA就能達(dá)到正常發(fā)光。LED發(fā)光顏色通常有紅、綠、黃、白,它的外形和電氣符號(hào)如圖所示。(a) LED外形(b) LED電氣符號(hào)+ +2、LED數(shù)碼管 LED數(shù)碼管顯示塊是由發(fā)光二
28、極管顯示字段的顯示器件。在單片機(jī)應(yīng)用中通常使用七段LED或8段LED 。這種顯示塊有共陰極和共陽極兩種如圖所示。為使為使LEDLED顯示不同的符號(hào)或數(shù)字顯示不同的符號(hào)或數(shù)字,要為,要為LEDLED提供提供段碼段碼(或稱(或稱字型碼字型碼)。)。提供給提供給LEDLED顯示器的段碼顯示器的段碼(字型碼字型碼)正好是一個(gè)字正好是一個(gè)字節(jié)(節(jié)(8 8段)段)。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:按上述格式,按上述格式,8 8段段LEDLED的段碼如表所示。的段碼如表所示。顯示字符顯示字符共陰極共陰極段碼段碼共陽極共陽極段碼段碼顯示字符顯示字符共陰極共陰極段碼段碼共陽極共陽極
29、段碼段碼0 03FH3FHC0HC0Hc c39H39HC6HC6H1 106H06HF9HF9Hd d5EH5EHA1HA1H2 25BH5BHA4HA4HE E79H79H86H86H3 34FH4FHB0HB0HF F71H71H8EH8EH4 466H66H99H99HP P73H73H8CH8CH5 56DH6DH92H92HU U3EH3EHC1HC1H6 67DH7DH82H82HT T31H31HCEHCEH7 707H07HF8HF8Hy y6EH6EH91H91H8 87FH7FH80H80HH H76H76H89H89H9 96FH6FH90H90HL L38H38HC7
30、HC7HA A77FH77FH88H88H“滅滅”00H00HFFHFFHb b7CH7CH83H83H表表1 LED1 LED段碼(段碼(8 8段)段) 3、單個(gè)LED數(shù)碼管應(yīng)用 例1:通過8255芯片 PB口驅(qū)動(dòng)一個(gè)LED數(shù)碼管,顯示字符”2”。8255PB0PB1PB2PB3PB4PB5PB6PB774LS07共陰極數(shù)碼管300aabbcdefgcdefgdpdp0VsG驅(qū)動(dòng)器GGND8086CPU解: 2 的共陰極碼5BH AB地址總線A0A19DB數(shù)據(jù)總線CB控制總線RDA1A0D0D7WRCSA2A38255PAPBPC9C00H當(dāng)/CS有效時(shí)ABCG2BG1AG1Y0Y1Y2Y3
31、Y4Y5Y6Y720根A0A1974LS138譯碼器 D0D158086CPU的三種總線與8255詳細(xì)的連線圖74LS07共陰極數(shù)碼管300aabbcdefgcdefgdpdp0VsG驅(qū)動(dòng)器GGND X X X X , 0 0 X XPA端口地址 9C00H PB端口地址 9C04H 控制字端口地址 9C0CH 10011100 A7 A6 A5 A4 A3 A2 A1 A0接口片內(nèi)地址 A15A8 8255接口芯片各端口地址10011100 10011100 10011100 X X X X , 0 1 X X X X X X , 1 0 X X X X X X , 1 1 X XPC端口地
32、址 9C08H 由系統(tǒng)板確定 程序: MOV AL,10000000B ;8255方式控制字,PB口 輸出 MOV DX,9C0CH ;8255控制字端口地址 9C0CH OUT DX,AL ; 8255初始化MOV AL,5BH ;2的共陽極碼5BH MOV DX,9C04H ;8255 PB口地址 OUT DX,AL ;顯示2a bc defghSa bc defghSa bc defghSa bc defghS5V4.7K*8SN7407ADPBGDCEFSN7407X1X2X3X4位選段選abcdefgdp實(shí)驗(yàn)室設(shè)備共 陰 極數(shù)碼管AB地址總線A0A19DB數(shù)據(jù)總線CB控制總線RDA1
33、A0D0D7WRCSA2A38255PAPBPC9C00HABCG2BG1AG1Y0Y1Y2Y3Y4Y5Y6Y720根A0A1974LS138譯碼器 D0D15單個(gè)數(shù)碼管實(shí)驗(yàn)接線圖a bc defghSa bc defghSa bc defghSa bc defghS5V4.7K*8SN7407ADPBGDCEFSN7407X1X2X3X4位選段選abcdefgdp實(shí)驗(yàn)室設(shè)備8086CPU8255PB0PB7PA0 X X X X , 0 0 X XPA端口地址 9C00H PB端口地址 9C04H 控制字端口地址 9C0CH 10011100 A7 A6 A5 A4 A3 A2 A1 A0接
34、口片內(nèi)地址 A15A8 8255接口芯片各端口地址10011100 10011100 10011100 X X X X , 0 1 X X X X X X , 1 0 X X X X X X , 1 1 X XPC端口地址 9C08H 由系統(tǒng)板確定 8255 PB口為輸出口,PA口為輸出口8255方式控制字:10000000B 80H例2:在前頁圖LED中顯示NUMBER單元中的數(shù)據(jù)。( NUMBER單元中的數(shù)據(jù)可任意設(shè)定為0F) STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTNUMBER DB 8DTABLE DB 3FH,
35、06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDS ; 0F對(duì)應(yīng)的7段數(shù)碼管的共陰極 段值CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,9C0CH ;8255控制字端口地址 MOV AL,90H ;方式0, PA口、PC口輸出 OUT DX,AL ;初始化8255工作方式 MOV DX,9C00H ;8255 PA端口地址 MOV AL,11111110B ; PA端口輸出數(shù)據(jù) OUT DX,AL ;將數(shù)據(jù)1
36、1111110B從PB口輸出 MOV AL,RESULT ;取出要顯示的數(shù) MOV BX,OFFSET DTABLE ADD BX,AX MOV AL,BX ; 偏移和鍵值作為基地址查詢段值表得到相應(yīng)的段值 MOV DX,9C04H; 8255 PB口 地址OUT DX,AL ;數(shù)碼管中顯示 BB1: MOV AH,1 ;判斷PC鍵盤是否有按鍵按下 INT 16H JZ BB1 ;無按鍵則跳回繼續(xù)循環(huán),有則退出QUIT: MOV AX,4C00H ;返回到DOS INT 21HCODE ENDS END START4、多位數(shù)碼管顯示、多位數(shù)碼管顯示 N位LED顯示器有N根位選線和8*N根段碼線
37、,段碼線段碼線控制控制顯示的字型顯示的字型,位選線位選線控制控制該顯該顯示位的亮或暗。示位的亮或暗。數(shù)碼管有數(shù)碼管有靜態(tài)顯示靜態(tài)顯示和和動(dòng)態(tài)顯示動(dòng)態(tài)顯示兩種顯兩種顯示方式。示方式。a bc defghsa bc defghsa bc defghsa bc defghsa bc defghsI/O口段碼控制口段碼控制I/O口位選控制口位選控制五位LED顯示器LED靜態(tài)顯示方式 共陽極或共陰極連接在一起接+5V或地;每位的段碼線(a dp)與一個(gè)8位并行口相連。 a bc de fghsa bc de fghsa bc de fghsa bc de fghsa bc de fghsI/O(2)GN
38、D/+5VI/O(1)I/O(3)I/O(4)I/O(5)AB地址總A0A19DB數(shù)據(jù)總線CB控制總線RDA1A0D0D7WRCSA2A38255(2)PAPBPCD0D15RDA1A0D0D7WRCSA2A38255(1)PAPBPCD0D7D0D7IO(1)IO(2)IO(3)IO(4)IO(5)IO(6)用兩片8255擴(kuò)展6個(gè)外部接口 N位靜態(tài)顯示器要求有N*8根I/O口線,占用I/O資源較多。故在位數(shù)較多時(shí)往往采用動(dòng)態(tài)顯示方式。 LED動(dòng)態(tài)顯示方式 將所有位的段碼 線并聯(lián)在一起,由一個(gè)8位I/O口控制,而共陰極點(diǎn)或共陽極點(diǎn)分別由相應(yīng)的I/O口線控制。 圖圖10-510-5為為8 8位位
39、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í)顯示的字符。的字符。a bc defghSa bc defghSa bc defghSa bc defghSa bc defghSI/O(2)D4I/O(1)D3D2D1D0八位LED動(dòng)態(tài)顯示電路只需兩個(gè)8位I/O口。其中一個(gè)控制段選碼,另一個(gè)控制位選。由于所
40、有位的段選碼皆由一個(gè)I/O控制,因此,在每個(gè)瞬間,八位LED只可能顯示相同的字符。要想每位顯示不同的字符,必須采用掃描顯示方式掃描顯示方式。即在每一在每一瞬間只使某一位顯示相應(yīng)字符瞬間只使某一位顯示相應(yīng)字符。 靜態(tài)顯示不同,動(dòng)態(tài)顯示技術(shù)讓不同的數(shù)碼管分時(shí)點(diǎn)亮。即:某一個(gè)數(shù)碼管的字段碼從單片機(jī)的一個(gè)I/O口輸出,通過單片機(jī)選通該數(shù)碼管,讓這個(gè)數(shù)碼管顯示自己的字符幾個(gè)毫秒,然后將下一個(gè)數(shù)碼管的字段碼從單片機(jī)的同一個(gè)I/O口輸出,通過單片機(jī)選通下一個(gè)數(shù)碼管,讓下一個(gè)數(shù)碼管顯示自己的字符幾個(gè)毫秒機(jī),依次循環(huán)。由于人眼響應(yīng)較慢,最后的效果是每一個(gè)數(shù)碼管都在顯示各自的字符。5、LED顯示器接口實(shí)例 例:利
41、用三種總線、8255、鍵盤及數(shù)碼管顯示單元(見下頁圖1)實(shí)現(xiàn) 4位LED動(dòng)態(tài)顯示數(shù)據(jù)段DISVALUE單元開始存放的4個(gè)數(shù)。(4個(gè)數(shù)據(jù)可任意設(shè)定為0F) 。主機(jī)按任意鍵停止顯示返回DOS。完成系統(tǒng)硬件設(shè)計(jì)及軟件編程。 a bc defghSa bc defghSa bc defghSa bc defghS5V4.7K*8SN7407ADPBGDCEFSN7407X1X2X3X4位選段選abcdefgdpABCDEFGDPSN74074個(gè)共陰極數(shù)碼管Y1X15V012345674.7K*4(2片)89ABCDEFSN7407Y2Y3Y4X2X3X45V圖 1:鍵盤及數(shù)碼管顯示單元電路結(jié)構(gòu)圖4.7
42、K*882558086CPUSN74074個(gè)共陰極數(shù)碼管Y15V012345674.7K*4(2片)ABCDEFGDP89ABCDEFSN7407Y2Y3Y4X1X2X3X45V圖 1:硬件簡圖4.7K*8 X X X X , 0 0 X XPA端口地址 9C00H PB端口地址 9C04H 控制字端口地址 9C0CH 10011100 A7 A6 A5 A4 A3 A2 A1 A0接口片內(nèi)地址 A15A8 8255接口芯片各端口地址10011100 10011100 10011100 X X X X , 0 1 X X X X X X , 1 0 X X X X X X , 1 1 X XP
43、C端口地址 9C08H 由系統(tǒng)板確定 AB地址總線A0A19DB數(shù)據(jù)總線CB控制總線RDA1A0D0D7WRCSA2A38255PAPBPCIOY0:9C00H當(dāng)/CS有效時(shí)PA端口地址A3 A2 0 0 0 1PB端口地址 1 0PC端口地址 1 1控制字端口地址D0D158086CPU的三種總線與8255詳細(xì)的連線圖8255ABCDEFGDPSN74074個(gè)共陰極數(shù)碼管Y1X15V012345674.7K*4(2片)89ABCDEFSN7407Y2Y3Y4X2X3X45V8255并行接口與外設(shè)的硬件連線圖4.7K*8PB0PB7PA0PA38255通過82C55的B口輸出四個(gè)數(shù)碼管的段選碼
44、(高電平有效),由A口PA0,PA1,PA2,PA3控制LED數(shù)碼管的位選碼(低電平有效)。 DB 3FH,06H,5BH,4FH,66H,6DH,7DH, DB 07H,7FH,6FH,77H,7CH,39H,5EH, DB 79H,71H,00H 字形碼(段選碼):共陰極IOY0 EQU 9C00H ;片選IOY0對(duì)應(yīng)的端口始地址MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;82
45、55的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTDISVALUE DB 4,5,6,7DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDS ; 0F對(duì)應(yīng)的7段數(shù)碼管的共陰極數(shù)碼表CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX MOV DX, MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方
46、式0,A口、B口輸出,C口低4位輸入 OUT DX,AL CC1: CALL DIS QQ1: MOV AH,1 INT 16H JZ CC1 MOV AH,4C INT 21HDIS PROC NEAR ;顯示子程序 PUSH AX MOV SI,OFFSET DISVALUE MOV DL,0F7HMOV AL,DLAGAIN: PUSH DX MOV DX,MY8255_A OUT DX,AL ;設(shè)置X1X4,選通一個(gè)數(shù)碼管 MOV AL,SI ;取出緩沖區(qū)中存放的數(shù) AND AX,00FFH MOV BX,OFFSET DTABLE ADD BX,AX MOV AL,BX ;得到要顯示
47、數(shù)的共陰極碼 MOV DX,MY8255_B OUT DX,AL ;寫入數(shù)碼管ADp,并顯示對(duì)應(yīng)的數(shù) CALL DALLY INC SI ;取下一個(gè)值 POP DX ;等待有無任意鍵按下;返回DOS結(jié)束 MOV AL,DLTEST AL,01H ;判斷是否顯示完? JZ OUT1 ;顯示完,返回ROR AL,1 MOV DL,ALJMP AGAIN ;未顯示完,跳回繼續(xù)OUT1: POP AX RETDIS ENDPDALLY PROC NEAR ;軟件延時(shí)子程序 PUSH CX MOV CX,00FFHD1: MOV AX,00FFHD2: DEC AXJNZ D2LOOP D1POP CX
48、RETDALLY ENDPCODE ENDS END START作業(yè)(實(shí)驗(yàn)):作業(yè)(實(shí)驗(yàn)): 利用三種總線、8255、鍵盤及數(shù)碼管顯示單元(見下頁圖1)實(shí)現(xiàn) 4位LED動(dòng)態(tài)顯示數(shù)據(jù)段DISVALUE單元開始存放的4個(gè)數(shù)。(4個(gè)數(shù)據(jù)可任意設(shè)定為0F) 。主機(jī)按任意鍵停止顯示返回DOS。完成系統(tǒng)硬件設(shè)計(jì)及軟件編程。ABCDEFGDPSN74074個(gè)共陰極數(shù)碼管Y1X15V012345674.7K*4(2片)89ABCDEFSN7407Y2Y3Y4X2X3X45V圖 2:鍵盤及數(shù)碼管顯示單元電路結(jié)構(gòu)圖4.7K*85 5.6.6 鍵盤及其接口技術(shù)鍵盤及其接口技術(shù)要求: 1、掌握鍵盤的原理 2、掌握鍵盤
49、與三種總線的接口與編程(實(shí) 驗(yàn))一、一、 鍵盤接口原理鍵盤接口原理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。2. 2. 按鍵的確認(rèn)按鍵的確認(rèn) 檢測(cè)檢測(cè)行線行線電平電平 高電平:高電平:斷開;斷開;低電平低電平:閉合,:閉合,常用常用軟件來消除按鍵抖動(dòng)。軟件來消除按鍵抖動(dòng)。 基本思想基本思想:檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的行線為低,軟:檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的行線為低,軟件延時(shí)件延時(shí)10ms10ms后,行線如仍為低,則確
50、認(rèn)該行有鍵按下。后,行線如仍為低,則確認(rèn)該行有鍵按下。3.3.如何消除按鍵的抖動(dòng)如何消除按鍵的抖動(dòng) 當(dāng)鍵松開時(shí)當(dāng)鍵松開時(shí),行線變高,軟件延時(shí),行線變高,軟件延時(shí)10ms10ms后,行線仍后,行線仍為為高,說明按鍵已松開。高,說明按鍵已松開。采取以上措施,采取以上措施,躲開了兩個(gè)抖動(dòng)期躲開了兩個(gè)抖動(dòng)期t1t1和和t3t3的影響的影響。二、常用鍵盤的工作原理二、常用鍵盤的工作原理獨(dú)立式獨(dú)立式鍵盤和鍵盤和行列式行列式鍵盤鍵盤1.1.獨(dú)立式鍵盤獨(dú)立式鍵盤K1K2K3K4K7K5K8K6 各鍵相互獨(dú)立,每個(gè)按各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過鍵各接一根輸入線,通過檢測(cè)輸入線的電平狀態(tài)檢測(cè)輸入線的
51、電平狀態(tài)可可很容易判斷那個(gè)鍵被按下。很容易判斷那個(gè)鍵被按下。圖圖10-810-8為為8255A8255A擴(kuò)展擴(kuò)展I/OI/O口口的的獨(dú)立式獨(dú)立式按鍵接口電路。按鍵接口電路。PA.0PA.1PA.2PA.3PA.4PA.5PA.6PA.72. 行列式行列式(矩陣式矩陣式)鍵盤鍵盤 用于按鍵數(shù)目較多的場合,用于按鍵數(shù)目較多的場合,由由行線和列線組成行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。如圖按鍵位于行、列的交叉點(diǎn)上。如圖10-1010-10所示。所示。 按鍵數(shù)目較多的場合按鍵數(shù)目較多的場合,行列式鍵盤與獨(dú)立式鍵盤,行列式鍵盤與獨(dú)立式鍵盤相比,要相比,要節(jié)省很多的節(jié)省很多的I/OI/O口線口線。(
52、1)行列式鍵盤工作原理)行列式鍵盤工作原理 無鍵按下,該行線為高電平,無鍵按下,該行線為高電平,當(dāng)有鍵按下時(shí),行當(dāng)有鍵按下時(shí),行線電平由列線的電平來決定線電平由列線的電平來決定。 由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)生影響,必須生影響,必須將行、列線信號(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í)
53、別出來的。識(shí)別鍵盤有無鍵被按下的方法,分兩步進(jìn)行:識(shí)別鍵盤有無鍵被按下的方法,分兩步進(jìn)行:第第1 1步:步:識(shí)別鍵盤有無鍵按下;識(shí)別鍵盤有無鍵按下;第第2 2步:步:如有鍵被按下,識(shí)別出具體的按鍵。如有鍵被按下,識(shí)別出具體的按鍵。 把所有列線置把所有列線置0 0,檢查各行線電平是否有變化,如,檢查各行線電平是否有變化,如有變化,說明有鍵按下,如無變化,則無鍵按下。有變化,說明有鍵按下,如無變化,則無鍵按下。 即即先把某一列置低電平,其余各列為高電平,檢查先把某一列置低電平,其余各列為高電平,檢查各行線電平的變化各行線電平的變化,如果某行線電平為低,可確定,如果某行線電平為低,可確定此行此行列交
54、叉點(diǎn)列交叉點(diǎn)處的按鍵被按下。此方法稱為處的按鍵被按下。此方法稱為掃描法掃描法, b. b. 線反轉(zhuǎn)法線反轉(zhuǎn)法 (略)(略)三、三、 鍵盤的工作方式鍵盤的工作方式 單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤的輸單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。入,取決于鍵盤的工作方式。原則:原則:即要保證能及時(shí)響應(yīng)按鍵操作,又不要過多占即要保證能及時(shí)響應(yīng)按鍵操作,又不要過多占用用CPUCPU的工作時(shí)間。的工作時(shí)間。1. 1. 編程掃描方式編程掃描方式 只有當(dāng)空閑時(shí),才調(diào)用鍵盤掃描子程序,只有當(dāng)空閑時(shí),才調(diào)用鍵盤掃描子程序,掃描鍵盤。掃描鍵盤。2. 2. 定時(shí)掃描工作方式定時(shí)掃描
55、工作方式 利用定時(shí)器,產(chǎn)生利用定時(shí)器,產(chǎn)生10ms10ms的定時(shí)中斷,對(duì)的定時(shí)中斷,對(duì)鍵盤進(jìn)行掃描。鍵盤進(jìn)行掃描。3.3.中斷工作方式中斷工作方式 只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如無鍵按下,將不理睬鍵盤。無鍵按下,將不理睬鍵盤。四、鍵盤接口設(shè)計(jì)實(shí)例四、鍵盤接口設(shè)計(jì)實(shí)例例1 :利用三種總線、8255、鍵盤及數(shù)碼管顯示單元(見下頁圖1)完成鍵盤掃描功能,并把按鍵數(shù)值循環(huán)存入數(shù)據(jù)段KEY開始單元中。同時(shí)在4位數(shù)碼管中從左到右循環(huán)顯示鍵值。完成系統(tǒng)硬件設(shè)計(jì)及軟件編程。 82558086CPUSN74074個(gè)共陰極數(shù)碼管Y15V012345674.
56、7K*4(2片)ABCDEFGDP89ABCDEFSN7407Y2Y3Y4X1X2X3X45V圖 1:硬件簡圖4.7K*8 X X X X , 0 0 X XPA端口地址 9C00H PB端口地址 9C04H 控制字端口地址 9C0CH 10011100 A7 A6 A5 A4 A3 A2 A1 A0接口片內(nèi)地址 A15A8 8255接口芯片各端口地址10011100 10011100 10011100 X X X X , 0 1 X X X X X X , 1 0 X X X X X X , 1 1 X XPC端口地址 9C08H 由系統(tǒng)板確定 AB地址總線A0A19DB數(shù)據(jù)總線CB控制總線
57、RDA1A0D0D7WRCSA2A38255PAPBPCIOY0:9C00H當(dāng)/CS有效時(shí)PA端口地址A1 A0 0 0 0 1PB端口地址 1 0PC端口地址 1 1控制字端口地址D0D158086CPU的三種總線與8255詳細(xì)的連線圖8255ABCDEFGDPSN74074個(gè)共陰極數(shù)碼管Y1X15V012345674.7K*4(2片)89ABCDEFSN7407Y2Y3Y4X2X3X45V系統(tǒng)的硬件連線圖4.7K*8PA0PA38255利用8255的A口(輸出)控制鍵盤4條列線的狀態(tài)與數(shù)碼管的位選碼,由C口(輸入)PC0,PC1,PC2,PC3檢測(cè)鍵盤矩陣4條行線的狀態(tài)。利用8255的A口
58、(輸出)控制數(shù)碼管的段碼。PC0PC3行線號(hào)列線號(hào)01230231鍵值=4*行線號(hào)+列線號(hào)鍵標(biāo)號(hào)=鍵值PB0PB7;鍵盤掃描及數(shù)碼管顯示實(shí)驗(yàn);*根據(jù)CHECK配置信息修改下列符號(hào)值*IOY0 EQU 9C00H ;片選IOY0對(duì)應(yīng)的端口始地址;*MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)S
59、TACK1 ENDSDATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;鍵值表,0F對(duì)應(yīng)的7段數(shù)碼管 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;的段位值KEY DB 4 DUP(00H) KEY4 EQU $DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方式0,A口、B口輸出,C口低4位輸入 OUT DX,ALBEGIN: CALL DIS ;顯示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;掃描按鍵 JNZ GETKEY1 ;有鍵按下則跳置GETKEY1 MOV AH,1 ;判斷PC鍵盤是否有按鍵按下 INT 16H JZ BEGIN ;無按鍵則跳回繼續(xù)循環(huán),有則退出QUIT: MOV AX,4C00H ;返回到DOS INT 21HGETKEY1:CALL DIS ;顯示刷新 CALL DALLY CALL DALLY CALL CLEAR ;清屏CALL CCSCAN ;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025公司與員工解除勞動(dòng)合同范本
- 2024年春八年級(jí)生物下冊(cè) 23.1 生物的生存依賴一定的環(huán)境說課稿 (新版)北師大版
- 2025寫字樓租賃合同寫字樓租賃合同模板
- Unit 6 Jobs Lesson 6 story time.(說課稿)-2024-2025學(xué)年人教新起點(diǎn)版英語四年級(jí)上冊(cè)
- 7 《包身工》 說課稿 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊(cè)
- Unit5 What do they do(說課稿)-2024-2025學(xué)年譯林版(三起)英語五年級(jí)上冊(cè)
- 西班牙瓦鋪貼施工方案
- 迎春燈飾施工方案
- 20美麗的小興安嶺說課稿-2024-2025學(xué)年三年級(jí)上冊(cè)語文統(tǒng)編版
- 12《富起來到強(qiáng)起來》(說課稿)統(tǒng)編版道德與法治五年級(jí)下冊(cè)
- 安全設(shè)施檢查維護(hù)保養(yǎng)記錄表
- 安裝承包免責(zé)協(xié)議書模板
- 新教材人教版高中物理選擇性必修第三冊(cè)全冊(cè)各章節(jié)知識(shí)點(diǎn)考點(diǎn)
- CJT 354-2010 城市軌道交通車輛空調(diào)、采暖及通風(fēng)裝置技術(shù)條件
- 暑假作業(yè) 11 高二英語語法填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語暑假培優(yōu)練(人教版2019)
- 小學(xué)數(shù)學(xué)教學(xué)評(píng)一體化教學(xué)探究
- 2024年江西省南昌市南昌縣中考一模數(shù)學(xué)試題(含解析)
- 2024年保安員考試題庫【典型題】
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)第十九章課堂同步練習(xí)
- 繪本的分鏡設(shè)計(jì)-分鏡的編排
- 查干淖爾一號(hào)井環(huán)評(píng)
評(píng)論
0/150
提交評(píng)論