两台8086电脑通过两片8251进行串口通信 ,电脑A和电脑B 的8251起始地址为均为 2B8H,使用异步通信,A 向 B发送数据。请 分别写出两片8251A的初始化程序。 注意,只要写出初始化程序即可,不需要写 传输数据的代码。
时间: 2024-10-16 15:05:18 浏览: 0
两台8086计算机通过8251串口芯片进行异步通信的初始化步骤通常涉及设置波特率、数据位、停止位以及奇偶校验等参数。以下是两片8251A初始化程序的大致框架:
**8251A在电脑A的初始化程序**:
```assembly
; 首先,设置8251A的基本寄存器地址
MOVI AX, 2B8H ; 设置端口地址偏移,即I/O空间的基地址
MOV DX, AX ; DX存储I/O空间基地址
; 初始化T1(发送端)
MOV AL, 03CH ; T1模式选择,允许波特率发生器工作
OUT DX+3, AL ; 发送波特率控制字 (BRGH=0, BRGL=1)
MOV AL, 000Bh ; 波特率设置为9600 Baud (115200/12=9600), 后4位为DLAB=1
OUT DX+1, AL ; 数据位长度设置
MOV AL, 0003h ; 无错误检测,1位停止位
OUT DX+0, AL ; 控制字寄存器设置
; 开启接收端,清空中断标志
MOV AL, 0003h ; RXEN = 1, TXEN = 1, DLAB = 0
OUT DX+3, AL ; 写入控制字寄存器
IN AL, DX+4 ; 清除中断标志
OUT DX+4, AL
; 接下来设置电脑A的数据发送缓冲区和接收缓冲区
; ... (这里仅列出初始化部分,实际代码会包括设置内存地址和长度)
; 最后,启用中断
MOV AL, 0013h ; 允许RX和TX中断
OUT DX+3, AL ; 写入控制字寄存器
```
**8251A在电脑B的初始化程序**:
```assembly
; 电脑B的8251A初始化类似,只需更改地址和接收参数
; ... (注意地址2B8H应更改为电脑B对应的实际地址)
```
在实际应用中,还需要确保两个系统的波特率同步,并且需要编写适当的中断处理程序来读取和处理接收到的数据。