一、实验目的与要求
了解8251的内部结构,工作原理;了解8251与8088的接口逻辑;掌握对8251的初始化编程方法,学会使用8251实现设备之间的串行通信。
二、实验逻辑原理图与分析
2.1 画实验逻辑原理图
AD0~AD15
ALE
WR#
RD#数据锁
存器
地址锁
存器
地址译
码器
8086
8253
D0~D7
OUT0
GATE0
CLK0
CS#
A0
A1
WR#
RD#
A0
A1
VCC
2M
D0~D7
C/D# TxC#
CS# RxC#
WR# TXD
RD# RXD
8251
RS-
232C
COM1
PC
RXD
TXD
2.2 逻辑原理图分析
8251A是可编程的串行通信接口芯片,它的主要特点如下:
①可用于串行异步通信,也可用于串行同步通信。
②对于异步通信,可设定停止位为1位、 1位半或2位,数据位可在5-8位之间选择。
③对于同步通信,可设为单同步、双同步或者外同步,同步
字符可由用户自己设定。
④异步通信的时钟频率可设为波特率的1倍、16倍或64倍。
⑤可以设定奇偶校验的方式,也可以不校验。
校验位的插入、检出及检错都由芯片本身完成。
⑥在异步通信时,波特率的可选范围为0~19.2千波特;在同步通信时,波特率的可选范围为0~64千波特。
⑦提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。
⑧接收、发送数据分别有各自的缓冲器,可以进行全双工通信。
8251A内除具有可读可写的数据寄存器外,还具有只可写的控制字寄存器和只可读的状态寄存器。
控制字寄存器寄存方式控制字和命令控制字。
三、程序分析
3.1程序功能
实现8251A与PC机的串行通讯,使用8253作分频器提供8251的收发时钟。
3.2程序分析
INIT_8253 PROC NEAR
MOV DX,W_8253_C
MOV AL,37H
OUT DX,AL
MOV DX,W_8253_T0
MOV AL,26H
OUT DX,AL
MOV AL,0
OUT DX,AL
上述程序段的功能:初始化8251,初始化控制字,起分频作用,波特率为4800,BCD码计数。
MOV DX,CTL_ADDR
MOV AL,7EH
OUT DX,AL
上述程序段的功能:初始化8251,进行异步传输,波特率系数为16,8个数据位,一个停止位,偶校验。
Receive_Group PROC NEAR
LEA DI,Receive_Buffer
Receive_Group1:CALL Receive_Byte
STOSB
LOOP Receive_Group1
RET
Receive_Group ENDP
上述程序段的功能:接受一组数据,CX--接受数目,应用存串指令STOSB,从“接受一个字节”AL寄存器中的内容存到DI所指向的接受缓冲寄存器中。
DLTIME PROC NEAR
MOV CX,10
LOOP $
RET
DLTIME ENDP
上述程序段的功能:延时,由于8251工作速度慢,所以每送一个控制字,得等待一会。
四、实验数据和结果分析
4.1 实验结果数据
发送缓冲区的数据:fsds13
接收缓冲区:fsds13
4.2 结果数据分析
向8251发送数据fsds13,接收一批数据fsds13,由程序代码Receive_Buffer DB 10 DUP(0),Send_Buffer EQU Receive_Buffer可知,在8251通信正确下,发送缓冲区和接受缓冲区的内容一致。
五、实验问题分析、思考题与小结
5.1实验问题分析、思考题
在实验课上,老师向我们提出是如何接收一组数据的,通过查阅书籍和同学们一起讨论,发现是先接受一个字节,并存入AL 寄存器中,再查看其是否接受完毕,若接受完毕,则AX/AL中数
存入内存单元。
5.2实验小结
通过分支实验,使我了解了8251的内部结构,工作原理;
还了解了8251与8088的接口逻辑;并掌握对8251的初始化编程方法,和学会使用8251实现设备之间的串行通信。
得分(百分制)。