版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 微型機(jī)接口技術(shù) 可編程定時(shí)/計(jì)數(shù)器可編程并行接口串行接口與串行通信(概念) DMA控制器接口(不做要求)模擬量輸入/輸出接口 第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院端口I/O接口的構(gòu)成實(shí)現(xiàn)對(duì)CPU數(shù)據(jù)總線驅(qū)動(dòng)能力的匹配實(shí)現(xiàn)各端口尋址操作實(shí)現(xiàn)對(duì)各端口的讀/寫操作和時(shí)序控制7.1 概論第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院3I/O接口一般功能1. 地址譯碼和I/O設(shè)備選擇CPU對(duì)外設(shè)輸入/輸出的控制, 是通過對(duì)接口中各I/O端口的讀/寫操作來完成的。I/O端口的地址譯碼方法: 高位地址線(或 組合CPU的控制信號(hào)),產(chǎn)生I/O接口 電路的片選信號(hào)CS
2、,實(shí)現(xiàn)系統(tǒng)中的接口電路(芯片)尋址 。 低位地址線直接接到I/O接口電路(芯片)的地址引腳, 進(jìn)行I/O接口電路(芯片)的片內(nèi)端口尋址。 地址信號(hào)選擇:由地址范圍決定。2. 信息的輸入與輸出當(dāng)主機(jī)選中I/O接口中的某個(gè)端口,則可在它們之間傳送相應(yīng)信息(數(shù)據(jù)、狀態(tài)、控制)。每一時(shí)刻只允許被選中的I/O接口與CPU交換數(shù)據(jù)。 第7章 微型機(jī)接口技術(shù)3. 數(shù)據(jù)的緩沖及鎖存4. 信息的轉(zhuǎn)換緩沖器:加強(qiáng)驅(qū)動(dòng)能力; 鎖存器:信息暫存串/并、并/串;數(shù)字量/模擬量;電平轉(zhuǎn)換;碼制轉(zhuǎn)換 等。復(fù)雜I/O 接口原理圖第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院5定時(shí)/計(jì)數(shù)器(Intel 8253/8
3、254,三個(gè)通道 16位定時(shí)/計(jì)數(shù)器)并行接口(Intel 8255/8155 ,三個(gè)8位端口A, B, C 等)串行通信接口(Intel 8251/INS 8250,同步異步/異步串行接口)DMA控制器(Intel 8237)模擬量輸入接口(ADC0809)模擬量輸出接口(DAC0832)可編程接口芯片(軟件修改參數(shù)(內(nèi)部寄存器) ): 可以通過程序指令修改接口芯片和I/O引腳的工作方式 i8253/8254; i8255; i8251/INS8250; i8237;芯片組(ChipSet)等專門接口芯片:本章重點(diǎn): i8253;i8255;DAC0832; ADC0809第7章 微型機(jī)接口
4、技術(shù)7.2 可編程定時(shí)/計(jì)數(shù)器(Timer/Counter) 南京航空航天大學(xué) 電子信息工程學(xué)院6以均勻分布的時(shí)間間隔請(qǐng)求中斷構(gòu)成分時(shí)操作系統(tǒng),切換任務(wù)程序(時(shí)間片,輸出脈沖事件)輸出精確的定時(shí)信號(hào),信號(hào)的周期可由程序改變可編程波特率或速率發(fā)生器(可變速率),產(chǎn)生均勻脈沖信號(hào)(基準(zhǔn)信號(hào))測(cè)量外部事件發(fā)生的頻率或周期統(tǒng)計(jì)外部變化過程中某一事件發(fā)生的次數(shù)在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值以后,產(chǎn)生輸出信號(hào),包括向CPU申請(qǐng)中斷服務(wù)(定時(shí)事件)硬件實(shí)現(xiàn)手段: 模擬T/C, 數(shù)字T/C 可編程數(shù)字T/C:7.2.1 概述 計(jì)數(shù)/時(shí)間相關(guān)的事件和信息輸入/輸出第7章 微型機(jī)接口技術(shù)計(jì)數(shù)脈沖頻率02.6MHz,
5、二進(jìn)制或BCD碼減法計(jì)數(shù)7.2.2 可編程定時(shí)/計(jì)數(shù)器8253三個(gè)獨(dú)立16位計(jì)數(shù)器工作方式可編程控制Vcc=+5V, DIP241. 內(nèi)部結(jié)構(gòu)與功能第7章 微型機(jī)接口技術(shù) 每個(gè)通道對(duì)外輸入CLK進(jìn)行 2#或BCD減1計(jì)數(shù),是否計(jì)數(shù) 由外引腳GATE控制。CLK 已知頻率的脈沖信號(hào) 或 外部事件發(fā)生源 16位減法計(jì)數(shù)器,計(jì)數(shù)初值: 2# 最大216(0000H) 最小1 (0001H) 10# 最大104(0000) 最小1 (0001H) 每個(gè)通道有6種工作方式,由 控制寄存器選擇??刂萍拇?器只能寫不能讀。 計(jì)數(shù)器計(jì)數(shù)值可寫入或讀 出,歸0時(shí)由OUT引腳輸 出信號(hào)。三個(gè)獨(dú)立16位計(jì)數(shù)器工作方
6、式可編程控制第7章 微型機(jī)接口技術(shù)2. 引腳功能(24PIN) D7D0:數(shù)據(jù)總線,雙向,三態(tài), 直接接計(jì)算機(jī)數(shù)據(jù)總線。CLKx:計(jì)數(shù)時(shí)鐘輸入, 下降沿使通道計(jì)數(shù)減1。GATEx:門控信號(hào),輸入, 高電平或上升沿有效,有效時(shí)允許計(jì)數(shù)器對(duì)CLK計(jì)數(shù)。OUTx: 計(jì)數(shù)器歸0時(shí)通道輸出信號(hào), 輸出波形形式取決于工作方式。A1、A0:尋址3個(gè)通道的計(jì)數(shù)器和控制寄存器 (3個(gè)通道的控制寄存器共用一個(gè)端口地址)。RD、WR和CS:讀/寫/片選第7章 微型機(jī)接口技術(shù) 8253與8086系統(tǒng)連接 數(shù)據(jù)線D7D0接8086數(shù)據(jù)總線的低8位。 A1和A0分別接8086地址總線的A2和A1,端口使用偶地址。 由74
7、LS138配合74LS30和74LS04譯碼選中8253。 8253的三個(gè)通道輸入時(shí)鐘由系統(tǒng)PCLK分頻得到,頻率為: 2.38636/2=1.1931816MHz. 在PC/XT微機(jī)中,通道0的OUT0接8259的IR0,通道1刷新動(dòng)態(tài)存儲(chǔ)器,通道2控制揚(yáng)聲器發(fā)聲。第7章 微型機(jī)接口技術(shù)3. 工作方式(6種,可編程)(1)控制字( Control Word,CW ,寫入控制寄存器) 初始化/設(shè)置/控制三個(gè)通道(計(jì)數(shù)器): 初始化/控制00 01 000 0B=10H ?01 11 011 1B=77H CH1, 16位, 方式3, BCDCH0, 低8位, 方式0, BIN第7章 微型機(jī)接口
8、技術(shù)12 南京航空航天大學(xué) 電子信息工程學(xué)院注意:8253初始化包括兩個(gè)步驟: 對(duì)欲使用的每個(gè)通道 先寫入控制字(至控制寄存器) 再寫入計(jì)數(shù)初值(時(shí)間常數(shù),至計(jì)數(shù)通道) 寫入控制字后,所有控制邏輯電路復(fù)位, 輸出端OUT進(jìn)入初始狀態(tài)。 CPU向8253寫入的計(jì)數(shù)初值,要在CLK端輸入1個(gè)正脈沖( ) 后才真正裝入指定通道。 之后再次輸入1個(gè)CLK才開始計(jì)數(shù),且每次在脈沖的下降沿 減1計(jì)數(shù)。 即:寫入計(jì)數(shù)初值后,經(jīng)過一個(gè)CLK,8253才開始計(jì)數(shù)。 實(shí)際計(jì)數(shù)值要比初值多1。 隨時(shí)可讀取8253的計(jì)數(shù)值。第7章 微型機(jī)接口技術(shù)(2)工作方式 6種工作方式13 南京航空航天大學(xué) 電子信息工程學(xué)院OU
9、T輸出Gate控制CLK輸入控制字 CW計(jì)數(shù)初值Counter Mode0 軟件觸發(fā),歸0輸出高電平,不自動(dòng)重復(fù); Mode4 軟件觸發(fā),輸出負(fù)脈沖選通信號(hào),不自動(dòng)重復(fù); Mode1 硬件(GATE)觸發(fā)單穩(wěn),不自動(dòng)重復(fù)啟動(dòng); Mode5 硬件觸發(fā),輸出負(fù)脈沖選通信號(hào),不自動(dòng)重復(fù); Mode2、3 軟/硬件觸發(fā),自動(dòng)重裝(分頻/方波)。對(duì)每種工作方式要求掌握: 計(jì)數(shù)期間,GATE與計(jì)數(shù)初值沒有新變化的時(shí)序(綠色圖)。第7章 微型機(jī)接口技術(shù)方式0:計(jì)數(shù)結(jié)束輸出信號(hào) 南京航空航天大學(xué) 電子信息工程學(xué)院 控制字(CW)寫入控制寄存器后,OUT立即輸出低電平;寫入初值后,OUT保持低電平,計(jì)數(shù)器計(jì)數(shù);
10、當(dāng)計(jì)數(shù)器到0時(shí),OUT輸出高電平并保持,直至寫入新的控制字或初值。 計(jì)數(shù)初值寫入后在下一個(gè)CLK下降沿才送入計(jì)數(shù)器,因此計(jì)數(shù)值為N+1。 GATE=0,暫停計(jì)數(shù)。 若計(jì)數(shù)過程中重新送入初值,則按新值重新計(jì)數(shù)。 計(jì)數(shù)為0(歸0)后,不能自動(dòng)恢復(fù)計(jì)數(shù)初值。再次寫入計(jì)數(shù)初值,才又開始計(jì)數(shù)。計(jì)數(shù)歸0后仍繼續(xù)計(jì)數(shù),但OUT不再變化。第7章 微型機(jī)接口技術(shù)方式1:可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 寫入CW后OUT輸出高電平;寫完初值后,計(jì)數(shù)器要等到GATE端的上升沿(觸發(fā)沿)后,在下一個(gè)CLK脈沖的下降沿才開始計(jì)數(shù),OUT變低,直到計(jì)數(shù)到0后OUT變高。 GATE再次上升沿觸發(fā)使OUT變低,計(jì)數(shù)器以初值重新計(jì)數(shù)。
11、 計(jì)數(shù)過程中,再次給通道寫入時(shí)間常數(shù),不影響當(dāng)前操作過程,GATE再次觸發(fā)后才按新的時(shí)間常數(shù)操作。 計(jì)數(shù)過程中GATE觸發(fā)沿提前到來,在下一個(gè)CLK的下降沿,計(jì)數(shù)器開始重新計(jì)數(shù),使輸出單穩(wěn)脈沖比原先設(shè)定的計(jì)數(shù)值加寬。計(jì)數(shù)歸0后不用再送計(jì)數(shù)值,只需觸發(fā)脈沖即可輸出一同樣寬度的單穩(wěn)脈沖。第7章 微型機(jī)接口技術(shù)方式2:頻率發(fā)生器(n分頻器) 寫入CW后OUT變高;寫入初值后,下一CLK開始計(jì)數(shù),減到1時(shí)OUT變低,經(jīng)一個(gè)CLK周期OUT恢復(fù)為高,計(jì)數(shù)器自動(dòng)重新開始計(jì)數(shù)。有硬件(門控)和軟件(寫初值) 兩種觸發(fā)計(jì)數(shù)的方式。GATE=1計(jì)數(shù);GATE=0計(jì)數(shù)暫停且OUT立即為高 ,在GATE變高后的下一
12、個(gè)CLK下降沿計(jì)數(shù)器重新從初值開始計(jì)數(shù) 。(為硬件同步)計(jì)數(shù)期間送入新值,本周期繼續(xù)進(jìn)行,下一個(gè)周期按新值計(jì)數(shù)。不用重復(fù)置數(shù)。計(jì)數(shù)器能夠連續(xù)工作,輸出OUT是輸入CLK的n(初值)分頻。硬件同步:門控信號(hào)實(shí)現(xiàn)計(jì)數(shù)器的同步,稱為。軟件同步:寫入控制字和計(jì)數(shù)初值后,如GATE一直處于高電平,則在下一個(gè)脈沖開始計(jì)數(shù)器計(jì)數(shù)。通過寫入初值使計(jì)數(shù)器同步,稱為。 寫入CW后OUT變高;寫入初值后,下一個(gè)CLK開始計(jì)數(shù),輸出為先高后低的方波;一個(gè)方波結(jié)束后,自動(dòng)重新裝入計(jì)數(shù)初值,開始下一次計(jì)數(shù)過程。 若N為偶數(shù),高低電平持續(xù)時(shí)間相等;若為奇數(shù),則高電平持續(xù)時(shí)間為(N+1)/2,低電平持續(xù)時(shí)間為(N-1)/2。
13、 兼有兩種觸發(fā)計(jì)數(shù)的方式。 其余如 當(dāng)GATE=0、以及計(jì)數(shù)期間送入新值的處理同方式2。第7章 微型機(jī)接口技術(shù)方式3:方波發(fā)生器計(jì)數(shù)器自動(dòng)重新開始計(jì)數(shù)第7章 微型機(jī)接口技術(shù) 寫入CW后OUT為高;寫入計(jì)數(shù)初值后的下一個(gè)CLK開始計(jì)數(shù)(軟件觸發(fā)) ;計(jì)數(shù)器到0時(shí),輸出一個(gè)CLK周期寬度的負(fù)脈沖,然后輸出變?yōu)楦唠娖讲⒈3帧?計(jì)數(shù)器不能自動(dòng)恢復(fù)計(jì)數(shù)初值。再次寫入計(jì)數(shù)初值,才又開始計(jì)數(shù)。 GATE=0禁止計(jì)數(shù)。 計(jì)數(shù)期間送入新的計(jì)數(shù)值,則下一個(gè)時(shí)鐘按新值重新計(jì)數(shù)。方式4:軟件觸發(fā)的選通信號(hào)發(fā)生器第7章 微型機(jī)接口技術(shù)19 南京航空航天大學(xué) 電子信息工程學(xué)院 方式5:硬件觸發(fā)的選通信號(hào)發(fā)生器 寫入CW后
14、OUT為高;寫入計(jì)數(shù)初值后,由GATE上升沿啟動(dòng)計(jì)數(shù)(硬件觸發(fā));計(jì)數(shù)到0時(shí),輸出一個(gè)CLK周期寬度的負(fù)脈沖,然后輸出變高并保持。 需等到下一次GATE脈沖觸發(fā),才會(huì)開始新的計(jì)數(shù)過程。 計(jì)數(shù)過程中,若GATE又來一個(gè)上升沿,則下一個(gè)CLK計(jì)數(shù)器重新賦值計(jì)數(shù)。 計(jì)數(shù)期間寫入新的計(jì)數(shù)值,當(dāng)前周期不受影響,在下一個(gè) GATE上升沿啟動(dòng)新值計(jì)數(shù)。第7章 微型機(jī)接口技術(shù)啟動(dòng)計(jì)數(shù)中止計(jì)數(shù)自動(dòng)重復(fù)更新初值OUT波形方式0軟 件GATE=0無立即有效N 0方式1硬 件無下一輪有效N 0方式2軟/硬件GATE=0有下一輪有效N.2 1 0方式3軟/硬件GATE=0有下半輪有效方式4軟 件GATE=0無立即有效
15、N 1 0方式5硬 件無下一輪有效 N 1 0N/2N/28253工作方式總結(jié)方式0 :寫入CW后輸出變低,計(jì)數(shù)結(jié)束輸出為高,常用該輸出信號(hào)作為 中斷源。余5種方式寫入CW后輸出均變高,OUT均可作為中斷源。方式0:可用來實(shí)現(xiàn)定時(shí)或?qū)ν獠渴录M(jìn)行計(jì)數(shù)。方式1:用來產(chǎn)生單脈沖。方式2:用來產(chǎn)生序列負(fù)脈沖,每個(gè)負(fù)脈沖的寬度與CLK的周期相同。方式3:用于產(chǎn)生連續(xù)方波。方式2和方式3都實(shí)現(xiàn)對(duì)CLK的n分頻。方式4/方式5:輸出波形相同,都是寬度為1個(gè)CLK的負(fù)脈沖。第7章 微型機(jī)接口技術(shù)4. 8253芯片應(yīng)用舉例例1:在PC/AT微機(jī)中通道0(CNT0),地址40H, 方式3,用于日時(shí)鐘定時(shí)。(CL
16、K=1.19MHZ,初值=0000, 18.158HZ,OUT0接IRQ0)通道1(CNT1),地址42H, 方式2,DRAM刷新。(CLK=1.19MHZ,初值=0018, OUT1輸出信號(hào)66.288KHZ)通道2(CNT2),地址44H, 方式3,控制揚(yáng)聲器發(fā)聲。(CLK=1.19MHZ,初值=1331, 896HZ,OUT2 與8255 PB1 相與后輸出)。控制寄存器,地址46H。第7章 微型機(jī)接口技術(shù)(2)計(jì)數(shù)器1的初始化MOV AL,54H ; CWOUT 46H,ALMOV AL,18 ; 18分頻OUT 42H,AL 輸出OUT1頻率為66.288KHZ。(3)計(jì)數(shù)器2的初始
17、化和接通喇叭MOV AL,0B6H ; CWOUT 46H,ALMOV AX,533H ; 分頻值OUT 44H,ALMOV AL,AHOUT 44H,ALIN AL,62H ; 讀入8255的PB口MOV AH,AL ; 保護(hù)原值OR AL,03H ; 置1 PB1和PB0OUT 62H,AL ; 輸出ROM BIOS對(duì)8253初始化(1)計(jì)數(shù)器0的初始化 MOV AL,36H ; CW OUT 46H,AL MOV AL,00H ; 初值 OUT 40H,AL OUT 40H,AL 計(jì)數(shù)器0工作于方波發(fā)生器方式,對(duì)CLK(1.1931816MHz)進(jìn)行65536(216)分頻。 輸出端OU
18、T0接8259的IR0,每次歸0產(chǎn)生一次中斷請(qǐng)求,中斷號(hào)由BIOS設(shè)置為8。 中斷時(shí)間間隔為54.925ms,每秒鐘18.2次中斷。 通道0的時(shí)間間隔是計(jì)算機(jī)系統(tǒng)時(shí)標(biāo)基礎(chǔ)。第7章 微型機(jī)接口技術(shù) 計(jì)數(shù)器2輸出896Hz的方波,驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。發(fā)聲受8255 PB0和PB1控制。例2:8253的定時(shí)功能及應(yīng)用 將8253的通道1作為5ms定時(shí)器,設(shè)輸入時(shí)鐘頻率為200kHz,編寫8253的初始化程序。(1)計(jì)數(shù)初值N計(jì)算已知CLK頻率為200kHz,則周期為T=1/200kHZ=5us, 于是計(jì)數(shù)初值N為: N=5ms/T=5ms/5s=1000。(2)確定控制字按題意選計(jì)數(shù)器1,按BCD碼計(jì)數(shù)
19、,選方式0,由于計(jì)數(shù)初值N=1000,控制字D5D4應(yīng)為11,8253的控制字為: 01110001B=71H(3)選擇8253各端口地址 設(shè)計(jì)數(shù)器1的端口地址為3F82H, 控制口地址為3F86H。(4)初始化程序 MOV AL,71H ;控制字 MOV DX,3F86H ;控制端口地址 OUT DX,AL ;送控制端口 MOV DX,3F82H ;計(jì)數(shù)器1地址 MOV AL,00 ;計(jì)數(shù)初值 N=1000的低8位寫入計(jì)數(shù)器1 OUT DX,AL MOV AL,10H ;N的高8位寫 入計(jì)數(shù)器1 OUT DX,AL第7章 微型機(jī)接口技術(shù)例3:8253的計(jì)數(shù)功能及應(yīng)用(1)外部事件計(jì)數(shù)脈沖接入
20、通道2的CLK2,選方式0,計(jì)數(shù)初值360D。當(dāng)計(jì)滿360次時(shí),OUT2輸出一個(gè)正跳變信號(hào),作為中斷申請(qǐng)信號(hào)送入8259A的IR1,由此向CPU發(fā)出中斷申請(qǐng)。(2)初始化編程 通道2方式0,初值360D=168H, 2#計(jì)數(shù),控制字: 10110000B=B0H。(3)通道2初始化程序 MOV AL,0B0H ;控制字 OUT 43H,AL ;寫入控制端口 MOV AL,68H ;初值的低8位 OUT 42H,AL ;寫入通道2 MOV AL,01H ;初值的高8位 OUT 42H,AL ;寫入通道2 8088系統(tǒng)中有一片8253(注意其A1A0的連接):利用通道2對(duì)外部事件計(jì)數(shù),計(jì)滿360次
21、經(jīng)8259的IR1向CPU發(fā)出中斷信號(hào),如上圖所示。 通道2地址為42H,控制端口地址為43H。編寫8253的初始化程序。第7章 微型機(jī)接口技術(shù)例4:P280 電機(jī)數(shù)字控制系統(tǒng)測(cè)速子系統(tǒng)實(shí)例 轉(zhuǎn)速傳感器輸出的轉(zhuǎn)速信號(hào)送到8253進(jìn)行計(jì)數(shù)測(cè)量。脈沖計(jì)數(shù)CLK1D被測(cè)轉(zhuǎn)子轉(zhuǎn)速n為011156轉(zhuǎn)/分,發(fā)動(dòng)機(jī)每轉(zhuǎn)對(duì)應(yīng)傳感器輸出300個(gè)脈沖?;緶y(cè)量原理: 測(cè)量D個(gè)(D值根據(jù)實(shí)際轉(zhuǎn)速范圍選擇)傳感器輸出脈沖CLK1所占時(shí)間 為多少個(gè)(設(shè)為X個(gè),待測(cè))標(biāo)準(zhǔn)時(shí)鐘周期PCLK(設(shè)為Tr,單位us)。3個(gè)計(jì)數(shù)器工作在: 方式0、1、0通道1計(jì)數(shù)D個(gè)CLK1時(shí),通道2計(jì)數(shù)X個(gè)PCLK。實(shí)際轉(zhuǎn)速: 脈沖計(jì)數(shù)CLK1
22、D第7章 微型機(jī)接口技術(shù)3個(gè)計(jì)數(shù)器工作在: 方式0、1、0通道1計(jì)數(shù)D個(gè)CLK1時(shí),通道2計(jì)數(shù)X個(gè)PCLK。測(cè)量過程時(shí)序:置通道0計(jì)數(shù)初值為1,通道1計(jì)數(shù)初值為D,通道2的為0000H(216)。 用OUT0的下降沿(OUT0上升沿)做GATE1觸發(fā),通道1開始對(duì)CLK1計(jì)數(shù); OUT1反相后使GATE2為高電平,允許通道2對(duì)PCLK(周期Tr)計(jì)數(shù)。 通道1計(jì)滿D個(gè)脈沖后,OUT1反相后輸出低電平,使計(jì)數(shù)器2停止計(jì)數(shù)。 此時(shí)CPU可以讀出計(jì)數(shù)器2中的計(jì)數(shù)值,算出被測(cè)信號(hào)的轉(zhuǎn)速。 南京航空航天大學(xué) 電子信息工程學(xué)院第7章 微型機(jī)接口技術(shù) 設(shè)8253端口地址為280H、282H、284H和286
23、H,主要程序片段: ;主程序中對(duì)8253初始化INIT_C: MOV DX,286H ;控制端口地址為286H MOV AL,01010010B ;計(jì)數(shù)器1:方式1,讀/寫低字節(jié). OUT DX,AL ;送控制字到控制端口 MOV AL,10110000B ;計(jì)數(shù)器2:方式0,讀/寫雙字節(jié). OUT DX,AL MOV AL,00010000B ;計(jì)數(shù)器0:方式0,讀/寫低字節(jié). OUT DX,ALINIT_D: MOV DX,282H ;計(jì)數(shù)器1地址 MOV AL,20 OUT DX,AL ;寫入計(jì)數(shù)初值20到計(jì)數(shù)器1 INC DX INC DX ;計(jì)數(shù)器2地址 MOV AL,0 OUT D
24、X,AL ;寫入低8位計(jì)數(shù)值到計(jì)數(shù)器2 OUT DX,AL ;寫入高8位計(jì)數(shù)值到計(jì)數(shù)器2 MOV DX,280H ;計(jì)數(shù)器0地址 MOV AL,01H OUT DX,AL ;寫入1到計(jì)數(shù)器0、啟動(dòng)測(cè)量過程第7章 微型機(jī)接口技術(shù);中斷服務(wù)程序中,讀取計(jì)數(shù)器2的數(shù)據(jù),計(jì)算轉(zhuǎn)速IN_DATA: MOV AL,10000000B ;鎖存計(jì)數(shù)器2的CW MOV DX,286H OUT DX,AL;鎖存計(jì)數(shù)器2 MOV DX,284H ;讀計(jì)數(shù)器2的內(nèi)容:10000H-X IN AL,DX;先讀低8位 MOV AH,AL IN AL,DX;再讀高8位 XCHG AL,AH;高、低8位在AH、AL中 NEG
25、 AX;AX=X ;計(jì)算轉(zhuǎn)速n 通道1計(jì)數(shù)D個(gè)脈沖后,OUT1的上升沿申請(qǐng)中斷。 當(dāng)中斷到來時(shí),進(jìn)入中斷服務(wù)子程序。 可以用CPU暫停來模擬主程序,只有中斷到來時(shí)才脫離暫停。 AA:HLT MOV AH,4CH INT 21H 第7章 微型機(jī)接口技術(shù)7.3 可編程并行接口 南京航空航天大學(xué) 電子信息工程學(xué)院297.3.1 可編程并行接口芯片8255A并行通信:n位數(shù)據(jù)用n條線同時(shí)傳輸?shù)臋C(jī)制。特點(diǎn):速度快,效率高。 適于短距離、高速通信。74LS244,273都是簡(jiǎn)單的并行接口。并行接口連接CPU與并行外設(shè),實(shí)現(xiàn)并行通信,起到輸出鎖存/輸入緩沖的作用。Intel系列的8位并行接口芯片8255A:
26、與Intel系列CPU完全兼容; 24條功能可編程的I/O引腳;能直接按位清0或置1,簡(jiǎn)化了控制應(yīng)用接口。8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3第7章 微型機(jī)接口技術(shù)resetD7D0A9A2A1A0IORIOW片選譯碼數(shù)據(jù)緩沖器讀寫控制片內(nèi)譯碼CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口D端口A端口C端口B +5VGNDD7D0外設(shè)8255A總線三個(gè)8位數(shù)據(jù)端口A,B,C;一個(gè)
27、控制端口。 C口還可分為兩個(gè)4位數(shù)據(jù)使用,或用作與A口或B口配合的 控制或狀態(tài)口,依具體工作方式而定。第7章 微型機(jī)接口技術(shù)1. 8255A芯片的內(nèi)部結(jié)構(gòu)(1)端口端口A(PA7PA0): (A1A0=00) 內(nèi)有8位數(shù)據(jù)輸出鎖存/緩沖器和8位數(shù)據(jù)輸入鎖存器。 端口B (PB7PB0) : (A1A0=01) 內(nèi)有8位數(shù)據(jù)輸入/輸出、鎖存/緩沖器和8位數(shù)據(jù)輸入緩沖器(輸入可以不鎖存)。端口C (PC7PC0): (A1A0=10)內(nèi)有8位數(shù)據(jù)輸出鎖存/緩沖器和8位數(shù)據(jù)輸入緩沖器(輸入無鎖存)。在與不需要控制聯(lián)絡(luò)的外設(shè)連接時(shí),A、B、C口均可做輸入輸出,且C口可分為高/低兩個(gè) 4位,可同為輸入或
28、輸出,也可不同。 在與需要控制聯(lián)絡(luò)的外設(shè)連接時(shí),C口的主要部分是A、B口的聯(lián)絡(luò)控制信號(hào)。控制端口(A1A0=11):接收控制字,決定8255工作方式。第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院32(2)A組控制和B組控制 兩組控制電路決定A/B組的工作方式。 A組控制A端口和C端口的上半部;B組控制B端口和C端口下半部。(3)讀寫控制邏輯接收CPU的地址及讀寫控制等信號(hào),控制完成信息的傳送。RESET高電平時(shí)使8255復(fù)位,所有內(nèi)部Reg清0,A/B/C三個(gè)端口都置為輸入方式。(4)數(shù)據(jù)總線緩沖器 直接與數(shù)據(jù)總線相連2. 8255A的PIN40P,DIP,+5VPA/PB/PC
29、 = I/O口引腳D7D0:雙向數(shù)據(jù)總線/CS:片選,/RD:讀,/WR:寫A1A0 :端口選擇,尋址3個(gè)數(shù)據(jù)/1個(gè)控制端口第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院33CSRDWRA1A0端口選擇及其操作01000數(shù)據(jù)送端口A01001數(shù)據(jù)送端口B01010數(shù)據(jù)送端口C01011控制字送控制寄存器00100端口A數(shù)據(jù)送數(shù)據(jù)總線00101端口B數(shù)據(jù)送數(shù)據(jù)總線00110端口C數(shù)據(jù)送數(shù)據(jù)總線00111無操作(D7D0三態(tài))1禁止(D7D0三態(tài))011無操作(D7D0三態(tài))i8255A芯片端口選擇操作第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院34 8255A與8086
30、系統(tǒng)連接說明:(1)8255的數(shù)據(jù)線D7D0接8086系統(tǒng)數(shù)據(jù)線的低8位。(2)8255的A0接8086的A1,8255的A1接8086的A2,使用偶地址傳遞信息。(3)端口地址書上錯(cuò)!第7章 微型機(jī)接口技術(shù)3. 8255A芯片的控制字和工作方式 控制字分為兩類:方式選擇控制字 / 端口C置位-復(fù)位控制字 共用一個(gè)地址,D7=1 方式 / D7=0 C口位控字方式0(基本輸入/輸出):不用聯(lián)絡(luò)信號(hào)/中斷, 用于無條件/查詢方式傳送方式1(選通輸入/輸出):C口提供固定聯(lián)絡(luò)信號(hào),用于中斷或查詢方式方式2(雙向傳輸):既可入,又可出。是方式1的組合。 方式選擇控制字 (送控制寄存器 A1A0=11
31、。 格式以此為準(zhǔn)。)以適應(yīng)各種數(shù)據(jù)傳送方式的要求。未被用的其它位仍可工作在方式 0。共三種工作方式: A組有三種, B組有兩種。人為定義C口信號(hào)第7章 微型機(jī)接口技術(shù) 端口C置位/復(fù)位控制字 說明:使8255作為位控接口,實(shí)現(xiàn)對(duì)外設(shè)的按位控制。 該控制字僅對(duì)8255的端口輸出鎖存器操作。例:利用位復(fù)位/置位可使端口C某位產(chǎn)生方波。 MOV CX,0FHLOP:OUT PORT-CL,0AH ;送0 CALL DELAY OUT PORT-CL,0BH ;送1 CALL DELAY LOOP LOP RET 向PC5送0電平 延時(shí)向PC5送1電平方波個(gè)數(shù)到? 延時(shí)第7章 微型機(jī)接口技術(shù)(2) 8
32、255A的工作方式 方式0(基本輸入/輸出) 三個(gè)數(shù)據(jù)端口A、B、C ,由方式選擇控制字選擇為輸入或輸出口。C口(PC7PC4及PC3PC0)高低4位可相同(同為輸入或輸出)也可不同。但對(duì)端口8位的讀寫是在一條指令中作為整體來操作: CPU 高4 低4 IN 入出需屏蔽低四位 IN 出入需屏蔽高四位 IN 入入讀入的8位均有用 OUT 入出輸出數(shù)據(jù)只設(shè)在低4位 OUT 出入輸出數(shù)據(jù)只設(shè)在高4位 OUT 出出輸出8位數(shù)據(jù)三個(gè)端口無必然聯(lián)系,各端口輸入輸出組合共有16種。 CPU與外設(shè)采用無條件入/出,不用聯(lián)絡(luò)線,也不需要查詢。方式0也可用于查詢傳送??闪預(yù)/B口為數(shù)據(jù)口,C口做聯(lián)絡(luò)信號(hào)。方式0下
33、輸入不鎖存,輸出鎖存。第7章 微型機(jī)接口技術(shù)例:8255A與系統(tǒng)的連線如下, 片選譯碼地址為F0F3h 1) 確定端口地址譯碼電路; 2) 編程設(shè)置8255A :A組方式 0,A口 輸入,PC7PC4輸出 B組方式 0 ,B口輸出,PC3PC0輸入resetD7D0A9A2A1A0IORIOW片選譯碼數(shù)據(jù)緩沖器讀寫控制片內(nèi)譯碼RESETA1A0PC7PC0PB7PB0控制口D端口A端口C端口B +5VGNDD7D0外設(shè)RDWRCSPA7PA0F0F3h第7章 微型機(jī)接口技術(shù)1) 確定端口地址譯碼電路 A9A8 A7 A6 A5 A4 A3 A2 A1 A0 F0H 1 1 1 1 1 1 0
34、0 0 0 A口F1H 1 1 1 1 1 1 0 0 0 1 B口F2H 1 1 1 1 1 1 0 0 1 0 C口F3H 1 1 1 1 1 1 0 0 1 1 D口 CSA1 A0 8255A總線2) 確定方式控制字10010001D7D6D5D4D3D2D1D0特征位A組方式 0A口輸入PC7PC4輸出B組方式 0B口輸出PC3PC0輸入控制字1001 0001B,91H MOV AL, 91H OUT 0F3H, AL要求: A口方式0輸入,PC7PC4輸出 B口方式0輸出,PC3PC0輸入 第7章 微型機(jī)接口技術(shù)i8255A方式0總線時(shí)序 南京航空航天大學(xué) 電子信息工程學(xué)院40有
35、效讀取數(shù)據(jù)條件:AB、RD、外設(shè)數(shù)據(jù)有效保持;讀時(shí)序( IN AL,PORT ): CPU發(fā)地址RD 讀數(shù)據(jù); 外設(shè) 讀周期內(nèi)保持?jǐn)?shù)據(jù);I/O口第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院41有效輸出數(shù)據(jù)條件:AB選中8255、WR、數(shù)據(jù)正確輸出到 DB;寫時(shí)序(OUT PORT,AL):CPU發(fā)地址 數(shù)據(jù)WR,8255鎖存 ;數(shù)據(jù)鎖存到寄存器((外設(shè)可隨時(shí)讀取數(shù)據(jù))I/O口i8255A方式0總線時(shí)序第7章 微型機(jī)接口技術(shù) 方式1(選通的輸入/輸出)方式1中,端口A和端口B輸入/輸出數(shù)據(jù)時(shí),必須利用端口C提供聯(lián)絡(luò)信號(hào)(選通、應(yīng)答信號(hào))。這時(shí):A組:8位數(shù)據(jù)端口(A口),3位控制位
36、(C口)。B組:8位數(shù)據(jù)端口(B口),3位控制位(C口) 。 這種配合(C口PIN的分配)固定,不可以用程序修改。 余下2 位可用作基本I/O。一般,用中斷方式傳送數(shù)據(jù)(也可用查詢方式,很少)。特點(diǎn): 端口A、B既可做輸入又可做輸出,數(shù)據(jù)輸入輸出都被鎖存。 端口C引腳分別作為控制、狀態(tài)和中斷申請(qǐng)信號(hào)等。 若只有一個(gè)端口工作在方式1,則另一端口可工作在方式0,這時(shí) C口未用位可用作基本I/O。端口A、B工作于方式1的輸入或輸出時(shí),端口C聯(lián)絡(luò)信號(hào)的引腳和意義都不同,故以下分開討論。1011A口方式1輸入控制字111B口方式1輸入控制字PA7PA0PC4PC5PC3INTEAPC4與門IBFASTB
37、AINTRARDD7D0A口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)PB7PB0PC2PC1PC0INTEBPC2與門RDD7D0IBFBSTBBINTRBB口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)選通輸入第7章 微型機(jī)接口技術(shù)對(duì)應(yīng)的控制信號(hào) a. STB 選通輸入:外設(shè)提供,有效時(shí),把外設(shè)數(shù)據(jù)寫入8255 。 b. IBF 輸入緩沖區(qū)滿: 8255A輸出到外設(shè),通知外設(shè)輸入緩沖區(qū) 滿,不要送新數(shù)據(jù),由CPU讀數(shù)據(jù)時(shí)(RD的上升沿)清除。 c. INTR 中斷請(qǐng)求信號(hào):8255的輸出,可向CPU申請(qǐng)中斷, 在 STB、IBF、INTE 均為1時(shí) 置1(有效)。第7章 微型機(jī)接口技術(shù)1011A口方式1輸入控制字111B口
38、方式1輸入控制字PA7PA0PC4PC5PC3INTEAPC4與門IBFASTBAINTRARDD7D0A口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)PB7PB0PC2PC1PC0INTEBPC2與門RDD7D0IBFBSTBBINTRBB口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)INTR 中斷請(qǐng)求信號(hào)在 STB、IBF、INTE 均為時(shí),置1(有效)。 d. INTE 中斷允許:INTEA是C口輸出鎖存器的PC4,INTEB是C口輸出鎖存器的PC2,它們分別控制A口和B口的中斷申請(qǐng)。 INTE=1 中斷允許, INTE=0 禁止中斷。(由C口置 /復(fù)位控制字設(shè)置)INTR 由8255A發(fā)出第7章 微型機(jī)接口技術(shù)PB7PB
39、0PA7PA0STBIBFINTRRD外設(shè)送來數(shù)據(jù)當(dāng)INTE=1時(shí) 方式1的輸入時(shí)序: 從工作在方式1下的輸入端口輸入數(shù)據(jù)時(shí), 有關(guān)信號(hào)的變化關(guān)系。RDD7D0PA7PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR第7章 微型機(jī)接口技術(shù)PA7PA0PB7PB0STBIBFINTRRD外設(shè)送來數(shù)據(jù)當(dāng)INTE=1時(shí) RDD7D0PA7PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR 當(dāng)外設(shè)數(shù)據(jù)準(zhǔn)備好,將數(shù)據(jù)送至端口線PA7PA0或PB7PB0 外設(shè)發(fā)出選通信號(hào)STB: (1) 將數(shù)據(jù)鎖存在輸入端口內(nèi)。 (2) 使IBF變高,表示輸入端口滿,可用于阻止外設(shè)輸入新數(shù)據(jù)。
40、 (3) 如果INTE=1, STB的上升沿使INTR變高,發(fā)出中斷請(qǐng)求。 中斷處理程序中CPU 讀取數(shù)據(jù),發(fā)出RD信號(hào): (1) RD 的下降沿清除INTR (2) RD 的上升沿清除IBF (3) 端口內(nèi)的數(shù)據(jù)進(jìn)入CPU以中斷方式輸入數(shù)據(jù):第7章 微型機(jī)接口技術(shù)1011A口方式1輸入控制字111B口方式1輸入控制字PA7PA0PC4PC5PC3INTEAPC4與門IBFASTBAINTRARDD7D0A口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)PB7PB0PC2PC1PC0INTEBPC2與門RDD7D0IBFBSTBBINTRBB口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)注意: 在方式1下,作為聯(lián)絡(luò)信號(hào)的外部引腳P
41、C4、PC2,不受C口 按位置位/復(fù)位控制字控制,即對(duì)這些位的置位/復(fù)位不影響 這些引腳信號(hào)的輸入/輸出,而只在8255A內(nèi)部對(duì)INTE信號(hào) 起作用。第7章 微型機(jī)接口技術(shù)PA7PA0PB7PB0STBIBFINTRRD外設(shè)送來數(shù)據(jù)當(dāng)INTE=1時(shí) RDD7D0PA7PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR 當(dāng)外設(shè)數(shù)據(jù)準(zhǔn)備好,將數(shù)據(jù)送至端口線PA7PA0或PB7PB0 外設(shè)發(fā)出選通信號(hào)STB: (1) 將數(shù)據(jù)鎖存在輸入端口內(nèi)。 (2) 使IBF變高,表示輸入端口滿,可用于阻止外設(shè)輸入新數(shù)據(jù) 在主程序中CPU 查詢IBF,若其為高電平,讀取數(shù)據(jù),發(fā)出RD 信號(hào): (1)
42、RD 的上升沿清除IBF (2) 端口內(nèi)的數(shù)據(jù)進(jìn)入CPU以查詢方式輸入數(shù)據(jù)(不作要求):第7章 微型機(jī)接口技術(shù)PA7PA0PB7PB0STBIBFINTRRD外設(shè)送來數(shù)據(jù)當(dāng)INTE=1時(shí) RDD7D0PA7PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR 查詢方法從8255的A口向CPU輸入數(shù)據(jù): 方式1的狀態(tài)信號(hào)可通過讀取端口C得到 INPUT:IN AL,PortC;讀方式1狀態(tài)信號(hào)TEST AL,20H ;查A口的IBFJE INPUT ;IBF=0,數(shù)據(jù)未準(zhǔn)備好。IN AL,PortA ;IBF0,CPU讀入數(shù)據(jù)。注意:方式1輸入時(shí)共用到C口6個(gè)引腳,剩余2個(gè)引腳PC6
43、、PC7可做 I/O位,或由C口置 /復(fù)位控制字決定其輸出。第7章 微型機(jī)接口技術(shù)A口方式1輸出時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)1010A口方式1輸出控制字110B口方式1輸出控制字PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0PB7PB0PC2PC1PC0INTEBPC2與門WRD7D0OBFBACKBINTRBB口方式1輸出時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)選通輸出對(duì)應(yīng)的控制信號(hào) a. OBF 輸出緩沖區(qū)滿: 8255A輸出到外設(shè),通知外設(shè)有可用數(shù)據(jù)。 b. ACK 外設(shè)應(yīng)答信號(hào)。有效時(shí),表示外設(shè)已從8255輸出端口取走 數(shù)據(jù),由其清除OBF,并將INTR置“1” 。 c. INT
44、R 中斷請(qǐng)求信號(hào):8255的輸出,可向CPU申請(qǐng)中斷, 在 OBF、ACK、INTE 均為1時(shí) 置1(有效)。第7章 微型機(jī)接口技術(shù)A口方式1輸出時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)1010A口方式1輸出控制字110B口方式1輸出控制字PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0PB7PB0PC2PC1PC0INTEBPC2與門WRD7D0OBFBACKBINTRBB口方式1輸出時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)INTR 中斷請(qǐng)求信號(hào)在 OBF、ACK、INTE 均為時(shí),置1(有效)。 d. INTE 中斷允許:INTEA是C口輸出鎖存器的PC6,INTEB是C口輸出鎖存器的PC2,它們
45、分別控制A口和B口的中斷申請(qǐng)。 INTE=1 中斷允許, INTE=0 禁止中斷。(由C口置 /復(fù)位控制字設(shè)置)INTR 由8255A發(fā)出第7章 微型機(jī)接口技術(shù)方式1的輸出時(shí)序: 向工作在方式1下的輸出端口輸出數(shù)據(jù)時(shí), 有關(guān)信號(hào)的變化關(guān)系。PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0D7D0送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口WROBFINTRACK當(dāng)INTE=1時(shí) 第7章 微型機(jī)接口技術(shù)以中斷方式輸出數(shù)據(jù): CPU輸出數(shù)據(jù) CPU發(fā)出WR: (1) 數(shù)據(jù)寫到 8255A的端口 (2) 使OBF有效,表示輸出端口滿, 可作為外設(shè)的選通信號(hào),通知外設(shè)取數(shù)據(jù)。 (3
46、)清除中斷請(qǐng)求信號(hào)INTR 外設(shè)接收到數(shù)據(jù)后,發(fā)出ACK信號(hào): (1) ACK的下降沿使OBF變高, (2) 當(dāng)INTE=1, ACK的上升沿使INTR變高, 發(fā)出中斷請(qǐng)求,請(qǐng)求CPU輸出新的數(shù)據(jù)。PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0WROBFACK當(dāng)INTE=1時(shí) 送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口INTR第7章 微型機(jī)接口技術(shù)A口方式1輸出時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)1010A口方式1輸出控制字110B口方式1輸出控制字PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0PB7PB0PC2PC1PC0INTEBPC2與門WR
47、D7D0OBFBACKBINTRBB口方式1輸出時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)注意: 在方式1下,作為聯(lián)絡(luò)信號(hào)的外部引腳PC6、PC2,不受C口 按位置位/復(fù)位控制字控制,即對(duì)這些位的置位/復(fù)位不影響 這些引腳信號(hào)的輸入/輸出,而只在8255A內(nèi)部對(duì)INTE信號(hào) 起作用。第7章 微型機(jī)接口技術(shù)PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0WROBFACK當(dāng)INTE=1時(shí) 送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口INTR CPU輸出數(shù)據(jù) CPU發(fā)出WR: (1)數(shù)據(jù)寫到 8255A的端口 (2) 使OBF有效,表示輸出端口滿, 可作為外設(shè)的選通信號(hào),通知外設(shè)取數(shù)據(jù)。 外設(shè)接受到數(shù)據(jù)后
48、,發(fā)出ACK信號(hào): (1) ACK的下降沿使OBF變高, (2)在主程序中CPU 查詢OBF,若其為高電平,數(shù)據(jù)已取走, 端口可接受新的數(shù)據(jù)。以查詢方式輸出數(shù)據(jù)(不作要求):PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0WROBFACK當(dāng)INTE=1時(shí) 送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口INTR注意:方式1輸出時(shí)共用到C口6個(gè)引腳,剩余2個(gè)引腳PC4、PC5可做 I/O位,或由C口置 /復(fù)位控制字決定其輸出。 查詢方法向8255的A口輸出數(shù)據(jù): 方式1的狀態(tài)信號(hào)可通過讀取端口C得到 OUTPUT:IN AL,PortC;讀方式1狀態(tài)信號(hào)TEST AL,80H ;
49、查A口的OBF,設(shè)備空閑?JE OUTPUT ;OBF=0,不空,等待。MOV AL,DATAS OUT PortA , AL ;OBF0,CPU輸出數(shù)據(jù)。第7章 微型機(jī)接口技術(shù)第7章 微型機(jī)接口技術(shù)8255A的輸入/輸出過程在中斷服務(wù)程序中完成,CPU通過IN/OUT指令輸入/輸出數(shù)據(jù)和I/O讀/寫信號(hào)。 信號(hào)一方面清除INTR,另一方面使接口握手線有效,通知外設(shè)寫入/接收數(shù)據(jù)。發(fā)出新的中斷請(qǐng)求,形成一個(gè)新的輸入/輸出過程??偨Y(jié):選通的輸入/輸出方式中斷與查詢處理中斷控制方式工作時(shí)方式1的狀態(tài)信號(hào)可通過讀取端口C得到。查詢方式工作時(shí) 南京航空航天大學(xué) 電子信息工程學(xué)院第7章 微型機(jī)接口技術(shù)
50、方式2(雙向傳輸) 僅A口有此方式與方式 0/方式 1的單向傳送不同,工作在方式 2下的端口,具有雙 向傳送功能。外設(shè)接口總線為雙向。端口工作在方式 2時(shí),C口的5根引腳作為端口的聯(lián)絡(luò)信號(hào); 是方式1下A口輸入、輸出聯(lián)絡(luò)信號(hào)的組合(見下圖)。C口未做聯(lián)絡(luò)信號(hào)的3個(gè)引腳,可作為B口在方式1下的聯(lián)絡(luò)線, 也可和B口一樣工作在方式0。由方式控制字決定其輸入/輸出。方式2下的時(shí)序?yàn)榉绞?輸入/輸出兩者的組合(略)。第7章 微型機(jī)接口技術(shù)8255中斷允許/禁止的設(shè)置: 例:A口 INTE=1 PC4=1 (方式1,2)輸入 or B口 INTE=1 PC2=1 (方式1) 輸入 MOV AL,09H ;
51、PC4=1 OUT 63H,AL ;寫入控制口 MOV AL,05H ;PC2=1 OUT 63H,AL ;寫入控制口 這時(shí)的位操作只影響INTE的狀態(tài),而不影響PC4引腳的狀態(tài)。1001000010100000方式2時(shí)端口C狀態(tài)可通過讀端口C得到:由工作方式可以有各種組態(tài)第7章 微型機(jī)接口技術(shù)4. 8255A應(yīng)用舉例例:由8255A的A口輸出控制一位共陽極數(shù)碼管,由C口的PC7PC4輸入 四位DIP開關(guān)的狀態(tài),根據(jù)開關(guān)的狀態(tài)值,在數(shù)碼管上顯示字型。 (1)數(shù)碼管 LED數(shù)碼管由8個(gè)發(fā)光二極管組成七段數(shù)碼和小數(shù)點(diǎn),結(jié)構(gòu)如圖。 (2)硬件連接第7章 微型機(jī)接口技術(shù)(3) 程序8255初始化控制字
52、:88H 8255方式0的應(yīng)用十六進(jìn)制到字型碼采用軟件譯碼方式。主要程序部分PORTA EQU 60HPORTB EQU 62HPORTC EQU 64HPCTRL EQU 66HSH_TAB DB 0C0H, ; 字型表DIS PROC MOV AL,88H OUT PCTRL,AL ;初始化8255 IN AL,PORTC ; 讀開關(guān)狀態(tài) MOV CL,4 SHR AL,CL ; 轉(zhuǎn)成低4位 LEA BX,SH_TAB XLAT SH_TAB ; 查表 OUT PORTA,AL ; 顯示輸出 RETDIS ENDP 南京航空航天大學(xué) 電子信息工程學(xué)院10001000;方便程序中使用第7章
53、微型機(jī)接口技術(shù)7.3.2 并行打印機(jī)接口應(yīng)用1. 打印機(jī)的主要接口信號(hào)與時(shí)序 D7D0:數(shù)據(jù)總線,雙向、三態(tài)。 STB:數(shù)據(jù)選通觸發(fā)脈沖(輸入),打印機(jī)在其上升沿讀入數(shù)據(jù)。 ACK:應(yīng)答脈沖(輸出),“低”表示數(shù)據(jù)已接受,并準(zhǔn)備接收下 一數(shù)據(jù)。常用作打印機(jī)的中斷申請(qǐng)信號(hào)。 BUSY:“高”表示打印機(jī)正“忙”(輸出),常用作狀態(tài)信號(hào)供查詢。端口A作為數(shù)據(jù)通道,方式0、輸出;由PC7讀入BUSY狀態(tài)、PC0輸出STB脈沖,端口C工作在方式0(上半部輸入、下半部輸出);2. 查詢方式打印字符串(以8255作為接口)第7章 微型機(jī)接口技術(shù)設(shè)8255端口地址為280H、281H、282H和283H。打印
54、子程序如下:BUFDB HELLO!DB 0DH,0AH ;回車,換行符的ASCII碼NUMEQU $-BUFPRINT PROC FARMOV DX,283H ;8255初始化:均為方式0MOV AL,10001000B ;A口輸出,C上半輸入/下半輸出OUT DX,ALMOV AL,00000001B ;初始PC0即STB=1,使用位控制。OUT DX,ALMOV SI,OFFSET BUFMOV CX,NUMNEXT:MOV DX,282H ;從C口讀入數(shù)據(jù),查PC7 IN AL,DX ;ALTEST AL,80H ;BUSY=1(忙)?JNZ NEXT 南京航空航天大學(xué) 電子信息工程學(xué)
55、院第7章 微型機(jī)接口技術(shù) 南京航空航天大學(xué) 電子信息工程學(xué)院MOV AL,SI ;PC7=0,不忙INC SIMOV DX,280HOUT DX,AL ;送出數(shù)據(jù) MOV DX,283HMOV AL,00000000B ;使STB=0OUT DX,ALNOP MOV AL,00000001BOUT DX,AL ;恢復(fù)STB=1,形成觸發(fā)脈沖LOOP NEXTRETPRINT ENDP注意:使用位控字產(chǎn)生PC0負(fù)脈沖時(shí),送控制端口而不是數(shù)據(jù)端口.3. 中斷方式打印字符串第7章 微型機(jī)接口技術(shù)PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0WROBFACK當(dāng)
56、INTE=1時(shí) 送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口INTRSTB :數(shù)據(jù)選通觸發(fā)脈沖(輸入),打印機(jī)在其上升沿讀入數(shù)據(jù)。 ACK :應(yīng)答脈沖(輸出),“低”表示數(shù)據(jù)已被接受、且打印機(jī)準(zhǔn)備好接收下一數(shù)據(jù)。常用作打印機(jī)的中斷申請(qǐng)信號(hào)。8255方式1時(shí)序與打印機(jī)時(shí)序并不完全吻合(OBF上升沿需要收到ACK后才有效)!第7章 微型機(jī)接口技術(shù)PA7PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7D0接口電路:端口A作為數(shù)據(jù)通道,工作在方式1、輸出;PC6 自動(dòng)作為ACK信號(hào)輸入端;PC3自動(dòng)作為INTR信號(hào)輸出端,連接至8259的IRQ2 (中斷類型 碼0AH,中斷向量放在0000:
57、0028H0000:002BH的4個(gè)單元中);打印機(jī)需要的數(shù)據(jù)選通信號(hào)STB由CPU控制PC0來產(chǎn)生。這時(shí)PC7未用,將其懸空。 南京航空航天大學(xué) 電子信息工程學(xué)院第7章 微型機(jī)接口技術(shù) 工作過程為: (1)設(shè)數(shù)據(jù)放在輸出緩沖區(qū),輸出字符時(shí),CPU通過對(duì)PC0置1/置0 命令使其輸出選通脈沖,在主程序中將數(shù)據(jù)通過端口A送打印機(jī)。 (2)打印機(jī)接收并打印字符后,發(fā)出ACK應(yīng)答信號(hào),此信號(hào)清除 8255的OBF信號(hào)(此處未用),并使8255A產(chǎn)生新的中斷請(qǐng)求。 (3)如果CPU的中斷是開放的,則響應(yīng)中斷,進(jìn)入中斷服務(wù)程序, 再輸出一個(gè)新的字符。 設(shè)8255A端口地址仍為280H283H。程序如下:
58、 IRQ EQU 0AH ; IRQ2 的中斷類型碼IMR1 EQU 0FBH; IRQ2開中斷(與)屏蔽字11111011BIMR2 EQU 04H; IRQ2關(guān)中斷(或)屏蔽字00000100BBUF DB HELLO! DB 0DH,0AH;回車,換行NUM EQU $BUFBUFPT DW ?;保存打印緩沖區(qū)當(dāng)前指針BUF_N DB NUM;打印字符計(jì)數(shù)器 : 南京航空航天大學(xué) 電子信息工程學(xué)院第7章 微型機(jī)接口技術(shù)PRI_INI PROC FAR ;初始化程序 CLI MOV DX,283H ;8255初始化:A口方式1、輸出, MOV AL,10100000B ;B口方式0,C口下
59、半部輸出(輸出PC0) OUT DX,AL MOV AL,00001101B ;設(shè)置PC6=1,允許8255A中斷 OUT DX,AL PUSH DS MOV AX,CS MOV DS,AX LEA DX,PRI_INT ;設(shè)置中斷向量 MOV AH,25H MOV AL,IRQ INT 21H IN AL,21H ;設(shè)置8259的中斷屏蔽寄存器 AND AL,IMR1 ;IRQ2開中斷 OUT 21H,AL POP DS STI ;開中斷第7章 微型機(jī)接口技術(shù) MOV DX,283H MOV AL,00000001B;初始STB=1 OUT DX,AL MOV SI,OFFSET BUF M
60、OV AL,SI;取第一個(gè)字符 INC SI;緩沖區(qū)指針指向第二個(gè)字符 MOV BUFPT,SI;保存緩沖區(qū)指針 MOV BUF_N,NUM1;在主程序中打印一個(gè),中斷 MOV DX,280H 子程序中打?。?NUM1)個(gè)。 OUT DX,AL; 送出第一個(gè)數(shù)據(jù),啟動(dòng)中斷服務(wù)。 MOV DX,283H MOV AL,00000000B;STB=0 OUT DX,AL NOP MOV AL,00000001B;STB=1 OUT DX,AL RETPRI_INI ENDP HH:HLTJMPHH第7章 微型機(jī)接口技術(shù)PRI_INT PROC FAR;中斷服務(wù)子程序 PUSH AX PUSH DX
溫馨提示
- 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. 人人文庫(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年高職第一學(xué)年(化妝品技術(shù))化妝品市場(chǎng)營(yíng)銷基礎(chǔ)綜合測(cè)試試題及答案
- 2025年大學(xué)大三(經(jīng)濟(jì)學(xué))計(jì)量經(jīng)濟(jì)基礎(chǔ)階段測(cè)試卷
- 2025年大學(xué)(臨床醫(yī)學(xué))內(nèi)科學(xué)試題及答案
- 2026年注冊(cè)公用設(shè)備工程師(給水排水專業(yè)案例考試下)試題及答案
- 2025年高職機(jī)電一體化技術(shù)(機(jī)電技術(shù)專題)試題及答案
- 2025年大學(xué)潛水運(yùn)動(dòng)與管理(潛水技術(shù))試題及答案
- 深度解析(2026)《GBT 17980.75-2004農(nóng)藥 田間藥效試驗(yàn)準(zhǔn)則(二) 第75部分殺蟲劑防治棉花蚜蟲》
- 深度解析(2026)《GBT 17884-1999費(fèi)率和負(fù)荷控制用電子式紋波控制接收機(jī)》
- 深度解析(2026)GBT 17454.1-2017機(jī)械安全 壓敏保護(hù)裝置 第1部分∶壓敏墊和壓敏地板的設(shè)計(jì)和試驗(yàn)通則
- 武漢職業(yè)技術(shù)學(xué)院《信息融合》2025-2026學(xué)年第一學(xué)期期末試卷
- 反邪教反滲透課件
- 社區(qū)商業(yè)綜合體商業(yè)計(jì)劃書
- DB11∕T 1831-2021 裝配式建筑評(píng)價(jià)標(biāo)準(zhǔn)
- 自身免疫性胰腺炎急性發(fā)作護(hù)理查房
- 2025年湖北省中小學(xué)教師招聘考試筆試試題(附答案)
- 紀(jì)檢辦案安全課件講義
- 機(jī)械三視圖培訓(xùn)課件
- 環(huán)衛(wèi)部門冬季安全作業(yè)培訓(xùn)課件
- 合成洗滌劑制造工作業(yè)指導(dǎo)書
- 托盤貨架培訓(xùn)課件
- 胎兒右位主動(dòng)脈弓伴鏡像分支超聲診斷
評(píng)論
0/150
提交評(píng)論