单片机双机之间的串行通信设计.docVIP

  • 31
  • 0
  • 约9.83千字
  • 约 17页
  • 2019-09-22 发布于湖北
  • 举报
PAGE 专业方向课程设计报告 题目:单片机双机之间的串行通信设计 单片机双机之间的串行通信设计 一.设计要求: 两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。 方案论证: 方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。 方案二:整个系统的硬件设计与方案一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。 两种方式从设计上来说各有特色,而且两种方式都应该是可行的。方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。主从机之间的交流采用中断方式是一种高效且保护单片机的选择,但是相比之下本人对查询方式的理解更好一些。数码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。另外在软件编写上,采用C语言在后续设计中对硬件的考虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。 理论设计: 采用AltiumDesigner绘制的原理图(整图) 本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。 本设计的基本思路是通过控制口选择将要实现的功能, 然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一数据的发送过程,然后按照此过程不段循环,直到结束。 单片机最小系统:接上电源和地,晶振电路提供脉冲,加上复位电路,将EA接入高电电平选择片内程序存储器。这是一个单片机能够工作的最低设置。 4*4矩阵键盘:将矩阵键盘接入p1口通过按键扫描程序读写P1口从而判断有无安键按下,通过查键值程序确定其键值从而得到输入数据。这是整个系统的输入接口。 功能控制电路:控制键(图中为K3)被按下时p0.0为低电平,否则为高电平,这样就可以根据读入的p0.0的电平差别控制通信系统的功能。高电平时让从机显示接收到的数据,低电平从机更改波特率。 数据显示模块:译码程序将获得的数据译成可直接显示的段码输到p2口,用数码管显示。为防止单片机的带负载能力不足,本设计中加了上拉电阻使数码管显示更清晰。 波特率更改指示电路:在从机更改波特率之后同时给P1口写数是相应指示灯亮,指示此时两机之间通信的波特率为多少。 开始 开始 开始 开始 初始化,设置初始波特率及相应寄存器初始化,设置初始波特率及相应寄存器 初始化,设置初始波特率及相应寄存器 初始化,设置初始波特率及相应寄存器 等待主机握手N 键按下? 等待主机握手 N 键按下? 收OEH?Y 收OEH? Y NY调用发送程序准备发送数据 N Y 调用发送程序准备发送数据 回发02H回发01H发送呼叫信号0EH,并等待从机回答 回发02H 回发01H 发送呼叫信号0EH,并等待从机回答 等待主机发送数据并校验N 01H? 等待主机发送数据并校验 N 01H? N 无错?Y P1.0==1? N 无错? Y P1.0==1? 回发F0HYNY 回发F0H Y N Y 回发0FH对键值加校验位,加标志位,等待发送 对键值加校验位,发送 回发0FH 对键值加校验位,加标志位,等待发送 对键值加校验位,发送 NAcc.5==1?N N Acc.5==1? N Y更改波特率,及相关处理 等待从机回答 Y 更改波特率,及相关处理 等待从机回答 显示接收数据N0FH? 显示接收数据 N 0FH? Y 等待从机回答 Y 等待从机回答 返回 0FH? 返回 0FH? Y 返回 Y 返回 电路仿真及仿真结果分析: 控制键未被按下时,从机显示接收到到的数据指示灯未亮表明此时从机未设置波特率,以初始波特率工作控制键未被按下

文档评论(0)

1亿VIP精品文档

相关文档