51单片机入门_江协科技_20.1_Proteus串口仿真

1.为了解决51单片机学习过程中在Proteus中的串口仿真的问题,需要在Proteus中建立串口仿真的环境(目前Proteus安装在Win7x64虚拟机环境中;

2. 在CSDN中找到VSPD下载地址,在虚拟机中进行VSPD的安装,具体链接地址如下:

虚拟串口软件VSPD下载安装及使用 包含XCOM串口调试软件-CSDN博客

2.1. 安装完成后需要将其中的vspdctl.dll 复制到安装目录下面覆盖原文件

3. win7虚拟机中需要打开控制面板,然后找到设备管理器并打开,找到如图所示的COM端口,可能事COM1与COM2端口,需要修改为COM3与COM4端口,修改方法为选中需要修改的端口,点击鼠标右键,点击属性,在弹出的对话框中点击高级,在另一个弹出的对话框中找到COM3,此时是从COM1修改为COM3,同理将COM2修改为COM4;

此时win7虚拟机中的2个物理端口为COM3和COM4

4. 打开VSPD软件,在First port中选择COM1,Second port中选择 COM2,点击add pair添加,此时在左边virtual ports中显示COM1与COM2

此时设备管理器中的端口显示如下:

5. Proteus中找到COMPIM并添加到工程中,

在添加好的COMPIM添加RXD与TXD连接端口,建立与AT89C52的连接

同时在这个仿真环境中添加虚拟终端用于显示,需要注意虚拟终端的RXD与TXD的端口标记是要反一下的

6. 双击COMPIM对其进行设置,如图所示是根据江协科技的教程示例进行的设置;

双击终端进行设置如下

7. STC-ISP中的设置如下;

8. 江协科技的程序示例如下,串口发送数据66一次;

#include <REGX52.h>

void Uart_Init(void)	//4800bps@12.000MHz
{
	PCON |= 0x80;		//使能波特率倍速位SMOD
	SCON = 0x50;		//8位数据,可变波特率
	//AUXR &= 0xBF;		//定时器时钟12T模式
	//AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x20;		//设置定时器模式
	TL1 = 0xF3;			//设置定时初始值
	TH1 = 0xF3;			//设置定时重载值
	ET1 = 0;			//禁止定时器中断
	TR1 = 1;			//定时器1开始计时
}

void Uart_SendByte(unsigned char Byte)
{
	SBUF=Byte;
	while(TI==0);
	TI=0;
}
	
void main()
{
	Uart_Init();
	Uart_SendByte(0x66);
	while(1)
	{
		
	}
	
}

9. 运行仿真后,在Proteus中Debug点击4.virtual Terminal,显示终端窗口和运行结果如下;

10. STC-ISP中显示的运行结果如下:


2024年4月4日更新——

1. 经过反复测试发现,COMPIM与TERMINAL的连接还是需要连接为如下方式:

2. 此时运行仿真并调用 virtual terminal后,鼠标邮件点击黑色terminal区域,如图勾选相应的选项。

3. 在virtual terminal中输入键盘的1转为16进制模式显示31在virtual terminal中显示,同时STC-ISP中会显示接收到31

4. 在STC-ISP的发送缓冲区输入f0,点击发送数据后,virtual terminal显示收到f0,此时为正常收发状态。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
51单片机是一种常用的微控制器,具有广泛的应用领域。 DS18B20是一种数字温度传感器,具有高精度、数字输出、单总线接口等特点。Proteus是一种虚拟电路设计和仿真软件,能够帮助我们验证电路的功能和性能。 要设计一个可调上下限的温度报警器,我们可以使用51单片机与DS18B20传感器进行连接,并在Proteus中进行仿真。 首先,将DS18B20传感器的VCC引脚(3.3V或5V)、GND引脚(地)和DQ引脚(数字接口)分别连接到51单片机的对应引脚上。然后,在Proteus中导入51单片机的库文件,并绘制出相应的电路图。 接下来,我们可以使用51单片机的GPIO口读取DS18B20传感器的温度数据,并将其与预设的上下限进行比较。如果温度超过设定的上限或低于设定的下限,可以设置51单片机的某个引脚输出高电平,触发报警器。 为了实现可调的上下限,我们可以通过外部电位器或软件编程的方式,来调节报警器的温度阈值。可以选择将电位器与51单片机的某个模拟输入引脚相连,通过读取电位器的电阻值来调节阈值。或者在程序中通过用户界面,设置上下限的数值并存储在非易失性存储器中。 最后,我们可以在Proteus中进行仿真测试,输入不同的温度值,观察51单片机的输出状态和报警器是否正常工作。 通过以上步骤,我们可以在Proteus中设计一个可调上下限的51单片机DS18B20温度报警器,实现温度监测和报警的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值