×
单片机 > 单片机程序设计 > 详情

51单片机 (5) C51实现单片机串口通信仿真

发布时间:2020-08-26 发布时间:
|

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单片机程序代码

  1. #include   

  2.   

  3. void init();  

  4. void main(){  

  5.  unsigned char temp=0xff;  

  6.  init();  

  7.  while(1){  

  8.     if(RI){     //RI=1,判定为串口接收到了数据,RI要清零,  

  9.          RI=0;     

  10.          temp=SBUF;    

  11.      }else{  

  12.       P1=temp;   

  13.      }  

  14.  }  

  15. }  

  16. void init(){  

  17.  TMOD=0x20;   //设置T1工作方式为方式2  

  18.  TH1=0xfd; //给定时器高位装初值  

  19.  TL1=0xfd; //给定时器低位装初值  

  20.  TR1=1;  //开定时器  

  21.              //以上是设置波特率  

  22.  SM0=0;  //设置串口通讯方式为方式1  

  23.  SM1=1;    

  24.  REN=1;  //串口是否接收数据的开关  

  25. }  



6、运行

串口调试工具接com1口发送的数据,可在接RXD的虚拟终端显示;

但是单片机基本没反应,因为我写的代码是通过信息来控制灯亮灭,而信息格式不合法。

改进:在串口调试工具勾选“按十六进制发送”,虚拟终端勾选“Hex Display Mode”,发送“0”则灯全亮,发送“fe”则灯P1.0亮。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM基础知识八