有关Keil软件仿真的51单片机串口调试技巧_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、有关keil软件仿真的51单片机串口调试技巧在系统中,串口(uart,通用异步收发接口)是一个十分重要的组成部分。通常用法单片机串口通过rs232/rs485电平转换芯片与上位机衔接,以举行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的衔接等。rs232/rs485串行接口具有成本低、容易牢靠、简单用法等特点,加上其历史悠久,所以目前应用仍然十分广泛;特殊对于数据量不是很大的场合,串口通信仍然是很好的挑选,有着广大的用法前景。在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往往是利用专用的单片机硬件器。在编写好程序后,利用仿真器来设置断点,观看变量和程序的流程,逐

2、步对程序举行调试,修正错误。用法硬件仿真器确实是很有效的办法,但是也有一些缺点:无数仿真器不能做到彻低硬件仿真,因而会造成仿真时正常,而实际运行时浮现错误的状况;也有仿真不能通过,但是实际运行正常的状况。对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器十分昂贵,且不简单买到。有时因为设备内部结构空间的限制,仿真头不便利接入。有的仿真器属于容易的在线仿真型,仿真时有无数限制。例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太便利。1 调试前的预备工作下面介绍一种利用的软件仿真功能来实现串口调试用户程序的办法。用法这种办法,无需任何硬件仿真器

3、,甚至都不需要用户板。所需的只是: 硬件。1台一般计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系1所示)。 串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。假如没有合适的串口调试软件,则可用法笔者编写的一个免费的串口小工具turbocom。除了与其他软件一样的数据收发功能外,它还有定时轮番发送自定义数据帧和自动应答(接收到指定数据帧后,自动返回相应的数据帧)这两个很实用的功能,特殊适合于老化测试。这个小工具可以从网上下载。2 基本调试指令介绍这个串口调试办法主要是利用了keil强大的软件仿真功能。在新版

4、本(高于6.0)的keil软件中,增加了软件的仿真能力,可以利用软件仿真更多的单片机功能。在这些功能中,其中有一个很重要的功能就是利用计算机的串口来模拟单片机的串口(这不同于无数软件在仿真时用法的激励文件方式,可以挺直与其他串口举行通信,越发便利、灵便)。首先要介绍仿真时需要用法的两个指令:assign和mode。2.1 assign指令将单片机的串口绑定到计算机的串口。基本用法方式为:assign channeloutreg其中: channel代表计算机的串口,可以是com1、com2、com3或com4;而inreg和outreg代表单片机的串口。对于惟独一个串口的一般单片机,即sin和

5、sout;对于有两个或者多个串口的单片机,即snin和snout(n=0,1,即单片机的串口号)。图1 串口连线暗示图例如:assign com1sout将计算机的串口1绑定到单片机的串口(针对惟独一个串口的单片机)。assign com2s0out将计算机的串口2绑定到单片机的串口0(针对有多个串口的单片机,注重串口号的位置)。需要注重的是,参数的括号是不能省略的,而outreg则是没有括号的。2.2 mode指令设置被绑定计算机串口的参数。基本用法方式为:mode comx baudrate, parity, databits, stopbits其中: comx(x = 1,2,)代表计算

6、机的串口号;baudrate代表串口的波特率;parity代表校验方式;databits代表数据位长度;stopbits代表停止位长度。例如:mode com1 9600, n, 8, 1设置串口1。波特率为9 600,无校验位,8位数据,1位停止位。mode com2 19200, 1, 8, 1设置串口2。波特率为19 200,奇校验,8位数据,1位停止位。用法以上两个指令,就能够将计算机的串口模拟成单片机的串口了。在举行软件仿真时,全部发送到被绑定的计算机串口上的数据都会转发到keil模拟的单片机串口上,用户程序可以通过中断处理程序或查询方式接收到这些数据;同样,单片机程序中发送到单片机

7、串口上的数据也会通过被绑定的计算机串口发送出来,可以被其他软件所接收。利用这个特点,就可以便利地仿真、调试单片机的串口部分程序。要注重的是,这两个指令需要一起用法。2.3 仿真步骤首先,用串口线将计算机的两个串口衔接起来(或者是两台计算机上的两个串口)。这两个串口一个用来模拟单片机串口,另一个给调试程序用法。这个由用户自己分配,没有特别要求。第二,编写好用户程序,并编译通过。然后,设置工程文件(project)的相关参数,2和图3所示。主要是挑选软件仿真模式(use simulator)以及晶振参数。图2 仿真参数设置为了不必每次进入仿真状态后,都需要输入串口参数设置指令,可以建立一个初始化文

8、件。初始化文件是一个一般的文本文件,内容就是仿真时需要的指令,根据挨次一行输入一条。2所示,建立了一个debug.ini的初始化文件。这样,当每次进入仿真调试状态时,keil就会自动载入 debug.ini的内容举行初始化。为了正确仿真串口,在软件仿真调试时,在用户的keil工程文件的属性中,还需要设置实际用法的晶振频率。这个参数十分重要,挺直影响通信的波特率,可以根据实际用法的参数举行设置。要注重,这个参数的单位是mhz。设置好参数后,就可以举行仿真了。单击工具栏的图标按此在新窗口扫瞄进入debug(仿真调试)状态,在output window窗口中的command文本框(普通是在左下角)中

9、输入上面介绍的指令。例如,将pc机的串口1设置为单片机的串口:mode com1 9600,0,8,1assign com1 sout然后设置断点,普通是在关键地方或与串口相关联的地方设置。再单击图标运行(run)用户程序,用法户程序运转起来(不然是接收不到串口数据的)。这时再用法串口调试软件或用户调试软件,发送通信指令或者数据包,看用户程序是否进入断点,以及相关的变量是否正确。还可以故意发送带有错误数据的数据包,以观看用户程序的异样处理部分是否正常。一旦发觉程序中的错误,可以马上停止仿真调试,立刻修改代码,然后再次重复上面的步骤举行仿真。由于不需要与用户目标板联机,也不用下载代码到用户板上,

10、所以速度十分高。以上这些步骤和用法硬件仿真器的基本一样,只不过现在用法的是软件仿真。需要注重的是:仿真时单片机串口实际的波特率由mode指令来指定,单片机程序中的tmod、scon等参数是不影响串口仿真状态的(也就是说这些参数不影响仿真的波特率,即使它们是错误的)。但是中断的使能位(如es、ea等)还是起作用的,假如es或ea被禁止,那么就不会进入串口中断。由于这种办法是利用计算机的串口来仿真单片机的串口,而仿真是通过keil软件来转换串口上的数据,不是挺直转发数据的,所以在实际仿真时,处理速度会比实际单片机运行时略微低一点。比喻说仿真状态时1 s只能发送/接收10个数据帧,但在单片机硬件上运

11、行时可能1 s就可以接收/发送50个数据帧。这与用法的计算机的速度有关,但对仿真来说,是没有任何影响的。对于多串口的单片机,从理论上来说,可以一次绑定多个串口,只要计算机有足够多的串口。基本上,用法这种办法需要占用计算机的串口数量是单片机绑定串口的2倍。一个串口被keil占用,用来模拟单片机的串口;另外一个串口被计算机占用,用来给单片机的串口收发数据。3 小结这里介绍的办法对c51和汇编语言都是适合的。它最大的益处就是容易、便利,简单用法,不需要用法任何电路,也没有特别的要求;甚至可以在硬件电路制作好之前就将串口部分的程序编写、调试完毕。笔者用法这种办法已经很长时光了,事实证实这种办法的确十分有效。其实对于51单片机,keil的仿真功能实在是太强大了,只要充分把握其特点,能够娴熟利用它,就可以解决工作中的大部分问题。无数工作都可以用法软件仿真来完成,根本无需任何硬件仿真器;惟独一些新的外部器件的时序、接口的调试才有可能需要用到硬件仿真器。目前介绍keil软件仿真这方面的参考书籍很少,有些讲的还是老版本的使用,不过没有关系,keil的协助文件写得很具体、很清晰,只要仔细看明了就会用法了。用法娴熟后,就会发觉keil的功能相当强。对于串口编程,51单片机有keil这个功能强大的开发软件,给我们带来了极大的方便;而在其他单片机软件的开发中,目前还没有这么强大的开发工具和便利的调试手段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论