接口技术课程设计-双机串行通讯..doc
文本预览下载声明
一、设计题目
双机通过两台试验箱串行通讯
二、设计目的
1、掌握8088/86实验串行口通信的方法。
2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。
3、学习串行口通讯程序编写方法。
三、设计原理及方案
1、8251A的基本性能
8251A是可编程的串行通信接口芯片,基本性能有:
(1).两种工作方式:同步方式,异步方式。同步方式下,波特率为064K,异步方式下,波特率为0~19.2K。
(2).同步方式下的格式
每个字符可以用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。
(3).异步方式下的格式
每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率的1、16或64倍,用1位作为奇/偶校验。1个启动位。并能根据编程为每个数据增加1个、1.5个或2个停止位。可以检查假启动位,自动检测和处理终止字符。
(4).全双工的工作方式
(5).提供出错检测
2、8251A的内部结构
发送器由发送缓冲器和发送控制电路两部分组成。接收器由接收缓冲器和接收控制电路两部分组成。数据总线缓冲器,读/写控制电路,调制解调控制电路。
8251A内部结构图
3、8251外部引脚图
8251的外部引脚下图所示,共28个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。
8251外部引脚图
4、8251A的编程
编程的内容包括两大方面:
一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;
二是由8251A向CPU送出的状态字。
(1)、方式选择控制字(模式字)
方式选择控制字的格式如图所示。
(2)、操作命令控制字(控制字)
操作命令控制字的格式如下:
(3)、状态字
状态字的格式如下:
5、8251A的初始化
8251的初始化和操作流程下图所示。
8251初始化流程图
a)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。
b)如果模式字中规定了8251A工作在同步模式,
c)由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。
四、实现方法
1、程序流程图如下:
主程序
串口发送子程序
2、连线图
连线 连接孔1 连接孔2 1 KEY/LED_CS CS0 2 8251_CS CS1 3 8251_TxCLK 1MHz 4 8251_RxCLK 1MHz 5 8251_CLK 10MHz 6 甲方8251_TXD 乙方8251_RXD 7 甲方8251_RXD 乙方8251_TXD 8 甲方GND 乙方GND
3、8251A操作过程流程图
8251A操作过程流程图
4、试验程序(见附录)
五、实施结果
双机串行通信实现了数据的双项收发。在一台小键盘键入字符,在本机的LED数码显示管上显示出来,并由8251A的发送端发送给另一台的 8251A的接收端接收,然后在另一台LED数码显示器上显示出来。同样另一台也可做发送端发送字符。
六、改进意见及建议
本次课程设计是通过8251的收发功能将两个试验箱实现串行通讯,我们组顺利实现了两台机箱的同时发送和接收数据的双机通讯。而在本次试验中发送的一直都是一个字符而不能发送多位字符,我希望改进的是可以发送任意长短的字符,由用户自己定义。
七、个人所做贡献
在本次试验中我负责程序的查找、修改和调试,我们在网上查找,在本机实验程序中查找,修改,在一条一条指令的研究后,在询问了别人意见后,最后定下了附录里的这段程序。
八、设计体会
回顾起此次接口课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8251A芯片的使用,软件的应用技巧,对汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
十、附录
试验程序代码
显示全部