欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    单片机串口通信的调试方法与技术.docx

    • 资源ID:3090231       资源大小:41.95KB        全文页数:11页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机串口通信的调试方法与技术.docx

    单片机串口通信的调试方法与技术单片机串口通信的调试方法与技术 摘 要:基于实际的教学和工程经验以及现代先进的软件技术,对单片机技术中经常用到的串口通信方法、串口的调试技术以及常见的问题进行了归类分析与总结,并提出相应的研究解决方法和参考实例。 关键词:单片机;串口;调试;仿真 中图分类号:TN915 文献标示码:A 引言 单片机的串行口在单片机的日常教学实践和实际的工程技术中,应用十分普遍,串口通讯在智能化产品中的技术地位十分重要,这使得单片机借助于RS232、RS485、CAN等总线技术可以与其它单片机、PC机、智能人机交互工具如触摸屏、TC35手机模块等组成小型的智能控制有线或无线网络。因此对单片机串行通信相关问题的调试在所难免。 1 传统的串口调试方法 通常的调试方法如图1所示,是将一个独立的单片机系统采用RS232总线在经过电平转换后连接到PC机的COM1或其它串行端的DB9接口,然后借助于安装在PC上的串口调试工具例如串口调试助手软件,对数据格式和波特率进行设置以后就可以进行调试。 GND RXD TXD 单片机 GND MAX232 电平转换 TXD RXD 电脑串口 a 电气连接 b 串口调试助手 图1 单片机串行口的传统调试方法 这种方法的好处是“真刀真枪”,能够锻炼实际的动手操作能力,能够实时获悉电路实际的工作状况。但这种方法的缺点也十分明显。首先要想用串口就必须具备一个完整的单片机系统、专用的串口线,硬件成本比较高;其次,实际调试起来还要在单片机与PC机之间频繁地插接,操作比较繁琐也费时费力;再者,如果单片机系统电路有故障或者操作不当产生的电源短路很容易烧坏计算机上的串口控制器芯片组。在实际当中笔者的许多同事和学生就有过这种遭遇,这会给我们带来不必要的麻烦。 另外对于笔记本电脑用户来说,通常情况都没有串行口,如果要调试串行口就必须借助于USB端口,使用USB转串口的接口电路扩展出一个串行口,这样的串行口必须安装相应的驱动程序,它根据用户每次使用的不同USB接口扩展出端口号不同的串行口。当然,可以在电脑的设备管理器中查询COM端口号,但这样的办法成本更高而且使用起来也不方便。 2 借助软件技术调试串口 在对串行口的学习和实际的工程测试中,单片机硬件电路往往并不是必须的,也不是学习和技术应用的重点,要解决的关键问题通常是对串口通信协议和数据的交互进行编程和测试。可以采用虚拟串口技术,不使用硬件照样可以又好又快地达到学习或者测试的目的,把 1 硬件成本和损失降到最低,也可以解决电脑的串行端口不够用的问题,因为理论上这种方法可以虚拟出无数多对串行口1。 2.1 电脑串行口的扩展 使用Virtual Serial Port Driver或者类似的其它软件可以扩展出无数对的RS232串口,这些端口是可以在单片机仿真软件或其它软件中随意使用的。如图2所示,COM1和COM2是电脑中原有的两个物理端口,COM3和COM4是虚拟出来的一对端口,即COM3和COM4是连接在一块的。使用的时候如果一个单片机使用COM3,另一个单片机或者串行口调试助手使用COM4,只要它们之间数据格式和波特率一致就可以互相通信了,使用起来和实际的COM1完全一样。 2.2 单片机串口仿真软件的选择 单片机技术发展到现在,出现了各种各样的单片机编程和仿真软件,如Keil、Multisim、图2软件虚拟出来的串口对 AltimDesigner、Proteus等。这里选择性能比较好的Keil与Proteus联合方式,进行的单片机串行口的学习和调试。 Keil是美国Keil Software公司出品的51系列单片机软件开发系统,Keil软件全Windows界面,生成的目标代码效率非常高2。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,是目前最好的单片机及其外围器件的仿真工具,它可以仿真MCS-51系列、PIC 、AVR等常用的MCU 及其外围电路3。 2.3 串口学习与调试的现代方法 U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161710018LED-BIBYXTAL2VCCR1D19RST293031PSENALEEAP116273849DCDDSRRXDRTSTXDCTSDTRRI a Proteus仿真串口 b COMPIM设置 图3 单片机串行口的仿真与调试 除了前面所讲的传统调试串行口的方法,下面的串行口实例和分析是基于上文用Virtual Serial Port Driver扩展出多对个虚拟串行口的基础上,例如扩展出了COM3和COM4串行口对,采用Proteus V7.4 SP3、KEIL uVision3 软件和C语言来进行。 首先安装好Proteus V7.4 SP3和KEIL uVision3软件,并对他们进行设置达到可以联合调用和仿真单片机程序。 其次,在Proteus软件中建立起一个单片机系统,如图3所示,添加COMPIM接口部件并对其进行设置,如选择COM3,波特率设置为9600-8-1-NONE模式。该虚拟电路结构简单,使用灵活,甚至不需要接电源、晶振,使用起来非常方便。因为虚拟的单片机和计算ERRORAT89C51COMPIM12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7 2 机的串行口部件电平一致不需要加MAX232等电平转换芯片。 基于以上的软件选择和设置,对串行口的调试和使用还可以有以下几种情形: 1)串行口调试助手与串行口调试助手之间的通信。 这种方法通常在验证虚拟的串行口功能是否正常、练习串行通讯,或者进行串行口调试工具的相关参数设置时,在电脑上同时打开两个串行口调试助手软件,分别使用COM3和COM4,在设置好相应的波特率等参数后进行信息的传送,以达到熟练使用串行口助手软件的目的。 还用一种功能比较少用但却非常有用,它涉及到字符格式和16进制格式的信息转换问题。比如想得到一串字符的unicode代码时,让串行口助手软件甲按字符格式发送,而让另一串行口助手软件乙按16进制格式显示,所见即所得,非常快捷。 2)虚拟的单片机与串口调试助手。 采用这种方法,可以练习使用单片机的串行口,或者调试人机交互的效果。在这种情况下,可以让虚拟的单片机使用图2中的COM3,调试助手软件使用COM4,其它的方法和步骤与传统方法完全一致,可以参考下面情形3的中断接收字节部分的代码,编译后下载到如图3a的单片机系统就可以与串行口调试助手交互通信,串行口调试助手发送一个数字,单片机就通过串行口接收并显示出来。 3)真实的单片机与虚拟的单片机间的通讯与调试。 这种方式显得尤为“神奇”,虚实结合,传统技术与仿真技术结合,避免只依重于某一方面而忽视另一方面,顾此失彼,可以达到很好的锻炼学习和使用效果。因为要用到实际的单片机系统,所以虚、实两个串行口必须使用已有的物理串行口,比如COM1。图3所示的电路中的单片机就可以通过COM1口实现与外部单片机的信息交互。下面就简要介绍该种情况下的串行口的仿真与调试方法。 首先,按照图3a搭建虚拟的单片机系统,其中的COMPIM部件也设置为使用COM1,如图3b所示,并设置数据传送格式为9600-8-1-NONE;其次,按照图1a的连接方法把具有相同电路结构的外部单片机系统连接到计算机的COM1端口。 经过以上的设置后,外部的单片机可以发送数据(0-9)到虚拟单片机并显示,也可以接收虚拟单片机发送的数据(0-9)并显示。将下面的代码编译生成BIN或者HEX类型的文件,分别下载到两个单片机运行就可实现这种功能。调试代码如下: #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit led=P00; #define seg7_1 P1/发送显示数码管1 #define seg7_2 P2/接收显示数码管2 uchar code table= 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/0-9字型码 void delay1s(void) /延时大约1S unsigned char i,j,k; for(k=40;k>0;k-) for(i=20;i>0;i-) for(j=248;j>0;j-); void Uart_SendChar(unsigned char dat) if(TI=1) /判断是否是发送中断 TI=0; /清除发送中断标志位 /发送一个字节 SBUF = dat; /待发送的数据写入缓冲区 while(!TI); /等待发送完成 TI = 0; /清零发送标志位 void ComBreak interrupt 4/中断接收字节 unsigned char RecvData; /定义接收变量 if(RI=1) /判断是否接收数据 RecvData=SBUF; /接收数据 seg7_2=RecvData; /显示接收到的数据 RI=0; /清除接收中断标志位 3 void main/主程序 uchar n; TMOD = 0x20; /波特率发生器采用定时器1,方式2 TH1 = 0xfd; /波特率为9600bps TL1 = 0xfd; SCON = 0x50; /串口工作方式1,允许接收 TR1 = 1; /启动波特率发生器 IE = 0x90; /打开中断开关 while(1) for(n=0;n<10;n+) /delay1s;在情形4中添加到甲或乙机 seg7_1= tablen;/显示发送的数据 SBUF=tablen;/把数字发往另一单片机 led=0; delay1s; led=1; delay1s; 实验现象:如图3a所示,系统上电后,单片机甲每隔1S钟向单片机乙发送0-9的数字,并在P1口的数码管1上显示,LED灯闪烁一次,同时使用中断方式接收乙发送来的字符并显示;单片机乙工作现象与甲类似;每发送或显示10个数据,循环往复1次。 发送显示4)多个单片机间的串行通讯与调试。 在实际的工程中可能会用到多个单片机系统,它们接收显示单片机-甲通过串行口组成一个小型的控制网络,进行数据同步和传输。而这样的实际电路系统比较复杂和庞大,连接和测试都不是很方便,这时利用虚拟的串行口调试技术就显得十分必要和有效。可以先在Proteus中快捷地搭建出这样的系统,在进行通信仿真后再实地调试,事半功倍。发送显示如图4所示为双机系统通过网络标号串行连接,将情形接收显示单片机-乙3的代码编译下载到甲乙两块单片机中,就可循环收发和显示0-9数字。如图甲显示并发送5到乙,乙显示并发送9到甲。为了达到该图中的效果,可以在其中的一个单片机如甲的主程序中让其延迟1秒发送数据即可。 XTAL1U118XTAL29RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7100R1D1LED-BIBY293031PSENALEEAAT89C51P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A152122232425262728101112131415161712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDRXDTXDXTAL1U218XTAL29RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7100R2D2LED-BIBY293031PSENALEEAP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A152122232425262728101112131415161712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDTXDRXD3结束语 图4 单片机间的串行收和发 借助先进的软件技术,来完成以往需要结合硬件电路来完成的串行口通信的调试工作,效率高,成本低,性价比高,风险低。实践证明在教学和工程应用中根据具体情况适当选择、组合使用起到了很好的教学和应用效果。 参考文献: 1 Virtual:Serial Port Driver 软件使用手册 2 Keil uVision 软件使用手册 3 Proteus 软件使用手册 VCC193938373635343332VCC1939383736353433324

    注意事项

    本文(单片机串口通信的调试方法与技术.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开