版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章第八章 常用可編程通用接口芯片常用可編程通用接口芯片 第六章介紹了一些基本的輸入輸出接口,是不可編程 的.隨著大規(guī)模集成技術(shù)的發(fā)展,接口電路常被集成在 一塊硅芯片上.可用編程方式設(shè)定其工作方式,以適用 于多種功能的要求-可編程接口芯片. PC微機(jī)除CPU控制核心外,還有一些大規(guī)??删幊探?口芯片(外圍芯片)的支持: 8級(jí)中斷優(yōu)先權(quán)控制器8259以控制8個(gè)外部中斷源 (如時(shí)間基準(zhǔn)8253的Ch0,鍵盤,硬磁盤,軟磁盤, 打印機(jī)). 三端口的并行接口8255以控制外部簡(jiǎn)單接口及 DIP配置開關(guān)(如磁帶機(jī),揚(yáng)聲器). . 16位三通道定時(shí)/計(jì)數(shù)器8253以控制時(shí)間基準(zhǔn)、 動(dòng)態(tài)刷新、揚(yáng)聲器發(fā)聲.
2、 四通道DMA控制器8237以控制動(dòng)態(tài)RAM刷 新、磁盤數(shù)據(jù)交換. 可編程異步通信接口8250以控制串行通信, 完成發(fā)送時(shí)的并-串轉(zhuǎn)換和接收時(shí)的串-并轉(zhuǎn)換 及相應(yīng)的控制功能. 8.1 可編程并行接口可編程并行接口8255A 8255是最通用的并行I/O接口芯片.可用程 序改變功能,通用性強(qiáng),使用靈活,通過它可 直接將CPU總線接向外設(shè).廣泛用作各種 并行外設(shè)的接口. 一.8255的結(jié)構(gòu)與接口信號(hào) 8255的結(jié)構(gòu)框圖P261、圖81。因作為 外設(shè)接口,既要與CPU打交道,又要和外設(shè) 打交道,內(nèi)部亦需控制,所以由三部分組成: 1.外設(shè)接口部分外設(shè)接口部分-端口A,端口B,端口C.即三個(gè)輸入 輸出通
3、道,用來和外設(shè)相連,都是8位雙向端口,所以有 口線:PA7PA0,PB7PB0,PC7PC0. A、B、C三個(gè)口都可以作為輸入/輸出口. 在A、B口作為選通方式操作時(shí),C口作為狀態(tài)控 制信號(hào). C口可分成兩個(gè)4位口. 2.內(nèi)部控制邏輯電路-A組,B組控制電路. 根據(jù)CPU的命令控制8255的工作方式. A組控制端口A和端口C的上半部分(PC7PC4). B組控制端口B和端口C的下半部分(PC3PC0). 3.CPU接口部分接口部分 (1).數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器-它是8位雙向三態(tài)緩沖 器,是與CPU數(shù)據(jù)總線的接口.8位數(shù)據(jù)線D7 D0.所有數(shù)據(jù)的輸入/輸出,CPU發(fā)出的命令控 制字及輸入
4、的外設(shè)狀態(tài),都是通過該緩沖器 傳送. (2).讀寫控制邏輯讀寫控制邏輯-控制8255內(nèi)部的各種操作. 管理數(shù)據(jù),控制字,狀態(tài)的傳送.接收CPU的地址, 控制信號(hào)以控制各端口的工作狀態(tài).所以有6根 控制線. A1,A0端口選擇:00A口,01B口,10C 口,11控制口. CS片選信號(hào)-以啟動(dòng)CPU與8255之間的通 信. RD讀信號(hào)-從8255中讀數(shù)據(jù)或狀態(tài)信號(hào). WR寫信號(hào)-向8255中寫數(shù)據(jù)或狀態(tài)信號(hào). RESET復(fù)位信號(hào)-高電平有效,清除控制寄 存器,置A、B、C三個(gè)口為輸入方式. 二、二、8255的工作方式與控制字的工作方式與控制字 1、8255有三種工作方式有三種工作方式,方式由方式
5、選擇控制字來 選擇: (1)、方式0基本輸入輸出方式(基本IO)。 A、B、C三口均可工作于方式0。 (2)、方式1選通輸入輸出方式(選通IO)。 A、B二口可工作于方式1;此時(shí)C口作控制。 (3)、方式2雙向數(shù)據(jù)傳送方式。僅有A口可工作 于方式2。C口作控制。 A口可工作于方式0、1、2三種方式。 B口可工作于方式0、1二種方式。 C口只能工作于方式0。 2、方式選擇控制字、方式選擇控制字 8255的工作方式,是由CPU用一條輸出指令把 控制字送到8255的控制寄存器來實(shí)現(xiàn)的。 方式選擇選擇控制字的格式P262、圖82。 由控制字可知: A口可工作于方式0、1、2三種方式; B口只有方式0、
6、1二種方式; C口只能工作于方式0,但C口可分成兩部分:上 半部分隨A口,下半部分隨B口;A、B口要作為 一個(gè)整體確定工作方式,C口可分成兩個(gè)4位口分 別確定其工作方式(輸入或輸出)。 如:控制字90H 1 0 0 1 0 0 0 0 標(biāo)志 A口 A口 C口上 B口 B口 C口下 方式0 輸入 輸出 方式0 輸出 輸出 即控制字90H,設(shè)定了8255的A口為方式0輸入, B口為方式0輸出,C口為方式0輸出。 用下面程序段設(shè)定: MOV DX,PORT3 控制口 MOV AL,90H OUT DX,AL 3、按位置位復(fù)位控制字、按位置位復(fù)位控制字指定指定C口的某一位為口的某一位為 高電平或低電平
7、,僅有高電平或低電平,僅有C口可按位置位復(fù)位??诳砂次恢梦粡?fù)位。 當(dāng)通道A、B工作在方式1、2時(shí),常用通道C的 某些位作為同外設(shè)的聯(lián)絡(luò)控制線,通道C的8位 中的任一位都可用輸出指令使其置位復(fù)位, 從而人為控制聯(lián)絡(luò)線。 置位復(fù)位控制字格式P261、圖83: .一般視無關(guān)位D6D5D4000,則通道C的每一位 的置位復(fù)位控制字如下: PCi位 置位控制字 復(fù)位控制字 PC0 01 H 00H PC1 03H 02H PC2 05H 04H PC3 07H 06H PC4 09H 08H PC5 0BH 0AH PC6 0DH 0CH PC7 0FH 0EH 如PC3置位: MOV DX,PORT3
8、 ;控制端口 MOV AL,7 OUT DX,AL 如PC3復(fù)位:MOV DX,PORT3 MOV AL,6 OUT DX,AL C端口的按位置位復(fù)位字須跟在方式選擇控 制字之后,所以,僅使用C口的按位置位復(fù) 位字時(shí),也應(yīng)先送一方式控制字。 8255的兩個(gè)控制字是以D7位作為區(qū)別標(biāo)志: D71為方式控制字,D70為置位復(fù)位字; 所以方式字80H,置位復(fù)位字80H。 P263例:8255的C口接8只LED,用置位復(fù)位字,使 8只LED輪流亮滅。設(shè)端口地址為380H383H。 硬件如下: 與系統(tǒng) 總線的 連接 MOV DX,383H MOV AL,80H OUT DX,AL MOV AL,1 ;P
9、C0置位字 AGN:OUT DX,AL;PC0燈亮 MOV AH,11 LOOP ;延時(shí) INT 21H AND AL,0FEH;復(fù)位字 INC AL OUT DX,AL ; 燈滅 POP AX ADD AL,3 ;指向下一位 JNZ AGN AND AL,0FH ;控制置位 復(fù)位字范圍 PUSP AX 設(shè)方式控制字: C口方式0輸出 程序中,送置位字,則燈亮;送復(fù)位字,則燈滅。 由前一位的復(fù)位字到后一位的置位字之差為3,加3則 指向下一位。 思考:若將LED反接,程序如何修改: 送復(fù)位字,則燈亮;送置位字,則燈滅。由前一位的 置位字到后一位的復(fù)位字之差為1,加1則指向下一位。 MOV DX,
10、383H ;方式字 ADD AL,01H;指向下一位 MOV AL,80H AND AL,0FH;D7位為0 OUT DX,AL PUSH AX MOV AL,0 ;PC0復(fù)位字 MOV AH,11 AGN:OUT DX,AL ;燈亮 INT 21H LOOP INC AL XOR AL,1 ;置位字 POP AX OUT DX,AL ;燈滅 JNZ AGN 作業(yè): P311、 1、 2、 三、三種方式的功能及應(yīng)用、三種方式的功能及應(yīng)用 1、方式、方式0 基本功能基本單向IO方式。 A,B,C三個(gè)端口都可作8位輸入輸出端口。 C端口可作為兩個(gè)4位端口(C口上,C口下)。 輸出有鎖存,使用時(shí)可理
11、解為273;輸入有三 態(tài)緩沖,使用時(shí)可理解為244。 此方式下,只要用INOUT指令即可讀寫; 一般用于無條件傳送方式。 此方式下,也可用于查詢方式,A,B口為數(shù) 據(jù)口,C口的某些位作控制和狀態(tài)信息。但值 得注意的是無固定聯(lián)絡(luò)線。 244-273程序 8255程序 AG:MOV DX,380H MOV DX,383H IN AL,DX MOV AL,90H NOT AL OUT DX,AL OUT DX,AL NE:MOV DX,380H MOV AH,11 IN AL,DX ;A口輸入 INT 21H NOT AL CMP AL,0 INC DX JZ AG OUT DX,AL ;B口輸出
12、JZ NE 8255 初始化 A口方 式0輸入 B口方 式0輸出 注:凡是244可用8255的A,B,C三個(gè)口的方式0 輸入代替;273可用8255的A,B,C三個(gè)口的方 式0輸出代替。 8個(gè)開關(guān)可表示8個(gè)不同的數(shù)字或8個(gè)不同的字符; LED也可以是7段LED顯示器。 例:用一片8255實(shí)現(xiàn)8個(gè)7段LED顯示器與64個(gè)按鍵 的鍵盤顯示器接口設(shè)計(jì)。 參見P212 顯示器設(shè)計(jì),段碼輸出用273,位碼輸 出用273;參見P214 鍵盤設(shè)計(jì),行掃描碼輸出用 273,列讀入值用244。因?yàn)槎疾捎脛?dòng)態(tài)掃描方式顯 示和掃描鍵盤,所以顯示器的位顯和鍵的行掃描端 口可以合并。即用2片273和1片244即可實(shí)現(xiàn)。
13、可用 8255的3個(gè)端口代替。如選用A,B口為方式0輸出 (代替273),C口方式0輸入(代替244)即可。 MOV DX,383H MOV AL,89H OUT DX,AL 由于鍵盤和顯示器做成一個(gè)接口電路,所以軟件 應(yīng)合并考慮鍵盤查詢和動(dòng)態(tài)顯示。 作業(yè): P311. 4. 5. 第四題參見實(shí)驗(yàn)教材P149,只畫出流程 圖。 2.方式方式1 基本功能是選通IO方式,也是單向IO。 端口A,B作為數(shù)據(jù)口輸入或輸出,但同時(shí)規(guī)定C口 的某些位作為控制或狀態(tài)信息,用于聯(lián)絡(luò)和中斷, 提供中斷邏輯,其C口各位的功能是固定的,不能 由程序設(shè)定。 (1)、方式1輸入將三個(gè)端口分為A、B兩組;端 口A和端口C
14、的PC3PC5為一組,端口B和端口C 的PC0PC2為一組,端口C剩余的PC6PC7仍 可作為一般IO。 P265、圖85 A口方式1輸入 B口方式1輸入 控制信號(hào): STB選通信號(hào),低電平有效;這是外設(shè)發(fā)來的輸 入信號(hào),前沿(下降沿)把輸入裝置送來的數(shù)據(jù)送 入輸入緩沖器;而后沿(上升沿)使INTR有效。 IBF輸入緩沖器滿信號(hào),高電平有效;這是8255 輸出給外設(shè)的回答信號(hào);外設(shè)將數(shù)據(jù)送入緩沖器后, 該信號(hào)有效;RD信號(hào)的上升沿將數(shù)據(jù)送數(shù)據(jù)總線后, 又使其復(fù)位。 INTR中斷請(qǐng)求信號(hào),高電平有效;這是8255的輸 出信號(hào),可用作向CPU申請(qǐng)中斷的請(qǐng)求信號(hào),以要 求CPU服務(wù);當(dāng)IBF為高和I
15、NTE中斷允許為高時(shí), STB為高時(shí)(即STB的后沿)使INTR為高;由RD信 號(hào)清除。 INTE中斷允許信號(hào): 端口A的INTEA可由用戶對(duì)PC4的按位置位 復(fù)位控制字來控制,PC41,允許A口中斷; 端口B的INTEB可由用戶對(duì)PC2的按位置位 復(fù)位控制字來控制,PC21,允許B口中斷; 操作時(shí)序: (1)外設(shè)把數(shù)據(jù)送給8255后,發(fā)STB信號(hào),使IBF有效; (2)STB后沿引發(fā)INTR; (3)CPU響應(yīng)中斷; (4)CPU發(fā)RD信號(hào),使INTR失效; (5)CPU取走數(shù)據(jù),使IBF失效,可輸入新的數(shù)據(jù)。 P266例:用選通方式(中斷方式)從A口輸入 100個(gè)8位二進(jìn)制數(shù)IBF。 82
16、55的使用步驟: 硬件連接將8255和CPU的有關(guān)信號(hào)連接,又要和 外設(shè)連接,此處的外設(shè)輸入 裝置 為8個(gè)開關(guān),用發(fā)光二極 管標(biāo)志輸入緩沖器滿的狀態(tài),以作為外設(shè)回答信號(hào),用去 抖動(dòng)開關(guān)作為外設(shè)的選通信號(hào) 。 軟件中對(duì)8255進(jìn)行初始化,以設(shè)定其工作方式。 在程序控制下實(shí)現(xiàn)數(shù)據(jù)的輸入/輸出操作。 BUF DB 100 DUP(?) MOV ES, AX ;設(shè)置0段 . MOV DX, 38FH ;置控制口地址 MOV AL, 0B0H ;A口方式1輸入 OUT DX, AL MOV AL, 9 PC4置1,允許A口中斷 OUT DX, AL MOV AX, SEG IS8255 MOV ES:0
17、1C6H,AX 填寫向量表 MOV AX, 0FFSET IS8255 MOV ES:01C4H, AX MOV CX, 100 ;計(jì)100次 MOV BX, 0 ;計(jì)緩沖偏移地址 MOV DX, 38CH ;A口地址 IN AL, 0A1H AND AL, 0FDH ;修改8259從片屏蔽字OCW1 OUT 0A1H, AL ;允許IRQ9中斷 ROTT:JMP $ ;等待中斷,等STB信號(hào) LOOP ROTT ;中斷100次 IN AL, 0A1H OR AL, 02H ;還原屏蔽字禁止IRQ9中斷 OUT 0A1H, AL RET IS8255:IN AL, DX ; 讀A囗數(shù)據(jù)BUF
18、MOV BUFBX, AL ;產(chǎn)生RD,撤消INTR INC BX ;修改緩沖區(qū)地址 MOV AL, 61H OUT 0A0H, AL 主從8259均結(jié)束中斷 MOV AL, 62H OUT 20H, AL POP AX INC AX INC AX 修改返回地址,跳過JMP $ PUSH AX IRET 作業(yè):P311. 3. (2)方式1輸出將三端口分為A組,B組;端口A和C口的 PC3,PC6PC7為一組,端口B和C口的PC0PC2為一組, C口剩余PC4PC5 可作一般I/O. 控制信號(hào): 1) OBF(Output Buffer Full)-輸出緩沖器滿信號(hào),高電平有 效,這是8255
19、給外設(shè)的一個(gè)聯(lián)絡(luò)信號(hào).當(dāng)CPU把數(shù)據(jù) 寫入 端口后,該信號(hào)有效.表示外設(shè)可以把數(shù)據(jù)取走。WR信號(hào) 置成有效,由ACK 的有效(下降沿)使其恢復(fù)為高. 2)ACK(Acknowledge)-外設(shè)響應(yīng)回答信號(hào),低電平有效;該 信號(hào)的前沿取走數(shù)據(jù),使OBF無效,表示數(shù)據(jù)已由外設(shè)取 走;后沿使INTR有效. 3)INTR-中斷請(qǐng)求信號(hào),高電平有效;當(dāng)輸出裝置已經(jīng)接受 了CPU輸給的數(shù)據(jù)后,用來向CPU提出新的中斷請(qǐng)求,要 求再輸出數(shù)據(jù).當(dāng)ACK為高(即后沿),INTE為高,OBF為高, 使其置高,WR的前沿(下降沿)使其復(fù)位. 4)INTEA-由PC6的置位/復(fù)位控制;INTEB-由PC2的置 位/復(fù)
20、位控制. CPU 響應(yīng)中斷發(fā)出WR,使OBF有效. 外設(shè)取走數(shù)據(jù),ACK使OBF無效. ACK的上升沿使INTR有效,再次中斷. CPU響應(yīng)中斷,再次WR,使INTR失效,輸出一個(gè)新 數(shù). P268例.設(shè)計(jì)接口電路,輸入A口8個(gè)開關(guān)的狀態(tài),送 B口發(fā)光二極管顯示對(duì)應(yīng)狀態(tài).要求A口為基本輸入, B口為選通輸出。 8個(gè)開關(guān)接A口,作為輸入裝置;8個(gè)發(fā)光二極管接B口, 作為輸出裝置; OBF接一發(fā)光二 極管,以標(biāo)示輸出 緩沖器滿,ACK 接一去抖動(dòng)開關(guān), 板動(dòng)開關(guān)表示外 設(shè)發(fā)出響應(yīng)信號(hào). DA1 DB Wait Interrupt, 0AH,0DH,$ MOV ES, AX ;置0段 . MOV D
21、X, 383H ;控制口地址 MOV AL, 94H ;方式字1001 X10X OUT DX,AL ;A口方式0輸入,B口方式1輸出 MOV AL, 5 ;PC2置位,允許B口中斷 OUT DX, AL 將中斷服務(wù)程序入口地址IO8255 MOV AX, SEG IO8255 向量表 MOV ES:01C6H, AX IRQ9中斷中斷矢量是71H MOV AX,OFFSET IO8255 MOV ES:01C4H,AX MOV DX,381H OUT DX,AL IN AL, 0A1H AND AL, 0FDH 修改8259從片的屏蔽字,允許IRQ9中斷 OUT 0A1H, AL ROTT:
22、 LEA DX, DA1 MOV AH, 9 顯示等待中斷提示“Wait Interrupt” INT 21H MOV DX,380H 讀A口,準(zhǔn)備好數(shù)據(jù) IN AL,DX JMP $ ;等待中斷,即等待ACK, 板動(dòng)開關(guān)即可 假輸出,使OBF0 MOV AH, 0BH INT 21H CMP AL, 0 JE ROTT IN AL, 0A1H OR AL,02H OUT 0A1H, AL RET 無鍵入,側(cè)再次等待中斷, 改變開關(guān)狀態(tài),觀察輸出 有鍵入,側(cè)還原8259 屏蔽字,禁止IRQ9中斷 IO8255:MOV DX, 381H OUT DX, AL 將A口開關(guān)狀態(tài)B口顯示 MOV AL
23、, 61H OUT 0A0H, AL 主、從8259結(jié)束中斷 MOV AL, 62H OUT 20H, AL POP AX INC AX 修改返回地址,跳過JMP $ INC AX PUSH AX IRET 3.方式方式2 基本功能該方式使外設(shè)在單一8位總線上既能 發(fā)送又能接收數(shù)據(jù)(雙向I/O);工作時(shí)可用程序查詢 方式;也可用中斷方式,必須使用聯(lián)絡(luò)線。 (1)方式2只能用于端口A;因?yàn)锳口內(nèi)部有兩個(gè)鎖存器, 而B口,C口僅有一個(gè)鎖存器。 (2)占用一個(gè)8位的雙向A端口作數(shù)據(jù)口和一個(gè)五位的 控制口(C口的PC3PC7). (3)輸入和輸出都是鎖存器的。 (4)端口C的其他三位PC0PC2可作I
24、/O或作B口的狀態(tài) 控制信號(hào)。 (5)B口可工作方式0或方式1。 控制信號(hào)的作用與意義同方式1,INTE1是輸出的中斷允許信號(hào)由 PC6的置位/復(fù)位控制(A口方式1輸出).INTE2是輸入的中斷允許 信號(hào),由PC4的的置位/復(fù)位控制(A口方式1輸入) 。 方式2實(shí)際是方式1的輸入與方式1的輸出的組合, 輸入/輸出請(qǐng)求都是PC3的INTR,四根聯(lián)絡(luò)信號(hào)都 要連接,常用于需相互通信的地方。 四.8255在IBMPC機(jī)中的應(yīng)用 8255在PC 機(jī)中工作在方式0,控制字99H,即A 口,C口為方式0輸入,B口為方式0輸出。A口 兩個(gè)作用讀取鍵盤掃描碼和系統(tǒng)配置狀態(tài) DIP SW1;B口用于輸出控制信號(hào)
25、;C口用于 輸入系統(tǒng)配置狀態(tài)DIP SW2和其他數(shù)據(jù)。 PC配置可變:如驅(qū)動(dòng)器的個(gè)數(shù),顯示器的種 類,RAM大小等由DIP配置決定。 PC系統(tǒng)板上8255的硬件連接 ROM 、BIOS初始化編程,在加電自檢時(shí)A口工作在輸 出狀態(tài),輸出檢測(cè)部件標(biāo)志; 正常工作時(shí)A口為輸入方式,用來讀 取鍵盤掃描碼。B 口工作于輸出狀態(tài),輸出系統(tǒng)內(nèi)部的若干控制信號(hào); C口工作于輸入狀態(tài),讀取系統(tǒng)配置DIP狀態(tài)以及 奇偶和播聲器狀態(tài)。 讀DIP開關(guān)程序: MOV AL, 10001001B ;方式0:A口輸出,B口輸入,C口輸入 OUT 63H, AL MOV AL, 10100101B ;PB3輸出低電平以讀取D
26、IP低4位 OUT 61H, AL . ;先做其他測(cè)試 IN AL, 62H ;讀C口,讀取低4位開關(guān)狀態(tài) AND AL, 0FH ;截取低4位 MOV AH, AL MOV AL,10101101B ;使PB3為高電平,其他位不變 OUT 61H, AL NOP IN AL,62H ;再讀入C口,讀取高4位開關(guān)狀態(tài) MOV CL, 4 ROL AL, CL ;將低4位變?yōu)楦?位 AND AL, 0F0H OR AL, AH ;高低4位相拼 SUB AH, AH MOV DATA_WORDEQUIP_FLAG, AX;存入設(shè)備標(biāo)志單元 MOV AL, 1001001B;重新8255方式0,A口
27、輸入,B口輸出,C口輸入 OUT 63H, AL 端口B的各位均可通過編程實(shí)現(xiàn)相應(yīng)的控制。 允許RAM奇偶效驗(yàn)并禁止鍵盤 MOV AL, 10100000B OUT 61H, AL 允許鍵盤工作 MOV AL, 40H OUT 61H, AL 等等。 系統(tǒng)自檢正常運(yùn)轉(zhuǎn)后的初始化: MOV AL,99H;A口、C口方式0輸入,B口方式0輸出 OUT 63H,AL 如PB7決定了A口的用途:P272、圖810 PB71A口讀SW1狀態(tài) PB70 A口讀鍵盤掃描碼 MOV AL,80H;使PB71 OUT 61H,AL IN AL,60H;讀DIP SW1狀態(tài),然后進(jìn)行計(jì)算分 析,便可知當(dāng)前系統(tǒng)的配
28、置狀態(tài)。 8.2 可編程計(jì)數(shù)器可編程計(jì)數(shù)器/定時(shí)器定時(shí)器8253 INTEL系列的計(jì)數(shù)器/定時(shí)器電路為可編程 時(shí)間間隔定時(shí)器Programmable interval timer,簡(jiǎn) 稱PIT,或CTC,有8253和改進(jìn)型8254(主要 區(qū)別:計(jì)數(shù)頻率高)。 一一.基本功能基本功能定時(shí)定時(shí)/計(jì)數(shù)計(jì)數(shù) 1.有3個(gè)獨(dú)立的16位計(jì)數(shù)器。 2.每個(gè)計(jì)數(shù)器均可按二進(jìn)制或十進(jìn)制計(jì)數(shù)。 3.每個(gè)通道有6種工作方式,可由程序設(shè)置和改變。 4.所有輸入和輸出都與TTL兼容,方便接口。 5.計(jì)數(shù)速率可達(dá)2MHZ;8254為6MHZ,82542可 達(dá)10MHZ。即計(jì)數(shù)器的輸入CLK。 二二.結(jié)構(gòu)與接口信號(hào)結(jié)構(gòu)與接口
29、信號(hào)P274.圖圖812。 主要由三個(gè)計(jì)數(shù)器,控制電路和CPU接口電路組成: 1.CPU接口數(shù)據(jù)總線緩沖器,讀/寫控制邏輯。 (1)數(shù)據(jù)總線緩沖器D7D0,三態(tài)、雙向、8位 總線與CPU的DB連接,CPU用輸入/輸出指令對(duì) 8253進(jìn)行讀/寫操作信息都是經(jīng)過DB傳送。 (2)讀寫邏輯接受系統(tǒng)傳送的5個(gè)控制信號(hào),以產(chǎn) 生該器件的操作信號(hào)。 CS片選信號(hào),只有該引腳為低電平時(shí),8253 才被CPU選中,否則數(shù)據(jù)總線處于三態(tài),與系統(tǒng)脫 開,不能進(jìn)行編程,也不能讀/寫。 A1A0地址信號(hào),以選擇三個(gè)計(jì)數(shù)器和控制字 寄存器: 00計(jì)數(shù)器0;01計(jì)數(shù)器1;10計(jì)數(shù)器2; 11控制寄存器。 WR寫信號(hào),CP
30、U對(duì)8253進(jìn)行寫操作,輸出數(shù) 據(jù)和寫命令。 RD讀信號(hào),CPU對(duì)8253進(jìn)行讀操作,讀入 數(shù)據(jù)到CPU。 2.與外設(shè)接口三個(gè)計(jì)數(shù)器(又稱三個(gè)通道)16 位的可預(yù)置初值減1計(jì)數(shù)器。 CLK時(shí)鐘脈沖輸入。計(jì)數(shù)器對(duì)輸入脈沖CLK按二 進(jìn)制或十進(jìn)制,從預(yù)置值開始減1計(jì)數(shù),當(dāng)預(yù)置值減 到0時(shí),從OUT輸出端輸出一信號(hào)。若CLK是頻率精 確的時(shí)鐘脈沖,則通道可作為定時(shí)器;若CLK是周 期不定的脈沖或只關(guān)心脈沖的數(shù)量而不關(guān)心時(shí)間的 間隔,則作計(jì)數(shù)器。 OUT計(jì)數(shù)或定時(shí)到輸出。無論8253工作于何種 方式,當(dāng)計(jì)數(shù)器到0時(shí),在OUT引腳上必定有輸出 信號(hào)。 GATE門控輸入,該引腳的信號(hào)控制計(jì)數(shù)器輸入脈 沖。
31、當(dāng)GATE為高電平時(shí),允許計(jì)數(shù)器工作;當(dāng) GATE為低電平,禁止計(jì)數(shù)器工作。所以GATE信號(hào) 不僅能啟動(dòng)定時(shí)或計(jì)數(shù),也可以中止定時(shí)或計(jì)數(shù)。 3.控制電路控制字寄存器,寄存CPU送來的控制字, 以決定各種計(jì)數(shù)器的工作方式,有3個(gè)控制字寄存器, 都是8位,分別對(duì)應(yīng)三個(gè)計(jì)數(shù)器,控制字寄存器只能 寫入,其值不能讀出。 三三.8253的工作方式的工作方式 8253的計(jì)數(shù)器有的計(jì)數(shù)器有6種工作方式種工作方式: 1.方式0計(jì)數(shù)器結(jié)束中斷(計(jì)完最后一個(gè)數(shù)時(shí)中斷) 軟件觸發(fā)單拍脈沖。 當(dāng)寫入控制字后,計(jì)數(shù)器的輸出端OUT立即變?yōu)榈碗?平,且一直保持低電平,直到計(jì)數(shù)器歸0,OUT變?yōu)?高電平。 2.方式1可編程序
32、的單拍脈沖(又稱硬件觸發(fā) 單拍脈沖)可編程單穩(wěn)態(tài)。 當(dāng)CPU寫入控制字后 ,輸出端變?yōu)楦唠娖?,?到由外部門控信號(hào)GATE啟動(dòng)定時(shí)或計(jì)數(shù),然 后使輸出端變?yōu)榈碗娖?,開始單拍脈沖,直到 計(jì)數(shù)器歸0,OUT又變?yōu)楦唠娖健?3.方式2速率發(fā)生器(頻率產(chǎn)生器)即脈 沖速率發(fā)生器。 該方式的功能如同N分頻器,即輸出是輸入 時(shí)鐘按照N計(jì)數(shù)值分頻后的一個(gè)連續(xù)的脈沖。 即每N脈沖輸出一個(gè)脈沖。 4.方式3方波發(fā)生器(方波速率發(fā)生器) 寫入控制字之后,OUT輸出為高電平,整個(gè)計(jì)數(shù) 時(shí)間間隔中,輸出端將有一半時(shí)間保持高電平, 一半時(shí)間保持低電平,即輸出周期為N個(gè)脈沖 的方波。 5.方式4軟件觸發(fā)選通。 方式4被設(shè)
33、置后,輸出端一直保持為高電平,當(dāng) 計(jì)數(shù)器歸0,輸出變?yōu)榈汀?注:方式4當(dāng)置數(shù)完成后,計(jì)數(shù)器立即開始計(jì)數(shù) 軟件能觸發(fā)選通。 6.方式5硬件觸發(fā)選通 方式5輸出初始狀態(tài)為高電平。在設(shè)置計(jì)數(shù)值后 并不是立即計(jì)數(shù),而是等到門控脈沖的上升沿 出現(xiàn)才開始,即靠硬件能觸發(fā)選通計(jì)數(shù)器。當(dāng) 計(jì)數(shù)到0時(shí),輸出變?yōu)榈鸵粋€(gè)CLK周期。下次計(jì) 數(shù)要靠門控脈沖再次觸發(fā)才能進(jìn)行。 注:硬件觸發(fā)選通利用GATE=1允許計(jì)數(shù), GATE=0禁止計(jì)數(shù)。 GATE信號(hào)不影響輸出OUT。 7. 8253工作方式小結(jié)于下表工作方式小結(jié)于下表: 方 式 功 能啟 動(dòng) 條 件 重復(fù)條件 改變計(jì)數(shù)值 GATE 0 計(jì)數(shù)完中斷 軟件觸發(fā)單拍脈
34、沖 寫入控制字及計(jì)數(shù)值, 且來一個(gè)CLK。 重寫計(jì)數(shù) 值 立即有效有影響 1 硬件觸發(fā)單拍 脈沖 外部觸發(fā) 外部觸發(fā)外部觸發(fā)有效 有影響 2 頻率發(fā)生器 寫入計(jì)數(shù)值啟動(dòng), 且來一個(gè)CLK。 自動(dòng)重寫計(jì)數(shù)到1后有效 有影響 3 方波發(fā)生器 寫入計(jì)數(shù)值啟動(dòng)。 自動(dòng)重寫 1。外觸發(fā)后有效 有影響 2。計(jì)數(shù)到0后有效 4 軟件觸發(fā)選通寫入計(jì)數(shù)值啟動(dòng) 且來一個(gè)CLK 重寫計(jì)數(shù) 值 立即有效有影響 5 硬件觸發(fā)選通外部觸發(fā)外部觸發(fā) 外部觸發(fā)后有效 有影響 *方式3改變計(jì)數(shù)值,即有兩種方法實(shí)現(xiàn):歸0后自動(dòng)重新裝入,GATE觸發(fā)。 8. 6種工作方式,在應(yīng)用選用時(shí),主要看OUT信號(hào): 9.當(dāng)定時(shí)時(shí)間較長(zhǎng),可采
35、用多通道級(jí)聯(lián),總時(shí)間 T=t0*t1*t2。 四四.8253的控制字和初始化編程的控制字和初始化編程 1.控制字 (1)控制字有四個(gè)功能: 選擇計(jì)數(shù)器; 確定計(jì)數(shù)器數(shù)據(jù)的讀寫格式; 確定計(jì)數(shù)器的工作方式; 確定計(jì)數(shù)器計(jì)數(shù)的數(shù)制。 (2)控制字格式()控制字格式(P277、圖、圖815) D7 D6 D5 D4 D3D2D1 D0 計(jì)數(shù)器的選擇 數(shù)據(jù)讀/寫格式工作方式數(shù)制 00選計(jì)數(shù)器0 00寄存器鎖存命令 000方式00二 進(jìn)制 1十 進(jìn)制 (BCD) 01選計(jì)數(shù)器101只讀寫低8位 (高8位為0) 001方式1 10選計(jì)數(shù)器210只讀寫高8位 (低8位為0) 10方式2 11方式3 11非法
36、選擇11先讀寫低8位,后 讀寫高8位 100方式4 101方式5 P275、圖813、計(jì)數(shù)器內(nèi)部結(jié)構(gòu) 跟隨減1計(jì)數(shù)器變化,當(dāng) 寫入一個(gè)控制字的D5D4 00時(shí),則將當(dāng)前值鎖存, 減1計(jì)數(shù)器繼續(xù)工作,當(dāng) CPU讀取后,自動(dòng)解除鎖 存,又跟隨減1計(jì)數(shù)器。 所以,CPU隨時(shí)可讀取計(jì) 數(shù)器狀態(tài),而不影響計(jì)數(shù)。 保存寫入的初值,由第一個(gè) CLK脈沖將其裝入減1計(jì)數(shù)器 在CLK作用下作減1計(jì) 數(shù),直到0,輸出OUT 2.初始化編程初始化編程 要使用8253,必須先進(jìn)行初始化編程,編程內(nèi)容 為:先寫入通道的控制字,然后寫入通道計(jì)數(shù)值 即計(jì)數(shù)初值。 注意:控制字和計(jì)數(shù)值是通過兩個(gè)不同的端口地 址寫入的。控制字
37、都是寫入控制寄存器的端口地址, 而計(jì)數(shù)值寫入各計(jì)數(shù)器的端口地址。 如:計(jì)數(shù)器1,方式1,二進(jìn)制計(jì)數(shù),計(jì)數(shù)值為5080, 端口地址388H38BH,初始化程序段: MOV DX,38BH MOV AX,5080 MOV AL,72H OUT DX,AL OUT DX,AL MOV AL,AH MOV DX,389H OUT DX,AL 控 制 字 設(shè)計(jì) 數(shù)初 值 如:CPU讀取當(dāng)前計(jì)數(shù)初值,必須先鎖存,鎖存有兩 種方法: 利用GATE信號(hào)暫停計(jì)數(shù)。 向8253寫鎖存命令,如讀取計(jì)數(shù)器1的16位計(jì)數(shù)值, 存入CX中的程序段: MOV DX,38BH MOV AL,40H ; 01 00 000 0
38、計(jì)數(shù)器1的鎖存命令 OUT DX,AL MOV DX,389H IN AL,DX MOV CL,AL IN AL,DX MOV CH,AL 五五.8253的應(yīng)用的應(yīng)用 例例1:設(shè)計(jì)方波發(fā)生器設(shè)計(jì)方波發(fā)生器 (方式(方式3) 硬件連接,既要和硬件連接,既要和 CPU接口,又要和接口,又要和 外設(shè)接口,在此用外設(shè)接口,在此用 信號(hào)源,無抖動(dòng)開信號(hào)源,無抖動(dòng)開 關(guān),示波器模擬外關(guān),示波器模擬外 設(shè)。使用通道口設(shè)。使用通道口0。 MOV DX,383H MOV AL,36H OUT DX,AL 設(shè)控制字:設(shè)控制字: 0 0 1 1 011 0 Ch0 先低 方式3 二進(jìn) 后高 計(jì)數(shù) MOV DX,38
39、0H MOV AL,0 OUT DX,AL OUT DX,AL 設(shè)計(jì)數(shù)初值為設(shè)計(jì)數(shù)初值為 0000H,即最大計(jì),即最大計(jì) 數(shù)數(shù)65536 運(yùn)行程序在運(yùn)行程序在OUT0有方波輸出;改變有方波輸出;改變CLK0的信號(hào)的信號(hào) 源的頻率或計(jì)數(shù)值,可改變輸出波形的頻率;撥動(dòng)開源的頻率或計(jì)數(shù)值,可改變輸出波形的頻率;撥動(dòng)開 關(guān),可觀察關(guān),可觀察GATE01允許計(jì)數(shù),允許計(jì)數(shù),GATE0=0禁止計(jì)禁止計(jì) 數(shù)。方式數(shù)。方式3在寫計(jì)數(shù)值后就自動(dòng)開始計(jì)數(shù)。在寫計(jì)數(shù)值后就自動(dòng)開始計(jì)數(shù)。 若要求輸入CLK為2MHZ,輸出OUT為4KHZ,使 用計(jì)數(shù)器1,如何修改程序: MOV DX ,383H MOV AL,76H
40、OUT DX,AL MOV DX,381H MOV AL,0F4H OUT DX,AL MOV AL,01H OUT DX,AL 若三個(gè)通道級(jí)聯(lián),輸入CLK為2MHZ,各通道均 取最大計(jì)數(shù)初值,則各通道定時(shí)脈寬: Ch0的OUT0定時(shí)脈寬: 0.5 s 6553632768s Ch1的OUT1定時(shí)脈寬: 32768s*65536=2147.4s Ch2的OUT2定時(shí)脈寬: (2147.4s*65536)/60/60=39092.2h 若要求得到ms、s、h三種定時(shí)脈寬,各通道的 計(jì)數(shù)值為多少: Ch0的計(jì)數(shù)值=1000s0.5s =2000 Ch1的計(jì)數(shù)值 =(1s*106)/1000s=10
41、00 Ch2的計(jì)數(shù)值 =(1h*60*60)/1s=3600 例2:設(shè)計(jì)外部計(jì)數(shù)器,共計(jì)10個(gè)脈沖。方式0 硬件設(shè)計(jì),與 CPU連接都是 6種線。GATE 1允許計(jì)數(shù), 計(jì)數(shù)脈沖從 CLK端輸入。 程序可用查詢 方式,也可用 中斷方式。 查詢方式查詢計(jì)數(shù)器是否歸0即可。 DA1 DB “Wait Load“,0AH,0DH, DA2 DB “Please Input“,0AH,0DH,$ DA2 DB “Program Terminated Normally”,0AH,0DH,$ MOV DX,383H MOV AL,11H OUT DX,AL 控制字,選8253計(jì)數(shù)器0 方式0,BCD計(jì)數(shù),
42、只寫 底8位,高八位自動(dòng)填0。 MOV DX,380H MOV AL,10H OUT DX,AL 設(shè)計(jì)數(shù)初值10BCD MOV DX,OFFSET DA1 MOV AH,9 INT 21H 顯示顯示“WHAT LOAD”,即等,即等 下一個(gè)下一個(gè)“CLK” 方式方式0,1,2,4,5都要都要 求等待一個(gè)求等待一個(gè)CLK將計(jì)數(shù)值裝將計(jì)數(shù)值裝 入減入減1計(jì)數(shù)器。因?yàn)橛?jì)數(shù)器。因?yàn)镃PU寫寫 計(jì)數(shù)值計(jì)數(shù)值WR信號(hào),是將計(jì)數(shù)信號(hào),是將計(jì)數(shù) 值寫入計(jì)數(shù)初值寄存器,在值寫入計(jì)數(shù)初值寄存器,在 WR信號(hào)的下一個(gè)信號(hào)的下一個(gè)CLK才能才能 將計(jì)數(shù)值由計(jì)數(shù)初值寄存器將計(jì)數(shù)值由計(jì)數(shù)初值寄存器 裝入減裝入減1計(jì)數(shù)器,
43、才能開始計(jì)數(shù)器,才能開始 計(jì)數(shù);所以,此處等待一個(gè)計(jì)數(shù);所以,此處等待一個(gè) CLK脈沖裝入計(jì)數(shù)器初值。脈沖裝入計(jì)數(shù)器初值。 MOV DX,380H LOAD:IN AL,DX CMP AL,10H JNE LOAD MOV DX,OFFSET DA2 MOV AH,9 INT 21H 顯示“PLEASE INPUT”,提示 板動(dòng)開關(guān) MOV DX,380H CONT:IN AL,DX CMP AL,0 JNZ CONT 查詢10個(gè)CLK脈沖完 否?即扳動(dòng)10次開關(guān)。 與中斷的區(qū)別。 MOV DX,OFFSET DA3 MOV AH,9 INT 21H RET 顯示“PROGRAM TERMINATED NORMALLY” 中斷方式中斷方式將將OUT0接到接到IRQ9,因?yàn)榉绞?,因?yàn)榉绞?啟動(dòng)后保持啟動(dòng)后保持 為底,計(jì)數(shù)歸為底,計(jì)數(shù)歸0輸出變?yōu)楦?,所以方式輸出變?yōu)楦?,所以方?的的OUT信號(hào)可直信號(hào)可直 接作為中斷請(qǐng)求信號(hào),而其他方式的輸出不同。接作為中斷請(qǐng)求信號(hào),而其他方式的輸出不同。 MOV ES,AX MOV DX,383H
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年浙江海洋大學(xué)單招職業(yè)技能測(cè)試題庫帶答案詳解
- 2026年廣州番禺職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫及答案詳解一套
- 2026年南充文化旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫及答案詳解1套
- 2026年酒泉職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫附答案詳解
- 2026年金山職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫及參考答案詳解1套
- 2026年甘肅機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫及答案詳解1套
- 四川省遂寧市射洪中學(xué)2024-2025學(xué)年高二上學(xué)期期中考試政治試題(含解析)政治答案
- 伊川醫(yī)院面試題及答案
- 2024年1月國(guó)開電大行管??啤侗O(jiān)督學(xué)》期末紙質(zhì)考試試題及答案
- 2025年浦城縣醫(yī)療單位醫(yī)療類儲(chǔ)備人才引進(jìn)備考題庫完整答案詳解
- 去毛刺培訓(xùn)知識(shí)課件
- 2025公共基礎(chǔ)知識(shí)考試題庫及答案詳解(真題匯編)
- 實(shí)施指南(2025)《JC-T 2822-2024 水泥替代原料》
- 2025餐飲聯(lián)營(yíng)合同-協(xié)議范本(標(biāo)準(zhǔn)版)
- 中介服務(wù)選取管理辦法
- 2025年鄉(xiāng)鎮(zhèn)環(huán)衛(wèi)工人招聘考試試題
- 土地征收與拆遷課件
- 傳播學(xué)研究方法 課件全套 ch1-導(dǎo)論-傳播學(xué)研究方法的發(fā)展歷程 -ch18-大數(shù)據(jù)的分析與可視化-用圖表勾勒網(wǎng)絡(luò)關(guān)系
- 2025年部編版三年級(jí)語文上冊(cè)全冊(cè)教案
- 富斯遙控器FS-i6說明書
- 中醫(yī)推拿知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論