![基于Proteus的Arduino可视化编程应用技术](https://wfqqreader-1252317822.image.myqcloud.com/cover/35/41865035/b_41865035.jpg)
任务1.2 LED二极管单灯点亮
任务目标
编写流程图程序、编译并运行程序,使Arduino的数字I/O引脚第12脚控制单个发光二极管固定点亮,仿真硬件电路如图1-1所示。
[任务重点]
● 用可视化的流程图相应图框编写绘制最简单的结构流程图(源程序)
● 可视化设计界面结构和相关图框的功能及应用
● 编译并运行、观察仿真结果
任务实施
1.2.1 SETUP结构流程图绘制
一个基于Arduino Uno的可视化流程图有且只能有一个初始化设置结构(即SETUP结构)和一个循环结构(即LOOP结构),复杂的可视化流程图还可以包含其他多个结构,另外,一个可视化结构流程图可以包含多张图纸。“新工程-Proteus 8 Professional-可视化设计”界面如图1-30所示,在图中完善SETUP结构。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_29_01.jpg?sign=1738778250-i8aIFY0Rn438XGwgLGnHtc9VUb7BG3C0-0-7baf919593de10bbfe7decf752a30d21)
图1-30 “新工程-Proteus 8 Professional-可视化设计”界面
ArduinoUno控制板数字I/O引脚为IO0~IO19,在应用电路中可以作为数字量输入或输出口使用,任务中IO12引脚作数字量输出引脚用,一般在SETUP结构中用“I/O操作”图框定义引脚的模式为输出模式,定义后单片机才能通过该引脚输出1位的数字量。
(1)通过“I/O操作”图框命令放置I/O图框
1)在图1-30中,光标移动到流程图框工具条的“I/O操作”图框上,按住左键把I/O操作图框拖动到SETUP结构流程图的连线上并松开,放置I/O操作图框成功后,初始SETUP结构流程图如图1-31所示。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_30_01.jpg?sign=1738778250-mMZ7Qa9OkkCjEXMJE3Z4ewQLDCvWtAVl-0-9b3128feb88d1037cb7cfbed64848fb9)
图1-31 初始SETUP结构流程图
2)双击“I/O操作”图框,弹出“编辑I/O块”对话框,如图1-32所示。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_30_02.jpg?sign=1738778250-0VXoyyPIhWx0ObuocLKOnhonjPF6swWQ-0-4f987a213bc29ef081b5ee01bc7f791b)
图1-32 “编辑I/O块”对话框
(2)引脚输出模式定义
1)在“对象”下拉列表中选择“cpu”选项。
2)在“方法”下拉列表中选择“pinMode”选项。
3)在“Pin”文本框中输入12。
4)在“Mode”下拉列表中选择“OUTPUT”选项。
5)单击“确定”按钮,得到的SETUP结构流程图如图1-33所示。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_31_01.jpg?sign=1738778250-8HA1u2G9uKzR01Z7SIDD6i5GUvKhptXY-0-1331d230743eda35d5ade90e82654b87)
图1-33 SETUP结构流程图
1.2.2 LOOP结构流程图绘制
由于任务是实现单片机IO12数字引脚上控制的LED二极管固定点亮,根据硬件电路,单片机只需使IO12数字引脚输出高电平即可,通过“I/O操作”图框完成引脚输出高电平。
1)将“I/O操作”图框拖动到LOOP结构流程图中,初始LOOP结构流程图如图1-34所示。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_31_02.jpg?sign=1738778250-foSzV9uxiFn9DOsHcsT7IY5jtvCZrDDW-0-524c2a02312ca265968cd7dc734f288f)
图1-34 初始LOOP结构流程图
2)“I/O操作”图框属性编辑。
双击“I/O操作”框图,弹出“编辑I/O块”对话框,编辑相关属性,具体如图1-35所示。其中,在“方法”下拉列表中选择“digitalWrite”选项,在“Pin”文本框中输入12,在“State”文本框中输入TRUE。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_32_01.jpg?sign=1738778250-woR9cPb76K4RRej7gwP9s6mZbVO9lLVH-0-ebf84971fd00be0a7b2969c086416c20)
图1-35 编辑相关属性
3)单击“确定”按钮,得到LOOP结构流程图如图1-36所示。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_32_02.jpg?sign=1738778250-Z1DUZ8ItVatCo0dooOYS3ZWJURtNPMBJ-0-425e3ba8bf481cccc0b027e471ffd578)
图1-36 LOOP结构流程图
1.2.3 仿真运行
仿真运行的具体步骤如下。
1)通过仿真工具条的仿真运行按钮对流程图(程序)编译及运行,仿真工具条如图1-37所示。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_33_01.jpg?sign=1738778250-2jq3Tsnw70S7AEJ4f0jq3bJntqgYLAZq-0-635d1e1e8e4007c7d7d5931e8fd92761)
图1-37 仿真工具条
2)如果编译时未发现语法错误,界面下方“VSM Studio输出”窗口显示“编译成功”,如图1-38所示。如果没有逻辑错误,会看到二极管被点亮的结果,运行后的结果如图1-39所示。如果有语法错误,会显示编译不成功。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_33_02.jpg?sign=1738778250-GkObmjJjeHBdiw66I0VVWOt4hlQUwl1F-0-ee66c1cc23d6d49118ebf5a3851bf489)
图1-38 “VSM Studio输出”窗口
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_33_03.jpg?sign=1738778250-dP7BU2Ed1l32O5bIRa29nz3Wjd1tsVDV-0-f856cd4daaf3cddd966771069cb39f68)
图1-39 运行结果(高电平驱动)
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_33_04.jpg?sign=1738778250-VjF3Pi9Cd1yXATEfqlaqGOqWYFygY1bP-0-281735fe68fa2d8ac29196006e1f7986)
1.2 仿真动画
相关知识
1.2.4 数字I/O引脚的模式定义
在应用系统中,要想通过数字I/O引脚完成数字量的输入或输出,应在SETUP结构流程图中初始化定义数字I/O引脚的模式为输入或输出。双击放置好的“I/O操作”图框,按照图1-40所示设置I/O引脚的模式。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_34_01.jpg?sign=1738778250-lDuVEGl3fTGFBcZQxtmpgdWGDJQMNl6U-0-26d9b841d3ba041f0692866e3cd6d91d)
图1-40 设置I/O引脚模式
1.2.5 数字I/O引脚输出状态设置
I/O引脚输出的状态有TURE(高电平)或FALSE(低电平),在图1-35中的“State”文本框中设定I/O引脚输出的状态。
1.2.6 SETUP结构流程图和LOOP结构流程图的比较
SETUP结构流程图也叫初始化结构流程图,主要完成数字I/O引脚模式的设置,比如数字I/O引脚在硬件电路中用于输出数字量,则I/O引脚的模式定义为输出,比如数字I/O引脚在硬件电路中用于输入数字量或开关量,则I/O引脚的模式定义为输入;变量的定义和初始值的设置;外部中断和定时器的初始化等。这些初始化的图框只在CPU复位或通电开始工作时执行一次。
LOOP结构流程图也叫循环结构流程图,是CPU的监控程序部分,CPU总体上按顺序从上往下依次执行结构流程图中的图框,最后一个图框执行完后又自动返回到结构图的第一个图框,重新开始执行LOOP结构流程图,永不停止。此任务中的LOOP结构流程图内只有一个使IO12引脚输出高电平的图框,可以理解为CPU在反复执行该图框。
所以说,一旦CPU复位,执行完SETUP结构流程图后就进入到LOOP结构流程图,实现CPU对外部电路的实时控制,同时,CPU也会监控内部资源电路的工作状态(内部定时器等电路单元)。
1.2.7 LED二极管的驱动电路
LED二极管上只要有5~20mA的正向导通电流,LED二极管就会发光。LED二极管的驱动电路有两种,一种是单片机的I/O引脚输出为高电平时,驱动LED二极管发光的电路,如图1-39所示;另一种是单片机的I/O引脚输出为低电平时,驱动LED二极管发光的电路,如图1-41所示。与二极管串联的电阻一般取330Ω、470Ω的标称值电阻,用于控制LED二极管正向导通电流的大小。
![](https://epubservercos.yuewen.com/5072CD/21889221001187006/epubprivate/OEBPS/Images/978-7-111-66651-6_35_01.jpg?sign=1738778250-EA5WvQbCZk5kdiIqsJQNIcqY5YlKUBPe-0-5c903070ba5a81ae1bb68786a7f19fdc)
图1-41 LED二极管驱动电路(低电平驱动)
任务拓展
1)利用单片机的0~13引脚中的任何一个引脚控制外接的发光二极管固定点亮,引脚输出高电平二极管灯亮。修改硬件电路和结构流程图,仿真观察结果。
2)利用单片机的0~13引脚中的任何一个引脚控制外接的发光二极管固定点亮,引脚输出低电平二极管灯亮。修改硬件电路和流程图,仿真观察结果。