![西南交通大學(xué)微機(jī)原理與微機(jī)接口教案2016版_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f9/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f91.gif)
![西南交通大學(xué)微機(jī)原理與微機(jī)接口教案2016版_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f9/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f92.gif)
![西南交通大學(xué)微機(jī)原理與微機(jī)接口教案2016版_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f9/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f93.gif)
![西南交通大學(xué)微機(jī)原理與微機(jī)接口教案2016版_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f9/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f94.gif)
![西南交通大學(xué)微機(jī)原理與微機(jī)接口教案2016版_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f9/03afdda2-ebf8-4cd8-87ae-3da8fd41e1f95.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院 第9章 可編程接口芯片第第9 9章章 可編程接口芯片可編程接口芯片本章主要內(nèi)容本章主要內(nèi)容 可編程接口芯片概述可編程接口芯片概述1 可編程并行接口芯片可編程并行接口芯片8255A2 可編程定時(shí)器可編程定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器82533 可編程串行通信接口芯片可編程串行通信接口芯片8251A4第第9 9章章 可編程接口芯片可編程接口芯片9.1 9.1 可編程接口芯片概述可編程接口芯片概述可編程接口芯片,通過(guò)軟件編程來(lái)可編程接口芯片,通過(guò)軟件編程來(lái)設(shè)置設(shè)置芯片的工作方式,芯片的工作方式,使一個(gè)芯片具有靈活的多種工作方式使一個(gè)芯片具有靈活的多種工作方式,從而,從而提高每個(gè)
2、芯片提高每個(gè)芯片的功能的功能。本章主要介紹幾種常用可編程接口芯片本章主要介紹幾種常用可編程接口芯片:l 可編程并行接口芯片可編程并行接口芯片8255A8255Al 可編程定時(shí)器可編程定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器82538253l 可編程串行通信接口芯片可編程串行通信接口芯片8251A8251A第第9 9章章 可編程接口芯片可編程接口芯片在輸入/輸出為并行數(shù)據(jù)方式的外設(shè)與CPU之間可靠的中轉(zhuǎn)數(shù)據(jù) 擴(kuò)展微機(jī)掛接并口外設(shè)數(shù)量的能力9.2.1 通用并行接口通用并行接口1. 通用并行接口的主要作用:通用并行接口的主要作用:9.2 可編程并行接口芯片8255A第第9 9章章 可編程接口芯片可編程接口芯片第第9
3、 9章章 可編程接口芯片可編程接口芯片2 .通用通用并行接口的一般結(jié)構(gòu):并行接口的一般結(jié)構(gòu):多個(gè)可編程并行數(shù)據(jù)通道(端口)。每個(gè)端口內(nèi)含一個(gè)并行數(shù)據(jù)輸入緩沖器(暫存外設(shè)送給CPU 的數(shù)據(jù))和一個(gè)并行數(shù)據(jù)輸出緩沖器(暫存CPU送給外設(shè)的數(shù)據(jù)) 控制寄存器(存放CPU命令字) 狀態(tài)寄存器(記錄外設(shè)或并口本身的工作狀態(tài))內(nèi)部地址譯碼電路 第第9 9章章 可編程接口芯片可編程接口芯片第第9 9章章 可編程接口芯片可編程接口芯片3. 并行接口芯片的主要引腳并行接口芯片的主要引腳第第9 9章章 可編程接口芯片可編程接口芯片(1)與與外設(shè)一側(cè)相連的引腳:外設(shè)一側(cè)相連的引腳: 與外設(shè)傳送數(shù)據(jù)的數(shù)據(jù)線(通常為多
4、組8位的雙向I/O引腳線) 用于協(xié)調(diào)并行端口與外設(shè)數(shù)據(jù)交換速度的聯(lián)絡(luò)線:l 從外設(shè)輸入數(shù)據(jù)時(shí)需要: “外設(shè)數(shù)據(jù)已送出”信號(hào)(外設(shè)送并口) “輸入寄存器空”信號(hào)(并口送外設(shè))l 向外設(shè)輸出數(shù)據(jù)時(shí)需要: “輸出寄存器滿”信號(hào)(并口送外設(shè)) “外設(shè)接收就緒”信號(hào)(外設(shè)送并口)第第9 9章章 可編程接口芯片可編程接口芯片(2)CPU(系統(tǒng)總線)一側(cè)相連的引腳(系統(tǒng)總線)一側(cè)相連的引腳與CPU(數(shù)據(jù)總線)傳送數(shù)據(jù)的數(shù)據(jù)線(通常為8位: D7D0) 并口工作狀態(tài)引腳READY或中斷請(qǐng)求引腳INTRCPU對(duì)并口的讀/寫信號(hào)引腳 并口芯片的片選信號(hào)引腳(由CPU高位地址線經(jīng)譯碼后給出) 并口內(nèi)部寄存器選擇引腳
5、線(通常由CPU低位地址線給出) 使并口芯片復(fù)位的引腳 第第9 9章章 可編程接口芯片可編程接口芯片9.2.2 8255A9.2.2 8255A的內(nèi)部結(jié)構(gòu)及引腳功能的內(nèi)部結(jié)構(gòu)及引腳功能1.8255A1.8255A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)8255A是是Intel公司生產(chǎn)的可編程并行公司生產(chǎn)的可編程并行I/O接口芯片,有接口芯片,有3個(gè)個(gè)8位并行位并行I/O口,共口,共24位,其各端口工作方式由軟件編程設(shè)定。位,其各端口工作方式由軟件編程設(shè)定。CS第第9 9章章 可編程接口芯片可編程接口芯片l 含3個(gè)獨(dú)立的8位并行輸入/輸出端口,各端口均具有數(shù)據(jù)的輸出和輸入能力l 可通過(guò)編程,設(shè)置各端口工作在某一確定
6、狀態(tài)下特點(diǎn)特點(diǎn)A組B組 端口A端口C的高4位結(jié)構(gòu)結(jié)構(gòu)端口B端口C的低4位第第9 9章章 可編程接口芯片可編程接口芯片 8255A由數(shù)據(jù)總線緩沖器,數(shù)據(jù)端口A、端口B和端口C,A組和B組控制電路和讀/寫控制邏輯四部分組成。第第9 9章章 可編程接口芯片可編程接口芯片2.8255A2.8255A的引腳功能的引腳功能 并口A:8根引腳(PA7PA0) 并口B:8根引腳(PB7PB0) 并口C:8根引腳(PC7PC0)第第9 9章章 可編程接口芯片可編程接口芯片 數(shù)據(jù)線:8根(D7D0) 片內(nèi)寄存器選擇線:2根(A1,A0) 讀/寫信號(hào)線:2根(RD和WR) 片選信號(hào)線:1根(CS) 復(fù)位信號(hào)線:1根
7、(RESET) 電源線:1根(VCC) 地線:1根(GND) 第第9 9章章 可編程接口芯片可編程接口芯片3. .8255內(nèi)部端口的尋址內(nèi)部端口的尋址第第9 9章章 可編程接口芯片可編程接口芯片8255與系統(tǒng)的連接示意圖與系統(tǒng)的連接示意圖D0D7WRRDA1A0CSDBIOWIORA1A0譯碼器譯碼器8255A口口B口口C口口D0D7外外 設(shè)設(shè)第第9 9章章 可編程接口芯片可編程接口芯片6.2.2 8255的工作方式:的工作方式:方式0基本輸入/輸出方式方式1單項(xiàng)選通工輸入/輸出方式方式2雙向傳送方式9.2.3 8255A9.2.3 8255A的工作方式的工作方式l A口可工作于方式0、方式1
8、、方式2l B口可工作于方式0、方式1l C口只能工作于方式0其中:其中:第第9 9章章 可編程接口芯片可編程接口芯片方式方式0:相當(dāng)于三個(gè)獨(dú)立的相當(dāng)于三個(gè)獨(dú)立的8 8位簡(jiǎn)單接口位簡(jiǎn)單接口各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時(shí)實(shí)現(xiàn)輸入及輸出同時(shí)實(shí)現(xiàn)輸入及輸出C C端口可以是一個(gè)端口可以是一個(gè)8 8位的簡(jiǎn)單接口,也可以分為兩個(gè)獨(dú)立位的簡(jiǎn)單接口,也可以分為兩個(gè)獨(dú)立的的4 4位端口位端口常用于連接簡(jiǎn)單外設(shè)(適于無(wú)條件或查詢方式常用于連接簡(jiǎn)單外設(shè)(適于無(wú)條件或查詢方式)方式方式0的應(yīng)用:的應(yīng)用:常使常使A A端口和端口和B B端口作為端口作
9、為8 8位數(shù)據(jù)的輸入或輸出口,使位數(shù)據(jù)的輸入或輸出口,使C C口口的某些位作狀態(tài)輸入的某些位作狀態(tài)輸入第第9 9章章 可編程接口芯片可編程接口芯片方式方式1:三個(gè)數(shù)據(jù)端口分為三個(gè)數(shù)據(jù)端口分為A A、B B兩組,分別稱為兩組,分別稱為A A組控制和組控制和B B組控制組控制。端口端口A A、端口端口B B作數(shù)據(jù)輸入作數(shù)據(jù)輸入或輸出口或輸出口,端口端口C C作為聯(lián)絡(luò)控制信作為聯(lián)絡(luò)控制信號(hào),被號(hào),被分成兩部分,一部分作為端口分成兩部分,一部分作為端口A A和端口和端口B B的聯(lián)絡(luò)信號(hào),的聯(lián)絡(luò)信號(hào),另一部分仍可作為基本的輸入輸出口。另一部分仍可作為基本的輸入輸出口。 A A口、口、B B口在作為口在作
10、為輸入輸入和和輸出輸出時(shí)的選通控制信號(hào)不同。時(shí)的選通控制信號(hào)不同。第第9 9章章 可編程接口芯片可編程接口芯片方式方式1:三個(gè)數(shù)據(jù)端口分為三個(gè)數(shù)據(jù)端口分為A A、B B兩組,分別稱為兩組,分別稱為A A組控制和組控制和B B組控制組控制。端口端口A A、端口端口B B作數(shù)據(jù)輸入作數(shù)據(jù)輸入或輸出口或輸出口,端口端口C C作為聯(lián)絡(luò)控制信作為聯(lián)絡(luò)控制信號(hào),被號(hào),被分成兩部分,一部分作為端口分成兩部分,一部分作為端口A A和端口和端口B B的聯(lián)絡(luò)信號(hào),的聯(lián)絡(luò)信號(hào),另一部分仍可作為基本的輸入輸出口。另一部分仍可作為基本的輸入輸出口。 A A口、口、B B口在作為口在作為輸入輸入和和輸出輸出時(shí)的選聯(lián)絡(luò)制信
11、號(hào)不同。時(shí)的選聯(lián)絡(luò)制信號(hào)不同。方式方式1的應(yīng)用:的應(yīng)用:方式方式1 1主要用于中斷控制方式下的輸入輸出主要用于中斷控制方式下的輸入輸出C C口的口的8 8位除用作選通信號(hào)外,其余位可工作于方式位除用作選通信號(hào)外,其余位可工作于方式0 0下,下,作為輸入或輸出口作為輸入或輸出口第第9 9章章 可編程接口芯片可編程接口芯片1 1)方式方式1 1輸入輸入方式方式1輸入時(shí)序輸入時(shí)序第第9 9章章 可編程接口芯片可編程接口芯片2 2)方式方式1 1輸輸出出方式方式1輸出時(shí)序輸出時(shí)序第第9 9章章 可編程接口芯片可編程接口芯片方式方式2:雙向輸入輸出方式雙向輸入輸出方式可以既作為輸入口,又作為輸出口可以既
12、作為輸入口,又作為輸出口只有只有A A端口可工作在方式端口可工作在方式2 2下下方式方式2的應(yīng)用:的應(yīng)用:用于用于可采用查詢可采用查詢方式方式或中斷控制方式或中斷控制方式當(dāng)當(dāng)A A口工作于方式口工作于方式2 2時(shí),時(shí),B B口可工作于方式口可工作于方式1 1(此時(shí)(此時(shí)C C口口的所有位都用作選通控制信號(hào)的輸入輸出),也可工的所有位都用作選通控制信號(hào)的輸入輸出),也可工作于方式作于方式0 0(此時(shí)(此時(shí)C C口的剩余位也可工作于方式口的剩余位也可工作于方式0 0)第第9 9章章 可編程接口芯片可編程接口芯片l 當(dāng)端當(dāng)端A A口方式口方式2 2和端口和端口B B方式方式1 1時(shí)時(shí),端口端口C C
13、各位各位的功能如圖所示,的功能如圖所示,PCPC7 7PCPC3 3作為端口作為端口A A的聯(lián)的聯(lián)絡(luò)信號(hào),絡(luò)信號(hào),PCPC2 2PCPC0 0作為作為端口端口B B的聯(lián)絡(luò)信號(hào)。的聯(lián)絡(luò)信號(hào)。l 當(dāng)端口當(dāng)端口A A工作于方式工作于方式2 2,端口,端口B B工作于方式工作于方式0 0時(shí),時(shí),PCPC7 7PCPC3 3作為端口作為端口A A的聯(lián)絡(luò)信號(hào),的聯(lián)絡(luò)信號(hào),PCPC2 2PCPC0 0可工作于方式可工作于方式0 0。第第9 9章章 可編程接口芯片可編程接口芯片l D7=1:對(duì)控制寄存器設(shè)置:對(duì)控制寄存器設(shè)置;l D7=0:用于對(duì):用于對(duì)C端口狀態(tài)進(jìn)行設(shè)定。端口狀態(tài)進(jìn)行設(shè)定。9.2.4 825
14、5A9.2.4 8255A的編程的編程82558255只有一個(gè)控制寄存器只有一個(gè)控制寄存器,如何如何寫入寫入兩個(gè)控制兩個(gè)控制字字? 通過(guò)通過(guò)8位命令字的最高位加以區(qū)分:位命令字的最高位加以區(qū)分:方式控制字:方式控制字:設(shè)置設(shè)置A口和口和B口的工作方式,指定它們作為口的工作方式,指定它們作為輸輸入口還是輸出口入口還是輸出口。端口端口C的狀態(tài)控制字的狀態(tài)控制字:設(shè)置設(shè)置C口指定位置口指定位置“1 1”或請(qǐng)或請(qǐng)“0 0”。 第第9 9章章 可編程接口芯片可編程接口芯片1.8255A1.8255A的控制字的控制字1 1)方式選擇控制字方式選擇控制字第第9 9章章 可編程接口芯片可編程接口芯片2 2)端
15、口端口C C置位置位/ /復(fù)位控制字復(fù)位控制字第第9 9章章 可編程接口芯片可編程接口芯片【例【例9-19-1】在在80868086系統(tǒng)中,設(shè)系統(tǒng)中,設(shè)8255A8255A的的A A口輸出,口輸出,B B口輸入,口輸入,PCPC1 1置位,置位,PCPC2 2復(fù)位。已知:復(fù)位。已知:82558255端口地址為端口地址為60H60H63H63H,試編程對(duì),試編程對(duì)8255A8255A進(jìn)行初始化。進(jìn)行初始化。 解解:根據(jù)題意,根據(jù)題意,82558255工作方式控制字為:工作方式控制字為: 8255A 8255A初始化程序如下:初始化程序如下: MOV AL,82H MOV AL,82H ; ;方式
16、控制字方式控制字10000010B=82H10000010B=82H OUT 63H,AL OUT 63H,AL ; ;將控制字送入將控制字送入8255A8255A控制端口,即控制寄存器中控制端口,即控制寄存器中 MOV AL,03H MOV AL,03H ; ;C C口置位控制字口置位控制字00000011B=03H00000011B=03H,設(shè)置,設(shè)置PCPC1 1=1=1 OUT 63H,AL OUT 63H,AL ; ;將控制字送入將控制字送入8255A8255A控制端口,即控制控制端口,即控制寄存器中寄存器中 MOV AL,04H MOV AL,04H ; ;C C口置位控制字口置位
17、控制字00000100B=04H00000100B=04H,設(shè)置,設(shè)置PCPC2 2=0=0 OUT 63H,AL OUT 63H,AL ; ;將控制字送入將控制字送入8255A8255A控制端口,即控制寄存器中控制端口,即控制寄存器中2.8255A的初始化編程第第9 9章章 可編程接口芯片可編程接口芯片9.2.5 8255A 9.2.5 8255A 的應(yīng)用舉例的應(yīng)用舉例【例【例9-29-2】設(shè)設(shè)8255A8255A的的A A口和口和B B口工作在方式口工作在方式0 0,A A口作為輸入端口作為輸入端口,接有口,接有2 2個(gè)開關(guān);個(gè)開關(guān);B B口為輸出端口,接有口為輸出端口,接有8 8個(gè)發(fā)光二
18、極管。系個(gè)發(fā)光二極管。系統(tǒng)硬件電路如圖所示,不斷掃描開關(guān)統(tǒng)硬件電路如圖所示,不斷掃描開關(guān)KiKi,當(dāng)開關(guān),當(dāng)開關(guān)K0K0閉合時(shí),閉合時(shí),點(diǎn)亮點(diǎn)亮LED0LED0、LED2LED2、LED4LED4、LED6LED6,其它,其它LEDLED暗;當(dāng)開關(guān)暗;當(dāng)開關(guān)K1K1閉合時(shí)閉合時(shí),點(diǎn)亮,點(diǎn)亮LED1LED1、LED3LED3、LED5LED5、LED7LED7,其它,其它LEDLED暗;當(dāng)開關(guān)暗;當(dāng)開關(guān)K0K0和和K1K1同時(shí)閉合時(shí)退出。設(shè)同時(shí)閉合時(shí)退出。設(shè)8255A8255A端口端口A A、端口、端口B B、端口、端口C C及控制端口及控制端口的地址分別為的地址分別為200H200H203H2
19、03H。試編寫程序。試編寫程序。第第9 9章章 可編程接口芯片可編程接口芯片第第9 9章章 可編程接口芯片可編程接口芯片解:解:首先確定工作方式控制字。根據(jù)題意,首先確定工作方式控制字。根據(jù)題意,A A口為輸入端口,口為輸入端口,B B口輸出口輸出端口,均工作在方式端口,均工作在方式0 0下,端口下,端口C C沒使用,設(shè)沒有用到的控制字中對(duì)應(yīng)沒使用,設(shè)沒有用到的控制字中對(duì)應(yīng)位設(shè)置為位設(shè)置為0 0,所以,所以8255A8255A的控制字為:的控制字為: CODE SEGMENT CODE SEGMENT ASSUME CS:CODE ASSUME CS:CODE START:MOVSTART:M
20、OV AL,90HAL,90H ; 8255; 8255初始化初始化 MOV MOV DX,203HDX,203H AGAIN:MOV AGAIN:MOV DX,200H DX,200H IN AL,DX IN AL,DX TEST AL,03H TEST AL,03H ; ; 檢測(cè)檢測(cè)K K0 0 K K1 1 JZ EXIT JZ EXIT TEST AL,01H TEST AL,01H ;檢測(cè);檢測(cè)K K0 0 JZ DISP_0JZ DISP_0第第9 9章章 可編程接口芯片可編程接口芯片 TEST AL,02H TEST AL,02H ;檢測(cè);檢測(cè)K K1 1 JZ DISP_1JZ
21、 DISP_1 JMP AGAINJMP AGAINDIAP_0:DIAP_0:MOV AL,55H MOV AL,55H ;偶位上;偶位上LEDLED亮,奇位上亮,奇位上LEDLED暗暗 MOV DX,201H MOV DX,201H OUT DX,ALOUT DX,AL JMP AGAINJMP AGAINDIAP_1:DIAP_1:MOV AL,0AAH MOV AL,0AAH ;奇位上;奇位上LEDLED亮,偶位上亮,偶位上LEDLED暗暗 MOV DX,201HMOV DX,201H OUT DX,ALOUT DX,AL JMP AGAIN JMP AGAIN EXIT: MOV A
22、H,4CHEXIT: MOV AH,4CH INT 21H INT 21H CODE CODEENDSENDS END START END START第第9 9章章 可編程接口芯片可編程接口芯片【例【例9-39-3】硬件電路連線如圖所示,硬件電路連線如圖所示,8086CPU8086CPU通過(guò)通過(guò)8255A8255A同鍵盤相連,試同鍵盤相連,試編程序,掃描鍵盤按鍵,將按鍵對(duì)應(yīng)的數(shù)值顯示在七段編程序,掃描鍵盤按鍵,將按鍵對(duì)應(yīng)的數(shù)值顯示在七段LEDLED上。設(shè)上。設(shè)8255A8255A的端口地址為的端口地址為80H80H83H83H。第第9 9章章 可編程接口芯片可編程接口芯片解:解:通過(guò)硬件電路圖
23、,可以判斷出通過(guò)硬件電路圖,可以判斷出8255A8255A口工作于方式口工作于方式0 0輸出,輸出,B B口未用,口未用,C C口低口低4 4位輸入,位輸入,C C口高口高4 4位輸出,工作方式控制字是:位輸出,工作方式控制字是: 共陰極共陰極LEDLED七段數(shù)碼管顯示的字符七段數(shù)碼管顯示的字符0 0F F的段碼如表的段碼如表9-19-1所示所示:顯示字符顯示字符0123456789ABCDEF段碼段碼(H) 3F065B4F666D7D077F6F777C395E7971第第9 9章章 可編程接口芯片可編程接口芯片程序流程如圖程序流程如圖掃掃描描鍵鍵盤盤防防抖抖動(dòng)動(dòng)逐逐列列掃掃描描鍵鍵盤盤逐
24、逐行行掃掃描描鍵鍵盤盤第第9 9章章 可編程接口芯片可編程接口芯片A_PORT A_PORT EQU 80H EQU 80HB_PORT B_PORT EQU 81H EQU 81HC_PORTC_PORT EQU 82H EQU 82HCT_PORT CT_PORT EQU 83H EQU 83HDATADATA SEGMENT SEGMENTTAB1TAB1 DB DB3FH,06H,5BH,4FH,66H,6DH3FH,06H,5BH,4FH,66H,6DH; ;定義段碼表定義段碼表 DB DB7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H7DH,07H,
25、7FH,6FH,77H,7CH,39H,5EH,79H,71HDATADATA ENDS ENDSCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS: DATA ASSUME CS:CODE,DS: DATASTART:MOV AX, DATA START:MOV AX, DATA MOV DS,AX MOV DS,AX MOV AL,81H ;8255 MOV AL,81H ;8255初始化初始化 MOV DX,CT_PORT MOV DX,CT_PORT OUT DX,AL OUT DX,AL AGAIN: MOV DX,C_PORTAGAIN: MOV
26、DX,C_PORT MOV AL,0 MOV AL,0 ; ;輸出列信號(hào)輸出列信號(hào) OUT DX,AL OUT DX,AL第第9 9章章 可編程接口芯片可編程接口芯片NO_KEY: MOV DX,C_PORTNO_KEY: MOV DX,C_PORT IN AL,DX IN AL,DX AND AL,0FH AND AL,0FH CMP AL,0FH CMP AL,0FH JZ NO_KEY JZ NO_KEY CALL DELAY2MS CALL DELAY2MS IN AL,DX IN AL,DX AND AL,0FH AND AL,0FH CMP AL,0FH CMP AL,0FH JZ
27、 NO_KEY JZ NO_KEY MOV BL,0 ; MOV BL,0 ;置初始列值為置初始列值為0 0 MOV CH,0EFH MOV CH,0EFH LOOP1: MOV AL,CH LOOP1: MOV AL,CH MOV DX,C_PORT MOV DX,C_PORT OUT DX,AL OUT DX,AL第第9 9章章 可編程接口芯片可編程接口芯片 IN AL,DX ; IN AL,DX ;讀取行信號(hào)讀取行信號(hào)PUSH PUSH CXCXMOV BH,0 ;MOV BH,0 ;設(shè)置初始行值設(shè)置初始行值0 0MOV CX,4MOV CX,4LOOP3: SHR AL,1LOOP3:
28、 SHR AL,1JNC LOOP2 ;JNC LOOP2 ;該行有按鍵該行有按鍵INC BHINC BHLOOP LOOP3LOOP LOOP3 POP CXPOP CX ROL CH,1 ROL CH,1 CMP CH,0FEH CMP CH,0FEH JZ JZ NO_KEYNO_KEY INC BL INC BL JMP JMP LOOP1LOOP1第第9 9章章 可編程接口芯片可編程接口芯片LOOP2: SHL BH,1 ; BHLOOP2: SHL BH,1 ; BH中是行,中是行,BLBL中是列中是列,BH,BH* *4 4獲得行值獲得行值SHL BH,1SHL BH,1ADD
29、BH,DL ;ADD BH,DL ;鍵值鍵值= =值行值行+ +列值列值 MOV AL,BH ;MOV AL,BH ;鍵值換碼后顯示到數(shù)碼管鍵值換碼后顯示到數(shù)碼管 PUSH BXPUSH BX LEA BX,TAB1 LEA BX,TAB1XLATXLAT POP BXPOP BX MOV DX,A_PORTMOV DX,A_PORT OUT DX,AL OUT DX,AL JMP AGAIN JMP AGAIN第第9 9章章 可編程接口芯片可編程接口芯片DELAY2MS PROC NEAR ;DELAY2MS PROC NEAR ;延時(shí)子程序延時(shí)子程序PUSH BX ;PUSH BX ;現(xiàn)場(chǎng)
30、保護(hù)現(xiàn)場(chǎng)保護(hù)PUSH CX PUSH CX MOV BX,2MOV BX,2WAIT0: MOV CX,2801 ;WAIT0: MOV CX,2801 ;內(nèi)循環(huán)次數(shù),大小由單位時(shí)間定內(nèi)循環(huán)次數(shù),大小由單位時(shí)間定WAIT1: LOOP WAIT1 ;WAIT1: LOOP WAIT1 ;延時(shí)延時(shí)2MS 2MS DEC BXDEC BXJNZ WAIT0 JNZ WAIT0 POP CX ;POP CX ;現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)恢復(fù)POP BX POP BX RETRETDELAY2MS ENDPDELAY2MS ENDPCODE ENDSCODE ENDS END START END START 第第9
31、 9章章 可編程接口芯片可編程接口芯片【例例9-49-4】 要求:設(shè)定要求:設(shè)定8255端口端口A和和B工作于方式工作于方式1,并采用,并采用A、B口提供的中斷信號(hào)(狀態(tài)信號(hào))實(shí)現(xiàn)從端口口提供的中斷信號(hào)(狀態(tài)信號(hào))實(shí)現(xiàn)從端口B到端口到端口A的數(shù)據(jù)可靠傳輸。的數(shù)據(jù)可靠傳輸。CPU將數(shù)據(jù)區(qū)將數(shù)據(jù)區(qū)ABC 的的100字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)經(jīng)端口經(jīng)端口B輸出到輸出到A口,再由口,再由A口讀入到數(shù)據(jù)區(qū)口讀入到數(shù)據(jù)區(qū)CDE。設(shè)。設(shè)8255起始口地址為起始口地址為300H。 第第9 9章章 可編程接口芯片可編程接口芯片實(shí)現(xiàn)電路實(shí)現(xiàn)電路第第9 9章章 可編程接口芯片可編程接口芯片CPU向向B口寫數(shù)據(jù)口寫數(shù)據(jù)OBF有
32、效有效(B)(B)STB有效有效(A)(A)并將數(shù)據(jù)寫入并將數(shù)據(jù)寫入A口口IBFIBF有效有效(A)(A)、ACK有效有效(B) INTR(B) INTR( PC3PC3)有效)有效(A) (A) (等待等待CPUCPU讀入數(shù)據(jù)讀入數(shù)據(jù)) ) CPUCPU從從A A口讀入數(shù)據(jù)口讀入數(shù)據(jù) IBF無(wú)效無(wú)效(A)(A)ACK無(wú)效無(wú)效(B) INTR(B) INTR(PC0)有有效效(B) (B) ( (等待等待CPUCPU向向B端口寫新數(shù)據(jù)端口寫新數(shù)據(jù)) )程序采用查詢方式程序采用查詢方式: : PC0 PC7 PC0 PC7 PC3 PC6 PC3 PC6 工作過(guò)程分析:工作過(guò)程分析:第第9 9章
33、章 可編程接口芯片可編程接口芯片程序順序分析:程序順序分析: (1)初始態(tài)()初始態(tài)(8255初始化后)先向初始化后)先向B口寫第一個(gè)數(shù)據(jù);口寫第一個(gè)數(shù)據(jù);(2)讀)讀A口口INTR信號(hào)(信號(hào)(PC7)判斷是否有新數(shù)據(jù),)判斷是否有新數(shù)據(jù), INTR有效則讀數(shù)據(jù),否則等待;有效則讀數(shù)據(jù),否則等待;(3)讀)讀B口口INTR信號(hào)(信號(hào)(PC6)判斷)判斷A口數(shù)據(jù)是否已讀取,口數(shù)據(jù)是否已讀取, 若若INTR有效則寫數(shù)據(jù),否則等待。有效則寫數(shù)據(jù),否則等待。 第第9 9章章 可編程接口芯片可編程接口芯片程序流程程序流程 設(shè)置控制字設(shè)置控制字 初始化初始化 A口口,B口開中斷口開中斷 向向B口寫一個(gè)數(shù)口
34、寫一個(gè)數(shù)讀讀PC7=1?讀讀PC6=1?從從A口讀一個(gè)數(shù)口讀一個(gè)數(shù)NYNY第第9 9章章 可編程接口芯片可編程接口芯片MOV DXMOV DX,303H303H; MOV ALMOV AL,10111100B10111100B;OUT DXOUT DX,ALAL; 設(shè)定控制寄存器設(shè)定控制寄存器第第9 9章章 可編程接口芯片可編程接口芯片MOV DXMOV DX,303H303H; MOV ALMOV AL,0000100100001001; 置置PC4=1 PC4=1 OUT DXOUT DX,ALAL; 開啟開啟A A口輸入中斷口輸入中斷 MOV ALMOV AL,0000010100000
35、101; 置置PC2=1 PC2=1 OUT DXOUT DX,ALAL; 開啟開啟B B口輸出中斷口輸出中斷 設(shè)定中斷允許設(shè)定中斷允許INTE的有關(guān)程序語(yǔ)句的有關(guān)程序語(yǔ)句第第9 9章章 可編程接口芯片可編程接口芯片LEA SILEA SI,ABCABC; 取源數(shù)據(jù)區(qū)起始地址取源數(shù)據(jù)區(qū)起始地址 MOV DXMOV DX,301H301H; 地址指向地址指向B B口口 MOV ALMOV AL,SISI; 讀源數(shù)據(jù)區(qū)數(shù)據(jù)讀源數(shù)據(jù)區(qū)數(shù)據(jù) OUT DXOUT DX,ALAL; 數(shù)據(jù)輸出到數(shù)據(jù)輸出到B B口口INC SIINC SI; 指向下一個(gè)輸出數(shù)據(jù)指向下一個(gè)輸出數(shù)據(jù) 向向B端口寫數(shù)據(jù)的有關(guān)程序語(yǔ)
36、句端口寫數(shù)據(jù)的有關(guān)程序語(yǔ)句第第9 9章章 可編程接口芯片可編程接口芯片LEA DILEA DI,CDECDE; 取目標(biāo)數(shù)據(jù)區(qū)起始地址取目標(biāo)數(shù)據(jù)區(qū)起始地址 MOV DXMOV DX,300H300H; 地址指向地址指向A A口口 IN ALIN AL,DXDX; 讀入讀入A A口數(shù)據(jù)口數(shù)據(jù) MOV DIMOV DI,ALAL; 數(shù)據(jù)放入目標(biāo)數(shù)據(jù)區(qū)數(shù)據(jù)放入目標(biāo)數(shù)據(jù)區(qū) INC DIINC DI; 指向目標(biāo)數(shù)據(jù)區(qū)下一地址指向目標(biāo)數(shù)據(jù)區(qū)下一地址 從從A端口讀數(shù)據(jù)的有關(guān)程序語(yǔ)句端口讀數(shù)據(jù)的有關(guān)程序語(yǔ)句補(bǔ)充習(xí)題:根據(jù)補(bǔ)充習(xí)題:根據(jù)例例9-4的的分析寫出完整的程序段!分析寫出完整的程序段!第第9 9章章 可編
37、程接口芯片可編程接口芯片9.3 9.3 可編程定時(shí)器可編程定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器825382539.3.9.3.1 1 定時(shí)定時(shí)/ /計(jì)數(shù)器的基本概念計(jì)數(shù)器的基本概念 定時(shí)器:能通過(guò)對(duì)等周期輸入時(shí)鐘脈沖分頻值的編程設(shè)定時(shí)器:能通過(guò)對(duì)等周期輸入時(shí)鐘脈沖分頻值的編程設(shè)定,來(lái)產(chǎn)生不同頻率值輸出脈沖的功能部件(可編程分定,來(lái)產(chǎn)生不同頻率值輸出脈沖的功能部件(可編程分頻器)。頻器)。 計(jì)數(shù)器:可對(duì)輸入脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù)的功能部件。計(jì)數(shù)器:可對(duì)輸入脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù)的功能部件。第第9 9章章 可編程接口芯片可編程接口芯片1內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)第第9 9章章 可編程接口芯片可編程接口芯片控制寄存器:控制寄存器:通
38、過(guò)程序?qū)懭牍ぷ鞣绞酵ㄟ^(guò)程序?qū)懭牍ぷ鞣绞健S?jì)數(shù)初值寄存器:計(jì)數(shù)初值寄存器:接收和存放程序設(shè)置的計(jì)數(shù)初始值接收和存放程序設(shè)置的計(jì)數(shù)初始值。 減一計(jì)數(shù)器:減一計(jì)數(shù)器:其初值是在程序?qū)⒂?jì)數(shù)初值寫入計(jì)數(shù)初值寄存其初值是在程序?qū)⒂?jì)數(shù)初值寫入計(jì)數(shù)初值寄存器時(shí)自動(dòng)復(fù)制到其內(nèi)的。減一計(jì)數(shù)器的值會(huì)在每個(gè)有效的輸器時(shí)自動(dòng)復(fù)制到其內(nèi)的。減一計(jì)數(shù)器的值會(huì)在每個(gè)有效的輸入脈沖入脈沖CLKCLK作用下自動(dòng)減一,當(dāng)其值減到零后會(huì)引起輸出電平作用下自動(dòng)減一,當(dāng)其值減到零后會(huì)引起輸出電平變化。變化。當(dāng)前計(jì)數(shù)值鎖存器:當(dāng)前計(jì)數(shù)值鎖存器:由于不能直接讀取減由于不能直接讀取減1 1計(jì)數(shù)器的當(dāng)前值,計(jì)數(shù)器的當(dāng)前值,所以需要設(shè)置一種間接的
39、方法來(lái)實(shí)現(xiàn)。即先執(zhí)行一條指令將所以需要設(shè)置一種間接的方法來(lái)實(shí)現(xiàn)。即先執(zhí)行一條指令將減減1 1計(jì)數(shù)器的當(dāng)前值存入當(dāng)前計(jì)數(shù)值鎖存器,然后再讀當(dāng)前計(jì)計(jì)數(shù)器的當(dāng)前值存入當(dāng)前計(jì)數(shù)值鎖存器,然后再讀當(dāng)前計(jì)數(shù)值鎖存器的內(nèi)容。數(shù)值鎖存器的內(nèi)容。第第9 9章章 可編程接口芯片可編程接口芯片CLKCLK:時(shí)鐘輸入。作為定時(shí)器應(yīng)用和計(jì)數(shù)器應(yīng)用時(shí),輸時(shí)鐘輸入。作為定時(shí)器應(yīng)用和計(jì)數(shù)器應(yīng)用時(shí),輸 入入周期或非周期性脈沖信號(hào)。周期或非周期性脈沖信號(hào)。 GATEGATE:門控信號(hào)門控信號(hào), ,其作用如下:其作用如下: 1 1)控制)控制CLKCLK端的輸入,端的輸入, 2 2)啟動(dòng)計(jì)數(shù)器工作。)啟動(dòng)計(jì)數(shù)器工作。 OUTOUT
40、:輸出信號(hào),表征計(jì)數(shù)器的工作狀態(tài)。當(dāng)減輸出信號(hào),表征計(jì)數(shù)器的工作狀態(tài)。當(dāng)減1 1計(jì)數(shù)器計(jì)數(shù)器 減減為為0 0時(shí)產(chǎn)生變化。在不同工作方式下,其電平值時(shí)產(chǎn)生變化。在不同工作方式下,其電平值 及及變化情況在初始階段、計(jì)數(shù)過(guò)程中和計(jì)數(shù)結(jié)束變化情況在初始階段、計(jì)數(shù)過(guò)程中和計(jì)數(shù)結(jié)束 后后各不相同。各不相同。2 2外部有關(guān)信號(hào)外部有關(guān)信號(hào)第第9 9章章 可編程接口芯片可編程接口芯片3 3. . 定時(shí)器和計(jì)數(shù)器的作用及區(qū)別定時(shí)器和計(jì)數(shù)器的作用及區(qū)別 (1)定時(shí)器)定時(shí)器和計(jì)數(shù)器的相同之處:和計(jì)數(shù)器的相同之處: 都都需通過(guò)對(duì)一個(gè)減一計(jì)數(shù)器初始值的設(shè)定來(lái)實(shí)需通過(guò)對(duì)一個(gè)減一計(jì)數(shù)器初始值的設(shè)定來(lái)實(shí) 現(xiàn)定現(xiàn)定 時(shí)時(shí)(分
41、頻)或計(jì)數(shù)。(分頻)或計(jì)數(shù)。(2)定時(shí)器)定時(shí)器和計(jì)數(shù)器的不同之處:和計(jì)數(shù)器的不同之處: 定時(shí)器方式下定時(shí)器方式下:周期重復(fù)周期重復(fù) 計(jì)數(shù)器方式下計(jì)數(shù)器方式下:一次計(jì)數(shù)完成一次計(jì)數(shù)完成,再次計(jì)數(shù)需重新再次計(jì)數(shù)需重新觸發(fā)觸發(fā) 定時(shí)器方式下定時(shí)器方式下:輸入時(shí)鐘必須是等周期輸入時(shí)鐘必須是等周期 計(jì)數(shù)器方式下計(jì)數(shù)器方式下:輸入時(shí)鐘不一定等輸入時(shí)鐘不一定等周期周期第第9 9章章 可編程接口芯片可編程接口芯片9.3.2 82539.3.2 8253的內(nèi)部結(jié)構(gòu)及引腳功能的內(nèi)部結(jié)構(gòu)及引腳功能1.82531.8253的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) 每片每片82538253有有3 3個(gè)獨(dú)立的個(gè)獨(dú)立的1616位計(jì)數(shù)通道,每
42、個(gè)計(jì)數(shù)通道最高計(jì)位計(jì)數(shù)通道,每個(gè)計(jì)數(shù)通道最高計(jì)數(shù)速率可達(dá)數(shù)速率可達(dá)2.6MHZ2.6MHZ。每個(gè)計(jì)數(shù)器可編程設(shè)定。每個(gè)計(jì)數(shù)器可編程設(shè)定6 6種工作方式,使用時(shí)種工作方式,使用時(shí)可以根據(jù)需要選擇其中的一種工作方式。每個(gè)計(jì)數(shù)通道可按二進(jìn)可以根據(jù)需要選擇其中的一種工作方式。每個(gè)計(jì)數(shù)通道可按二進(jìn)制或十進(jìn)制來(lái)計(jì)數(shù)。制或十進(jìn)制來(lái)計(jì)數(shù)。 定時(shí)和計(jì)數(shù)在工作原理上是相同的,都是對(duì)一個(gè)輸入脈沖進(jìn)定時(shí)和計(jì)數(shù)在工作原理上是相同的,都是對(duì)一個(gè)輸入脈沖進(jìn)行計(jì)數(shù)。行計(jì)數(shù)。8253是是Intel公司生產(chǎn)的通用可編程定時(shí)公司生產(chǎn)的通用可編程定時(shí)/計(jì)數(shù)器,定時(shí)時(shí)間與計(jì)計(jì)數(shù)器,定時(shí)時(shí)間與計(jì)數(shù)次數(shù)由用戶事先設(shè)定數(shù)次數(shù)由用戶事先設(shè)定。
43、第第9 9章章 可編程接口芯片可編程接口芯片A1 A0執(zhí)行的操作執(zhí)行的操作0100 0對(duì)計(jì)數(shù)器對(duì)計(jì)數(shù)器0設(shè)置初值設(shè)置初值0100 1對(duì)計(jì)數(shù)器對(duì)計(jì)數(shù)器1設(shè)置初值設(shè)置初值0101 0對(duì)計(jì)數(shù)器對(duì)計(jì)數(shù)器2設(shè)置初值設(shè)置初值0101 1寫控制字寫控制字0010 0讀計(jì)數(shù)器讀計(jì)數(shù)器0當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值0010 1讀計(jì)數(shù)器讀計(jì)數(shù)器1當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值0011 0讀計(jì)數(shù)器讀計(jì)數(shù)器2當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值第第9 9章章 可編程接口芯片可編程接口芯片2. 82532. 8253的引腳功能的引腳功能 8253 8253采用雙列直插式封裝,有采用雙列直插式封裝,有2424個(gè)引腳個(gè)引腳。A1A0端口端口000計(jì)數(shù)器計(jì)數(shù)
44、器0001計(jì)數(shù)器計(jì)數(shù)器1010計(jì)數(shù)器計(jì)數(shù)器2011控制控制寄存器寄存器1未選中未選中第第9 9章章 可編程接口芯片可編程接口芯片9.3.3 82539.3.3 8253的工作方式的工作方式82538253的每個(gè)計(jì)數(shù)器都有的每個(gè)計(jì)數(shù)器都有6 6種工作方式:方式種工作方式:方式0 0方式方式5 5。這這6 6種工作方式的不同點(diǎn)是:種工作方式的不同點(diǎn)是: 計(jì)數(shù)計(jì)數(shù)/ /定時(shí)工作定時(shí)工作 輸出波形不同輸出波形不同:初始初始態(tài)態(tài)/ /計(jì)數(shù)狀態(tài)計(jì)數(shù)狀態(tài)/ /結(jié)束態(tài)結(jié)束態(tài) 啟動(dòng)計(jì)數(shù)器的觸發(fā)方式不同啟動(dòng)計(jì)數(shù)器的觸發(fā)方式不同:軟件軟件/ /硬件硬件 計(jì)數(shù)過(guò)程中計(jì)數(shù)過(guò)程中GATEGATE信號(hào)對(duì)計(jì)數(shù)過(guò)程的影響不同信
45、號(hào)對(duì)計(jì)數(shù)過(guò)程的影響不同 重觸發(fā)方式不同:重觸發(fā)方式不同:軟件軟件/ /硬件硬件第第9 9章章 可編程接口芯片可編程接口芯片1.1.方式方式00低電平輸出低電平輸出l 計(jì)數(shù)功能計(jì)數(shù)功能,軟件軟件觸發(fā)觸發(fā)計(jì)數(shù),計(jì)數(shù),且計(jì)數(shù)器只計(jì)一遍??刂谱謱懬矣?jì)數(shù)器只計(jì)一遍??刂谱謱懭牒螅敵龆巳牒?,輸出端OUTOUT變?yōu)榈碗娖健S?jì)數(shù)初值寫入后變?yōu)榈碗娖?。?jì)數(shù)初值寫入后,下一個(gè)下一個(gè)CLKCLK脈沖的下降沿,計(jì)數(shù)初值寄存器內(nèi)容裝入減脈沖的下降沿,計(jì)數(shù)初值寄存器內(nèi)容裝入減1 1計(jì)數(shù)寄存計(jì)數(shù)寄存器,開始計(jì)數(shù),器,開始計(jì)數(shù),輸出端輸出端OUTOUT維持低電平維持低電平。l 當(dāng)計(jì)數(shù)值減到當(dāng)計(jì)數(shù)值減到0 0時(shí),時(shí),OUTO
46、UT輸出端變?yōu)楦唠娖?,此信?hào)可作為輸出端變?yōu)楦唠娖剑诵盘?hào)可作為中斷請(qǐng)求信號(hào),并可保持到重新寫入新的控制字或新的計(jì)中斷請(qǐng)求信號(hào),并可保持到重新寫入新的控制字或新的計(jì)數(shù)值為止。數(shù)值為止。l 計(jì)數(shù)過(guò)程中,若計(jì)數(shù)過(guò)程中,若GATEGATE信號(hào)變?yōu)榈碗娖?,暫停?jì)數(shù)信號(hào)變?yōu)榈碗娖剑瑫和S?jì)數(shù),減,減1 1計(jì)計(jì)數(shù)寄存器值保持不變;數(shù)寄存器值保持不變;若若GATEGATE信號(hào)重新變高,則計(jì)數(shù)器從信號(hào)重新變高,則計(jì)數(shù)器從暫停值開始繼續(xù)計(jì)數(shù);暫停值開始繼續(xù)計(jì)數(shù);若重新寫入新的計(jì)數(shù)初值,則在下若重新寫入新的計(jì)數(shù)初值,則在下一個(gè)一個(gè)CLKCLK脈沖的下降沿,減脈沖的下降沿,減1 1計(jì)數(shù)寄存器以新的計(jì)數(shù)初值重計(jì)數(shù)寄存器
47、以新的計(jì)數(shù)初值重新開始計(jì)數(shù)。新開始計(jì)數(shù)。第第9 9章章 可編程接口芯片可編程接口芯片8253方式方式0的的時(shí)序波形圖時(shí)序波形圖第第9 9章章 可編程接口芯片可編程接口芯片2.2.方式方式11低電平輸出低電平輸出硬件觸發(fā)單穩(wěn)態(tài)方式硬件觸發(fā)單穩(wěn)態(tài)方式,輸出單個(gè)負(fù)脈沖信號(hào),脈沖的寬度可,輸出單個(gè)負(fù)脈沖信號(hào),脈沖的寬度可通過(guò)編程來(lái)設(shè)定。通過(guò)編程來(lái)設(shè)定。寫入控制字后,輸出端寫入控制字后,輸出端OUTOUT變?yōu)楦唠娖?,并保持。寫入?jì)數(shù)變?yōu)楦唠娖?,并保持。寫入?jì)數(shù)初值后,在初值后,在GATEGATE信號(hào)的上升沿之后的下一個(gè)信號(hào)的上升沿之后的下一個(gè)CLKCLK脈沖的下降脈沖的下降沿,計(jì)數(shù)初值裝入減沿,計(jì)數(shù)初值
48、裝入減1 1計(jì)數(shù)寄存器,同時(shí)計(jì)數(shù)寄存器,同時(shí)OUTOUT端變?yōu)榈碗娖?,端變?yōu)榈碗娖?,開始計(jì)數(shù)開始計(jì)數(shù),當(dāng)計(jì)數(shù)值減到當(dāng)計(jì)數(shù)值減到0 0時(shí),輸出端時(shí),輸出端OUTOUT變?yōu)楦唠娖?。變?yōu)楦唠娖?。?jì)數(shù)過(guò)程中,如果計(jì)數(shù)過(guò)程中,如果CPUCPU又送來(lái)新的計(jì)數(shù)初值,不影響當(dāng)前計(jì)又送來(lái)新的計(jì)數(shù)初值,不影響當(dāng)前計(jì)數(shù)過(guò)程。等到計(jì)數(shù)器計(jì)數(shù)到數(shù)過(guò)程。等到計(jì)數(shù)器計(jì)數(shù)到0 0,OUTOUT端輸出高電平且出現(xiàn)新的端輸出高電平且出現(xiàn)新的一次一次GATEGATE信號(hào)的觸發(fā)時(shí),才會(huì)將新的計(jì)數(shù)初值裝入,信號(hào)的觸發(fā)時(shí),才會(huì)將新的計(jì)數(shù)初值裝入,并并計(jì)數(shù)計(jì)數(shù)。如果在輸出端如果在輸出端OUTOUT輸出低電平期間,又來(lái)一個(gè)門控信號(hào)上升輸出低
49、電平期間,又來(lái)一個(gè)門控信號(hào)上升沿觸發(fā),則在下一個(gè)沿觸發(fā),則在下一個(gè)CLKCLK脈沖的下降沿,將計(jì)數(shù)初值寄存器脈沖的下降沿,將計(jì)數(shù)初值寄存器內(nèi)容重新裝入減內(nèi)容重新裝入減1 1計(jì)數(shù)寄存器,計(jì)數(shù)寄存器,并并計(jì)數(shù)。計(jì)數(shù)。第第9 9章章 可編程接口芯片可編程接口芯片8253方式方式1的時(shí)序波形圖的時(shí)序波形圖第第9 9章章 可編程接口芯片可編程接口芯片3.3.方式方式22周期性負(fù)脈沖輸出周期性負(fù)脈沖輸出方式方式2 2可產(chǎn)生連續(xù)的負(fù)脈沖信號(hào),可用作頻率發(fā)生器。負(fù)脈可產(chǎn)生連續(xù)的負(fù)脈沖信號(hào),可用作頻率發(fā)生器。負(fù)脈沖的寬度為一個(gè)時(shí)鐘周期。沖的寬度為一個(gè)時(shí)鐘周期。寫入控制字后,輸出端寫入控制字后,輸出端OUTOUT
50、變?yōu)楦唠娖?。若變?yōu)楦唠娖健H鬐ATEGATE為高電平,為高電平,那么寫入計(jì)數(shù)初值后,在下一個(gè)那么寫入計(jì)數(shù)初值后,在下一個(gè)CLKCLK的下降沿計(jì)數(shù)初值寄存的下降沿計(jì)數(shù)初值寄存器內(nèi)容裝入減器內(nèi)容裝入減1 1計(jì)數(shù)寄存器,開始減計(jì)數(shù)寄存器,開始減1 1計(jì)數(shù)。當(dāng)減計(jì)數(shù)。當(dāng)減1 1計(jì)數(shù)寄存計(jì)數(shù)寄存器的值為器的值為1 1時(shí),時(shí),OUTOUT端輸出低電平,經(jīng)過(guò)一個(gè)端輸出低電平,經(jīng)過(guò)一個(gè)CLKCLK時(shí)鐘周期,時(shí)鐘周期,OUTOUT端輸出高電平,并自動(dòng)開始一個(gè)新的計(jì)數(shù)過(guò)程。端輸出高電平,并自動(dòng)開始一個(gè)新的計(jì)數(shù)過(guò)程。在計(jì)數(shù)過(guò)程中,如果減在計(jì)數(shù)過(guò)程中,如果減1 1計(jì)數(shù)寄存器未減到計(jì)數(shù)寄存器未減到1 1時(shí)時(shí)GATEGA
51、TE信號(hào)由信號(hào)由高變低,則停止計(jì)數(shù)。但當(dāng)高變低,則停止計(jì)數(shù)。但當(dāng)GATEGATE由低變高時(shí),則重新將計(jì)由低變高時(shí),則重新將計(jì)數(shù)初值寄存器內(nèi)容裝入減數(shù)初值寄存器內(nèi)容裝入減1 1計(jì)數(shù)寄存器,并重新開始計(jì)數(shù)。計(jì)數(shù)寄存器,并重新開始計(jì)數(shù)。(硬件可重觸發(fā)硬件可重觸發(fā))如果如果GATEGATE信號(hào)保持高電平時(shí),在計(jì)數(shù)過(guò)程中重新寫入計(jì)數(shù)信號(hào)保持高電平時(shí),在計(jì)數(shù)過(guò)程中重新寫入計(jì)數(shù)初值候,要等正在計(jì)數(shù)的一輪結(jié)束并輸出一個(gè)初值候,要等正在計(jì)數(shù)的一輪結(jié)束并輸出一個(gè)CLKCLK周期的負(fù)周期的負(fù)脈沖后,才以新的初值進(jìn)行計(jì)數(shù)。脈沖后,才以新的初值進(jìn)行計(jì)數(shù)。第第9 9章章 可編程接口芯片可編程接口芯片8253方式方式2的時(shí)
52、序波形圖的時(shí)序波形圖第第9 9章章 可編程接口芯片可編程接口芯片4.4.方式方式33周期性方波輸出周期性方波輸出(1)輸出端)輸出端OUTOUT的的狀態(tài):狀態(tài): OUT端輸出在計(jì)數(shù)過(guò)程開始前為高電平。開始計(jì)數(shù)過(guò)程中端輸出在計(jì)數(shù)過(guò)程開始前為高電平。開始計(jì)數(shù)過(guò)程中: : N為偶數(shù),輸出端保持為偶數(shù),輸出端保持N/2的高電平的高電平, ,N/2低電平低電平, , N為奇數(shù),輸出端保持(為奇數(shù),輸出端保持(N+1)/2高電平高電平, ,(N-1)/2低電平。低電平。 減一計(jì)數(shù)器減至減一計(jì)數(shù)器減至0時(shí)如果門控信號(hào)無(wú)變化則自動(dòng)按計(jì)數(shù)初值進(jìn)時(shí)如果門控信號(hào)無(wú)變化則自動(dòng)按計(jì)數(shù)初值進(jìn)行新一輪的計(jì)數(shù)過(guò)程,并循環(huán)往復(fù)
53、。行新一輪的計(jì)數(shù)過(guò)程,并循環(huán)往復(fù)。 (2)軟件起始觸發(fā)。)軟件起始觸發(fā)。(3)硬件可重觸發(fā))硬件可重觸發(fā)。(4 4)定時(shí)工作方式。)定時(shí)工作方式。(5 5)計(jì)數(shù)過(guò)程中改變計(jì)數(shù))計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值:值: 計(jì)數(shù)過(guò)程計(jì)數(shù)過(guò)程中向計(jì)數(shù)初值寄存器重新寫入初值,只有當(dāng)中向計(jì)數(shù)初值寄存器重新寫入初值,只有當(dāng)OUTOUT 的的高電平期或低電平期結(jié)束時(shí)才開始按新計(jì)數(shù)初值開始新的高電平期或低電平期結(jié)束時(shí)才開始按新計(jì)數(shù)初值開始新的 計(jì)數(shù)過(guò)程計(jì)數(shù)過(guò)程。第第9 9章章 可編程接口芯片可編程接口芯片8253方式方式3的時(shí)序波形圖的時(shí)序波形圖第第9 9章章 可編程接口芯片可編程接口芯片5.5.方式方式44軟件觸發(fā)的單次負(fù)
54、脈沖輸出軟件觸發(fā)的單次負(fù)脈沖輸出方式方式4 4是是軟件觸發(fā)軟件觸發(fā)的選通方式。采用方式的選通方式。采用方式4 4可產(chǎn)生單個(gè)負(fù)脈沖可產(chǎn)生單個(gè)負(fù)脈沖信號(hào),負(fù)脈沖寬度為一個(gè)時(shí)鐘周期。信號(hào),負(fù)脈沖寬度為一個(gè)時(shí)鐘周期。寫入控制字后,輸出端寫入控制字后,輸出端OUTOUT變?yōu)楦唠娖?,若變?yōu)楦唠娖?,若GATEGATE為高電平,為高電平,則在寫入計(jì)數(shù)初值后下一個(gè)則在寫入計(jì)數(shù)初值后下一個(gè)CLKCLK的下降沿計(jì)數(shù)初值寄存器內(nèi)的下降沿計(jì)數(shù)初值寄存器內(nèi)容裝入減容裝入減1 1計(jì)數(shù)寄存器,開始減計(jì)數(shù)寄存器,開始減1 1計(jì)數(shù)。當(dāng)減計(jì)數(shù)。當(dāng)減1 1計(jì)數(shù)寄存器的計(jì)數(shù)寄存器的值為值為0 0時(shí),輸出端時(shí),輸出端OUTOUT變?yōu)榈碗?/p>
55、平,經(jīng)過(guò)一個(gè)變?yōu)榈碗娖?,?jīng)過(guò)一個(gè)CLKCLK時(shí)鐘周期,時(shí)鐘周期,輸出端輸出端OUTOUT變?yōu)楦唠娖?。變?yōu)楦唠娖?。如果在?jì)數(shù)時(shí),又寫入新的計(jì)數(shù)值,則在下一個(gè)如果在計(jì)數(shù)時(shí),又寫入新的計(jì)數(shù)值,則在下一個(gè)CLKCLK的下降的下降沿此計(jì)數(shù)初值被寫入減沿此計(jì)數(shù)初值被寫入減1 1計(jì)數(shù)寄存器,并以新的計(jì)數(shù)值作減計(jì)數(shù)寄存器,并以新的計(jì)數(shù)值作減1 1計(jì)數(shù)。計(jì)數(shù)。第第9 9章章 可編程接口芯片可編程接口芯片8253方式方式4的時(shí)序波形圖的時(shí)序波形圖第第9 9章章 可編程接口芯片可編程接口芯片5.5.方式方式55硬硬件觸發(fā)的單次負(fù)脈沖輸出件觸發(fā)的單次負(fù)脈沖輸出方式方式5 5是是硬件觸發(fā)的選通方式硬件觸發(fā)的選通方式。采
56、用方式。采用方式5 5可產(chǎn)生單個(gè)負(fù)脈沖可產(chǎn)生單個(gè)負(fù)脈沖信號(hào),負(fù)脈沖寬度為一個(gè)時(shí)鐘周期。信號(hào),負(fù)脈沖寬度為一個(gè)時(shí)鐘周期。方式方式5 5的計(jì)數(shù)過(guò)程由的計(jì)數(shù)過(guò)程由GATEGATE的上升沿觸發(fā)。當(dāng)控制字寫入后,的上升沿觸發(fā)。當(dāng)控制字寫入后,輸出端輸出端OUTOUT輸出高電平,并保持。寫入計(jì)數(shù)初值后,只有在輸出高電平,并保持。寫入計(jì)數(shù)初值后,只有在GATEGATE信號(hào)的上升沿之后的下一個(gè)信號(hào)的上升沿之后的下一個(gè)CLKCLK脈沖的下降沿,計(jì)數(shù)初脈沖的下降沿,計(jì)數(shù)初值裝入減值裝入減1 1計(jì)數(shù)寄存器,開始計(jì)數(shù)。當(dāng)計(jì)數(shù)到計(jì)數(shù)寄存器,開始計(jì)數(shù)。當(dāng)計(jì)數(shù)到0 0時(shí),輸出端時(shí),輸出端OUTOUT變?yōu)榈碗娖剑⒊掷m(xù)一個(gè)變
57、為低電平,并持續(xù)一個(gè)CLKCLK周期,然后自動(dòng)變?yōu)楦唠娖街芷?,然后自?dòng)變?yōu)楦唠娖健S?jì)數(shù)過(guò)程中,若計(jì)數(shù)過(guò)程中,若GATEGATE端又來(lái)一個(gè)上升沿觸發(fā),則在下一個(gè)端又來(lái)一個(gè)上升沿觸發(fā),則在下一個(gè)CLKCLK脈沖的下降沿,減脈沖的下降沿,減1 1計(jì)數(shù)寄存器將重新獲得計(jì)數(shù)初值,并計(jì)數(shù)寄存器將重新獲得計(jì)數(shù)初值,并計(jì)數(shù)。計(jì)數(shù)。計(jì)數(shù)過(guò)程中,若寫入新的計(jì)數(shù)值,但沒有觸發(fā)脈沖,則當(dāng)前計(jì)數(shù)過(guò)程中,若寫入新的計(jì)數(shù)值,但沒有觸發(fā)脈沖,則當(dāng)前輸出周期不受影響輸出周期不受影響,當(dāng)前周期結(jié)束后,在再次觸發(fā)的情況下當(dāng)前周期結(jié)束后,在再次觸發(fā)的情況下,才將按新的計(jì)數(shù)初值開始計(jì)數(shù),才將按新的計(jì)數(shù)初值開始計(jì)數(shù);若寫入新的計(jì)數(shù)值,并
58、在若寫入新的計(jì)數(shù)值,并在當(dāng)前周期結(jié)束前又受到觸發(fā),則在下一個(gè)當(dāng)前周期結(jié)束前又受到觸發(fā),則在下一個(gè)CLKCLK脈沖的下降沿脈沖的下降沿,減,減1 1計(jì)數(shù)寄存器將獲得新的計(jì)數(shù)初值,并計(jì)數(shù)。計(jì)數(shù)寄存器將獲得新的計(jì)數(shù)初值,并計(jì)數(shù)。第第9 9章章 可編程接口芯片可編程接口芯片8253方式方式5的時(shí)序波形圖的時(shí)序波形圖第第9 9章章 可編程接口芯片可編程接口芯片9.3.4 82539.3.4 8253的初始化的初始化1. 82531. 8253方式控制字方式控制字2第第9 9章章 可編程接口芯片可編程接口芯片2.82532.8253初始化編程初始化編程1 1)82538253初始化編程原則初始化編程原則
59、8253 8253的控制寄存器和的控制寄存器和3 3個(gè)計(jì)數(shù)器分別具有獨(dú)立的編程地址,由個(gè)計(jì)數(shù)器分別具有獨(dú)立的編程地址,由控制字的內(nèi)容確定使用的是哪個(gè)計(jì)數(shù)器以及執(zhí)行什么操作。控制字的內(nèi)容確定使用的是哪個(gè)計(jì)數(shù)器以及執(zhí)行什么操作。 8253 8253在初始化編程時(shí)必須遵守兩條原則:在初始化編程時(shí)必須遵守兩條原則:在對(duì)某個(gè)計(jì)數(shù)器設(shè)置初值之前,必須先寫入控制字。在對(duì)某個(gè)計(jì)數(shù)器設(shè)置初值之前,必須先寫入控制字。在設(shè)置計(jì)數(shù)初始值時(shí),要符合控制字的規(guī)定,即只寫低位在設(shè)置計(jì)數(shù)初始值時(shí),要符合控制字的規(guī)定,即只寫低位字節(jié),還是只寫高位字節(jié),還是高、低位字節(jié)都寫(分兩字節(jié),還是只寫高位字節(jié),還是高、低位字節(jié)都寫(分兩
60、次寫,先低字節(jié)后高字節(jié))。次寫,先低字節(jié)后高字節(jié))。第第9 9章章 可編程接口芯片可編程接口芯片2 2)82538253的編程命令的編程命令 8253 8253的編程命令有兩類的編程命令有兩類:一類是寫入命令,包括設(shè)置控制字、設(shè)置計(jì)數(shù)器的初始值一類是寫入命令,包括設(shè)置控制字、設(shè)置計(jì)數(shù)器的初始值命令和鎖存命令。命令和鎖存命令。另一類是讀出命令,用來(lái)讀取計(jì)數(shù)器的當(dāng)前值。另一類是讀出命令,用來(lái)讀取計(jì)數(shù)器的當(dāng)前值。3 3)82538253的初始化編程的初始化編程 8253初始化編程步驟是:初始化編程步驟是:先寫控制字到先寫控制字到8253的控制端口。的控制端口。再寫計(jì)數(shù)器初值到相應(yīng)的計(jì)數(shù)器端口。再寫計(jì)
溫馨提示
- 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年度防火門安裝與消防系統(tǒng)維護(hù)服務(wù)合同
- 2025年度影視短劇拍攝制作與獨(dú)家播出合同
- 2025年外賣美食分期付款合同
- 2025年保密合同法律協(xié)議
- 2025年中國(guó)防水袋行業(yè)發(fā)展?jié)摿︻A(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 2025年中國(guó)防毒面具行業(yè)市場(chǎng)調(diào)查研究及投資戰(zhàn)略研究報(bào)告
- 2021-2026年中國(guó)二母寧嗽丸行業(yè)市場(chǎng)供需格局及投資規(guī)劃建議報(bào)告
- 2024年知識(shí)圖譜市場(chǎng)前景預(yù)測(cè)及投資規(guī)劃研究報(bào)告
- 2022-2027年中國(guó)醫(yī)護(hù)服裝行業(yè)市場(chǎng)運(yùn)行現(xiàn)狀及投資規(guī)劃建議報(bào)告
- 2025年保障性住房管理服務(wù)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 九年級(jí)上冊(cè)-備戰(zhàn)2024年中考?xì)v史總復(fù)習(xí)核心考點(diǎn)與重難點(diǎn)練習(xí)(統(tǒng)部編版)
- 健康指南如何正確護(hù)理蠶豆病學(xué)會(huì)這些技巧保持身體健康
- 老客戶的開發(fā)與技巧課件
- 2024建設(shè)工程人工材料設(shè)備機(jī)械數(shù)據(jù)分類和編碼規(guī)范
- 26個(gè)英文字母書寫(手寫體)Word版
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗(yàn)方法和判定規(guī)則
- DB31 SW-Z 017-2021 上海市排水檢測(cè)井圖集
- 日語(yǔ)專八分類詞匯
- GB/T 707-1988熱軋槽鋼尺寸、外形、重量及允許偏差
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 高考英語(yǔ)課外積累:Hello,China《你好中國(guó)》1-20詞塊摘錄課件
評(píng)論
0/150
提交評(píng)論