热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Proteus中虚拟终端的配置与使用

在使用Proteus进行单片机仿真时,串口通信是一个常见的难题,尤其是在需要查看数据收发情况时。本文介绍了如何利用虚拟终端来简化这一过程,并提供了具体的设置步骤和示例代码。
在 Proteus 软件中进行单片机仿真时,实现串口通信的可视化是一项挑战。通常,这涉及到数据的发送和接收。虽然可以通过安装虚拟串口软件(如 Virtual Serial Port)来解决,但如果仅需简单地显示串口输出,则使用虚拟终端是一种更为简便的方法。

### 示例代码
假设你需要验证写入和读取 EEPROM 内存的数据是否正确,可以使用以下 Arduino 代码示例:

```cpp
#include

int addr = 0;

void setup() {
Serial.begin(9600);
Serial.println("Writing to EEPROM is starting");
delay(100);
for (int i = 0; i <512; i++) {
EEPROM.write(i, 0);
}
}

void loop() {
addr++;
if (addr == 512) {
addr = 0;
}
int value = EEPROM.read(addr);
Serial.print(addr);
Serial.print("\t");
Serial.print(value, DEC);
Serial.println();
delay(100);
}
```

### 电路连接
电路连接图如下所示:

![电路连接图](https://img.php1.cn/3cd4a/1eebe/cd5/bdd1ca32a69bc8b2.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhaWdlYXI%3D,size_16,color_FFFFFF,t_70)

### 显示效果
使用虚拟终端显示的效果如下:

![显示效果](https://img.php1.cn/3cd4a/1eebe/cd5/d67981797265d9c7.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhaWdlYXI%3D,size_16,color_FFFFFF,t_70)

### 设置与显示
上图展示的是使用 ATmega328P 直接作为 Arduino 板的仿真。为了确保虚拟终端能够正确显示数据,需要对晶振进行设置。如果不进行设置,可能会出现乱码现象。

![晶振设置](https://img.php1.cn/3cd4a/1eebe/cd5/1113165c4904ecc5.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhaWdlYXI%3D,size_16,color_FFFFFF,t_70)

关键设置包括时钟频率(Clock Frequency)和 CKSEL Fuses。此外,时钟分频部分应设置为非编程模式(Unprogrammed)。确保波特率设置正确也是避免乱码的关键。

### 解决乱码问题
对于其他单片机(如 8051),在与虚拟终端连接时也可能会遇到类似的问题。此时,需要单独设置晶振频率,通常设置为 11.0592 MHz 即可。如果单片机未加载程序,也可能导致乱码现象,因此务必确保程序已正确加载。
推荐阅读
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 解决MacOS Catalina升级后VMware Fusion黑屏问题的详细指南
    本文深入探讨了如何在MacOS Catalina升级后解决VMware Fusion黑屏的问题。通过详细的步骤和代码示例,帮助用户快速恢复虚拟机的正常运行,并提供了额外的安全建议。适用于希望提升工作效率或学习新技术的读者。 ... [详细]
  • 本文档详细介绍了思科交换机的基本配置命令,包括进入特权模式、配置交换机名称及密码、VLAN配置、端口访问、查看配置信息、恢复出厂设置以及远程登录设置等。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
author-avatar
来日方长吗_Xcc
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有