基于Proteus的Arduino可视化编程应用技术
上QQ阅读APP看书,第一时间看更新

任务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的时间间隔闪烁。