- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课题七 单片机双机通信 任务一 与PC通信 课题目标 通过本任务学习什么是计算机的通信,什么是 串口通信,什么是并口通信,学习用串行通信的方式实现单片机之间的信息交换,学会应用单片机的串行端口进行数据的输入/输出传送,能用串行通信实现数据传输。 课题分析 为了便于对串口的工作及串口程序的编写,本课题分为与PC通信和双机通信两个任务。 任务一 与PC通信 实现单片机通过串口电缆与PC相实现通信,将PC输出的字符全改为小写,并发回PC。 单片机与PC的数据交换,但二者的电平标准不同,单片机采用TTL电平,PC采用RS232标准接口电平,因而需要电平转换电路。其中MAX232芯片就是这类电路中的一种,具体电路见图7-1所示。 程序设计分析 if ((ch=A)(ch=Z)) ch=ch+a-A; 任务二 双机通信 如图7-2所示电路原理图中,要求在单片机系统中通过键盘输入数据,通过单片机的串口传输到另一个单机系统的串口,在串口接收另一个单片机发送的数据并在数码管上显示。 在图7-2中,键盘电路选择行列式矩阵键盘接在P2口;显示电路选择LED数码管动态显示电路,显示段码接P0口和位码接P1口;串行通信接口电路选择直接连接的插座, RXD、TXD与GND直接通过导线与另一单片机系统相连。 程序设计分析 由任务可知,对于一个单片机系统而言,要求程序要完成的功能一是将本机的按键通过串口用异步通信的方式发送出去,二是对接收到另一单片机传送到串口的数据,先保存下来,再送LED数码管依次显示出来。因此,程序将为分三个部分组成,其一是随时扫描键盘,如果有键按下,则调用串口发送程序;其二是串口接收程序,只要有数据到了,就执行数据接收程序,并把数据送到显示数组里;其三是动态显示程序。为了完成这三个并行任务,最简单的方法采用中断进行任务分配,将串口接收程序使用串口中断对输入的数据进行检测和接收,将动态显示程序使用定时中断完成,而键盘扫描则采用主程序实时检测,程序的流程框图如图7-3所示。下面就这三个部分的程序进行具体的分析。 一、串口接收程序 if (RI==1) { display_data[point++]=SBUF; if (point==8) point=0; RI=0; } 二、显示程序 用定时中断进行动态显示,其实质是利用定时中断产生每一个数码管显示延迟的时间。由于每次定时中断只能显示一位数字,所以需要设置全局变量来保存显示位置等信息。 三、键盘处理 void sendchar(unsigned char ch) { SBUF=ch; while(TI==0); TI=0; } 一、有关通信的基本概念 数据通信的基本方法有并行通信和串行通信两种。 一、有关通信的基本概念 ⑴ 字符格式 一帧字符位数的规定:数据位,校验位,起始位和停止位。 ⑵ 波特率 波特率是数据传送的速率,要求发送方和接收方都要以相同的数据传送速率工作。在异步通信中,波特率为每秒钟传送二进制数码的位数,以位/秒作为单位。 二、与串口控制相关的寄存器 ⑴ SCON SCON是可编程控制的,修改SCON的值,就可改变串口工作方式和工作状态,各位定义如下: 二、与串口控制相关的寄存器 ⑵ PCON PCON是电源控制寄存器,它只有其最高位与串口相关,即PCON的D7位SMOD作为串行口的波特率控制位,SMOD=1,波特率加倍, SMOD=0,则不加倍。 ⑶ 串口缓冲寄存器SBUF SBUF是由发送缓冲寄存器和接收缓冲寄存器两个单元组成,在单片机中占用同一个字节地址(99H),可同时发送和接收数据。单片机在处理时,由读/写指令来区别两个单元,因而不会出现读写冲突和错误。 * * 任务二 双机通信 本课题的任务是将两个独立的单片机系统用连接线进行连接,使用串行通信进行数据传送。 作为演示的系统,在其中一个单片机系统中通过键盘输入数据,通过单片机的串口传输到另一个单机系统的串口,并在另一个单片机中显示所输入的数据。 要实现两个单片机系统之间的通信,首先要考虑的是两个系统之间的信号的是如何传递问题,然后再考虑要传递的信号的用途问题。 任务目标 图7-1 串口电平转换电路 根据本任务的目标,要求单片机每接收到一个字符时,先作字符判断并转换,然
文档评论(0)