1、效果图
2、虚拟串口
通过VSPD虚拟串口工具虚拟出两个串口用于通信
VSPD虚拟串口工具下载:http://download.csdn.net/detail/leytton/7565589
3、串口调试
打开两份串口调试工具,第一个打开com1,第二个打开com2,这时在任一串口调试工具发送信息,另一个串口调试工具中能接收到信息
串口调试工具下载:http://download.csdn.net/detail/leytton/7565561
4、Proteus电路设计图
P1串口:属性原件值COMPIM,Physical port为com2,Physical Baud rate为9600
虚拟终端(Virtual Terminal):接RXD接口的虚拟终端显示单片机通过com2接收到的信息,接TXD接口的虚拟终端显示单片机传出的信息。
5、51单片机程序代码
#include
void init();
void main(){
unsigned char temp=0xff;
init();
while(1){
if(RI){ //RI=1,判定为串口接收到了数据,RI要清零,
RI=0;
temp=SBUF;
}else{
P1=temp;
}
}
}
void init(){
TMOD=0x20; //设置T1工作方式为方式2
TH1=0xfd; //给定时器高位装初值
TL1=0xfd; //给定时器低位装初值
TR1=1; //开定时器
//以上是设置波特率
SM0=0; //设置串口通讯方式为方式1
SM1=1;
REN=1; //串口是否接收数据的开关
}
6、运行
串口调试工具接com1口发送的数据,可在接RXD的虚拟终端显示;
但是单片机基本没反应,因为我写的代码是通过信息来控制灯亮灭,而信息格式不合法。
改进:在串口调试工具勾选“按十六进制发送”,虚拟终端勾选“Hex Display Mode”,发送“0”则灯全亮,发送“fe”则灯P1.0亮。