当前位置: 首页 > backend >正文

第一章 Proteus中Arduino的可视化程序

今天来给大家分享proteus软件的仿真设计的一些方法,主要介绍proteus这个软件中,基于arduinouno板的可视化设计(visualDesigner)方法。Proteus软件是英国LabCenterElectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。虽然国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。就是这么一个功能强大的软件,成为了许多老师们上课喜欢用的软件。我们学校有老师开了一门单片机学习入门的课,就是用proteus来教学的。先来看看proteus长啥样:

图片

现在proteus最新版本已经到了9.0,从8.6开始,proteus就已经支持可视化设计,那有人要问了:什么是可视化设计呀?

可视化(Visual)程序设计其实是一种全新的程序设计方法。

它主要是让程序设计人员利用软件本身所提供的各种控件,像搭积木一样来构造应用程序的各种界面。Proteus软件的可视化设计VisualDesigner是一个独特的开发工具,同时使用流程图和Arduino开发板通过拖放的外围设备模块来设计基于Arduin嵌入式系统的程序设计。并且设计好的程序可以直接烧录到对应的板子上。

要想用proteus进行可视化设计,得要1.安装proteus8.6及以上的版本。

Proteus 8.17 2024年最新版 安装和汉化教程

1.创建可视化设计工程

首先打开软件,可以看到这样的界面,点击“NewFlowchart”(我的proteus是汉化过的,汉化的方法百度上有很多,以后会讲讲)

图片

点击“下一步”

图片

然后就按照默认配置即可,最后点击“完成”即可创建。

2.界面介绍

原理图界面,在这里可以摆放部件的位置,对部件的属性进行修改

图片

流程图界面,在这里可以进行程序的设计

图片

3.可视化设计基本方法介绍

以刚刚的工程为例,可视化原理图搭建完成后,将界面切换至可视化界面,从左边工程树中的Peripherals选项中,我们可以看到cpu和timer1两个关于Arduino开发平台的方法库:

图片

cpu模块的方法

单击cpu左边的三角,弹出cpu相关的方法:

pinMode(配置引脚模块,指定引脚和方向)

analogReference(配置模拟引脚参考电压模块)

analogWrite(写入模拟量模块)

analogRead(读取模拟量模块)

digitalWrite(写入数字量模块,指定输出引脚和高低电平)

digitalRead(读取数字量模块)

pulseIn(读取脉冲时间模块)

millis(延时模块)

enableInterrupt(启用中断模块)

disableInterrupt(禁用终端模块)

debug(调试模块)等等

图片

timer1模块的方法

单击timer1左边的三角,弹出timer1相关的方法:

initialize(初始化模块)

setPeriod(设置频率模块)

start(启动模块)

stop(停止模块)

restart(重启模块)

resume(继续模块)

read(读取模块)

pwm(启用PWM模块)

disablepwm(禁用PWM模块)

setPwmDuty(设置PWM占空比模块)

图片

基本逻辑框图

从工程树的右边可以看到基本逻辑框图,如下图所示:

流程图中的基本逻辑框图

流程图中的基本逻辑框图

需要使用的时候只需要将对应的框拖动到流程图中即可,在这里简单介绍几个逻辑框图的用法。首先,是赋值/分配模块,该模块是变量赋值的工具,可以在赋值/分配模块中完成创建新变量、编辑变量和删除变量等操作,可用的变量类型如下:

可视化设计中的变量的类型

可视化设计中的变量的类型

图片

和C语言差不多,有布尔类型,整型,浮点型,字符串型等等,后面的TIME是时间类型(之后的文章会介绍),还有一个HANDLE(句柄)我也没用过。其次,介绍一下决策/判断模块,双击该模块,在Condition中填入判断的条件;右键点击该模块,选择“SwapYes/No”,可以交换流程图中的Yes和No的分支。

判断模块

判断模块

交换Yes和No

交换Yes和No

然后介绍一下循环模块,这个循环模块里包含了三种循环,分别是计数循环(CountLoop)、For-Next循环(For-NextLoop)、While-Wend循环(While-WendLoop)和Repeat-Until循环(Repeat-UntilLoop)。后面三种循环分别对应着C语言中的FOR循环、While循环和While-Until循环。

最后告诉大家一个小技巧,当你的流程图过长时,你可以把流程图分开成两个,操作方法是右键单击要分离的地方并Split(分离)向导线即可,如图所示:

图片

图片

图片

系统仿真

开始仿真:若要开始仿真,可以单击动画控制面板上的“播放”按钮。程序将进行编译并且仿真进度将在状态栏上显示:

第一个

第一个

停止仿真:若要停止仿真,可以单击动画控制面板上的“停止”按钮,整个工程将停止仿真。

第四个

第四个

暂停仿真:暂停Proteus仿真是一个重要的概念。当仿真暂停时,程序和元器件处于当前静止状态,例如,电容器不会放电,电机将保持其角位置和动量,这样便可以是用户检查程序和虚拟硬件。若要暂停仿真,可以单击动画控制面板上的“暂停”按钮。

第三个

第三个

串行口通信模块

在可视化设计中,有时候需要实时查看一些变量的值来检查程序是否正常运行,当你的程序中没有显示屏的时候,串口通信模块就能发挥大用处,软件里提供了这个模块

图片

如图,在Grove中的UART。

图片

方法:

  • 1.print:

    屏幕打印字符

  • 2.println:

    屏幕打印字符,并换行回车

  • 3.setBase:

    设置数据打印进制数

  • 4.setPlaces:

    设置数据打印保留几位小数点

方法很简单,就是print嘛,举个例子,输出一个字符串:

图片

效果:

图片

这样就在屏幕上打开了!如果你一不小心点了右上角的X关掉了,下次模拟仿真的时候是不会出现的,需要手动打开,打开方法:

点击调试

图片

然后勾选这个VT的选项即可

图片

http://www.xdnf.cn/news/7906.html

相关文章:

  • Vue.js教学第九章:Vue动态与异步组件,高效开发全攻略
  • 什么是实时流数据?核心概念与应用场景解析
  • QRsim:一款快速验证控制算法和无缝迁移到实物平台的无人系统3D仿真平台
  • 虚拟机NAT模式获取不到ip
  • 全方位详解微服务架构中的Service Mesh(服务网格)
  • 深入浅出Java-Lambda表达式
  • 目标检测 LW-DETR(2024)详细解读
  • [Vue]路由基础使用和路径传参
  • 《C 语言字符串操作从入门到实战(上篇):字符分类、转换及strlen/strcpy等函数详解》
  • 智橙云PLM上线【企业知识库】,构建企业自己的研发创新知识库!!
  • 云DNS智能解析:实现多区域部署
  • 第五章 GPT模块配置
  • 深入浅出理解时间复杂度和空间复杂度
  • 【音频】如何解析mp3文件
  • 如何从 iPhone 获取照片:5 个有效解决方案
  • Wi-Fi(无线局域网技术)
  • C++类与对象(二):六个默认构造函数(二)
  • 心联网(社群经济)视角下开源AI智能名片、链动2+1模式与S2B2C商城小程序源码的协同创新研究
  • 第13天-用BeautifulSoup解析网页数据:以百度热搜可视化为例
  • leetcode2844. 生成特殊数字的最少操作-medium
  • C语言中的弱符号 __attribute__((weak)) 的使用方法
  • C语言---内存函数
  • Axure通过下拉框选项改变,控制字段显隐藏
  • Rust 学习笔记:关于泛型的练习题
  • Switch最新 模拟器 Eden(伊甸)正式发布 替代Yuzu模拟器
  • C#面:Server.UrlEncode、HttpUtility.UrlDecode的区别
  • Python里字典的操作
  • C#语法篇 :基类子类转换,成员变化情况
  • 云蝠智能大模型呼叫动态情感共情能力上线!
  • SIGIR25-推荐论文整理