单片机应用技术7 单片机双机通信.pptVIP

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

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档