微机原理复习--8250

 
  
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

















































你可能感兴趣的:(微机原理)