任务2.1 LED二极管跑马灯控制
任务目标
使用Arduino的数字IO0~IO7引脚分别控制LED发光二极管,实现8个LED发光二极管按照跑马灯花样显示,仿真硬件电路如图2-1所示。
图2-1 8个发光二极管显示电路
[任务重点]
● 用“决策块”图框编写分支结构
● 跑马灯花样显示特点
● 所有LED发光二极管亮或暗的结构流程图绘制
● 判断LED发光二极管从左到右显示了一遍
● 编译并运行、观察仿真结果
任务实施
2.1.1 硬件电路绘制
1)绘制好一个电阻和一个二极管的连接电路,方法如任务1.1所述,电路如图2-2所示。
图2-2 电路块的选择
2)采用块复制的方法可以快速完成其他电阻和二极管连接电路的绘制。选择要复制的电路块,在电路的左上角按住左键拖动到电路的右下角再松开左键,如图2-2所示。被选中的电路四周有黑色的虚线框,元器件呈红色。
3)单击“块复制”按钮,能复制出其他电阻和二极管连接电路,如图2-2所示。
4)完善其余连线。
5)放置I/O端口并双击编辑端口号。
6)放置电源地并连接到电路,完成图2-1电路绘制。
2.1.2 SETUP结构流程图绘制
SETUP结构流程图的绘制需要用到流程图框工具条中的“分配块”和“决策块”,如图2-3所示。
(1)放置“分配块”图框
1)拖动“分配块”到SETUP结构流程图中,如图2-4所示。
2)双击“分配块”,弹出“编辑分配块”对话框,如图2-5所示。
图2-3 流程图框工具条中的“分配块”和“决策块”图
图2-4 SETUP结构流程图
图2-5 “编辑分配块”对话框
3)单击左下角“新建”按钮,弹出“新建变量”对话框,如图2-6所示。在“命名”文本框中输入j(变量名可以任意),在“类型”下拉列表中选择“INTEGER(整型)”选项。
图2-6 “新建变量”对话框
4)单击“确定”按钮,回到“编辑分配块”对话框,整型变量j定义成功,如图2-7a所示。
5)在“分配”下拉列表框选择“j”,在右边文本框中输入0,具体如图2-7b所示。
图2-7 设置整型变量j
a)定义整型变量j b)设置“分配”属性
6)单击“确定”按钮,绘制的SETUP结构流程图如图2-8所示。
图2-8 SETUP结构流程图(添加分配块)
(2)放置“决策块”
拖动“决策块”图框到SETUP结构流程图,双击“决策块”,弹出“编辑条件块”对话框,如图2-9所示。在“条件”文本框中输入“j>7”,单击“确定”按钮,完成的SETUP结构流程图如图2-10所示。
图2-9 放置“决策块”图框设置
(3)完成“决策块”另一出口连线
具体连线操作示意图如图2-11所示。
图2-10 SETUP结构流程图(添加决策块)
图2-11 连线操作示意图
(4)继续完善SETUP结构流程图
如图2-12所示,继续完善SETUP结构流程图。
图2-12 完善SETUP流程图
2.1.3 LOOP结构流程图绘制
由于LOOP结构流程图中所有图框已经用过,具体绘制过程不再说明,按照图2-13所示绘制LOOP结构流程图。
图2-13 LOOP流程图
2.1.4 仿真运行
单击“仿真运行”按钮,观察仿真结果。
相关知识
2.1.5 “分配块”图框里变量的算术运算
可视化结构流程图绘制时,通过“分配块”实现对变量的算术运算,具体的运算符含加“+”、减“-”、乘“*”、除“/”、求余“%”等运算,比如j=j+1、j=j-1、j=j*10、j=j/10、j=j%10、j=i+10等都是合法的运算。
也可通过系统自带的函数对变量进行相应的计算,自带的函数列表如图2-14所示。
2.1 仿真动画
图2-14 自带的函数列表
2.1.6 “决策块”里的条件设置
“决策块”用来设定结构流程图的条件,根据条件满足和不满足时分别执行相应的分支流程(YES或NO分支),从而实现两分支和多分支程序设计,“决策块”里能设置的条件有大于“>”、小于“<”、大于或等于“>=”、小于或等于“<=”、等于“=”、不等于“!=”,比如j>7,j<3,j>=5,j<=10,j=3,j!=6等都是合法的分支条件。
2.1.7 结构流程图结构分类
结构流程图从结构上分为顺序结构、分支结构、循环结构3类。这里只介绍顺序结构和分支结构。
(1)顺序结构
顺序结构实现流程图中的图框按从上到下依次执行。任务1.3中的SETUP和LOOP结构流程图均为顺序结构流程图。
(2)分支结构
分支结构流程图中用到了“决策块”图框,“决策块”图框执行后下一步执行“YES”分支还是“NO”分支要根据“决策块”图框里条件是否满足。
任何结构流程图从总体上说都是顺序结构,因为流程图的执行总体上是按顺序从上往下依次执行,如果遇到“决策块”图框,可以选择不同路径继续执行,到最后都要结束流程图的执行(LOOP结构流程图总体上也是顺序结构,但不结束执行)。
2.1.8 SETUP结构流程图功能说明
SETUP结构流程图通过一个分支结构对IO0~IO7引脚的模式进行定义,均定义为输出模式,SETUP结构流程图功能说明如图2-15所示。
图2-15 SETUP结构流程图功能说明
2.1.9 LOOP结构流程图功能说明
LOOP结构流程图的上半部分,通过j变量控制引脚号,使IO0~IO7引脚分别输出高电平,并延时500ms,看到跑马灯的效果;LOOP结构流程图的下半部分,通过j变量控制引脚号,使IO0~IO7引脚分别输出为低电平,所有灯熄灭,并延时500ms,为下一次跑马灯的效果做准备。LOOP结构流程图功能说明如图2-16所示。
图2-16 LOOP结构流程图功能说明
任务拓展
1)硬件电路不变,实现从右往左的跑马灯效果。
2)修改硬件,用IO1、IO2、IO4、IO6、IO7、IO8、IO9、IO10数字引脚控制发光二极管,设计硬件电路和绘制结构流程图,实现跑马灯的效果。