需要用到三个软件:KEIL、VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件)、串口调试助手(个人感觉2.1比较好用)。
1、首先在KEIL里编译写好的程序。
2、打开VSPD,界面如下图所示:
左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。
3、接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入
MODE COM3 4800,0,8,1(设置串口3的波特率、奇偶校验位、数据位、停止位,打开COM3串口,注意设置的波特率和程序里设置的波特率应该一样)
ASSIGN COM3 <SIN> SOUT(把单片机的串口和COM3绑定到一起。因为我用的单片机是STC89C52,只有一个串口,所以用SIN,SOUT,如果单片机有几个串口,可以选择S0IN,S0OUT,S1IN,S1OUT。)
为了不每次都重新绑定串口,可以建立一个初始化文件debug.ini。初始化文件是一个普通的文本文件,内容就是仿真时需要的命令,按照顺序一行输入一条。如图2所示,建立了一个debug.ini的初始化文件。这样,当每次进入仿真调试状态时,Keil就会自动载入debug.ini 的内容进行初始化。
4.串口调试助手
可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率4800,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。
现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。
串口调试助手不支持发送发送汉字,回车符等。如需支持可使用usr-tcp232-test(支持汉字),或者超级终端(支持汉字,回车符和Keil串口仿真控件效果一样)。
这种方法的好处是不用硬件就可以调试。这是网上一篇文章介绍的方法.
// 利用VSPD、串口调试助手、Keil串口自发自收程序 //测试通过 #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar i=0; //串口初始化程序 void init_chuankou() { TMOD=0x20; TH1=0xfd; //波特率9600 TL1=0xfd; SM0=0; SM1=1; REN=1; EA=1; TR1=1; ES=1; } void main() { init_chuankou(); while(1) { } } void es() interrupt 4 { if(RI) { RI=0; i=SBUF; SBUF=i; while(TI==0); TI=0; } // else // { // TI=0; // SBUF=i; // } }