Proteus 仿真 | 入门 / 串口调试 / 通信实战

发布于:2025-08-04 ⋅ 阅读:(16) ⋅ 点赞:(0)

注:本文为 “Proteus 仿真” 相关合辑。
图片清晰度受引文原图所限。
略作重排,如有内容异常,请看原文。


Proteus 快速入门(最详细教程)

公子易平 于 2025-03-11 09:59:40 修改

1. Proteus 简介

Proteus 是一款用于嵌入式单片机仿真的软件,用于在打 PCB 板之前对软件程序和硬件电路的正确性进行仿真验证。Proteus 通常与 Keil 软件进行联合仿真,在 Proteus 中绘制系统的电路图,在 Keil 软件中编写对应的程序后生成 Hex 文件。Proteus 的仿真结果仅供参考,只能在一定程度上验证系统的可能性,实际实物系统还需要进行进一步的调试。

2. Proteus 下载与安装

之前的链接已失效,推荐直接微信关注【软件管家】(非广告)进行下载。软件管家链接

在这里插入图片描述

3. Proteus 新建工程

  1. 安装完成后,打开 Proteus 软件,点击新建工程:

在这里插入图片描述

  1. 修改工程名字和工程保存路径:

在这里插入图片描述

  1. 接着一直点击 Next,直到最后点击 Finish,工程创建完成:

在这里插入图片描述

在这里插入图片描述

4. 添加工程元器件

  1. 点击左上角的 P 按键:

在这里插入图片描述

  1. 在关键词搜索框中输入对应的元器件缩写或者芯片型号(以电阻为例):

在这里插入图片描述

在这里插入图片描述

  1. 添加元器件后,点击元件模式,会显示已经添加的元器件:

在这里插入图片描述

  1. 点击对应元器件,将鼠标移到原理图位置,会出现紫色的元器件,此时选择合适的位置后单击鼠标即可成功在原理图中添加元器件:

在这里插入图片描述

在这里插入图片描述

  1. 双击元器件即可改变元器件的属性,例如可将电阻值改为 (500 , \Omega):

在这里插入图片描述

在这里插入图片描述

  1. 类似的,对于电容可以改变电容值,对于单片机可以改变晶振频率,对于电机可以改变最大转速等。

常用元器件对应缩写

  1. 电阻:RES

  2. 电容:CAP(极性电容:CAP-ELEC)

  3. 晶振:CRYSTAL

  4. 按键:BUTTON

  5. 开关:SWITCH

  6. 排阻:RESPACK

  7. 发光二极管 (LED):LED-BIBY

  8. 二极管:DIODE

  9. 三极管:PNP/NPN

  10. 蜂鸣器:BUZZER(active 为有源蜂鸣器)

  11. 超声波传感器:HCSR04

  12. 直流电机:MOTOR-DC

  13. 单片机:AT89C51/AT89C52/STM32XX

  14. LCD1602:LM016L

  15. OLED 屏:OLED12864I2C

  16. 滑动变阻器:POT(-HG 为 1% 精度,-LIN/-LOG 精度为 10%)

  17. 继电器:RELAY

5. 特殊部件添加

5.1 电源和地

点击左侧的终端模式,可以添加电源和地,分别为 POWER 和 GROUND。

在这里插入图片描述

在这里插入图片描述

电源端默认为 (+5\text{V}),若涉及的系统中涉及其他电源如 (7.4\text{V})、(3.3\text{V}) 和 (12\text{V}) 等,需要在电源网络中进行添加。具体的配置方法在后文中的例子中会详细介绍。

5.2 激励源模式

可以添加各种信号激励。

在这里插入图片描述

5.3 探针模式

可以测得在系统运行时电路中某一结点处的电压。

在这里插入图片描述

5.4 常用虚拟仪器

在这里插入图片描述

5.5 二维直线模式

用于画 SCH 原理图。

在这里插入图片描述

5.6 添加文本

在这里插入图片描述

以上是 Proteus 软件的基本介绍,接着介绍两个例子快速入门 Proteus。

6. Example 1 电源稳压模块仿真

这个例子不涉及程序,较为简单,仅仅是涉及电路,同时扩展配置系统电源网络的方法。

6.1 稳压需求

将 (12\text{V}) 的输入电压稳压到 (5\text{V}) 供电。

6.2 稳压电路

在这里插入图片描述

电路图中左右两个电压表用于表征稳压效果,LM7805 为稳压芯片,可以将 (7\text{V}) 到 (35\text{V}) 的电压稳压到 (5\text{V}),下图为其电气特性图:

在这里插入图片描述

电解电容作为整流电容,是为了使得电流更加平滑。普通的介质电容,其作用主要是为了滤波和防止断电时电压过大回流烧毁芯片。

开始仿真:

在这里插入图片描述

在这里插入图片描述

由图中电流表可知,电池的 (12\text{V}) 电压经过稳压模块电路后变成 (5\text{V}),达到稳压效果。

6.3 配置供电网

上述电路图仅仅是将 (12\text{V}) 稳压到 (5\text{V}),然而并没有对其进行配置。若电源端没有任何标号,如下图所示,默认为 (VCC 5\text{V}) 供电。

在这里插入图片描述

而如果需要更改其电源大小为 (+5\text{V})、(12\text{V})、(3.3\text{V}) 等其他电源供电,则需要先双击电源,更改其字符串为 (+5\text{V}),再配置供电网。

在这里插入图片描述

在这里插入图片描述

供电网配置(以添加 (5\text{V}0) 供电网为例)

将之前的 (+5\text{V}) 标号改成 (5\text{V}0)。

在这里插入图片描述

  1. 依次点击设计和配置供电网:

在这里插入图片描述

  1. 点击新建:

在这里插入图片描述

在这里插入图片描述

  1. 选择新建的电源导轨 (5\text{V}0),设置对应电压,单位为 (\text{V}),再将未连接的电网添加到 (5\text{V}0):

在这里插入图片描述

  1. 点击确认,网络配置完成:

在这里插入图片描述

7. Example 2 51 单片机点灯

任何和嵌入式相关的学习入门都是点灯,人人都是点灯大师!

——鲁迅

这个例子将会介绍如何使用 Proteus 和 Keil 软件进行联合仿真,实际上也非常的简单。联合仿真的顺序应是先设计硬件电路再编写软件程序最后联合仿真调试。

7.1 点灯硬件电路

使用简单的 51 单片机作为主控,使用 P2.7 口点亮 LED。

点灯电路的硬件原理图:

在这里插入图片描述

实际上晶振电路和复位电路在 Proteus 中不需要绘制,其晶振的选择改变可以通过双击单片机进行修改,但是为了电路图的完整性,本次还是完整的绘制了。

本次使用的晶振为 (12\text{MHz}):

在这里插入图片描述

原理图中除了 LED 灯均为单片机的最小系统部分。

7.2 点灯软件设计

软件设计的思想非常简单,只需要给 P2.7 端口高电平,LED 灯就亮了。

  1. 在 Keil 软件中编写代码
#include <REGX52.H>

void main()
{
    P2_7 = 1;	// P2.7 端口置 1
    while(1)
    {
        
    }
}
  1. 点击魔术棒选项:

在这里插入图片描述

  1. 在 output 选项框中勾选 Create Hex File:

在这里插入图片描述

  1. 按 F7 编译文件,终端显示无错误无警告:

在这里插入图片描述

7.3 联合仿真

  1. 在 Proteus 中双击单片机,点击 Program File 对应的黄色文件夹:

在这里插入图片描述

  1. 找到刚刚 Keil 软件编译生成的 Hex 文件打开(一般在 Keil 工程的 Objects 目录下),之后点击确认:

在这里插入图片描述

在这里插入图片描述

  1. 点击开始仿真,灯亮!

在这里插入图片描述

7.4 补充知识点——网络标号

从上述的原理图中可以看到晶振电路并没有直接和单片机连接,而是使用网络标号。那么什么是网络标号呢?

其实网络标号就是给电路的端口起了一个“外号”,电路中端口标号相同的地方默认是有导线连接,这样可以使得电路图更加简洁明了,不至于满屏幕都是导线。

网络标号的添加
  1. 点击端口引出导线,双击后确定导线长度:

在这里插入图片描述

在这里插入图片描述

  1. 点击左侧的连线标号模式:

在这里插入图片描述

  1. 再点击导线即可对导线进行网络标号:

在这里插入图片描述

如下图所示两个电路其实是等效的:

在这里插入图片描述

在这里插入图片描述

8. Proteus 原理图的美化与导出

8.1 改变背景颜色

  1. 点击上方模板,设置设计默认值:

在这里插入图片描述

  1. 修改纸张颜色,一般用白色比较好看:

在这里插入图片描述

在这里插入图片描述

8.2 修改元器件颜色

  1. 点击上方模板,选择设计图形样式:

在这里插入图片描述

  1. 在此处即可进行设置,(默认颜色的 RGB 为:200,200,170):

在这里插入图片描述

8.3 纸张大小设置

设计的系统不同,电路图的大小亦不同。

  1. 点击上方系统选项,选择设置纸张大小:

在这里插入图片描述

  1. 选择设置合适的尺寸,蓝色边框为纸张大小:

在这里插入图片描述

在这里插入图片描述

8.4 模块划分和添加信息

  1. 点击本文中 5.5 提到的二维直线模式,将原理图按照各自功能划分,可以打开网格辅助画线:

在这里插入图片描述

在这里插入图片描述

  1. 通过本文 5.5 节方法为原理图添加信息:

信息可以为工程名,作者,各模块名称等,布局合理即可。

在这里插入图片描述

在这里插入图片描述

8.5 导出 SVG 图

在编写相关文档时可能需要导出电路图和仿真图。

  1. 点击文件,选择输出图像,选择 Export SVG File:

在这里插入图片描述

  1. 点击勾选 Colour Output:

在这里插入图片描述

即可导出 SVG 图片。

  1. 同理也可导出 PDF 文件:

在这里插入图片描述

若不勾选输出颜色选项,则输出图像为黑白:

在这里插入图片描述

在这里插入图片描述

输出仿真结果原理图时,则点击仿真按钮后,再导出,若不需要仿真结果原理图,则终止仿真,再导出图片。可以分别得到下面两幅图:

在这里插入图片描述

在这里插入图片描述

9. 结语

以上即为本次分享的 Proteus 入门教程的全部内容,希望可以能够帮助到各位道友。对应文章内容以及后续更新有建议的道友可以私信或者在评论区留言,十分期待您宝贵的建议。


Proteus 软件和串口调试(详解和步骤方法)

清漠233 于 2023-07-26 13:41:15 发布

环境与前提

  • 环境:Proteus 8 软件,Configure Virtual Serial Port Driver 软件(VSPD),串口调试助手
  • 前提:没有单片机硬件电路在身边,没有串口线,但需要进行串口的调试仿真。

一、Proteus 软件中的串口设置

(一)添加串口元件

  1. 打开 Proteus 软件,新建一个工程(本人用的芯片是 dspic33fJ32MC204):
    img
  2. 右键单击空白处,选择 From Libraries:
    img
  3. 输入 compim,点击确定即可放置元件到原理图中:
    img
    img

说明:compim 是 Proteus 中的物理串口。Proteus 提供了两种串口:

  • 模拟串口:只在 Proteus 内部进行通讯。
  • 物理串口:可以通过软件映射到硬件上和单片机或者串口软件通讯。

(二)模拟串口的使用

  1. 添加模拟串口元件,点击确定后放置到原理图中并连线:
    img
  2. 连线完成后如下图所示:
    img

说明:模拟串口是一个虚拟终端,可以查看串口接收到的数据。

二、虚拟串口的创建与设置

(一)创建虚拟串口

  1. 下载并安装模拟生成串口的软件 VSPD:
    img
  2. 点击添加端口,生成 2 个虚拟串口:
    img

(二)串口设置

  1. 在 Proteus 中点击 compim,将串口设置为 COM1:
    img
  2. 点击虚拟终端进行设置:
    img
  3. 打开串口调试助手,设置波特率、停止位、校验位、数据位等参数,确保与 COM1 保持一致,并点击自动发送:
    img

三、调试与结果查看

  1. 打开 Proteus 软件,点击仿真开始:
    img
  2. 结果可以在虚拟终端中看到:
    img
  3. 如果虚拟终端窗口未弹出,可以在调试中勾选打开:
    img

基于 51 单片机与 PC 机电脑串口通讯 Proteus 仿真

super单片机 于 2022-11-05 20:04:54 发布

资料编号:183 下面是仿真功能视频演示:

183-基于 51 单片机与 PC 机电脑串口通讯 Proteus 仿真

功能讲解

采用 51 单片机作为控制 CPU,数码管显示数据,通过独立按键可以给 PC 端发送相关指令,并且可以接收到 PC 端下发的相关数值,来实现单片机与 PC 端的串口通信协议,全套资料齐全。

下面是仿真图展示:

img

原理图展示

img

相关程序源码展示

void main()
{
    uchar i;
    P0 = 0x00;
    Receive_Buffer[0] = i;
    SCON = 0x50;
    TMOD = 0x20;
    PCON = 0x00;
    TH1  = 0xfd;
    TL1  = 0xfd;
    EA  = 1;
    EX0  = 1;
    IT0  = 1;
    ES  = 1;
    IP  = 0x01;
    TR1  = 1;
    while(1)
    {
        //      for(i=0;i<100;i++)
        //     {
        //        if(Receive_Buffer[i]==-1) 
        //         break;
        P0 = DSY_CODE[Receive_Buffer[i]]; // 数码管进行显示
        //       Delay(200); 
        //     }
        Delay(200);
    }
}

void Serial_INT() interrupt 4  // 串口中断函数
{
    uchar c;
    if(RI == 0) 
        return;
    ES = 0;
    RI = 0;
    c  = SBUF;
    if(c >= '0' && c <= '9')  // 接收到 PC 端的数据
    {
        Receive_Buffer[Buf_Index] = c - '0';
        //     Receive_Buffer[Buf_Index+1] = -1;
        //     Buf_Index = (Buf_Index+1)%100;   
    }
    ES = 1;
}

void EX_INT0() interrupt 0  // 串口发送函数
{
    uchar *s = ("Receiving From 8051...\r\n");
    uchar i = 0;
    while(s[i] != '\0')
    {
        SBUF = s[i];
        while(TI == 0);
        TI = 0;
        i++;
    }
}

img

下面是该资料的分享下载链接:

https://pan.baidu.com/s/1L-ihChTGo_M_fhW4V_0tSw?pwd=o1kg


Proteus 串口发送与接收仿真

Powder_face 于 2025-04-01 18:25:51 发布

一、前言

我的 Proteus 版本是 8.13,最近在学习使用 Proteus 仿真串口通信时遇到了一些问题,但最终成功完成了串口仿真。以下是我在过程中遇到的问题及解决方法。

二、问题概述

  1. COMPIM 和 Virtual terminal 的使用
    • 如何使用这两个器件?
  2. 单片机只能发送不能接收
    • Virtual terminal 不能像串口助手一样给单片机发送数据,只能显示单片机发送的数据或串口助手发来的数据。

三、Virtual terminal 的使用

(一)添加 Virtual terminal

  1. Virtual terminal 不在元件库里,需要到虚拟仪器里面去找:
    img
  2. 连线图如下:
    img

(二)配置 Virtual terminal

  1. 双击配置 Virtual terminal,波特率设置为 4800,点击 OK:
    img

(三)运行仿真

  1. 在程序中写的是上电后单片机发送 AA:
    img
  2. Proteus 运行仿真,如果没跳出 Virtual terminal 的窗口,手动去 debug 里打开:
    img
    img
  3. 如果 Virtual Terminal 界面什么都没显示,右键打开 16 进制显示:
    img
  4. 停止仿真,重新运行一次,显示正常:
    img

四、COMPIM 的使用

(一)设置虚拟串口

  1. 使用 VSPD 设置一对虚拟串口,我使用的是 COM1 和 COM2:
  2. 在设备管理器里查看虚拟串口 COM1 和 COM2 是否设置成功:
    img

(二)添加和配置 COMPIM

  1. 在元件库里搜索“COMPIM”,放置连线:
    img
  2. 双击配置 COMPIM,端口为 COM1,波特率为 4800:
    img

(三)配置串口助手

  1. 打开串口助手(我使用的是 XCOM),配置串口为 COM2,波特率为 4800,打开串口:
    img

(四)运行仿真

  1. Proteus 运行仿真后,串口助手接收区接收到 AA,说明单片机发送没问题:
    img
  2. 程序中写了中断函数来作为接收,当串口助手向单片机发送一个数据时,单片机会回传这个数据:
    img
  3. 但当在串口助手向单片机发送“FF”时并没有收到单片机的回传。使用 Virtual terminal 发现 COMPIM 确实给单片机发送了“FF”:
    img

五、解决单片机接收问题

(一)替换 MCS8051.DLL 文件

  1. 在 Proteus 8.13 中,MCS8051.DLL 文件需要替换。
  2. 下载替换文件,解压,找到以下路径:
    D:\Proteus8.13\Proteus 8 Professional\DATA\MODELS\MCS8051.DLL
    
  3. 将其替换掉。
  4. 替换文件百度网盘链接:https://pan.baidu.com/s/12hCPWBBYO-xaPRw1nGzjUw?pwd=wmyy 提取码:wmyy

(二)运行仿真

  1. 替换后,运行 Proteus 仿真,得到回传数据“FF”:
    img

via:


网站公告

今日签到

点亮在社区的每一天
去签到