ch7常用接口芯片陳裕國(guó)_第1頁(yè)
ch7常用接口芯片陳裕國(guó)_第2頁(yè)
ch7常用接口芯片陳裕國(guó)_第3頁(yè)
ch7常用接口芯片陳裕國(guó)_第4頁(yè)
ch7常用接口芯片陳裕國(guó)_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7章常用接口芯片

7.1可編程定時(shí)計(jì)數(shù)器8253

7.2可編程并行接口8255

7.3可編程串行通信接口8250

思考題、作業(yè)題(1)8253的功能(2)8253的內(nèi)部結(jié)構(gòu)及引腳(3)8253的控制字(4)8253的工作方式(5)8253的應(yīng)用

7.1可編程定時(shí)計(jì)數(shù)器8253

返回主要功能:1、一片8253上有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道,可作為定時(shí)器或計(jì)數(shù)器使用;2、每個(gè)計(jì)數(shù)器都可設(shè)定為按照二進(jìn)制或二進(jìn)制編碼的十進(jìn)制(BCD)計(jì)數(shù);3、每個(gè)通道有6種工作方式,可由程序設(shè)置和改變。8253的功能返回一、內(nèi)部結(jié)構(gòu)1)與CPU接口部分2)內(nèi)部控制部分3)三個(gè)計(jì)數(shù)器部分8253的內(nèi)部結(jié)構(gòu)及引腳下頁(yè)數(shù)據(jù)總線緩沖器讀/寫控制邏輯控制寄存器計(jì)數(shù)器0計(jì)數(shù)器1計(jì)數(shù)器2OOOCLK2GATE2OUT2D0D7~RDWRA0A1CSCLK1GATE1OUT1CLK0GATE0OUT01)與CPU接口部分包括:數(shù)據(jù)總線緩沖器——8位雙向三態(tài)緩沖器,它是8253與CPU數(shù)據(jù)總線的接口。讀/寫控制邏輯

——負(fù)責(zé)接收CPU輸入的地址信號(hào)和讀/寫、復(fù)位控制信號(hào),完成對(duì)8253內(nèi)部功能的控制和操作。8253的內(nèi)部結(jié)構(gòu)及引腳返回2)內(nèi)部控制部分8253內(nèi)部的控制字寄存器:控制字寄存器存放初始化時(shí)由CPU寫入8253的控制字。該控制字定義了每個(gè)通道的工作??刂谱旨拇嫫髦荒軐懭耄荒茏x出。8253的內(nèi)部結(jié)構(gòu)及引腳返回8253的內(nèi)部結(jié)構(gòu)及引腳返回

計(jì)數(shù)器N計(jì)數(shù)初值寄存器高8低8減1計(jì)數(shù)器輸出鎖存寄存器D0D7~CLKOUTGATE寫初值到初值寄存器CLK的上升沿和下降沿來(lái)時(shí),初值寄存器減計(jì)數(shù)器減計(jì)數(shù)到0,OUT產(chǎn)生輸出輸出鎖存寄存器可以保證在計(jì)數(shù)期間準(zhǔn)確讀數(shù)減計(jì)數(shù)器觸發(fā)控制自動(dòng)重裝載地址:PORT+i寫:計(jì)數(shù)初值寄存器讀:輸出鎖存寄存器二、引腳信號(hào)

——雙列24引腳1)與外部連接引腳——CLK、GATE、OUT2)與CPU相連的數(shù)據(jù)線——

D0~D7

3)CPU控制線——A1、A0、CS、RD、WR8253有四個(gè)端口地址:計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2、控制端口8253的內(nèi)部結(jié)構(gòu)及引腳返回1234567822231921D7D6D5D4D3D2D1D0RDWRA0A1CSCLK0GATE0OUT0

CLK1GATE1OUT1CLK2GATE2OUT2VCCGND911101514131816172412CPU控制線RD、WR——輸入信號(hào),讀/寫控制信號(hào)。CS——8253的片選信號(hào)。由系統(tǒng)地址總線高位譯碼確定,

與A1A0組成8253的端口地址。A1、A0——輸入信號(hào),用以選擇8253內(nèi)部不同端口。

CSA1A0計(jì)數(shù)器

000計(jì)數(shù)器0001計(jì)數(shù)器1010計(jì)數(shù)器2011控制端口

8086系統(tǒng)中,8253的A1A0應(yīng)與系統(tǒng)地址總線的A2A1相連,若8253的D7~D0與系統(tǒng)數(shù)據(jù)線低8位相連,則系統(tǒng)地址線A0應(yīng)為0。8088系統(tǒng)中,

A1A0與系統(tǒng)地址總線的A1A0相連。8253的內(nèi)部結(jié)構(gòu)及引腳返回8253的控制字返回控制字和初始化D0D1D2D3D4D5D6D7BCDM0M1M2RW0RW1SC0SC1工作方式選擇000:方式0001:方式1010:方式2101:方式5......*計(jì)數(shù)值寫入順序*00:計(jì)數(shù)器鎖存01:寫低8位,高8位為010:寫高8位,低8位為011:先寫低8位,后寫高8位計(jì)數(shù)器選擇00:計(jì)數(shù)器001:計(jì)數(shù)器110:計(jì)數(shù)器2A1A0=11B=3H,只寫計(jì)數(shù)值形式0:二進(jìn)制1:BCD碼初始化步驟:1寫控制字P+32寫計(jì)數(shù)初值例:設(shè)系統(tǒng)中的8253的端口地址為40H~43H。該8253各計(jì)數(shù)器處于如下工作方式:計(jì)數(shù)器0-工作在方式0,計(jì)數(shù)次數(shù)110,二進(jìn)制計(jì)數(shù);計(jì)數(shù)器1-工作在方式3,計(jì)數(shù)10,BCD計(jì)數(shù);計(jì)數(shù)器2-工作在方式2,計(jì)數(shù)20000,二進(jìn)制計(jì)數(shù)。則計(jì)數(shù)器0控制字:00010000=10H,計(jì)數(shù)值6EH計(jì)數(shù)器1控制字:01100111=67H,計(jì)數(shù)值10H計(jì)數(shù)器2控制字:10110100=0B4H,計(jì)數(shù)值4E20H8253的控制字下頁(yè)初始化程序:MOV AL, 10H;計(jì)數(shù)器0初始化OUT 43H, ALMOV AL, 6EHOUT 40H, ALMOV AL, 67H;計(jì)數(shù)器1初始化OUT 43H, ALMOV AL, 10HOUT 41H, ALMOV AL, 0B4H;計(jì)數(shù)器2初始化OUT 43H, ALMOV AX, 4E20HOUT 42H, ALMOV AL, AHOUT 42H, AL8253的控制字返回——6種工作方式原則:

1)控制字CW寫入計(jì)數(shù)器,所有的控制邏輯電路立即復(fù)位,輸出端進(jìn)入初始狀態(tài)。2)初始計(jì)數(shù)值寫入后,經(jīng)過(guò)一個(gè)CLK脈沖,才由計(jì)數(shù)初值寄存器CR送入計(jì)數(shù)執(zhí)行部件CE開始計(jì)數(shù)。在輸入脈沖CLK的下降沿,計(jì)數(shù)器作減1計(jì)數(shù)。3)在輸入脈沖CLK的上升沿,門控信號(hào)GATE被采樣。不同的工作方式,GATE信號(hào)的觸發(fā)方式有不同規(guī)定,電平觸發(fā)、邊沿觸發(fā)或兩種觸發(fā)方式都允許。8253的工作方式下頁(yè)方式0軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變低電平,計(jì)數(shù)結(jié)束OUT輸出高電平。(計(jì)數(shù)結(jié)束中斷)下頁(yè)方式2軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,計(jì)數(shù)到最后一個(gè)CLK時(shí)OUT輸出負(fù)脈沖,并連續(xù)重復(fù)此過(guò)程。(頻率發(fā)生器)(軟啟動(dòng))下頁(yè)方式3軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,然后OUT連續(xù)輸出方波(方波發(fā)生器)前N/2或(N+1)/2個(gè)CLK,OUT為高,后N/2或(N-1)/2個(gè)CLK,OUT為低。下頁(yè)8253的工作方式下頁(yè)1、方式0——計(jì)數(shù)結(jié)束中斷

WRN=4初始低電平43210OUT計(jì)數(shù)到0產(chǎn)生高電平寫入計(jì)數(shù)值開始計(jì)數(shù)計(jì)數(shù)值一次有效2、方式1——可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器

WRGATEOUTN=332103210計(jì)數(shù)值寫入計(jì)數(shù)值不計(jì)數(shù)GATE觸發(fā)開始計(jì)啥初始高電平GATE再次觸發(fā)再計(jì)數(shù)計(jì)數(shù)值多次有效硬件可重觸發(fā),單脈沖輸出。中途可修改初值,影響下次計(jì)數(shù)。GATE=18253的工作方式下頁(yè)3、方式2——頻率發(fā)生器

N=4WROUT4321(4)0321周期等于計(jì)數(shù)值NGATE=11個(gè)CLK自動(dòng)連續(xù)循環(huán)計(jì)數(shù)不用觸發(fā)計(jì)數(shù)值多次有效寫入計(jì)數(shù)值開始計(jì)數(shù)43210(4)3210543210計(jì)數(shù)值N=偶數(shù),輸出對(duì)稱的方波N24242N=奇數(shù),高電平N+12低電平N—125+125-12其它同方式24、方式3——方波發(fā)生器

WRGATEOUT8253的工作方式返回5、方式4——軟件觸發(fā)選通

WROUTN=33210GATE=1軟件觸發(fā)寫入計(jì)數(shù)值開始計(jì)數(shù)1個(gè)CLK計(jì)數(shù)值一次有效,再計(jì)數(shù)需在次寫入計(jì)數(shù)值WRN=3GATEOUT3210寫入計(jì)數(shù)值不計(jì)數(shù)GATE觸發(fā)計(jì)數(shù)3210計(jì)數(shù)值多次有效6、方式5——硬件觸發(fā)選通

軟件觸發(fā),非自動(dòng)重復(fù),脈沖輸出。【例】設(shè)置TIMER0的輸出OUT0為輸入時(shí)鐘的2345H分頻的方波,8253端口地址為90H。

方式3時(shí),TIMER0的輸出OUT0為方波,控制字為36H。TIMER0初始值2345H。MOVDX,90H+3MOVAL,36HOUTDX,ALMOVAL,45HMOVDX,90HOUTDX,ALMOVAL,23HOUTDX,AL8253的應(yīng)用下頁(yè)例:設(shè)定時(shí)器0、定時(shí)器1工作于方式2,外部提供一個(gè)時(shí)鐘,頻率f=2MHZ。要求定時(shí)器1每5ms產(chǎn)生一個(gè)脈沖,定時(shí)器0每5s產(chǎn)生一個(gè)脈沖。1).一個(gè)定時(shí)器的最大定時(shí)時(shí)間:

65536/(2*106)=0.032768s=32.768ms2).將定時(shí)器1的CLK1接2MHZ時(shí)鐘,計(jì)數(shù)初值:3).將定時(shí)器1的OUT1端接到定時(shí)器0的CLK0端,定時(shí)器0的計(jì)數(shù)初值:下頁(yè)地址譯碼CPUD7~D0AB8253兩個(gè)定時(shí)器串連使用每5ms產(chǎn)生一個(gè)脈沖RDWRIORIOWA15~A0CS下頁(yè)8253初始化程序:MOVAL,01110100B;1號(hào)定時(shí)器,方式2OUT43H,ALMOVAX,10000OUT41H,ALMOVAL,AHOUT41H,ALMOVAL,00110100B;0號(hào)定時(shí)器,方式2OUT43H,ALMOVAX,1000OUT40H,ALMOVAL,AHOUT40H,AL返回

(1)并行通信與接口

(2)8255的內(nèi)部結(jié)構(gòu)(3)8255的引腳(4)8255的工作方式(5)8255的控制字(6)8255的應(yīng)用

7.2可編程并行接口芯片8255返回

并行通信就是將8位或16位或32位數(shù)據(jù)的各位同時(shí)用幾根線進(jìn)行傳輸。傳輸速度快,信息率高。電纜要多,隨著位數(shù)與傳輸距離的增加,電纜的開銷會(huì)成為突出的問(wèn)題,所以,并行通信用在傳輸速率要求較高,而傳輸距離較短的場(chǎng)合。

8255A是一個(gè)通用的可編程的并行接口芯片,它有三個(gè)并行I/O口,又可通過(guò)編程設(shè)置多種工作方式,價(jià)格低廉,使用方便,可以直接與Intel系列的芯片連接使用,在中小系統(tǒng)中有著廣泛的應(yīng)用。

并行通信與接口返回8255A內(nèi)部結(jié)構(gòu)返回讀/寫控制邏輯A組控制B組控制端口A端口C高半部端口C低半部端口B數(shù)據(jù)總線緩沖器數(shù)據(jù)總線D0~D7RDWRA0A1RESETCSPC4~PC7PC0~PC3PB0~PB7CPU接口外設(shè)接口內(nèi)部邏輯內(nèi)部數(shù)據(jù)總線

A口:是一個(gè)獨(dú)立的8位I/O口,它的內(nèi)部有對(duì)數(shù)據(jù)輸入/輸出的鎖存功能。

B口:也是一個(gè)獨(dú)立的8位I/O口,僅對(duì)輸出數(shù)據(jù)的鎖存功能。

C口:可以看作是一個(gè)獨(dú)立的8位I/O口;也可以看作是兩個(gè)獨(dú)立的4位I/O口。也是僅對(duì)輸出數(shù)據(jù)進(jìn)行鎖存。數(shù)據(jù)端口A、B、C返回

這是兩組根據(jù)CPU命令控制8255A工作方式的電路,這些控制電路內(nèi)部設(shè)有控制寄存器,可以根據(jù)CPU送來(lái)的編程命令來(lái)控制8255A的工作方式,也可以根據(jù)編程命令來(lái)對(duì)C口的指定位進(jìn)行置/復(fù)位的操作。

A組控制電路用來(lái)控制A口及C口的高4位;

B組控制電路用來(lái)控制B口及C口的低4位。

A組和B組的控制電路返回?cái)?shù)據(jù)總線緩沖器

8位的雙向的三態(tài)緩沖器。作為8255A與系統(tǒng)總線連接的界面,輸入/輸出的數(shù)據(jù),CPU的編程命令以及外設(shè)通過(guò)8255A傳送的工作狀態(tài)等信息,都是通過(guò)它來(lái)傳輸?shù)?。讀/寫控制邏輯讀/寫控制邏輯電路負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過(guò)程。它接收片選信號(hào)及系統(tǒng)讀信號(hào)、寫信號(hào)、復(fù)位信號(hào)RESET,還有來(lái)自系統(tǒng)地址總線的口地址選擇信號(hào)A0和A1。

數(shù)據(jù)總線緩沖器、讀/寫控制邏輯

返回8255A的引腳信號(hào)返回

8255A是CPU與I/O設(shè)備間的接口,引腳信號(hào)可以分為兩組:一組是面向CPU的信號(hào)一組是面向外設(shè)的信號(hào)。

1.面向CPU的引腳信號(hào)及功能RESET:復(fù)位信號(hào),高電平有效,輸入,用來(lái)清除8255A的內(nèi)部寄存器,并置A口,B口,C口均為輸入方式;

D0-D7:8位,雙向,三態(tài)數(shù)據(jù)線,用來(lái)與系統(tǒng)數(shù)據(jù)總線相連;CS:片選,輸入,用來(lái)決定芯片是否被選中;RD:讀信號(hào),輸入,控制8255A將數(shù)據(jù)或狀態(tài)信息送給CPU;WR:寫信號(hào),輸入,控制CPU將數(shù)據(jù)或控制信息送到8255A;A1,AO:內(nèi)部口地址的選擇,輸入。這兩個(gè)引腳上的信號(hào)組合決定對(duì)8255A內(nèi)部的哪一個(gè)口或寄存器進(jìn)行操作。8255A內(nèi)部共有4個(gè)端口:A口,B口,C口和控制口,兩個(gè)引腳的信號(hào)組合選中端口見下表。

8255A的引腳信號(hào)返回8255A的引腳信號(hào)返回

CSRDWRA1A0操作數(shù)據(jù)傳送方式00100讀A口A口數(shù)據(jù)→數(shù)據(jù)總線00101讀B口B口數(shù)據(jù)→數(shù)據(jù)總線00110讀C口C口數(shù)據(jù)→數(shù)據(jù)總線01000寫A口數(shù)據(jù)總線數(shù)據(jù)→A口01001寫B(tài)口數(shù)據(jù)總線數(shù)據(jù)→B口01010寫C口數(shù)據(jù)總線數(shù)據(jù)→C口01011寫控制口數(shù)據(jù)總線數(shù)據(jù)→控制口

2.面向外設(shè)的引腳信號(hào)及功能

PA0~PA7:A組數(shù)據(jù)信號(hào),用來(lái)連接外設(shè);

PB0~PB7:B組數(shù)據(jù)信號(hào),用來(lái)連接外設(shè);

PC0~PC7:C組數(shù)據(jù)信號(hào),用來(lái)連接外設(shè)或者作為控制信號(hào)。8255A的引腳信號(hào)返回方式0:基本I/O方式方式1:選通I/O方式方式2:雙向I/O方式(只用于A口)8255A的工作方式返回

方式0:基本I/O方式

三個(gè)端口都可以由程序選定作輸入或者輸出。輸入為緩沖形式,輸出有鎖存功能。實(shí)現(xiàn)1:無(wú)條件傳送方式。實(shí)現(xiàn)2:查詢傳送方式。用,任選C口的某些位做連絡(luò)信號(hào)。8255A的工作方式返回8255A的工作方式下頁(yè)A口方式1,輸入INTEAPA0~PA7PC4PC5PC3STBAIBFAINTRAI/OPC6PC7ORD

方式1:選通I/O方式B口方式1,輸入INTEBPB0~PB7PC2PC1PC0STBBIBFBINTRBORDSTB:選通輸入,外設(shè)發(fā)出,表示數(shù)據(jù)輸入。IBF:輸入緩沖器滿,8255發(fā)出。INTE:內(nèi)部中斷允許,設(shè)置PC4=1可使INTEA=1INTR:中斷請(qǐng)求,當(dāng)INTE=1且IBF=1時(shí),INTR=1初始化名命令8255A的工作方式下頁(yè)方式1輸入的操作過(guò)程可查詢或中斷,固定C口做連絡(luò)信號(hào),不可以軟件調(diào)整。IBFSTBINTRRDSTB:外設(shè)發(fā)出,選通輸入,表示數(shù)據(jù)輸入。IBF:8255發(fā)出,輸入緩沖器滿,表示數(shù)據(jù)輸入過(guò)程正在進(jìn)行中。INTE:內(nèi)部中斷允許,設(shè)置PC4=1可使INTEA=1。INTR:8255發(fā)出,中斷請(qǐng)求,當(dāng)INTE=1且IBF=1時(shí),INTR=1,表示數(shù)據(jù)輸入有效。CPU8255外設(shè)

IBF=0,送數(shù)據(jù),STB

IBF

變?yōu)楦?/p>

STB

鎖存數(shù)據(jù)到緩沖器

INTE=1時(shí),INTRIN指令讀8255

RD時(shí),IBF,INTR8255與外設(shè)配合階段IBFSTBCPU與8255配合階段INTRRD8255A的工作方式下頁(yè)A口方式1,輸出B口方式1,輸出INTEAPA0~PA7PC6PC7PC3PC4PC5ACKAOBFAINTRAI/OOWRACK:外設(shè)應(yīng)答OBF:輸出緩沖器滿INTE:中斷允許,設(shè)置PC6=1,可使INTEA=1INTR:中斷請(qǐng)求,當(dāng)INTE=1且OBF=1時(shí),INTR=1INTEAPA0~PA7PC6PC7PC3PC4PC5ACKOBFINTRI/OOWR8255A的工作方式返回工作方式1輸出時(shí)聯(lián)絡(luò)信號(hào)線時(shí)序INTROBFACK來(lái)自CPU的數(shù)據(jù)PA,PBWR8255A的工作方式返回

方式2:雙向I/O方式(只用于A口,PC3~PC7做連絡(luò)信號(hào))PC3PC7PC6PC4PC3≥1&

INTE1

INTE2

&

RDWRPA7~PA0PC2~PC03INTRAOBFAACKASTBAIBFAI/O只有A口才有此方式。這時(shí),C口有5根線用作A口的應(yīng)答聯(lián)絡(luò)信號(hào),其余3根線可用作方式0,也可用作B口方式1的應(yīng)答聯(lián)絡(luò)線。

就是方式1的輸入與輸出方式的組合,各應(yīng)答信號(hào)的功能也相同。而C口余下的PC0~PC2正好可以充當(dāng)B口方式1的應(yīng)答線,若B口不用或工作于方式0,則這三條線也可工作于方式0。8255A的控制字下頁(yè)1、8255的寄存器地址:A1A0=0,1,2分別為A、B、C口讀寫地址,3為命令(控制)寄存器地址。2、8255的方式字(控制字)(寫入地址A1、A0=11)PC3~PC01:輸入0:輸出B口1:輸入0:輸出B組工作方式0:方式01:方式1PC7~PC41:輸入0:輸出A口1:輸入0:輸出A組工作方式00:方式001:方式11×:方式2D7=1特征位B組A組D0D1D2D3D4D5D6D7方式0:基本I/O方式(查詢時(shí),任選C口做連絡(luò)信號(hào))方式1:選通I/O方式(可查詢或中斷,固定C口做連絡(luò)信號(hào))方式2:雙向I/O方式(只用于A口,PC3~PC7做連絡(luò)信號(hào))8255A的控制字返回D0D1D2D3D4D5D6D71:置位0:復(fù)位C口選擇000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7任選(可1可0)D7=0(特征位)3、C口的置位/復(fù)位字(寫入A1A0=11)

只有C口才有,它是通過(guò)向控制口寫入按指定位置位/復(fù)位的控制字來(lái)實(shí)現(xiàn)的。C口的這個(gè)功能可用于設(shè)置方式1的中斷允許,可以設(shè)置外設(shè)的啟/停等。

8255A的應(yīng)用下頁(yè)例1:設(shè)8255端口地址為80H。A端口為輸入,B端口為輸出,PC7~4為輸入,PC3~0為輸出。

初始化時(shí)控制字為:10011000b=98h,

初始化程序指令MOVAL,98HOUT80H+3,AL

從A端口輸入一個(gè)字節(jié)的數(shù)據(jù)INAL,80H

從C端口輸入一個(gè)字節(jié)的數(shù)據(jù)INAL,80H+2;高四位有效向B端口輸出一個(gè)字節(jié)的數(shù)據(jù)OUT80H+1,AL;

向C端口輸出一個(gè)字節(jié)的數(shù)據(jù)OUT80H+2,AL;低四位有效向C端口的D0位輸出高電平:

位控制字:00000001b=01hMOVAL,98H;先送方式字OUT80H+3,ALMOVAL,01H;位控制字OUT80H+3,AL;再送位控制字

8255A的應(yīng)用下頁(yè)

例2原理圖如下。8255A的A口、B口均工作在方式0,A口作輸入(開關(guān)量),B口作輸出。開關(guān)合上,對(duì)應(yīng)二極管亮8255A的應(yīng)用下頁(yè)設(shè)8255A的A口地址為228HB口地址為229HC口地址為22AH控制口地址為22BH程序段:CODE

SEGMENT

ASSUME

CS:CODE,DS:DATASTART:MOV

AL,90H;方式控制字

MOV

DX,22BH

OUT

DX,AL

8255A的應(yīng)用下頁(yè)設(shè)8255A的A口地址為228HB口地址為229HC口地址為22AH控制口地址為22BH

MOV

DX,228H IN AL,DX

MOV

DX,229H

OUT

DX,AL

JMP START8255A的應(yīng)用下頁(yè)

例3利用8255A的A口方式0與微型打印機(jī)相連,將內(nèi)存緩沖區(qū)BUFF中的字符打印輸出。

工作流程:主機(jī)將要打印的數(shù)據(jù)送上數(shù)據(jù)線,然后發(fā)選通信號(hào)。打印機(jī)將數(shù)據(jù)讀入,同時(shí)使BUSY線為高,通知主機(jī)停止送數(shù)。這時(shí),打印機(jī)內(nèi)部對(duì)讀入的數(shù)據(jù)進(jìn)行處理。處理完以后使ACK有效,同時(shí)使BUSY失效,通知主機(jī)可以發(fā)下一個(gè)數(shù)據(jù)。

打印機(jī)數(shù)據(jù)傳輸時(shí)序

8255A的應(yīng)用下頁(yè)

由PC0充當(dāng)打印機(jī)的選通信號(hào),通過(guò)對(duì)PC0的置位/復(fù)位來(lái)產(chǎn)生選通。同時(shí),由PC7來(lái)接收打印機(jī)發(fā)出的“BUSY”信號(hào)作為能否輸出的查詢。8255A的應(yīng)用下頁(yè)

8255A的方式控制字為:10001000B即88HA口方式0,輸出;C口高位方式0輸入,低位方式0輸出

PC0置位控制字:00000001即01HPC0復(fù)位控制字:00000000即00H8255A的4個(gè)口地址分別為:00H,01H,02H,03H。

8255A的應(yīng)用下頁(yè)DADASEGMENTBUFFDB'Thisisaprintprogram!','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUFFMOVAL,88H;8255A初始化,A口方式0,輸出

OUT03H,AL;C口高位方式0輸入,低位方式0輸出

MOVAL,01H;OUT03H,AL;使PC0置位,即使選通無(wú)效WAIT:INAL,02HTESTAL,80H;檢測(cè)PC7是否為1即是否忙

JNZWAIT;為忙則等待

OUT03H,AL;產(chǎn)生選通

MOVAH,4CHINT21HCODEENDSENDSTART8255A的應(yīng)用返回

MOVAL,[SI]CMPAL,'$';是否結(jié)束符

JZDONE;是則輸出回車

OUT00H,AL;不是結(jié)束符,則從A口輸出

MOVAL,00HOUT03H,ALMOVAL,01HOUT03H,AL;產(chǎn)生選通信號(hào)

INCSI;修改指針,指向下一個(gè)字符

JMPWAITDONE:MOVAL,0DHOUT00H,AL;輸出回車符

MOVAL,00HOUT03H,ALMOVAL,01H

(1)串行通信與接口

(2)8250的功能(3)8250的內(nèi)部結(jié)構(gòu)和引腳(4)8250的工作過(guò)程(5)8250的使用

6.3可編程串行接口芯片8250返回一、串行通信二、串行通信方式三、數(shù)據(jù)傳送方式四、信號(hào)傳輸方式五、串行接口標(biāo)準(zhǔn)六、發(fā)送器與接收器串行通信與接口返回

是指利用一條傳輸線將數(shù)據(jù)一位位地順序傳送。特點(diǎn):是通信線路簡(jiǎn)單,利用電話或電報(bào)線路就可實(shí)現(xiàn)通信,降低成本,適用于遠(yuǎn)距離通信,但傳輸速度慢。傳送速率:衡量數(shù)據(jù)傳送的快慢用傳送速率,傳送速率的單位是波特率。

波特率:每秒鐘傳送的位數(shù),用b/s表示。波特率:是衡量數(shù)據(jù)傳送速率的指標(biāo)。表示每秒鐘傳送的二進(jìn)制位數(shù)。例如數(shù)據(jù)傳送速率為120字符/秒,而每一個(gè)字符為10位,則其傳送的波特率為10×120=1200字符/秒=1200波特。一、串行通信返回二、串行通信方式下頁(yè)

同步通信:收發(fā)時(shí)鐘一致,以一個(gè)字符序列為單位(長(zhǎng)度可選)。以同步字符做為開始。同步字符較驗(yàn)字符空閑起始位…...5~8數(shù)據(jù)位1/01/01/0011/0較驗(yàn)位停止位11空閑起始位

異步通信:收發(fā)時(shí)鐘可不一致,一個(gè)字符為單位,以起始位開始,停止位結(jié)束。

串行通信:分為同步通信(SYNC)與異步通信(ASYNC)兩種方式。二、串行通信方式下頁(yè)

1.異步通信及其協(xié)議異步通信以一個(gè)字符為傳輸單位,通信中兩個(gè)字符間的時(shí)間間隔是不固定的,然而在同一個(gè)字符中的兩個(gè)相鄰位代碼間的時(shí)間間隔是固定的。

通信協(xié)議(通信規(guī)程):是通信雙方約定的一些規(guī)則。傳送一個(gè)字符的信息格式:規(guī)定有起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位等,其中各位的意義如下:二、串行通信方式下頁(yè)①起始位:先發(fā)出一個(gè)邏輯”0”信號(hào),表示傳輸字符的開始。②數(shù)據(jù)位:緊接著起始位之后。數(shù)據(jù)位的個(gè)數(shù)可以是4、5、6、7、8等,構(gòu)成一個(gè)字符。通常采用ASCII碼。從最低位開始傳送,靠時(shí)鐘定位。③奇偶校驗(yàn)位:數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)數(shù)據(jù)傳送的正確性。④停止位:它是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?位、1.5位、2位的高電平。⑤空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒(méi)有數(shù)據(jù)傳送。

同步通信的規(guī)程有以下兩種:①面向比特(bit)型規(guī)程:以二進(jìn)制位作為信息單位?,F(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)大多采用此類規(guī)程。最典型的是HDLC(高級(jí)數(shù)據(jù)鏈路控制)通信規(guī)程。②面向字符型規(guī)程:以字符作為信息單位。字符是EBCD碼或ASCII碼。最典型的是IBM公司的二進(jìn)制同步控制規(guī)程(BSC規(guī)程)。在這種控制規(guī)程下,發(fā)送端與接收端采用交互應(yīng)答式進(jìn)行通信。二、串行通信方式返回2.同步串行通信及其規(guī)程同步通信以一個(gè)幀為傳輸單位,每個(gè)幀中包含有多個(gè)字符。在通信過(guò)程中,每個(gè)字符間的時(shí)間間隔是相等的,而且每個(gè)字符中各相鄰位代碼間的時(shí)間間隔也是固定的。同步通信的數(shù)據(jù)格式如圖所示

(a)單工方式(b)半雙工方式(c)全雙工方式(1)單工方式

只允許數(shù)據(jù)按照一個(gè)固定的方向傳送,即一方只能作為發(fā)送站,另一方只能作為接收站。(2)半雙工方式數(shù)據(jù)能從A站傳送到B站,也能從B站傳送到A站,但是不能同時(shí)在兩個(gè)方向上傳送,每次只能有一個(gè)站發(fā)送,另一個(gè)站接收。通信雙方可以輪流地進(jìn)行發(fā)送和接收。(3)全雙工方式

允許通信雙方同時(shí)進(jìn)行發(fā)送和接收。這時(shí),A站在發(fā)送的同時(shí)也可以接收,B站亦同。全雙工方式相當(dāng)于把兩個(gè)方向相反的單工方式組合在一起,因此它需要兩條傳輸線。

在計(jì)算機(jī)串行通訊中主要使用半雙工和全雙工方式。三、數(shù)據(jù)傳送方式返回根據(jù)數(shù)據(jù)傳送方向的不同有以下三種方式。如圖所示。

2.頻帶傳輸方式

傳輸經(jīng)過(guò)調(diào)制的模擬信號(hào)在長(zhǎng)距離通信時(shí),發(fā)送方要用調(diào)制器把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),接收方則用解調(diào)器將接收到的模擬信號(hào)再轉(zhuǎn)換成數(shù)字信號(hào),這就是信號(hào)的調(diào)制解調(diào)。四、信號(hào)傳輸方式下頁(yè)

1.基帶傳輸方式

在傳輸線路上直接傳輸不加調(diào)制的二進(jìn)制信號(hào),如圖所示。它要求傳送線的頻帶較寬,傳輸?shù)臄?shù)字信號(hào)是矩形波。四、信號(hào)傳輸方式返回

實(shí)現(xiàn)調(diào)制和解調(diào)任務(wù)的裝置稱為調(diào)制解調(diào)器(MODEM)。采用頻帶傳輸時(shí),通信雙方各接一個(gè)調(diào)制解調(diào)器,將數(shù)字信號(hào)寄載在模擬信號(hào)(載波)上加以傳輸。因此,這種傳輸方式也稱為載波傳輸方式。這時(shí)的通信線路可以是電話交換網(wǎng),也可以是專用線。常用的調(diào)制方式有三種:調(diào)幅、調(diào)頻和調(diào)相,分別如下圖所示。五、串行接口標(biāo)準(zhǔn)下頁(yè)

串行接口標(biāo)準(zhǔn):指的是計(jì)算機(jī)或終端(數(shù)據(jù)終端設(shè)備DTE)的串行接口電路與調(diào)制解調(diào)器MODEM等(數(shù)據(jù)通信設(shè)備DCE)之間的連接標(biāo)準(zhǔn)。1.RS-232C標(biāo)準(zhǔn)

RS-232C是一種標(biāo)準(zhǔn)接口,D型插座,采用25芯引腳或9芯引腳的連接器,如圖所示。

①信號(hào)線RS-232C標(biāo)準(zhǔn)有25根連線。只有以下9個(gè)信號(hào)經(jīng)常使用.引腳和功能分別如下:

TXD(第2腳):發(fā)送數(shù)據(jù)線,輸出。發(fā)送數(shù)據(jù)到MODEM。RXD(第3腳):接收數(shù)據(jù)線,輸入。接收數(shù)據(jù)到計(jì)算機(jī)或終端。五、串行接口標(biāo)準(zhǔn)下頁(yè)微型計(jì)算機(jī)之間的串行通信就是按照RS-232C標(biāo)準(zhǔn)設(shè)計(jì)的接口電路實(shí)現(xiàn)的。如果使用一根電話線進(jìn)行通信,那么計(jì)算機(jī)和MODEM之間的連線就是根據(jù)RS-232C標(biāo)準(zhǔn)連接的。其連接及通信原理如圖所示

(第4腳):請(qǐng)求發(fā)送,輸出。計(jì)算機(jī)通過(guò)此引腳通知MODEM,要求發(fā)送數(shù)據(jù)。

(第5腳):允許發(fā)送,輸入。發(fā)出作為對(duì)的回答,計(jì)算機(jī)才可以進(jìn)行發(fā)送數(shù)據(jù)。

(第6腳):數(shù)據(jù)裝置就緒(即MODEM準(zhǔn)備好),輸入。表示調(diào)制解調(diào)器可以使用,該信號(hào)有時(shí)直接接到電源上,這樣當(dāng)設(shè)備連通時(shí)即有效。CD(第8腳):載波檢測(cè)(接收線信號(hào)測(cè)定器),輸入。表示MODEM已與電話線路連接好。

如果通信線路是交換電話的一部分,則至少還需如下兩個(gè)信號(hào):

RI(第22腳):振鈴指示,輸入。MODEM若接到交換臺(tái)送來(lái)的振鈴呼叫信號(hào),就發(fā)出該信號(hào)來(lái)通知計(jì)算機(jī)或終端。

(第20腳):數(shù)據(jù)終端就緒,輸出。計(jì)算機(jī)收到RI信號(hào)以后,就發(fā)出信號(hào)到MODEM作為回答,以控制它的轉(zhuǎn)換設(shè)備,建立通信鏈路。五、串行接口標(biāo)準(zhǔn)下頁(yè)五、串行接口標(biāo)準(zhǔn)返回

GND(第7腳):地

②邏輯電平RS-232C標(biāo)準(zhǔn)采用EIA電平,規(guī)定:“1”的邏輯電平在-3V~-15v之間,“0”的邏輯電平在+3V~+15V之間。由于EIA電平與TTL電平完全不同,必須進(jìn)行相應(yīng)的電平轉(zhuǎn)換.TTL電平TTL電平RS—232C電平+12V-12V+5V發(fā)送器MC1488接收器MC1489六、發(fā)送器與接收器返回發(fā)送緩沖器接收緩沖器并串變換寄存器串并變換寄存器……...………..……..通信線路CPU發(fā)送數(shù)據(jù)CPU接收數(shù)據(jù)………...………..發(fā)送時(shí)鐘接收時(shí)鐘接收控制發(fā)送器接收器發(fā)送控制8250的基本性能1.單通道的異步通訊控制器;2.具有完善的MODEM接口。8250的功能返回8250的內(nèi)部結(jié)構(gòu)和引腳返回RLSDRIOUT1OUT2INTRPTDSRDRT數(shù)據(jù)總線緩沖器尋址及控制邏輯數(shù)據(jù)發(fā)送寄存器發(fā)送移位寄存器數(shù)據(jù)接收寄存器接收移位寄存器線路控制寄存器線路狀態(tài)寄存器除數(shù)寄存器高位除數(shù)寄存器低位MODE控制寄存器MODE狀態(tài)寄存器中斷允許寄存器中斷識(shí)別寄存器波特率發(fā)生器控制邏輯控制邏輯內(nèi)部數(shù)據(jù)總線D0~D7CS0CS1CS2A2A1A0ADSDISTRDISTRDOSTRDOSTRDDISMRSOUTSINXTAL2XTAL1BAUDOUTRCLKRTSCTS8250的內(nèi)部結(jié)構(gòu)和引腳返回

(1)發(fā)送數(shù)據(jù)保持寄存器THR

發(fā)送數(shù)據(jù)時(shí),CPU將數(shù)據(jù)寫入THR,再由8250的硬件送入發(fā)送移位寄存器TSR中,之后在發(fā)送時(shí)鐘驅(qū)動(dòng)下逐位將數(shù)據(jù)輸出到SOUT。

(2)接收數(shù)據(jù)緩沖寄存器RBR8250接收到一個(gè)完整的字符后,會(huì)把該字符從接收移位寄存器傳送到RBR。CPU可從RBR中讀出接收到的數(shù)據(jù)。8250的內(nèi)部結(jié)構(gòu)和引腳返回

(3)通信線路控制寄存器LCR

LCR主要用于設(shè)定串行通信所用數(shù)據(jù)格式,如數(shù)據(jù)位數(shù)、奇偶校驗(yàn)及停止位的多少等。通訊線路控制寄存器數(shù)據(jù)位數(shù)選擇005位016位107位118位停止位數(shù)選擇01位停止位12位停止位奇偶校驗(yàn)選擇XX0無(wú)奇偶校驗(yàn)位001奇校驗(yàn)011偶校驗(yàn)101校驗(yàn)位恒為1111校驗(yàn)位恒為0除數(shù)鎖存位1允許寫除數(shù)寄存器0允許尋址接收/發(fā)送數(shù)據(jù)寄存器及中斷允許寄存器

發(fā)送break狀態(tài)0正常1SOUT強(qiáng)制為低D7D6D5D4D3D2D1D0

(4)通信線路狀態(tài)寄存器LSR

用于標(biāo)識(shí)8250接收和發(fā)送數(shù)據(jù)通信過(guò)程中的狀態(tài)。

D7:不用,值為0。

D6:為1時(shí),表示發(fā)送移位寄存器TSR空。

D5:為1時(shí),表示發(fā)送保持寄存器THR空。

D4:線路break標(biāo)志。若出現(xiàn)結(jié)構(gòu)錯(cuò)、奇偶校驗(yàn)錯(cuò)、越限或者在一個(gè)完整的字符傳送時(shí)間里中收到的均為空閑狀態(tài),則此位置l。D3:結(jié)構(gòu)錯(cuò)標(biāo)志。當(dāng)接收到的數(shù)據(jù)停止位個(gè)數(shù)不正確時(shí),此位置1。

D2:奇偶校驗(yàn)錯(cuò)標(biāo)志。

D1:越限狀態(tài)標(biāo)志。

D0:此位為1時(shí)表示8250已接收到一個(gè)有效的字符,CPU可以從8250的接收數(shù)據(jù)寄存器中讀取。8250的內(nèi)部結(jié)構(gòu)和引腳返回8250的內(nèi)部結(jié)構(gòu)和引腳返回

(5)波特率設(shè)置寄存器DLR

由兩8位寄存器DLRH、DLRL構(gòu)成的16位寄存器。頻率為f0的外部基準(zhǔn)時(shí)鐘從XTAL1輸入,經(jīng)過(guò)分頻器獲得所需波特率B,分頻系數(shù)N存放在DLR寄存器中,波特率B和分頻系數(shù)N的關(guān)系如下N=f0/(l6×B)8250的內(nèi)部結(jié)構(gòu)和引腳返回

(6)MODEM控制寄存器MCR

用來(lái)設(shè)置聯(lián)絡(luò)線,對(duì)MODEM實(shí)施控制,其中高3位恒為0。

D4:用于本地環(huán)檢測(cè)控制。當(dāng)D4=1時(shí),SOUT為高電平狀態(tài),SIN將與外部設(shè)備分離,TSR的數(shù)據(jù)由8250內(nèi)部直接回送到RSR的輸入端,形成“本地環(huán)”。同時(shí)CTS、DSR、RI和RLSD與外設(shè)相應(yīng)線斷開,而在8250內(nèi)部分別與RTS、DTR、OUT1和OUT2連接,實(shí)現(xiàn)數(shù)據(jù)在8250芯片內(nèi)部的自發(fā)自收,實(shí)現(xiàn)8250的自檢。當(dāng)D4=0時(shí),8250正常工作。從環(huán)回測(cè)試轉(zhuǎn)到正常工作狀態(tài),必須對(duì)8250重新初始化。D3、D2:這兩位分別控制8250輸出線OUT2和OUT1。D1:為1時(shí),8250的輸出低電平,表示8250已準(zhǔn)備好發(fā)送數(shù)據(jù)。

D0:為1時(shí),使8250的輸出為低,表示8250準(zhǔn)備好接收數(shù)據(jù)。8250的內(nèi)部結(jié)構(gòu)和引腳返回

(7)MODEM狀態(tài)寄存器

MSRMSR的高4位是相應(yīng)CTS、DSR、RI和RLSD信號(hào)取反后的當(dāng)前值。

CPU讀MSR的低4位時(shí),把這4位同時(shí)清零,當(dāng)某位為1時(shí),表示從上次讀MSR后,相應(yīng)的應(yīng)答輸入信號(hào)發(fā)生了變化,這幾位還是MODEM狀態(tài)中斷的中斷源。MODEM狀態(tài)寄存器D7D6D4D3D2D1D0D50RICTSDSRRIRLSDCTSDSRRLSD8250的內(nèi)部結(jié)構(gòu)和引腳返回

(8)中斷允許寄存器IER中斷允許寄存器D7D6D4D3D2D1D0D5接收數(shù)據(jù)寄存器滿中斷發(fā)送數(shù)據(jù)寄存器空中斷接收線路狀態(tài)中斷Di1允許中斷0禁止中斷MODEM狀態(tài)中斷8250的內(nèi)部結(jié)構(gòu)和引腳返回

(9)中斷識(shí)別寄存器IIR000ID1ID00ID20中斷識(shí)別寄存器ID2ID1ID0中斷源優(yōu)先級(jí)000MODEM狀態(tài)中斷MSR(中D3~0)最低01發(fā)送數(shù)據(jù)寄存器空中斷(LSR中D5)低10接收數(shù)據(jù)寄存器滿中斷(LSR中D0)次高11接收線路中斷(LSR中D4~1)最高xx1無(wú)中斷

(1)數(shù)據(jù)發(fā)送

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論