课题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。规定通信的硬件协议为:9600bps;信息格式为8个数据位,1个停止位,无奇偶校验位。PC机方面的软件编程主要是对异步通信适配器8250进行编程,从而来控制串行数据的传送格式和传送速率.单片机与PC的数据交换,但二者的电平标准不同,单片机采用TTL电平,PC采用RS232标准接口电平,因而需要电平转换电路。其中MAX232芯片就是这类电路中的一种,具体电路见图6-1所示。程序设计分析根据本任务的目标,要求单片机每接收到一个字符时,先作字符判断并转换,然后将字符通过串口发回PC机。本任务的附加条件,要求单片机本身需要设置串行口波特率设置为9600,选择模式1(无附加的奇偶校验位),即SCON需要设置的值为0X50,对应的T1应设置为模式2且TH1的值设置为0XFD。将字符中的大写字母转换为小写,首先应判断字符是否为大写字母,然后根据ASCII码的方式,加上小写字母与大写字母的差值就能完成转换,如下所示的语句:if((ch=A)(ch=Z))ch=ch+a-A;源程序#includereg52.h#defineucharunsignedcharvoidsend_char(ucharch)//通过串口发送一个字符{SBUF=ch;//将输出的内容送到串口缓冲寄存器,就相当于输出 while(TI==0);//等待输出完毕 TI=0;//将输出中断标志清0(必须手动清0)}voidmain(){/*串行口设置在9600波特率、方式1,允许接收*/SCON=0X50;PCON=0X00;TMOD=0X20;TL1=0XFD;TH1=0XFD;ES=1;//允许串口中断,采用中断方式处理串口接收EA=1;TR1=1;while(1){;}}voidserial()interrupt4//串口中断号为4{ucharch;ch=SBUF;//读入数据//将大写转换为小写if((ch=A)(ch=Z))ch=ch+a-A;send_char(ch);//发送处理后的数据TI=0;//清接收中断;}任务二双机通信任务目标 如图6-2所示电路原理图中,要求在单片机系统中通过键盘输入数据,通过单片机的串口传输到另一个单机系统的串口,在串口接收另一个单片机发送的数据并在数码管上显示。 在图6-2中,键盘电路选择行列式矩阵键盘接在P2口;显示电路选择LED数码管动态显示电路,显示段码接P0口和位码接P1口;串行通信接口电路选择直接连接的插座,RXD、TXD与GND直接通过导线与另一单片机系统相连。程序设计分析 由任务可知,要求程序要完成的功能一是将本机的按键通过串口用异步通信的方式发送出去,二是对接收到另一单片机传送到串口的数据,先保存下来,再送LED数码管依次显示出来。 因此,程序将为分三个部分组成,其一是随时扫描键盘,如果有键按下,则调用串口发送程序;其二是串口接收程序,只要有数据到了,就执行数据接收程序,并把数据送到显示数组里;其三是动态显示程序。为了完成这三个并行任务,最简单的方法采用中断进行任务分配,将串口接收程序使用串口中断对输入的数据进行检测和接收,将动态显示程序使用定时中断完成,而键盘扫描则采用主程序实时检测,程序的流程框图如图6-3所示。一、串口接收程序二、显示程序用定时中断进行动态显示,其实质是利用定时中断产生每一个数码管显示延迟的时间。由于每次定时中断只能显示一位数字,所以需要设置全局变量来保存显示位置等信息。三、键盘处理voidsendchar(unsignedcharch)//使用参数的方式传递准备发送的数据{ SBUF=ch;//将数据送到SBUF单元while(TI==0);//等待发送完毕,如果没发送完毕,则TI不为1。 TI=0;//手动清除TI标志} 在本任务中,采用了4×4的矩阵式键盘。所谓矩阵式键盘,也称为行列式键盘,它将若干个按键分

文档评论(0)

粱州牧 + 关注
实名认证
文档贡献者

资料收集自互联网,若有侵权请联系删除,谢谢~

版权声明书
用户编号:8036120077000004

1亿VIP精品文档

相关文档