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