8251A串行通信接口实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.5 8251A串行通信接口实验
4.5.1 实验目的
1、了解串行通信的一般原理及RS-232C串行接口标准。
2、了解串行接口芯片8251 A的工作原理和使用方法。
3、掌握串行接口芯片8251A的编程方法。
4.5.2 实验预习要求
1、复习串行通信的有关知识。
2、复习8251A的工作原理、控制端口和数据端口的作用、8251A初始化方法等有关内容。
3、预先编写好实验程序。
4.5.3 实验内容
1、按图4.5-1连接线路。图中8251A插在实验台的通用插座D中。
2、编写程序,接收键盘输入的一个字符,将其ASCII码值加1后通过8251A发送出去,再接收回来在屏幕上显示,实现自发自收。主机传送和接收数据均采用查询方式实现。
1、本实验中8251A的片选信号CS接至I/O地址2B8H~2BFH插孔,因此,8251A的控制口地址为2B9H,
数据口地址为2B8H。8253的片选信号CS接至I/O地址280H~287H插孔,请参阅“4.1 8253可编程定时器/计数器实验”一节。
2、由8253程控产生输出的方波OUT0用来作为8251A的收/发时钟R X C/T X C。CLK0与实验台提供的
1MHz时钟信号相连。GA TE0接+5V。CTS必须接低电平,8251A才能向外发送数据。R X D和T X D 连在一起,使8251A工作于自发自收方式。
3、8253计数器的计数初值=时钟频率/(波特率⨯波特率因子)。本实验中时钟频率接1MHz,波特率若
选1200,波特率因子若选16,则计数器初值为52。
图4.5-1
11
21
10
1MHz
+5V
OUT0
GATE0
CLK0
CS
U5 8253
280H~
D0 TxD
D1
D2 RxD
D3
D4 TxRDY
D5
D6 RxRDY
D7
8251A CTS
CS
RD VCC
WR
C/D GND
RESET
CLK
T
x
C
L
K
R
x
C
L
K
27
D0
28
D1
1
D2
2
D3
5
D4
6
D5
7
D6
8
D7
11
2B8H~
13
IOR
10
IOW
12
A0
21
RESET
20
19
3
15
14
17
4
26
+5V
9
2
5
9
4、主机发送、接收数据均采用查询方式。查询方式进行串行通信的基本思路是:CPU循环从控制端口
读取状态字,根据当前状态字的有关位来判定是否要接收或发送字符。
5、为了使信息被可靠地写入8251A的控制端口或数据端口,在使用OUT指令向8251A写入信息时,
要有一定时间的延迟;在对8251A进行初始化编程以前,应首先使8251A复位,具体初始化流程见教材“8.3.4 8251A初始化编程”一节。
6、实验程序流程图如图4.5-2所示。Esc键的ASCII m码值为1BH(27)。
4.5.5 实验报告要求
1、根据流程图编写实验程序,并说明在实验过程中遇到了哪些问题,是如何处理的。
2、总结8255A工作方式1的特点及使用方法。
3、写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。
图4.5-2 程序流程图
开始
结束
8253初始化
TxRDY为1吗?
Y
N
8251A复位
8251A初始化
8251A控制口读状态字
从键盘接收一个字符
将键入字符的ASCII码值加1
是Esc键吗?
通过8251A数据口发送字符
从8251A控制口读状态字
DxRDY为1吗?
将接收到的字符显示在屏幕上
从8251A数据口接收数据
Y
N
N
Y