找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1418|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机UART通信打印信息+源码+proteus仿真+VSPD虚拟串口

[复制链接]
跳转到指定楼层
楼主
       一、使用51单片机的串口与Proteus的Virtual Terminal(虚拟终端)进行一个简单的串口通信,实现的功能是让Virtual Terminal通过串口 向单片机发送数据,单片机接收到数据后经串口将数据发送到Virtual Terminal上显示。

      1、Virtual Terminal

在使用前根据程序设计配置Virtual Terminal的参数,本实验使用的是11.0592MHz的晶振,波特率为9600不加倍,串口工作于方式1,8位数据位1位停止位。

      2、仿真电路图


    3、程序
    这里给大家分析一个51单片机的定时器及中断配置图(这个是在论坛上找的)


  1. #include <reg52.h>
  2. #include <stdio.h>
  3. #include <string.h>    //stdio.h,string.h用于printf函数原型

  4. void delay(unsigned int z);
  5. void uart_init(void);//串行口初始化

  6. void main()
  7. {
  8.     int a = 6,d = 15;
  9.     char b = 'A',c[] = "abcde";
  10.     uart_init();
  11.     while(1)
  12.     {
  13.         printf("a = %d b = %c c = %s d = %x\n",a,b,c,d);
  14.         printf("hello word!\n");
  15.         printf("你好世界\n");
  16.        delay(1000);
  17.    }
  18. }

  19. void uart_init(void)
  20. {
  21.     TMOD=0x20;     //即0010 0000,定时器/计数器1,工作方式2
  22.     TH1=0xfd;          //设置波特率为9600
  23.     TL1=0xfd;
  24.     TR1=1;               //启动定时器/计数器1
  25.         
  26.     SCON=0x50;     //SM0=0;SM1=1;REN=1;0101 0000.串口工作方式1,允许串行控制
  27.     PCON=0x00;     //设置SMOD=0
  28.     IE=0x90;            //EA=1;ES=1;CPU允许中断,串行允许中断
  29.         
  30.     TI=1;                 //中断请求标志位,直接使用printf必须加入此句才能实现发送
  31. }

  32. void delay(unsigned int z)
  33. {
  34.     unsigned int x,y;
  35.     for(x=z;x>0;x--)
  36.     for(y=110;y>0;y--);
  37. }
复制代码
    4、仿真结果


  • 温馨提示:如果仿真出现如下图所示的乱码现象,将51单片机的晶振设置为11.0592MHz
     


     二、利用VSPD软件虚拟一对串口,然后在PC中使用串口助手和Proteus中的MCU进行通信。
     1、打开安装好的VSPD软件,设置好需要创建的串口对的端口号(这里使用COM3和COM4作为示例),然后点击add virtual pair按钮;


    2、设置DB9串口参数和串口助手参数
       这里Component Reference和Component Value不是必填选项,下面的端口选择我们之前创建的虚拟串口对COM3和COM4中的其中一个,演示时我这边使用(串口3,波特率9600,8位数据位,1位停止位,无校验,无流控)的参数条件。在串口助手中使用(串口4,波特率9600,8位数据位,1位停止位,无校验,无流控)。
  • DB9串口定义和接线参考


  • DB9串口参数设置


  • 串口助手参数设置
   
    3、仿真电路图


    需要注意的是Proteus中的DB9为母头接口,而电脑PC的为公头接口,所以连接方式,需要RXD接DB9的RXD,TXD接DB9的TXD。
   4、仿真结果






附件给大家打包了,里面包括了proteus仿真+程序+VSPD虚拟串口软件+串口助手软件
UART_proteus仿真 程序 VSPD软件 串口助手软件.zip (7.28 MB, 下载次数: 51)







评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:210959 发表于 2023-9-6 16:56 | 只看该作者
感谢楼主提供的好资料。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表