keil C51 中使用虚拟串口调试串口

2023-05-16

功能介绍:
在不使用51开发板下,使用keil C51中的软件仿真 和虚拟串口软件VSPD完成串口通信的过程。

类似的还有一篇关于STM32调试串口的 keil MDK 中使用虚拟串口调试串口

操作步骤如下:
1、打开虚拟串口软件
点击添加端口:利用VSPD将PC上的两个虚拟串口连接起来。如图将COM1 和COM2连接起来。
在这里插入图片描述
可以看到Virtual ports上将两个虚拟串口连接到了一起了,这样串口1和串口2就能进行通信。
在这里插入图片描述
2、打开串口助手软件
打开串口1,设置波特率为9600,数据位为8,校验位为无,停止位为1
在这里插入图片描述
3、打开一个写好串口通信的C51工程文件
点击魔术棒,进入Debug设置页面,选择左半边的Use Simulator(采用软件仿真)
勾选Limit Speed to Real-Time,则软访时会按照你在Target页面中设置的振荡频率来产生时间片;否则会任由电脑按照自己的速度狂飙。
在这里插入图片描述
设置晶振频率为11.0592MHz
在这里插入图片描述
点击进入软件仿真。
在这里插入图片描述
仿真页面如下
在这里插入图片描述
在命令窗口的输入行中分别输入下面两条命令,按回车键完成输入,最后点击全速运行后,在串口窗口可以看到串口输出的内容。

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

在这里插入图片描述
同时我们也可以在串口助手上看到输出的内容
在这里插入图片描述

指令说明:
1、MODE COM2 9600,0,8,1
设置串口1。波特率为9 600,无校验位,8位数据,1位停止位。
MODE命令的作用是设置被绑定计算机串口的参数。
基本使用方式为:MODE COMx baudrate, parity, databits, stopbits
其中:
COMx(x = 1,2,…)代表计算机的串口号;
baudrate代表串口的波特率;parity代表校验方式;
databits代表数据位长度;
stopbits代表停止位长度。

2、ASSIGN COM2 < SIN > SOUT
命令2是将计算机的串口2绑定到单片机的串口
COMx代表计算机的串口,可以是COM1、COM2、COM3或其他;
inreg和outreg代表单片机的串口。对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。
例如:ASSIGN COM2 < SIN > SOUT
将计算机的串口2绑定到单片机的串口(针对只有一个串口的单片机)。
ASSIGN COM2 < S1IN > S1OUT
将计算机的串口2绑定到单片机的串口1(针对有多个串口的单片机,注意串口号的位置)。
需要注意的是,参数的括号是不能省略的,而outreg则是没有括号的。

部分代码实现:
main.c文件

#include "reg52.h"    //此文件中定义了单片机的一些特殊功能寄存器
#include "usart.h"
#include "delay.h"
#include <stdio.h>

sbit led=P2^0;	   //将单片机的P0.0端口定义为led

void main()
{
	int a = 20;
	float b = 3.14;
	char *str = "xixixi";
	
	UART_init();  //串口初始化9600
	//set52_baudrate(11.0592, 115200);//串口初始化
	
	printf("串口测试\r\n");
	while(1)
	{
		printf("a = %d\r\n",a);
		printf("b = %f\r\n",b);
		printf("str = %s\r\n",str);
		
		DelayMs(2000);
	}		
}

最后:
需要代码和软件的可以自行下载。资源下载链接述
下载操作:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

keil C51 中使用虚拟串口调试串口 的相关文章

随机推荐

  • auto.js 入门学习(参考GitHub文档)

    GitHub开发文档 input span class token punctuation span span class token punctuation span i span class token punctuation span
  • python-名片管理系统

    span class token builtin class name shift span 43 F6 重命名 当修改变量名或者函数名是十分实用 from learn card manage span class token functi
  • 【linux】清理pip空间缓存

    输入命令查看内存使用情况 xff1a df h 发现 dev sda6 这个目录下可使用内存基本上没有了 xff0c 先需要对其进行清理缓存 切换到pip目录下 cd cache pip 为了防止直接删除出错 xff0c 先将要删除的文件复
  • YOLOv5 - AssertionError: Image not Found

    出现上图原因是val 路径还有中文 xff0c cv imread 不能识别 解决方法 xff1a 1 修改还有中文的文件名 2 使用绝对路径 xff0c 把测试图片放在含有中文的文件里面 下图的名称也无法读取 xff0c 可能是含有 xf
  • 机器学习-猫狗识别(入门案例)

    案例分析 xff1a 下载猫狗图片 xff0c 进行分类 对数据进行分类 xff0c 训练集和测试集 训练集和测试集都进行命名规范 xff0c 把猫标记为1 xff0c 狗标记为0 处理流程 xff1a 数据处理 xff0c 把数据处理为6
  • 车牌识别之预处理(灰度化,去噪,二值化,分割)

    灰度化 灰度即R 61 G 61 B 二值化只取255 0 对图片进行灰度化处理 xff0c 目的是 1 减少数据量 xff08 减少不明显 xff09 2 为二值化准备 对数据进行灰度发现数据量减少并不明显 尤其是 最大 和 平均 灰度法
  • failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request

    问题描述 failed to solve with frontend dockerfile v0 failed to create LLB definition failed to span class token keyword do s
  • LeTeX 快速入门

    LeTeX 快速入门官方链接 什么是LeTeX LaTeX是一种用于排版专业外观文档的工具 然而 xff0c LaTeX的操作模式与您可能使用过的许多其他文档制作应用程序 xff08 如Microsoft Word或LibreOffice
  • 医学图像挑战

    标题标签不平衡挑战 方法一 xff1a 二元交叉熵损失函数 方法二 xff1a 重新采用达到类别平衡 过采样 欠采样 多任务挑战 设置不同任务的损失函数 数据集大小挑战 迁移学习 神经网络的早期层捕获可归一化的低级图像特征 xff08 图像
  • 医学图像数据集的挑战

    患者数据重叠 xff1a 当患者存在多个不同数据时划分数据集应避免随机划分 xff0c 避免同一个患者的数据出现在训练集 xff0c 验证集 xff0c 测试集 使用按患者划分数据集根据合理 集采用 xff1a 测试集或者验证出现数据不平衡
  • Ubuntu 查看磁盘空间大小命令

    http blog sina com cn s blog 6432901c0100w0tz html Df命令是linux系统以磁盘分区为单位查看文件系统 xff0c 可以加上参数查看磁盘剩余空间信息 xff0c 命令格式 xff1a df
  • 蜂鸣器发声音频率

    蜂鸣器发声音频率 蜂鸣器发声音频率 1 200Hz声音很小 200 300有声音 400嘟 500滴 600音调变高 700音调变高 800音调变高 2730Hz适合做滴的一声 3000最剌耳 声音大 转载 http blog ednchi
  • 应对不明确的项目需求

    今天在Javaeye上看到一个抱怨客户的无底洞需求时 xff0c 一个网友的回复 xff0c 觉得不错 xff0c 对以后自己接项目做个警示 xff1a From http www javaeye com topic 180477 61 6
  • 基于51单片机的波形发生器(四种波形)(毕业设计资料)

    四种波形的产生 xff0c 包括锯齿波 三角波 方波 正弦波 通过LCD液晶显示当前波形以及波形的频率 可以通过按键切换波形 xff0c 并可以通过按键进行设置当前波形的频率大小 xff0c 也可以设置频率设置不步进值 资料从主页链接中进行
  • hadoop 经典入门wordcount

    hadoop经典入门wordcount 主要有三大步 1 编写mapper函数 2 编写reducer函数 3 配置 public class WordCount mapper类 这些泛型继承自hadoop自定义的序列化框架Writable
  • 穿越火线数据包的抓取和分析及服务器欺骗的实现

    几天功夫 xff0c 我们敬爱的穿越火线从2 5到2 6再到2 7再到现在的2 8 xff0c 号称全服反外挂 xff08 的确是反了的 xff09 xff0c WPE会被检测为非法模块 本人就来说一下自己关于穿越火线数据包的抓取和分析及服
  • redis核心知识点总结(超详细)

    Redis Redis的单线程和高性能 Redis是单线程吗 xff1f Redis的单线程主要是指堆命令的执行是单线程完成的 xff0c 这也是Redis对外提供键值存储服务的主要流程 但Redis的其它功能 xff0c 比如持久化 异步
  • matplotlib报错:RuntimeWarning: More than 20 figures have been opened

    RuntimeWarning More than 20 figures have been opened Figures created through the pyplot interface matplotlib pyplot figu
  • Ubuntu 20.04 LTS 安装qt4 library

    How to Install Qt4 Libraries in Ubuntu 20 04 LTS July 9 2020 3 Comments The Qt4 framework has been removed from Ubuntu 2
  • keil C51 中使用虚拟串口调试串口

    功能介绍 xff1a 在不使用51开发板下 xff0c 使用keil C51中的软件仿真 和虚拟串口软件VSPD完成串口通信的过程 类似的还有一篇关于STM32调试串口的 keil MDK 中使用虚拟串口调试串口 操作步骤如下 xff1a