第八章可編程接口芯片及應(yīng)用_第1頁
第八章可編程接口芯片及應(yīng)用_第2頁
第八章可編程接口芯片及應(yīng)用_第3頁
第八章可編程接口芯片及應(yīng)用_第4頁
第八章可編程接口芯片及應(yīng)用_第5頁
已閱讀5頁,還剩231頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1微型計算機原理與接口技術(shù) Principles of Microcomputers and Interface Techniques 內(nèi)蒙古大學(xué)理工學(xué)院自動化系內(nèi)蒙古大學(xué)理工學(xué)院自動化系 2第八章第八章 可編程接口芯片及應(yīng)用可編程接口芯片及應(yīng)用8.1 8253可編程定時/計數(shù)器8.2 8253的引腳及結(jié)構(gòu)8.3 8253可編程計數(shù)/定時器的應(yīng)用8.4 8255A可編程并行接口芯片8.5 可編程接口芯片8255的應(yīng)用8.6 可編程串行通信接口8.7 串行通信方式8.8 可編程串行通信接口芯片8251A8.9 A/D、D/A接口芯片及應(yīng)用3主要內(nèi)容主要內(nèi)容8253、8255、8251可編程接口芯

2、片的工 作原理、特點及應(yīng)用。有關(guān)串行通信的概念、方法。A/D、D/A的工作原理及芯片的應(yīng)用。4重點內(nèi)容重點掌握8253、8255接口芯片的應(yīng)用(初始化、硬件連接、編寫應(yīng)用程序)了解 8251A串行接口芯片的 工作原理、工作方式、特點。重點掌握串行通信的相關(guān)概念。了解A/D、D/A的工作原理。重點掌握0832、0809的應(yīng)用。 58.1 8253可編程定時可編程定時/計數(shù)器計數(shù)器 8.1.1 概述概述一、定時與計數(shù)一、定時與計數(shù)1.定時定時 定義:定義:提供時間基準。提供時間基準。 分類:分類:內(nèi)部定時、外部定時。內(nèi)部定時、外部定時。2.計數(shù)計數(shù) 定時與計數(shù)本質(zhì)上是一致的。定時與計數(shù)本質(zhì)上是一致

3、的。 計數(shù)的信號隨機,定時的信號具有周期性。計數(shù)的信號隨機,定時的信號具有周期性。3.應(yīng)用應(yīng)用6二、二、 定時方法定時方法1.軟件定時軟件定時 通過軟件指令周期方法定時,如執(zhí)行循環(huán)程序。通過軟件指令周期方法定時,如執(zhí)行循環(huán)程序。 增加增加CPU負擔(dān),通用性差,一般用于短延時。負擔(dān),通用性差,一般用于短延時。2. 硬件電定時硬件電定時 采用中小規(guī)模采用中小規(guī)模IC構(gòu)成。構(gòu)成。 不增加不增加CPU負擔(dān),成本低,定時值改變不方變。負擔(dān),成本低,定時值改變不方變。3.可編程硬件定時可編程硬件定時 采用可編程計數(shù)器完成,軟件可改變計數(shù)值。采用可編程計數(shù)器完成,軟件可改變計數(shù)值。 可編程定時可編程定時/計

4、數(shù)器:計數(shù)器:實質(zhì)上定時和計數(shù)都是脈沖計數(shù)實質(zhì)上定時和計數(shù)都是脈沖計數(shù)器,定時計是內(nèi)部基準時鐘源產(chǎn)生的脈沖,計數(shù)是計器,定時計是內(nèi)部基準時鐘源產(chǎn)生的脈沖,計數(shù)是計外部脈沖。外部脈沖。78.2 8253的引腳及結(jié)構(gòu)8.2.1 引腳及結(jié)構(gòu):引腳及結(jié)構(gòu):3個16位的定時/計數(shù)器(通道)24引腳雙列直插式最高計數(shù)頻率2MHzTTL電平兼容單電源+5V供電8DBD7-D08253A1A0WRRDCS通道通道2通道通道1通道通道0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A0IOWIOR片選信號片選信號圖8-2-19D7D0 、CS、RD 、WR、 A1,A0 A1

5、 A0 選選 擇擇0 0 計數(shù)通道計數(shù)通道00 1 計數(shù)通道計數(shù)通道11 0 計數(shù)通道計數(shù)通道21 1 控制寄存器控制寄存器1、連接、連接CPU的主要引腳:的主要引腳:2、計數(shù)通道計數(shù)通道的主要引腳:的主要引腳:CLKn 時鐘脈沖輸入,計數(shù)器的計時基準。GATEn 門控信號輸入,控制計數(shù)器的啟停。OUTn 計數(shù)器輸出信號,不同工作方式下 產(chǎn)生不同波形。(n = 02) 10CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2數(shù)據(jù)總線緩沖器讀 / 寫控制邏輯控制寄存器計數(shù)器0計數(shù)器1計數(shù)器2O OOD0D7RDWRA0A1CS8253內(nèi)部結(jié)構(gòu)圖8-2-211編程結(jié)構(gòu):

6、計數(shù)器(3個):包括控制寄存器: 存放控制命令字(只寫)占用4個地址: 3個計數(shù)器,1個控制寄存器16位初值寄存器位初值寄存器16位計數(shù)寄存器位計數(shù)寄存器(減法計數(shù)器)(減法計數(shù)器)12計數(shù)器計數(shù)器 / 定時器定時器 82538253基本原理圖 計數(shù)初值寄存器CR高8低8執(zhí)行部件CE輸出鎖存寄存器LRD0D7高8低8高8低8138.2.2 8253的工作過程: 1. 設(shè)置設(shè)置8253的工作方式的工作方式 2. 設(shè)置計數(shù)初值到初值寄存器設(shè)置計數(shù)初值到初值寄存器 3. 第一個第一個CLK信號使初值寄存器信號使初值寄存器CR的內(nèi)容置的內(nèi)容置 入計數(shù)寄存器入計數(shù)寄存器CE 4. 以后每來一個以后每來一

7、個CLK信號,計數(shù)寄存器減信號,計數(shù)寄存器減1 5. 減到減到0時,時,OUT端輸出一特殊波形的信號端輸出一特殊波形的信號注:以上計數(shù)過程中受到注:以上計數(shù)過程中受到GATE信號的控制信號的控制148.2.3 8253的編程 1、寫 8253的控制字,寫入控制寄存器(A1,A0 = 11) 2、寫入計數(shù)值,寫到相應(yīng)的計數(shù)器CR。 3、計數(shù)過程中讀計數(shù)值LR 8253控制寄存器格式計數(shù)值形式計數(shù)值形式0:二進制1:BCD碼D0D1D2D3D4D5D6D7BCDM1M2M3RW0RW1SC0SC1工作方式選擇工作方式選擇000:方式0001:方式1010:方式2101:方式5.計數(shù)值寫入順序計數(shù)值

8、寫入順序00:讀計數(shù)值01:寫低8位,高8位為010:寫高8位,低8位為011:先寫低8位,后寫高8位計數(shù)器選擇計數(shù)器選擇00:計數(shù)器001:計數(shù)器110:計數(shù)器215計數(shù)啟動方式:軟件啟動硬件啟動GATE端保持為高電平端保持為高電平寫入計數(shù)初值寫入計數(shù)初值后的第后的第2個個 CLK脈沖的下降沿開始計數(shù)脈沖的下降沿開始計數(shù)GATE端上升沿觸發(fā)端上升沿觸發(fā)對應(yīng)對應(yīng)CLK脈沖的下降沿開始計數(shù)脈沖的下降沿開始計數(shù)程序指令:軟件啟動程序指令:軟件啟動外部電路:硬件啟動外部電路:硬件啟動16工作方式: 17方式0軟件啟動,不自動重復(fù)計數(shù)。軟件啟動,不自動重復(fù)計數(shù)。裝入初值后裝入初值后OUT端變低電平,端

9、變低電平,計數(shù)結(jié)束計數(shù)結(jié)束OUT輸出高電平。輸出高電平。硬件啟動,不自動重復(fù)計數(shù)。硬件啟動,不自動重復(fù)計數(shù)。裝入初值后裝入初值后OUT端變高電平,端變高電平,計數(shù)開始計數(shù)開始OUT端變?yōu)榈碗娖?,端變?yōu)榈碗娖剑嫈?shù)結(jié)束后又變高。計數(shù)結(jié)束后又變高。方式1方式方式2軟、硬件啟動,軟、硬件啟動,自動重復(fù)計數(shù)自動重復(fù)計數(shù)。裝入初值后裝入初值后OUT端變高電平,計數(shù)端變高電平,計數(shù)到最后一個到最后一個CLK時時OUT輸出負脈沖,輸出負脈沖,并連續(xù)重復(fù)此過程。并連續(xù)重復(fù)此過程。 18圖圖 8-2-3 方式方式0計數(shù)結(jié)束產(chǎn)生中斷計數(shù)結(jié)束產(chǎn)生中斷19圖圖 8-2-4 單脈沖觸發(fā)器單脈沖觸發(fā)器高20圖圖 8-2-

10、5 分頻器分頻器21軟、硬件啟動,軟、硬件啟動,自動重復(fù)計數(shù)自動重復(fù)計數(shù)。裝入初值后裝入初值后OUT端變高電平,端變高電平,OUT連續(xù)輸出對稱方波:連續(xù)輸出對稱方波:前前 N/2或(或(N+1)/2 個個CLK,OUT為高,為高,后后N/2或(或(N-1)/2 個個CLK, OUT為低。為低。方式方式3軟件啟動,不自動重復(fù)計數(shù)。軟件啟動,不自動重復(fù)計數(shù)。裝入初值后輸出端變高電平,裝入初值后輸出端變高電平,計數(shù)結(jié)束輸出一個計數(shù)結(jié)束輸出一個CLK寬度的負脈沖寬度的負脈沖方式方式4 硬件啟動,不自動重復(fù)計數(shù)。硬件啟動,不自動重復(fù)計數(shù)。OUT端波形與方式端波形與方式4相同相同方式522圖圖 8-2-6

11、 方波發(fā)生器方波發(fā)生器23圖圖 8-2-7 軟件觸發(fā)的選通信號發(fā)生器軟件觸發(fā)的選通信號發(fā)生器24圖圖 8-2-8 硬件觸發(fā)的選通信號發(fā)生器硬件觸發(fā)的選通信號發(fā)生器25工作方式特點:方式0(計數(shù)結(jié)束中斷)計數(shù)過程中,GATE端為“1”寫入一次初值計數(shù)一個周期,停止計數(shù)。OUT端輸出一個寬度約(N+1)TCLK的負脈沖。計數(shù)過程中可隨時修改初值重新開始計數(shù)。方式1(單穩(wěn)態(tài)觸發(fā)器)GATE端的跳變觸發(fā)計數(shù),可重復(fù)觸發(fā)。若下一次GATE上升沿提前到達,則OUT端負脈沖拉寬為兩次計數(shù)過程之和。計數(shù)過程中寫入新初值不影響本次計數(shù)。26 方式3(方波發(fā)生器)vOUT輸出方波,前半周期為高,后半周期為低。v計

12、數(shù)過程中修改初值不影響本半輪計數(shù)過程。v其余的與方式2 類似。 方式2(頻率發(fā)生器)v GATE為 “0”計數(shù)停止,為“1” 時的下一個CLK下降沿,從初值開始重新計數(shù)。v每個計數(shù)周期結(jié)束時(減到1時),OUT端輸 出一個TCLK寬度的負脈沖。v計數(shù)過程自動重復(fù) 。v計數(shù)過程中修改初值不影響本輪計數(shù)過程。27方式4(軟件觸發(fā)選通)“1”方式5(硬件觸發(fā)選通)“0”288.3 8253可編程計數(shù)/定時器的應(yīng)用與系統(tǒng)的硬件連接設(shè)置工作方式置計數(shù)初值編寫控制程序初始化初始化主要問題:29 8.3.1 連接示意圖CLKGATEOUTD0D7WRRDA1A0CSDBIOWIORA1A0譯碼器譯碼器高位地

13、址高位地址A15-A28253共三組共三組8253占用占用4個接口個接口地址:地址: 計數(shù)器計數(shù)器0 計數(shù)器計數(shù)器1 計數(shù)器計數(shù)器2 控制寄存器控制寄存器(決定決定8253的基地址的基地址)圖8-3-1308.3.2 初始化流程寫控制字寫控制字寫計數(shù)值低寫計數(shù)值低8位位寫計數(shù)值高寫計數(shù)值高8位位*非必須非必須如圖所示如圖所示: 可按計數(shù)器分別寫可按計數(shù)器分別寫入控制字和初值。入控制字和初值。 也可先寫所有計數(shù)也可先寫所有計數(shù)器控制字,再寫入器控制字,再寫入它們的初值它們的初值圖8-3-2318253初始化初始化:控制字控制字計數(shù)初值計數(shù)初值: 已知已知:CLK 的頻率的頻率fc與定時的時間與定

14、時的時間t. 計數(shù)初值計數(shù)初值: n= fc t 例例1: fc=1MHZ,最大計數(shù)初值:,最大計數(shù)初值: 65536 一個定時器最大定時時間:一個定時器最大定時時間: N/fc=65536/ 106 =0.065536s32例例2:設(shè)定時器設(shè)定時器0、定時器、定時器1工作于方式工作于方式2,外部提供,外部提供一個時鐘一個時鐘,頻率頻率f=2MHZ。要求定時器。要求定時器1每每5ms產(chǎn)生產(chǎn)生一個脈沖,定時器一個脈沖,定時器0每每5s產(chǎn)生一個脈沖。產(chǎn)生一個脈沖。1). 一個定時器的最大定時時間:一個定時器的最大定時時間: 65536/(2*106)=0.032768 s=32.768ms2).

15、將定時器將定時器1的的CLK1接接2MHZ時鐘,計數(shù)初值:時鐘,計數(shù)初值:3).將定時器將定時器1的的OUT1端接到定時器端接到定時器0的的CLK0端端,定時定時器器0的計數(shù)初值的計數(shù)初值:10005200520010510030sfnHZmsf1000010256111msftn332MHz每5秒產(chǎn)生一個脈沖計數(shù)初值計數(shù)初值: n= fc t 圖8-3-334MOV AL,00110100B; CNT0控制字;方式2,OUT 43H ,AL MOV AX ,1000H;(3E8H) CNT0初值OUT 40H ,AL MOV AL ,AH OUT 40H,ALMOV AL ,01110100

16、B; CNT1控制字OUT 43H ,AL MOV AX ,10000H;(270EH ) CNT1初值OUT 41H ,AL MOV AL ,AHOUT 41H ,AL初始化程序:35例例3:計數(shù)器計數(shù)器2輸出輸出600HZ方波,送揚聲器。工方波,送揚聲器。工作于模式作于模式3.36發(fā)聲子程序發(fā)聲子程序:SSP PROC NEAR ;8253初始化初始化:MOV AL,10110110B ;計數(shù)器;計數(shù)器2,模式模式3,初值初值16位位,二進制二進制OUT 43H, ALMOV AX, 1983 ; 計數(shù)初值計數(shù)初值=1.19MHZ 600HZ=1983OUT 42H,AL ;送計數(shù)初值低位

17、字節(jié)送計數(shù)初值低位字節(jié)MOV AL,AHOUT 42H,AL ;送計數(shù)初值高位字節(jié)送計數(shù)初值高位字節(jié)37 8255控制程序控制程序: IN AL,61H ;讀讀8255的的PB口原輸出值口原輸出值 MOV AH,AL ;保留到保留到AH OR AL,03H ;使使PB0PB1均為均為1 OUT 61H,AL ;打開打開GATE2門門,輸出方波到揚聲器輸出方波到揚聲器 SUB CX, CX ;CX為循環(huán)次數(shù)為循環(huán)次數(shù),最大為最大為216L: LOOP L ;延時延時 DEC BL ;BL為子程序入口條件為子程序入口條件 JNZ L ;BL=6,發(fā)長聲發(fā)長聲(3S),BL=1發(fā)短聲發(fā)短聲(0.5S

18、) MOV AL,AH ;取回取回8255的的PB口原輸出值口原輸出值 OUT 61H, AL ; 恢復(fù)恢復(fù)8255PB口口,停止發(fā)聲停止發(fā)聲 RETSSP ENDP 38 例例4: 定時定時/ /計數(shù)器計數(shù)器 82538253與與 8086/8088CPU 8086/8088CPU 相連構(gòu)成完整的定時、計數(shù)或脈沖發(fā)相連構(gòu)成完整的定時、計數(shù)或脈沖發(fā)生器系統(tǒng)。生器系統(tǒng)。功能功能: 1 1)利用通道)利用通道0 0完成對外部事件計數(shù)功能,完成對外部事件計數(shù)功能,計滿計滿100100次向次向CPUCPU發(fā)中斷請求。發(fā)中斷請求。 2 2)利用通道)利用通道1 1產(chǎn)生頻率為產(chǎn)生頻率為1KHz1KHz的方

19、波。的方波。 3 3)利用通道)利用通道2 2作標準時鐘作標準時鐘, ,定時定時1 1秒秒, ,輸出輸出 接接IR2IR2。392.5MHZD15D8RDWRA1A2A0A3A15M/IOINTR8086CPUD7D0RDWRA0A1CS8253地址譯碼器CLK1CLK2CLK0OUT1OUT2OUT0GATE1GATE2GATE01KHZ+5V+5V+5VIR0IR2IR78259示波器或其他波形接受器外部事件產(chǎn)生源圖8-3-440(1)8253的數(shù)據(jù)線(的數(shù)據(jù)線(D7D0)與)與CPU的高的高8位數(shù)據(jù)位數(shù)據(jù)線(線(D15-D8)相連,所以)相連,所以8253的端口地址必須是的端口地址必須是

20、奇地址(奇地址(A0=1)。)。(2)通道通道0定義為工作方式定義為工作方式0,完成計數(shù),完成計數(shù). 通道通道0的計數(shù)初值應(yīng)為的計數(shù)初值應(yīng)為: n0= 100 控制字控制字: 00 01 0000=10H(3)將通道將通道1定義為工作方式定義為工作方式3, 控制字控制字=0111 0110=76H, 從從CLK1輸入輸入2.5MHz的時鐘脈沖,的時鐘脈沖, OUT1輸出頻率為輸出頻率為1KHz的方波,而輸出方波的周期的方波,而輸出方波的周期1ms。 通道通道1的計數(shù)初值的計數(shù)初值: n1= f1*t1= 2.5 106 1 10-3 =2500=09C4H。41(4)通道通道2應(yīng)定義為方式應(yīng)定

21、義為方式0, 控制字控制字=1011 0001=0B1H,每秒鐘利用每秒鐘利用OUT2向向CPU發(fā)出一次中斷請求,由于輸入時鐘頻率為發(fā)出一次中斷請求,由于輸入時鐘頻率為1KHz,計數(shù)初值計數(shù)初值應(yīng)為應(yīng)為: n2=f2*t2=1000*1=1000。 8253的控制端口地址:的控制端口地址:66H通道通道0的端口地址:的端口地址:60H通道通道1的端口地址:的端口地址:62H通道通道2的端口地址:的端口地址:64H 8253-0 EQU 60H 8253-1 EQU 62H 8253-2 EQU 64H 8253-C EQU 66H42 STT: MOV DX,8253-C ;8253控制口地址

22、控制口地址MOVAL,10HOUTDX,AL;通道通道0工作在方式工作在方式0MOVDX,8253-0 ;8253通道通道0地址地址MOVAL,64HOUTDX,AL;給通道給通道0送計數(shù)值送計數(shù)值MOVDX,8253-CMOVAL,76HOUTDX,AL;通道通道1工作在方式工作在方式3MOVDX,8253-1 ;8253通道通道1地址地址MOV AX,09C4H OUTDX,AL ;給通道給通道1送計數(shù)初值低送計數(shù)初值低8位位MOVAL,AHOUTDX,AL ;給通道給通道1送計數(shù)值高位送計數(shù)值高位MOVDX,8253-CMOV AL,0B1HOUTDX,AL;通道通道2工作在方式工作在方

23、式043MOVDX,8253-2 ;通道通道2地址地址MOVAX,1000H ;1000的的BCD數(shù)數(shù)1000HOUTDX,AL ;給通道給通道2送計數(shù)初值的低送計數(shù)初值的低8位位MOVAL,AHOUTDX,AL ;給通道給通道2送計數(shù)值的高送計數(shù)值的高8位位MOVDX,8259A偶偶MOVAL,13HOUTDX,AL ;設(shè)設(shè)ICW1,邊緣觸發(fā)邊緣觸發(fā),需需ICW4MOVDX,8259A奇奇 MOVAL,50H ;設(shè)設(shè)ICW2, 0通道中斷類型碼為通道中斷類型碼為50HOUTDX,AL ; 通道通道2的中斷類型碼為的中斷類型碼為52HMOVAL,03 OUTDX,AL ;設(shè)設(shè)ICW4,非自動非

24、自動EOI方式方式MOVAL,0FAH ;OCW1,屏蔽屏蔽IR0,IR1以外的輸入以外的輸入OUTDX,ALSTIFF:HLTJMPFF44IR2時鐘程序:S1 DB ? ;秒秒S2 DB ? ;分分S3 DB ? ;時時.IR2_TIMER: INC S1 CMP S1,60 JNC EXIT ;不滿不滿60秒秒,退出退出 MOV S1,00H INC S2 ;分單元加一分單元加一 CMP S2,60 ;不滿不滿60分分,退出退出 JNC EXIT MOV S2,00H ;時單元加一時單元加一 INC S3 45 JMP S3,24 JNC EXIT MOV S3,00H CALL DIS

25、PLAY ;顯示時間顯示時間 . STI EXIT: IRET 468253應(yīng)用舉例8253作定時/計數(shù)器,其接口地址為0120H0123H。輸入8253的時鐘頻率為2MHz。計數(shù)器0: 每10ms輸出1個CLK脈沖寬的負脈沖計數(shù)器1: 產(chǎn)生10KHz的連續(xù)方波信號 計數(shù)器2: 啟動計數(shù)5ms后OUT輸出高電平。畫硬件連接圖,編寫初始化程序。 設(shè)計要求:設(shè)計要求:471、確定計數(shù)初值: CNT0: 10ms/0.5us = 20000 CNT1: 2MHz/10KHz = 200 CNT2: 5ms/0.5us = 100002、確定控制字: CNT0:方式2,16位計數(shù)值 00 11 010

26、 0 CNT1:方式3,低8位計數(shù)值 01 01 011 0 CNT2:方式0, 16位計數(shù)值 10 11 000 048CNT0:MOV DX, 0123HMOV AL, 34HOUT DX, ALMOV DX, 0120HMOV AX, 20000OUT DX, ALMOV AL, AHOUT DX, ALCNT1: CNT2: 3、初始化程序:、初始化程序:494、硬件連接:、硬件連接:CLK0GATE0OUT1D0D7WRRDA1A0CSDBIOWIORA1A0譯碼器譯碼器8253CLK2GATE1GATE2+5VCLK12MHzOUT0OUT2?50讀出當(dāng)前計數(shù)值的方法讀出當(dāng)前計數(shù)值

27、的方法鎖存當(dāng)前計數(shù)值GATE信號51思考題:思考題: l. 微機中實現(xiàn)定時控制的主要方法是什么? 2. 8253每個計數(shù)通道與外設(shè)接口有哪些信號線, 每個信號的用途是什么? 3. 8253每個通道有_ 種工作方式可供選擇。若設(shè)定某通道為方式0后,其輸出引腳為電平;當(dāng)_后通道開始計數(shù),信號端每來一個脈沖就減1;當(dāng)_則輸出引腳輸出電平,表示計數(shù)結(jié)束。8253的CLKO接15MHZ的時鐘,欲使OUT。產(chǎn)生頻率為300kHZ的方波信號,則8253的計數(shù)值應(yīng)為_,應(yīng)選用的工作方式是_. 525. 設(shè)8253計數(shù)器02和控制字的I/O地址依次為F8HFBH,說明如下程序的作用。 mov al; 33h o

28、ut ofbh, al mov al, 80h out ofsh, al mov al, 50h out of8h, al 4. 試按如下要求分別編寫 8253的初始化程序,已知 8253的計數(shù)器0 2 和控制字IO地址依次為04H07H。( l)使計數(shù)器 11作在方式0,僅用 8位二進制計數(shù),計數(shù)初值為 128。( 2)使計數(shù)器 O工作在方式 1,按 BCD碼計數(shù),計數(shù)值為 3000。( 3)使計數(shù)器2工 在方式 2,計數(shù)值為 02F0H。53習(xí)題習(xí)題1 1分析:分析: 用通道用通道 0 0 作定時器,初始編程使通道作定時器,初始編程使通道0 0按方式按方式3 3工作,每秒產(chǎn)工作,每秒產(chǎn)生生

29、18.218.2次輸出信號,該信號送到次輸出信號,該信號送到8259A8259A中斷控制器的中斷控制器的IRQ0IRQ0輸入端。輸入端。每每55ms55ms產(chǎn)生一次中斷請求,產(chǎn)生一次中斷請求,80868086對其計數(shù),用來計算時間。對其計數(shù),用來計算時間。通道通道 1 1 用作動態(tài)用作動態(tài)RAMRAM刷新定時,每隔刷新定時,每隔5.12us5.12us產(chǎn)生一次輸出信號,請求動態(tài)產(chǎn)生一次輸出信號,請求動態(tài)刷新。刷新。OUT1OUT1輸出產(chǎn)生輸出產(chǎn)生DMADMA請求信號送請求信號送82378237,由,由82378237對動態(tài)對動態(tài)RAMRAM刷新。刷新。(82538253地址為地址為40H43H

30、40H43H)通道通道0 0:地址為:地址為40H40H,控制字為,控制字為36H36H,工作方式,工作方式3 3,計數(shù)初值為,計數(shù)初值為0 0通道通道1 1:地址為地址為41H41H,控制字為,控制字為 54H54H,工作方式,工作方式2 2,計數(shù)初值為,計數(shù)初值為12H12HTIMEMODECTRLTIMEMODECTRLEQUEQU43H43HTIMEADDTIMEADDEQUEQU40H40HCTRL1CTRL1DBDB36H36H CTRL2 CTRL2 DB DB 54H 54H TIME1 TIME1 DW 0 DW 0 TIME TIME DW DW 12H 12H548253

31、小結(jié)8253內(nèi)部結(jié)構(gòu)包括3個16位計數(shù)通道、CNT0/1/2和控制寄存器,用 A1、A0選擇各通道及控制寄存器地址初始化編程:控制字和計數(shù)初值五種工作方式的啟動方式、輸出波形、工作特點。 8253的應(yīng)用558.4 8255A可編程并行接口芯片可編程并行接口芯片8255A作為并行通信接口芯片,實現(xiàn)計算作為并行通信接口芯片,實現(xiàn)計算機應(yīng)用系統(tǒng)的并行通信。機應(yīng)用系統(tǒng)的并行通信。并行通信并行通信就是把一個字符的各數(shù)位用幾條就是把一個字符的各數(shù)位用幾條線進行傳輸。線進行傳輸。和串行通信相比和串行通信相比,在同樣的傳輸率下,并,在同樣的傳輸率下,并行通信的信息傳輸速度快,信息率高。行通信的信息傳輸速度快,

32、信息率高。實現(xiàn)并行通信的接口稱實現(xiàn)并行通信的接口稱并行接口并行接口。一個并行接口可以設(shè)計為一個并行接口可以設(shè)計為I/O接口接口, 除通信除通信外,還可以將它設(shè)計為其他控制接口。外,還可以將它設(shè)計為其他控制接口。 56控制寄存器控制寄存器 ,接收,接收CPUCPU的控制命令。的控制命令。 狀態(tài)寄存器,提供各種狀態(tài)位供狀態(tài)寄存器,提供各種狀態(tài)位供CPUCPU查詢。查詢。輸入緩沖寄存器和輸出寄存器,實現(xiàn)輸入和輸出。輸入緩沖寄存器和輸出寄存器,實現(xiàn)輸入和輸出。1.輸入過程輸入過程572.輸出過程輸出過程588.4.1 8255的引腳及結(jié)構(gòu)59A組控制B組控制端口C(上半部)端口C下半部端口BOOO數(shù)據(jù)

33、總線緩沖器讀 / 寫控制邏輯端口A數(shù)據(jù)總線D0 D7RDWRA0A1RESETCSPA0 PA7PC4 PC7PC0 PC3PB0 PB7CPU接口外設(shè)接口內(nèi)部邏輯8255A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 內(nèi)部數(shù)據(jù)總線60數(shù)據(jù)端口數(shù)據(jù)端口A、B、CA組控制和組控制和B組控制組控制讀讀/寫控制邏輯電路寫控制邏輯電路數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器 5. 端口端口A:PA7 PA0(8位)位) 6. 端口端口B:PB7 PB0(8位)位) 7. 端口端口C:PC7 PC0(8位)位) 61引腳1、與CPU的主要連線:D0D7CSRDWRA0,A1 RESETA1 A0 選擇選擇0 0 端口端口A0 1 端口端口B1

34、 0 端口端口C1 1 控制寄存器控制寄存器622、與外設(shè)端的連線:PA0PA7PB0PB7PC0PC7分別對應(yīng)分別對應(yīng)A、B、C三三個個8位輸入位輸入/輸出端口輸出端口 三個端口可通過三個端口可通過編程編程分別指定為輸入或分別指定為輸入或輸出口。其中,輸出口。其中,C口即可用作獨立的口即可用作獨立的I/O口,口,也可用作也可用作A、B口的口的控制信號控制信號輸出或輸出或狀態(tài)信號狀態(tài)信號輸入。輸入。638255與系統(tǒng)的連接示意圖D0D7WRRDA1A0CSDBIOWIORA1A0譯碼器譯碼器8255A口口B口口C口口D0D7外外 設(shè)設(shè)A15A2系系統(tǒng)統(tǒng)總總線線648.4.2 8255A的控制字

35、及工作方式一、控制字一、控制字 它可以使它可以使8255A8255A的的3 3個數(shù)據(jù)端口工作個數(shù)據(jù)端口工作在不同的工作方式。在不同的工作方式。二、置二、置/ /復(fù)位控制字復(fù)位控制字 它可以使它可以使C C端口中的任何一位進行置端口中的任何一位進行置位位/ /復(fù)位。復(fù)位。三、基本工作方式三、基本工作方式 方式方式0 0:基本:基本I/OI/O方式方式 方式方式1 1:選通:選通I/OI/O方式方式 方式方式2 2:雙向:雙向I/OI/O方式(僅方式(僅A A口)口)651、 控制字格式控制字格式方式字寫入控制寄存器:D0D1D2D3D4D5D6D7PC3 PC01:輸入0:輸出B口 1:輸入 0

36、:輸出B組工作方式 0:方式0 1:方式1PC7 PC4 1:輸入 0:輸出A口 1:輸入 0:輸出A組工作方式00:方式001:方式11:方式2D7 = 1特征位B組A組662、C口的置口的置/復(fù)位控制字格式復(fù)位控制字格式寫入 控制寄存器 D0D1D2D3D4D5D6D71:置位0:復(fù)位C口選擇000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7任選(可1可0)D7 = 0(特征位)方式0:基本 I/O 方式 (查詢時,任選C口做連絡(luò)信號)方式1:選通I/O 方式(可查詢或中斷,固定C口做連絡(luò)信號)方式2:雙向I/O方式(只用于A口

37、,PC3 PC7做連絡(luò)信號)67例例1:設(shè):設(shè)A口方式口方式0,輸入,輸入, B口于方式口于方式0,輸出。,輸出。 方式選擇控制字:方式選擇控制字: 1 0 0 1 1/0 0 0 1/0 =10010000=90H 方方式式選選擇擇A口口方方式式0A口口輸輸入入C口口高高位位不不用用B口口方方式式0B口口輸輸出出C口口低低位位不不用用68 例例2:設(shè):設(shè)8255A的控制口地址為的控制口地址為0AEBH,要求對,要求對C口的口的PC7置置0,則控制字,則控制字00001110B=0EH,要,要求對求對C口的口的PC2置置1,控制字為,控制字為00000101B=05H。 程序程序 : MOV

38、AL , 0EH ;對對PC7置置1的控制字的控制字 MOV DX , 0AEBH ;控制口地址送控制口地址送DX OUT DX , AL ;對對PC7置置1操作操作 MOV AL , 05H ;對對PC3置置0的控制字的控制字 OUT DX , AL ;對對PC3進行置進行置0的操作的操作69四、8255A的工作方式基本I/O方式(方式0)選通I/O方式(方式1)雙向I/O方式(方式2)(僅A口) 某端口工作于哪一種方式,可通過軟件某端口工作于哪一種方式,可通過軟件編程來指定。即向編程來指定。即向8255寫入方式控制字來決寫入方式控制字來決定其工作方式。定其工作方式。701.1.方式方式0

39、0:(用于連接簡單外設(shè)) 任何一個端口可以作為獨立的任何一個端口可以作為獨立的I/OI/O口。口。 各個端口均可設(shè)置為輸入或輸出,可以有各個端口均可設(shè)置為輸入或輸出,可以有1616種種不同的組合,適用于多種應(yīng)用場合。不同的組合,適用于多種應(yīng)用場合。 輸出口時具有鎖存能力, 輸入口時無鎖存能力。方式方式0 0: 同步傳送同步傳送 查詢式傳送查詢式傳送把A、B口作為8位數(shù)據(jù)的輸入或輸出口,C口的高/低4位分別定義為A、B口的控制位和狀態(tài)位。 712 2 方式方式1 1:數(shù)據(jù)數(shù)據(jù)I/OI/O要在選通信號控制下工作要在選通信號控制下工作. .端口端口A A和端口和端口B B可以分別作為兩個數(shù)據(jù)口工作可

40、以分別作為兩個數(shù)據(jù)口工作于方式于方式1 1,并且,任何一個端口可以為輸入口,并且,任何一個端口可以為輸入口或輸出口或輸出口。1)1)方式方式1 1輸入輸入:A:A口控制信號的定義口控制信號的定義: :10 11 1/0 D7 D6 D5 D4 D3 D2 D1 D0方式方式1PC4.PC51=輸入輸入0=輸出輸出端口端口A輸入輸入72方式方式 1 的操作過程的操作過程A口方式 1 ,輸入A口方式 1 ,輸出INTEAPA0 PA7PC4PC5PC3STBIBFINTRI / OPC6 PC7ORDSTB:選通輸入,外設(shè)發(fā)出IBF:輸入緩沖器滿,8255發(fā)出INTE:內(nèi)部中斷允許,設(shè)置PC4 =

41、 1 可使INTE A = 1INTR:中斷請求,當(dāng)INTE = 1且 IBF = 1時,INTR = 1INTEAPA0 PA7PC6PC7PC3PC4 PC5ACKOBFINTRI / OOWRACK:外設(shè)應(yīng)答OBF:輸出緩沖器滿INTE:中斷允許,設(shè)置PC6 = 1,可使INTE A = 1INTR:中斷請求,當(dāng)INTE = 1且OBF = 1時,INTR = 173注意:INTE的狀態(tài)可利用C口的位控方式來設(shè)置:輸入:A口的INTE:寫入PC4B口的INTE:寫入PC2輸出:A口的INTE:寫入PC6B口的INTE:寫入PC2例如:方式1輸入允許A口中斷,則應(yīng)按如下方法設(shè)置INTEA。

42、MOV DX,控制寄存器地址 MOV AL,0 xxx1001B ;1=允許中斷,0=禁止中斷 OUT DX,AL74RDPA7PA0INTE APC4PC5PC3PC6.PC7I OINTRAIBFASTBA選同信號輸入端,低電平有效選同信號輸入端,低電平有效輸入緩沖區(qū)滿信號,低電平有效輸入緩沖區(qū)滿信號,低電平有效它是它是82558255送往送往CPUCPU的中斷請求的中斷請求信號,高電平有效。信號,高電平有效。中斷允許信號中斷允許信號,INTE,INTE由由STB(PC4)STB(PC4)置置“1”,INTR1”,INTR有效有效A口口方式方式1輸入輸入有關(guān)信號有關(guān)信號 7511 1 D7

43、 D6 D5 D4 D3 D2 D1 D0端口端口B輸入輸入方式方式1B口口方式方式1輸入輸入有關(guān)信號有關(guān)信號 RDINTE BPC2PC1PC0PB7PB0STBBIBFBINTRB選同信號輸入端,低電平有效選同信號輸入端,低電平有效輸入緩沖區(qū)滿信號,低電平有效輸入緩沖區(qū)滿信號,低電平有效它是它是82558255送往送往CPUCPU的中斷請求的中斷請求信號,高電平有效。信號,高電平有效。中斷允許信號中斷允許信號,INTE,INTE由由STB(PC2)STB(PC2)置置“1”,INTR1”,INTR有效有效76C口口方式方式1輸入輸入的信號功能的信號功能 STB#:選通信號。它將外設(shè)數(shù)據(jù)送入

44、8255的輸入鎖存器。 IBF:輸入鎖存器滿。通知外設(shè)不能送下一個數(shù)據(jù)。此信號由STB的前沿產(chǎn)生。CPU用IN指令取走數(shù)據(jù)后,此信號被清除。 INTR:中斷請求。STB#的后沿產(chǎn)生,用于中斷CPU,讓CPU讀走輸入鎖存器中的數(shù)據(jù)。 INTE:中斷允許位,是否允許發(fā)出INTR請求。INTE =1和IBF為高電平時,允許發(fā)出INTR請求。772 2)方式)方式1 1輸出輸出 OBF(Output Buffer Full)輸出緩沖器滿信)輸出緩沖器滿信號,低電平有效。號,低電平有效。 ACK(Acknowledge):外設(shè)響應(yīng)信號,它):外設(shè)響應(yīng)信號,它是由外設(shè)送給是由外設(shè)送給8255A的,低電平有

45、效。的,低電平有效。 INTR(Interrupt Request):中斷請求信號,):中斷請求信號,高電平有效。高電平有效。 INTE(Interrupt Enable):中斷允許信號。):中斷允許信號。為為1時,使端口處于中斷允許狀態(tài),而為時,使端口處于中斷允許狀態(tài),而為0時,時,使端口處于中斷屏蔽狀態(tài)。使端口處于中斷屏蔽狀態(tài)。7810 10 1/0 D7 D6 D5 D4 D3 D2 D1 D0方式方式1PC4.PC51=輸入輸入0=輸出輸出端口端口A輸出輸出A口口方式方式1輸出輸出有關(guān)信號有關(guān)信號 WRPA7PA0INTE APC3PC6PC7PC4.PC5I OINTRAOBFAAC

46、KA輸出緩沖區(qū)滿信號,低電平有效輸出緩沖區(qū)滿信號,低電平有效外設(shè)響應(yīng)信號外設(shè)響應(yīng)信號,是外設(shè)送給是外設(shè)送給8255A的的中斷請求信號中斷請求信號中斷允許信號中斷允許信號,INTE,INTE由由PC6(ACKPC6(ACKA A) )置置“1”,INTR1”,INTR有效有效7911 0 D7 D6 D5 D4 D3 D2 D1 D0端口端口B輸出輸出方式方式1WRINTE BPC0PC2PC1PC7PC0ACKBOBFBINTRB中斷允許信號中斷允許信號,INTE,INTE由由ACKACKB B(PC2)(PC2)置置“1”,INTR1”,INTR有效有效輸出緩沖區(qū)滿信號,高電平有效輸出緩沖區(qū)

47、滿信號,高電平有效外設(shè)響應(yīng)信號外設(shè)響應(yīng)信號,是外設(shè)送給是外設(shè)送給8255A的的中斷請求信號中斷請求信號B口口方式方式1輸出輸出有關(guān)信號有關(guān)信號 80方式方式1的應(yīng)用的應(yīng)用:主要用于中斷控制方式下的I/O。C口除部分位用作選通信號外,其余位可工作在方式0下,作為輸入或輸出線。 特別是A、B均為方式1時僅使用C口的6條線,余下二條線可作為單獨的輸入輸出線,用程序指定其數(shù)據(jù)傳送方向。81 D7 D6 D5 D4 D3 D2 D1 D011端口端口A方式方式B組方式組方式0=方式方式01=方式方式1PC7PC01=輸入輸入0=輸出輸出端口端口B1=輸入輸入0=輸出輸出3.3.方式方式2 2:雙向:雙向

48、I/OI/O方式方式方式方式2 2僅用于僅用于A A口口A A口工作于方式口工作于方式2 2時,時,C C口為端口口為端口A A提供控制提供控制。82PC2PC0PC4PC5PC6PC7PC3 INTE1 INTE2I O IBFA STBA ACKA OBFA INTRAWRRDPA7 PA0方式方式2的控制信號的控制信號輸出緩沖區(qū)滿信號輸出緩沖區(qū)滿信號外設(shè)收到數(shù)據(jù)外設(shè)收到數(shù)據(jù),發(fā)響應(yīng)信號發(fā)響應(yīng)信號外設(shè)準備好數(shù)據(jù)外設(shè)準備好數(shù)據(jù), ,發(fā)選通信號發(fā)選通信號8255A8255A收到數(shù)據(jù)收到數(shù)據(jù), ,向外設(shè)向外設(shè)發(fā)輸入緩沖區(qū)滿信號發(fā)輸入緩沖區(qū)滿信號83方式方式2的應(yīng)用:的應(yīng)用:可用于中斷控制I/O方

49、式。當(dāng)A口工作于方式2時,B口可工作于方式1(此時C口的剩余位都用作B口選通控制線);B口也可工作于方式0(此時C口的剩余位也只能用作方式0下的輸入輸出線)。利用C口的5條線提供傳輸聯(lián)絡(luò)信號。INTE1為PC.bit6,INTE2為PC.bit4。848.5 可編程接口芯片8255的應(yīng)用硬件與CPU及外設(shè)的連接初始化編程應(yīng)用程序的編寫主要問題:85v用用8255A8255A控制三個發(fā)光二極管顯示。假設(shè)開關(guān)控制三個發(fā)光二極管顯示。假設(shè)開關(guān)閉合時,發(fā)光二極管點亮,開關(guān)斷開時,二極閉合時,發(fā)光二極管點亮,開關(guān)斷開時,二極管息滅。管息滅。8255A8255A的端口地址為:的端口地址為: A A 端口:

50、端口:0040H0040H B B 端口:端口:0042H 0042H C C 端口:端口:0044H0044H 控制口:控制口:0046H0046H 試編寫試編寫82558255初始化程序段和控制三個發(fā)光初始化程序段和控制三個發(fā)光二極管顯示程序段。二極管顯示程序段。例例1 1、用、用8255A8255A控制三個發(fā)光二極管依秩序循環(huán)顯示??刂迫齻€發(fā)光二極管依秩序循環(huán)顯示。861 1、硬件設(shè)計:、硬件設(shè)計:+5V譯譯碼碼器器地地址址線線+5V200 PA0 PA1 PA28255AA0A1 PB0CS2KD7 D08086CPUK87開始開始8255A初始化初始化延時延時2號亮號亮延時延時3號亮

51、號亮1號亮號亮延時延時啟動啟動?Y返回返回DOSN2、流程圖883 3、編程、編程1 1)設(shè))設(shè)A A口為輸出口,方式口為輸出口,方式0 0。B B口輸入,方式口輸入,方式0 0,則,則方式選擇控制字為方式選擇控制字為82H82H。2 2)A A口輸出代碼:口輸出代碼: 0000 00000 0110110 06H 06H ,1 1號發(fā)光二極管亮號發(fā)光二極管亮 0000 00000 0101 101 03H 03H ,2 2號發(fā)光二極管亮號發(fā)光二極管亮 0000 00000 0011011 04H 04H ,3 3號發(fā)光二極管亮號發(fā)光二極管亮3 3)軟件延時)軟件延時(1).1ms(1).1m

52、s的軟件延時參考程序:的軟件延時參考程序: 設(shè)系統(tǒng)的設(shè)系統(tǒng)的CPUCPU的頻率為的頻率為8MHZ8MHZ,則時鐘節(jié)拍為:,則時鐘節(jié)拍為:0.1250.125微秒。執(zhí)行微秒。執(zhí)行PUSHFPUSHF、POPFPOPF、LOOPLOOP指令需指令需2929個個節(jié)拍。延遲節(jié)拍。延遲1 1毫秒要循環(huán)的次數(shù):毫秒要循環(huán)的次數(shù):89DELAY PROC NEARDELAY PROC NEAR PUSH CX PUSH CXSTAR20TSTAR20T:MOV CXMOV CX,275 275 ;送循環(huán)次數(shù);送循環(huán)次數(shù) LP1LP1:PUSHF PUSHF ;PUSHFPUSHF、POPFPOPF、LOOP

53、LOOP需需2929個節(jié)拍。個節(jié)拍。 POPF POPF LOOP LP1 LOOP LP1 POP CX POP CX RET RETDELAY ENDPDELAY ENDP次一次循環(huán)時間延遲時間275125. 0291smsX90DATA SEGMENTport3 EQU 046H ;8255A控制口地址控制口地址port1 EQU 040H ;8255A的的A口地址口地址port2 EQU 042H ;8255A的的B口地址口地址LED DB 06H,03H,04H;LED顯示值顯示值DATA ENDPSTACK SEGMENTSTA1 DW 50 DUP(?)(?)TOP1 EQU L

54、ENGTH STA1STACK ENDPCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK.MOV DX,port3MOV AL,82H ;方式;方式091 OUT DX, AL ;A口為輸出口為輸出,B口為輸入口為輸入DON: MOV DX, port2 ; B口地址口地址 IN AL ,DX ;讀讀 B口輸入值口輸入值 AND AL,01H ;測測PB0=0?啟動?啟動? JNZ DON ; 非非0, 退出;否則退出;否則,使燈亮使燈亮 MOV DX, port1 ;A口地址口地址 MOV BX, OFFSET LED ; 1號燈代碼地址號燈代碼地址

55、MOV AL, BX OUT DX, AL ;1號燈亮號燈亮 CALL DELAY ;調(diào)延時程序調(diào)延時程序 INC BX MOV AL, BX OUT DX, AL ;2號燈亮號燈亮,1號燈滅號燈滅 CALL DELAY 92 INC BX MOV AL , BX OUT DX, AL AL ;3 3號燈亮號燈亮,2,2號燈滅號燈滅 CALL DELAY JMP DONEXIT: MOV AH , 4CH INT 21H . DEALY PROC NEAR ;軟件延時軟件延時 . RET DEALY ENDPCODE ENDS END93 例例2:如圖所示:如圖所示 用8255實現(xiàn)開關(guān)檢測和繼

56、電器控制 ; 當(dāng)開關(guān)閉合時,使繼電器通電動作;開關(guān)斷開時,繼電器不動作; 系統(tǒng)每隔100ms檢測一次開關(guān)狀態(tài),實 現(xiàn)相應(yīng)的繼電器控制; 初始狀態(tài)下繼電器不動作。94CSA0A1WRRDDBPA0PA7PB0PB7+5V+12VK繼電器繼電器384H387H388H38BHCSA0A1OUT1CLK12MHzCLK0OUT08259APICWRRDDB82538255中斷請求信號中斷請求信號INTRQ1R1R2D195分析:分析:v使8255的A口、B口均工作于方式0;控制字:82Hv8253計數(shù)器0和計數(shù)器1均工作于方式3,利用OUT0的輸出作為計數(shù)器1的時鐘信號,其輸出頻率為2KHz, OU

57、T1輸出頻率為10Hz(周期100ms);vOUT1作為中斷信號,每100ms產(chǎn)生一次中斷;vCPU響應(yīng)中斷后檢測開關(guān)狀態(tài),控制繼電器的動作;v8253兩個計數(shù)器的計數(shù)初值計數(shù)初值分別為: CNT0:2MHz/2KHz =1000 (16位) CNT1:100ms/0.5ms=200 (8位)961、8255的初始化MOV DX,387HMOV AL,82H ;1 00 0 0 0 1 0OUT DX,AL XOR AL,AL ;A口輸出全0MOV DX,384HOUT DX,AL972、8253的初始化 設(shè)置工作方式:MOV DX,38BHMOV AL,36HOUT DX,ALMOV AL,

58、56HOUT DX,AL36H = 00 11 011 0 CNT0 16位 方式3l置計數(shù)初值:置計數(shù)初值:MOV DX,388HMOV AX,1000OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,389HMOV AL,200OUT DX,AL983、 中斷處理程序 (中斷初始化程序略)8253中斷服務(wù)程序中的8255控制程序段如下: MOV DX,385H ;PB口地址 IN AL,DX ;讀PB0狀態(tài) NOT AL ;變反 MOV DX,384H ;輸出到繼電器 OUT DX,AL 99例例2:8255A工作于方式工作于方式1,作為用中斷方式工作的作為用中斷方式工作

59、的Centronics 360字符打印機的接口字符打印機的接口如圖所示如圖所示:A口為數(shù)據(jù)口,方式口為數(shù)據(jù)口,方式1,輸出方式,輸出方式,PC7作為作為輸出緩沖器滿輸出緩沖器滿OBF信號,信號,PC6作為外設(shè)響應(yīng)信作為外設(shè)響應(yīng)信號號ACK,PC3作為作為INTR信號信號。端口地址端口地址: A口:口:00C0H,B口:口:00C2H C口:口:00C4H 控制口:控制口:00C6H; 控制字:控制字:1010 0000B=0A0H100OBF注意注意:當(dāng)當(dāng)ACK為低時為低時,OBF為高為高.1011).初始化初始化8255A程序段程序段: MOV AL,0A0H ;主程序段主程序段 OUT 0

60、C6H,AL ;設(shè)置設(shè)置8255A的控制字的控制字 MOV AL,0CH ;置置PC6=1控制字控制字 OUT 0C4H,AL ;使使INTE(PC6)為為0, 禁止中斷禁止中斷2).用查詢方式輸出用查詢方式輸出10個字符程序段個字符程序段: MOV CX,10 MOV SI,OFFSET BUF ;取緩沖區(qū)首地址取緩沖區(qū)首地址P1: MOV AL,DI ;取一個字符取一個字符 MOV 0C0H,AL ;從從A口輸出口輸出P2: IN AL,0C4 ;讀口讀口C TEST AL,80H ;檢測檢測OBF(PC7)為為1? JZ P2 ;為為0,繼續(xù)檢測繼續(xù)檢測 INC DI ;為為1,數(shù)據(jù)已輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論