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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.基本任务 (1)已知甲机接 8 个开关,乙机接 8 个发光二极管,利用它们的串口方式 1,波 特率自定义,实现:将甲机中 8 个开关所代表的数据传送到乙机,并在乙机的 8 个 LED 灯显示。请在 Proteus 中画出电路原理图,并编写程序仿真实现上述功能。 (2)已知单片机的 P0 口接了 8 个发光二极管 LED0~LED7,现要求通过单片机的 串口收发上位机的命令,实现对这 8 个发光二极管的控制。PC 端采用串口调试程序进 行数据发送(如使用 stc-isp 烧写软件向单片机发送“88 FB AF XX FC FC”6 个字节的 命令,其中“88 FB AF”及“FC FC”为数据的帧头和帧尾,“XX”为 00~07 数据。 )单片机 使用串口中断进行数据接收,同时需要判断帧头和帧尾的正确性。判断帧头和帧尾完毕 后,若正确的话再判断“XX” 数据,对应“XX” 数据对 LED0~LED7 进行点亮、熄灭控 制;若不正确丢掉数据, 转入等待接收。 请在 Proteus 中画出电路原理图,并编写程 序仿真实现上述功能。 2.拓展任务 在以上基本任务 1 的基础上,奇校验,实现甲机和乙机的全双工通信,即甲机和乙 机都分别接 8 个开关和 8 个发光二极管,甲机 8 个开关所代表的数据能传送到乙机并在 乙机的 8 个 LED 灯显示,同时乙机 8 个开关所代表的数据能传送到甲机并在甲机的 8 个 LED 灯显示,若校验出错则指示灯(自定义)闪烁。请在 Proteus 中画出电路原理图, 并编写程序仿真实现上述功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值