微机原理复习--8250

本文深入探讨了8250 UART的内部寄存器,包括发送保持、接收缓冲、通信状态等多个寄存器的作用及地址,并介绍了其初始化编程的关键步骤。



8250内部寄存器

1.发送保持寄存器(3F8H/2F8H)

只有在发送保持寄存器空闲时,CPU才能写入数据

2.接收缓冲寄存器(2F8H/2F8H)

3.通信线状态寄存器(3FDH/2FDH)

D0:1-表示接收器已接收到一帧完整的数据,并已转换成并行数据,存入接收缓冲器;
D1~D4:只要有一位为1,在中端允许的情况下,8250内部将产生“接收数据错”,当CPU读取状态寄存器后,自动复位
D5:发送保持寄存器空闲标志位:1-CPU可以写入新数据,当新数据送入发送保持寄存器后,D5为0.
D6:发送移位寄存器空闲标志位:1-表示一帧数据已发完,当新数据有发送保持寄存器移入发送移位寄存器,该位为0.
D7:恒为0,。
只有当D0 = 1时,CPU才能读数据
只有当D5 = 1,或D6 = 1时,CPU才能写数据
eg :CPU查询通讯线状态寄存器进行接收和发送数据的程序段:
SCAN:
 
MOV   DX,3FDH
IN AL,DX
TEST AL,00011110B
JNZ ERR
TEST AL,01H
JNZ RECEIVE
TEST AL,20H
JNZ TRAS
JMP SCAN
ERR: ......
RECEIVE; ......
TRAS: ......




4.中断允许寄存器(3F9H/2F9H)

5.中断识别寄存器(3FAH/2FAH)

6.调制解调器寄存器(3FCH/2FCH)

7.除数寄存器(高8位3F9H/2F9H,低8位3F8H/2F8H)

8.通信线控制寄存器(3FBH/2FBH)

9.调制解调器寄存器(3FEH/2FEH)


8250的初始化编程

1-设置寻址位:80H->通信线控制寄存器,使寻址位为1.
2-将除数高8位/低8位->除数寄存器高8位/低8位,确定通信速率。
3-将D7 = 0的控制字写入通信线控制寄存器,规定一帧数据的格式
4-设置中断允许控制字
0-查询方式
1-中断方式 1-
5-设置调制解调器控制寄存器
中断方式 D3 = 1,允许8250送出中断请求信号
查询方式 D3 = 0,
内环自检 D4 = 1,
正常通信 D4 = 0。

eg:编写子程序,采用直接对端口操作的方式对PC系列机主串口进行初始化。要求:
1.通信速率 = 1200波特,一帧数据包括:8个数据位,1个停止位,无校验。
2.采用查询方式,完成内环自检。

I8250 PROC
MOV DX,3FBH
MOV AL,80H
OUT DX,AL
MOV DX,3F9H
MOV AL,0
OUT DX,AL
MOV DX,3F8H
MOV AL,60H
OUT DX,AL
MOV DX,3FBH
MOV AL,03H
OUT DX,AL
MOV DX,3F9H
MOV AL,0
OUT DX,AL
MOV DX,3FCH
MOV AL,10H
OUT DX,AL
RET
I8250 ENDP

















































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值