Keil串口软件仿真调试<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Keil C51 整合了目前功能最强的C51编译器和最好的IDE调试环境。在新版本的Keil中,增加了很多功能,其中之一就是串口仿真。就是说无须实际的硬件,利用计算机的串口就可以完全进行串口仿真。
使用到的调试命令:
ASSIGN 将计算机的串口设置为单片机的串口
语法:ASSIGN channel < inreg > outreg
例如:ASSIGN COM1 < SIN > SOUT
上面的括号不能少。
MODE 设置串口的参数(波特率、数据位、停止位等)
语法:MODE COMx, baudrate, parity, databits, stopbits
baudrate 参数必须是一个有效的波特率值,如1200, 2400, 9600, 或19200。
parity 表示校验位,为0时表示无检验位,1为奇校验,2为偶校验。
Databits 为8 时,表示有8 个数据位,为7表示为7个数据位。
Stopbits 为1 时,表示1 个停止位;为15,表示为1个停止位;而为2时表示为2个停止位。
MODE命令也可以与ASSIGN命令联合使用,以设置仿真CPU 的串口输入输出渠道。
示例
>MODE COM2, 19200, 0, 8, 1 /* 设置 COM2 的波特率为19,200 bps, */
/* 无校验,*/
/* 1个停止位 */
实际软件调试时,先在Keil中完成程序的编写,然后进入软件仿真状态,并用一根自制的串口线将计算机的两个串口环接起来(注意2与3要交叉,5可以接也可以不接)。这里需要计算机上至少要有两个串口,一个是仿真单片机用,另外一个是通信调试用,不然就需要两台计算机了。在仿真状态下,使用上面的两个命令设置好串口的参数(每次都输入参数会比较麻烦,这时可以在仿真参数中设置好配置文件)。在计算机中使用任何串口调试软件与Keil进行通信,可以在Keil中设置断点,实际结果与硬件仿真器的效果一样,还更加简单方便。
更多的用法可以参考Keil的帮助文件Keil C51 UV2调试命令(中文版)软件仿真的命令详解
=====================================================
步骤如下:
1、使用KEIL,把需要调试的程序编译连接并进入源程序DEBUG;
2、在command里输入:
MODE COM1 19200,0,8,1 回车
(即:把pc的COM1口设置成波特率19200,无校验,8位字符位,1位停止位)
3、在command里输入:
ASSIGN COM1 <SIN> SOUT
(即:把pc的COM1口与keil仿真的串口0关联起来,如果你仿真的是串口1,那么就是S<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1IN,S1OUT。)
4、用串口线(2--3 3--2)把计算机的COM1,COM2口连接起来;使用串口调试助手模拟外部通讯设备,设置为COM2,波特率19200,无校验,8位字符位,1位停止位。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
Keil 串口窗口1(Serial #1)显示模拟的51单片机接收到的字符,再接着发送接收到的字符。(程序见前一篇博文: MCU-51串口通信程序)
串口调试助手 下载 https://static.assets-stash.eet-china.com/album/old-resources/2009/2/10/81a43cc2-f6ff-4a4f-8427-f328302e10bc.rar
串口调试助手COM2发送字符”OA”,接收字符
注意:如果直接通过软件通讯时候,发送与接收最好有一点的时间间隔,因为软件模拟的和实际运行速度相差甚远,呵呵!
参考资料:
Keil串口软件仿真调试技巧 - 王云涛 – CSDNBlog
文章评论(0条评论)
登录后参与讨论