任务1.3 LED二极管单灯闪烁
任务目标
绘制结构流程图、编译并运行程序,使Arduino的IO12引脚控制单个发光二极管按秒闪烁,硬件电路如图1-1所示。
[任务重点]
● 可视化的结构流程图绘制
● 延时图框
● 发光二极管按秒闪烁
● 编译并运行、观察仿真结果
任务实施
1.3.1 SETUP结构流程图绘制
由于硬件电路没变,所以SETUP结构流程图和图1-33一样。按照图1-31和图1-32顺序绘制SETUP结构图。
1.3.2 LOOP结构流程图绘制
所谓的发光二极管按秒闪烁,就是发光二极管的显示状态在亮——熄灭之间反复切换,并且状态切换的时间间隔为500ms。要实现这一显示效果,单片机只需控制驱动发光二极管的I/O引脚的输出状态在高——低电平之间切换。
(1)IO12引脚输出高电平
为了实现单片机IO12数字引脚上控制的LED二极管闪烁,根据硬件电路,单片机首先要使IO12数字引脚输出高电平,通过“I/O操作”图框完成引脚输出高电平。“I/O操作”图框具体设置过程如图1-35所示。单击“确定”按钮,得到的LOOP结构流程图如图1-36所示。
(2)放置延时500ms图框
流程图工具图框中的“延时”图框如图1-42所示。
图1-42 延时图框
把延时图框成功放置到LOOP结构流程图后,LOOP结构流程图如图1-43所示。
图1-43 LOOP结构流程图
(3)编辑延时图框
1)双击“100ms延时”图框。
2)弹出“编辑延时块”对话框,如图1-44所示。在“延时”文本框中输入500,在右边下拉列表中选择“毫秒”选项。
3)单击“确定”按钮,LOOP结构流程图如图1-45所示。
图1-44 “编辑延时块”对话框
图1-45 添加500ms延时图框的LOOP结构流程图
(4)IO12引脚输出为低电平
放置“I/O操作”图框,使IO12引脚输出为低电平,设置过程和使IO12引脚输出高电平一样,IO12引脚输出为低电平设置过程如图1-46所示。其中,在“方法”下拉列表中选择“digitalWrite”选项,在“Pin”文本框中输入12,在“State”栏输入FALSE,单击“确定”按钮,LOOP结构流程图如图1-47所示。
图1-46 IO12引脚输出为低电平设置
图1-47 LOOP结构流程图(IO12输出为低电平)
(5)放置延时500ms图框
放置延时500ms图框成功,最后的LOOP结构流程图如图1-48所示。
图1-48 LOOP结构流程图
1.3.3 仿真运行
单击“仿真运行”按钮,如果流程图编译成功,自动连续运行程序,切换到原理图设计界面看到发光二极管按照1s时间间隔亮暗闪烁。
在连续运行时可以单击“暂停”按钮,程序运行暂停。具体操作如下。
(1)进入可视化界面
1)编译成功,连续运行,单击“暂停”按钮,自动进入到“可视化设计”界面,如图1-49所示。
图1-49 可视化设计界面
2)在“可视化设计”界面中增加了程序调试工具栏,通过按键相应按钮,对程序实现连续、单步、进入函数、跳出函数和跳到光标处等运行。
(2)单步运行程序,观察发光二极管的显示状态
1)第一次单击“单步运行”按钮,选中的图框处于准备状态(还没运行),单步运行过程如图1-50所示。
2)第二次单击“单步运行”按钮,选中的图框处于准备状态(还没运行),单步运行过程如图1-51所示。
3)第三次单击“单步运行”按钮,选中的图框处于准备状态(还没运行),单步运行过程如图1-52所示。此时切换到原理图界面,发光二极管亮,如图1-53所示。
4)第四次单击“单步运行”按钮,选中的500ms延时图框处于准备状态(还没运行)。
5)第五次单击“单步运行”按钮,重新回去选中第一图框,“单步运行”过程如
图1-50 第一次单步运行过程
图1-51 第二次单步运行过程
图1-52 第三次单步运行过程
图1-50,切换到原理图界面,发光二极管熄灭,如图1-54所示。
图1-53 发光二极管亮
图1-54 发光二极管熄灭
相关知识
1.3.4 延时图框完成微秒延时
通过“延时”图框能够实现微秒的延时,在结构流程图中放置好“延时”图框后,双击“延时”图框,在“编辑延时块”对话框中通过设定延时时间单位为“微秒”和具体数字完成,“编辑延时块”对话框设置如图1-55所示。
1.3 仿真动画
图1-55 微秒延时
1.3.5 延时图框完成秒的延时
通过“延时”图框能够实现秒的延时,在结构流程图中放置好“延时”图框后,双击“延时”图框,在“编辑延时块”对话框中通过设定延时时间单位为“秒”和具体数字完成,“编辑延时块”对话框设置如图1-56所示。
图1-56 秒的延时
1.3.6 程序调试工具栏
程序调试工具栏如图1-57所示,由7个按钮组成,从左往右依次为连续运行、单步运行、单步跳进子程序、跳出子程序、单步到、切换断点、清除断点。
(1)连续运行
结构流程图编译(也叫构建工程)通过后,单击仿真工具条中的“开始”或“暂停”按钮,进入到如图1-49所示的程序调试界面,单击“连续运行”按钮观察仿真结果。
图1-57 程序调试工具栏
(2)单步运行
单击一次“单步运行”按钮,单步运行LOOP结构图中的图框,按照从上往下的顺序执行。
(3)单步跳进子程序
单击“单步跳进子程序”按钮,单步执行图框,如果是子程序结构流程图的调用图框,CPU就进入到子程序结构流程图中“单步运行”图框。
(4)跳出子程序
CPU在子程序结构流程图单步运行中,单击“跳出子程序”按钮,跳出子程序,回到上一级结构流程图中继续运行程序。
(5)单步到
可视化结构流程图禁用此功能,只对源代码调试有效。
(6)切换断点
在某一图框上添加断点,单击“连续运行”按钮,运行到有断点的图框暂停运行,断点对单步运行、单步跳进子程序运行方式没有用。图框添加或取消断点操作如图1-58所示,在图框上右击,弹出快捷菜单,选择“切换断点”命令,在添加或取消之间切换,图框右上角有点的表示添加了断点。
图1-58 图框添加或取消断点操作
(7)清除断点
当设置的断点超过两个时,通过“清除断点”命令可清除所有的断点。
通过这些调试按钮可以调试排除结构流程图中的逻辑错误,同时,还可通过“单步运行”观察CPU内部的存储器、变量、定时器、代码等数据,进一步判断错误的原因。
任务拓展
1)修改任务中的硬件和结构流程图,使IO2数字引脚上的发光二极管按秒的时间闪烁。
2)修改任务中的结构流程图,硬件不动,使发光二极管按2s的时间间隔闪烁。