任务1.2 LED二极管单灯点亮
任务目标
编写流程图程序、编译并运行程序,使Arduino的数字I/O引脚第12脚控制单个发光二极管固定点亮,仿真硬件电路如图1-1所示。
[任务重点]
● 用可视化的流程图相应图框编写绘制最简单的结构流程图(源程序)
● 可视化设计界面结构和相关图框的功能及应用
● 编译并运行、观察仿真结果
任务实施
1.2.1 SETUP结构流程图绘制
一个基于Arduino Uno的可视化流程图有且只能有一个初始化设置结构(即SETUP结构)和一个循环结构(即LOOP结构),复杂的可视化流程图还可以包含其他多个结构,另外,一个可视化结构流程图可以包含多张图纸。“新工程-Proteus 8 Professional-可视化设计”界面如图1-30所示,在图中完善SETUP结构。
图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所示。
图1-31 初始SETUP结构流程图
2)双击“I/O操作”图框,弹出“编辑I/O块”对话框,如图1-32所示。
图1-32 “编辑I/O块”对话框
(2)引脚输出模式定义
1)在“对象”下拉列表中选择“cpu”选项。
2)在“方法”下拉列表中选择“pinMode”选项。
3)在“Pin”文本框中输入12。
4)在“Mode”下拉列表中选择“OUTPUT”选项。
5)单击“确定”按钮,得到的SETUP结构流程图如图1-33所示。
图1-33 SETUP结构流程图
1.2.2 LOOP结构流程图绘制
由于任务是实现单片机IO12数字引脚上控制的LED二极管固定点亮,根据硬件电路,单片机只需使IO12数字引脚输出高电平即可,通过“I/O操作”图框完成引脚输出高电平。
1)将“I/O操作”图框拖动到LOOP结构流程图中,初始LOOP结构流程图如图1-34所示。
图1-34 初始LOOP结构流程图
2)“I/O操作”图框属性编辑。
双击“I/O操作”框图,弹出“编辑I/O块”对话框,编辑相关属性,具体如图1-35所示。其中,在“方法”下拉列表中选择“digitalWrite”选项,在“Pin”文本框中输入12,在“State”文本框中输入TRUE。
图1-35 编辑相关属性
3)单击“确定”按钮,得到LOOP结构流程图如图1-36所示。
图1-36 LOOP结构流程图
1.2.3 仿真运行
仿真运行的具体步骤如下。
1)通过仿真工具条的仿真运行按钮对流程图(程序)编译及运行,仿真工具条如图1-37所示。
图1-37 仿真工具条
2)如果编译时未发现语法错误,界面下方“VSM Studio输出”窗口显示“编译成功”,如图1-38所示。如果没有逻辑错误,会看到二极管被点亮的结果,运行后的结果如图1-39所示。如果有语法错误,会显示编译不成功。
图1-38 “VSM Studio输出”窗口
图1-39 运行结果(高电平驱动)
1.2 仿真动画
相关知识
1.2.4 数字I/O引脚的模式定义
在应用系统中,要想通过数字I/O引脚完成数字量的输入或输出,应在SETUP结构流程图中初始化定义数字I/O引脚的模式为输入或输出。双击放置好的“I/O操作”图框,按照图1-40所示设置I/O引脚的模式。
图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二极管正向导通电流的大小。
图1-41 LED二极管驱动电路(低电平驱动)
任务拓展
1)利用单片机的0~13引脚中的任何一个引脚控制外接的发光二极管固定点亮,引脚输出高电平二极管灯亮。修改硬件电路和结构流程图,仿真观察结果。
2)利用单片机的0~13引脚中的任何一个引脚控制外接的发光二极管固定点亮,引脚输出低电平二极管灯亮。修改硬件电路和流程图,仿真观察结果。