串口仿真调试

今天调试单片机的时候,需要调试串口通讯,但是。手上的板子只有一根线,要在线调试的话就不能用通讯串口了,解决办法是用vspd,keil模拟调试

需要的环境

keil,Virtual Serial Port Driver ,串口通讯助手

编写代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#define uchar unsigned char
#define uint unsigned int
#define LED P0

uchar sign;

/*------------------------------------------------
函数声明
------------------------------------------------*/
void delay(uint i); //演示程序
void receive(void); //接收数据程序
void send(uchar str);//发送数据程序
/*------------------------------------------------
发送函数
------------------------------------------------*/
void send(uchar str)
{
if(TI==0)
{
SBUF=str;
while(TI==0);
TI=0;
}
}

/*------------------------------------------------
串口中断服务程序
------------------------------------------------*/
void UART(void) interrupt 4 using 1
{
if(RI)
{
sign=SBUF;
RI=0;
}
}


/*------------------------------------------------
主函数
------------------------------------------------*/
void main()
{
TMOD=0x20; //定时器1,方式2
TL1=0xfd;
TH1=0xfd; //设置波特率9600
SCON=0xd8;
PCON=0x00; //串行口方式3,允许接收位
TR1=1; //打开定时器1
ES=1; //开串口中断
EA=1; //开总中断

WR2=0; //MAX487为接收方式

/*void*/send(sign);
while(1);
}

vspd连接端口

开始调试并配置(控制台输入)

1
2
MODE COM2 9600,0,8,1
ASSIGN COM2<SIN> SOUT

mode需要设置和后面的串口通讯助手匹配

串口调试

设置为com1->com2或者自定义