8251a內(nèi)部結(jié)構(gòu)框圖
8251A是一種可編程的通用同步/異步接收發(fā)送器,通常作為串行通信接口使用,被廣泛應(yīng)用Intel80X86為CPU的微型計(jì)算機(jī)中。

8251a有幾個(gè)端口地址
8251a有兩個(gè)連續(xù)的端口地址,數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口合用同一個(gè)偶地址,而狀態(tài)端口和控制端口合用同一個(gè)奇地址。
8251A初始化編程流程及程序

例:8251A工作于異步方式,方式選擇控制字為11111011B,工作命令控制字為00010001B。其初始化程序?yàn)椋?/p>
…
MOV AL,0FBH ;8251A方式選擇字
OUT CONTR,AL
MOV AL,11H ;8251A操作命令字
OUT CONTR,AL
…
8251A的應(yīng)用舉例
例:微機(jī)系統(tǒng)中兩臺(tái)微機(jī)之間進(jìn)行雙機(jī)串行通信的硬件連接和軟件編程。
(1)要求
在甲乙兩臺(tái)微機(jī)之間進(jìn)行串行通信,甲機(jī)發(fā)送,乙機(jī)接收。要求把甲機(jī)上開(kāi)發(fā)的應(yīng)用程序(其長(zhǎng)度為2DH)傳送到乙機(jī)中去。雙方采用起止式異步方式,通信的數(shù)據(jù)格式為,字符長(zhǎng)度為8位,2位停止位,波特率因子為64,無(wú)校驗(yàn),波特率為4800。 CPU與8251A之間用查詢(xún)方式交換數(shù)據(jù),8251A的端口地址分配是:309H為命令/狀態(tài)口,308H為 數(shù)據(jù)口。
(2)分析
由于是近距離傳輸,因此可以不設(shè) MODEM,兩臺(tái)微機(jī)之間直接通過(guò)RS-232標(biāo)準(zhǔn)接口連接即可。同時(shí)是采用查詢(xún) I/O方式,故收/發(fā)程序中只需檢查發(fā)/收準(zhǔn)備好的狀態(tài)是否置位,即可收發(fā) l個(gè)字節(jié)。
(3)設(shè)計(jì)
①硬件連接
根據(jù)以上分析,把兩臺(tái)微機(jī)都當(dāng)作 DTE(數(shù)據(jù)終端設(shè)備),采用最簡(jiǎn)單的發(fā)送線(xiàn)TxD、接收線(xiàn) RxD和 地線(xiàn)GND三 根線(xiàn)連接就能進(jìn)行通信。采用8251A作為接口的主芯片再配置少量附加電路,如波特率發(fā)生器、 RS—232C 與TTL電平轉(zhuǎn)換電路、地址譯碼電路等就可構(gòu)成一個(gè)串行通信接口。
②軟件編程
由題意可知,接收和發(fā)送程序應(yīng)分別編寫(xiě),每個(gè)程序段中包括8251A初始化、狀態(tài)查詢(xún)和輸入/輸出幾部分。 對(duì)接收/發(fā)送方的8251A初始化時(shí),首先要確定其方式選擇控制字和工作命令控制字。根據(jù)題中的要求可有:
發(fā)送方的方式選擇控制字為11001111B=CFH,工作命令控制字為00111110B=37H
接收方的方式選擇控制字為11001111B=CFH,工作命令控制字為00010100B=14H
發(fā)送端的發(fā)送程序(略去 STACK和 DATA段)
CSEG SEGMENT
ASSUME CS:CSEG
TRA PROC FAR
START: MOV DX,309H ;控制口
MOV AL.00H ;空操作
OUT DX,AL
MOV AL,40H ;內(nèi)部復(fù)位
OUT DX,AL
NOP
MOV AL,0CFH ;方式字(異步,2位停止位,字符長(zhǎng)度為8位,無(wú)校驗(yàn),波特率因子為64)
OUT DX, AL
MOV AL,37H ;命令字(RTS、ER、RxE、DTR和 TxEN均置 1)
OUT DX, AL
MOV CX,2DH ;傳送字節(jié)數(shù)
MOV SI,300H ;發(fā)送區(qū)首址
L1: MOV DX,309H ;狀態(tài)口
IN AL, DX ;查狀態(tài)位 D。(TxRDY)=1?
TEST AL,38H ;查錯(cuò)誤
JNZ ERR ;轉(zhuǎn)出錯(cuò)處理
AND AL,01H
JZ L1 ;發(fā)送未準(zhǔn)備好,則等待
MOV DX,308H ;數(shù)據(jù)口
MOV AL,[SI] ;發(fā)送準(zhǔn)備好,則從發(fā)送區(qū)取1字節(jié)發(fā)送
OUT DX, AL
INC SI ;修改內(nèi)存地址
DEC CX ;字節(jié)數(shù)減 1
JNZ L1 ; 未發(fā)送完,繼續(xù)
ERR: (略)
MOV AX,4C00H ;已送完,回 DOS
INT 21H
TRA ENDP
CSEG ENDS
END START
接收方接收程序(略去 STACK和 DATA段)
SCEG SEGMENT
ASSUME CS:REC
REC PROC FAR
BEGIN: MOV DX,309H ;控制口
MOV AL,0AAH ;空操作
OUT DX, AL
MOV AL,50H ;內(nèi)部復(fù)位
OUT DX, AL
NOP MOV AL,0CFH ;方式字
OUT DX, AL
MOV AL,14H ;命令字(ER、RxE置1)
OUT DX, AL
MOV CX,2DH ;傳送字節(jié)數(shù)
MOV DI,400H ;接收區(qū)首址
L2: MOV DX,309H ;狀態(tài)口
IN AL, DX ;查狀態(tài)位 D2(RxRDY)=17
TEST AL,38H ;查錯(cuò)誤
JNZ ERR ;轉(zhuǎn)出錯(cuò)處理 .
AND AL, 02H
JZ L2 ;接收未準(zhǔn)備好,則等待
MOV DX,308H ;數(shù)據(jù)口
IN AL, DX ;接收準(zhǔn)備好,則接收1字節(jié)
MOV [DI], AL ;并存入接收區(qū)
INC DI ;修改內(nèi)存
LOOP L2 ;未接收完,繼續(xù)
ERR: (略)
MOV AX,4C00H ;已接收完,程序結(jié)束,退出
INT 21H ;返回 DOS
REC ENDP
CSEG ENDS
END BEGIN
-
8251A
+關(guān)注
關(guān)注
0文章
3瀏覽量
8476 -
發(fā)送器
+關(guān)注
關(guān)注
1文章
261瀏覽量
27055
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦

關(guān)于8251A的 89S52的編程問(wèn)題
關(guān)于8251A通信的問(wèn)題
Agilent E8251A,安捷倫 E8251A信號(hào)源
求購(gòu)Agilent E8251A-E8251A信號(hào)發(fā)生器廣東省上門(mén)
回收 E8251A 收購(gòu) E8251A
8251A編程字的相關(guān)資料分享
串行同步通信的應(yīng)用

基于單片機(jī)的雙機(jī)通信設(shè)計(jì)

基于FPGA的串行接口芯片的設(shè)計(jì)與應(yīng)用

8251a有何特點(diǎn)?在串行通信中作用_8251a的工作方式

8255端口地址如何確定_8255怎樣計(jì)算端口地址

EVAD8251 AD8251 評(píng)估板

評(píng)論