APP下载

基于Proteus的Arduino可视化编程技术研究

2021-10-23石从刚宋剑英

青岛职业技术学院学报 2021年4期
关键词:流程图二极管可视化

石从刚,宋剑英

(青岛职业技术学院 海尔学院,山东 青岛 266555)

基于流程图的可视化编程技术的关键要素是掌握构成流程图的各种图框的功能、编辑和使用,以及基于SETUP结构、LOOP结构和用户编写的其他结构构成的应用系统流程图的整体逻辑功能、执行过程、各种结构外在的逻辑关系。仿真平台同时提供了丰富的外部硬件模块,比如开关模块、按键模块、显示器模块、电机模块和传感器模块,用户可在没有硬件设备的情况下像搭积木一样构造系统硬件电路,在流程图的可视化设计中通过模块自带的图框实现相关操作。[1]基于图框的流程图设计不需C语言或汇编语言的基础,掌握起来相对简单,并且从逻辑结构上看更直观。流程图和用C语言编写的源代码都涉及数据处理和硬件操作,在流程图的设计中也需要设定相关变量,变量在程序中用于保存数据处理的结果,对数据要进行加、减、乘、除、求余等运算。在流程图设计中,图框编辑可能涉及变量的定义和操作,需要掌握基于变量的各种运算表达式。图框是构成流程图的基本元素,本文以案例的形式研究各种图框的功能和使用,帮助学生掌握基于流程图的可视化编程技术。

一、基于流程图的可视化编程技术的基础

(一)可视化编程中的图框功能

1.I/O操作图框。I/O操作图框能够实现CPU的数字IO引脚的模式(pinMode)设置(输出模式OUTPUT或输入模式INPUT)、数字IO引脚的高电平(TRUE)输出(digitalWrite)和低电平(FALSE)输出、数字IO引脚的输入(digitalRead)、模拟量引脚的输入(analogRead)和PWM引脚的输出(analogWrite)等功能。I/O操作图框设置结果如图1所示。

图1 I/O操作图框设置结果

2.分配图框。分配图框完成对变量的赋值运算操作,变量必须在图框中定义,定义变量时指定变量的名字和类型,常用的类型有整型(INTEGER)、浮点型(FLOAT)和布尔(BOOLEAN)。可以将常数、加法计算的结果、减法计算的结果、乘法计算的结果、除法计算的结果和求余的结果赋值给已有变量。赋值运算操作如图2所示(a变量为整型)。

图2 赋值运算操作

3.延时图框。延时图框实现延时毫秒、微秒和秒时间,用于数码管显示、发光二极管闪烁显示、IO引脚输出时钟脉冲等需要延时的场合。毫秒、微秒和秒延时时间图框如图3所示。

图3 延时时间图框

4.决策图框。决策图框根据决策条件是否满足(决策条件成立值为TRUE,决策条件不成立值为FALSE)决定执行YES分支或NO分支,决策的条件一般是一个关系表达式,包括大于、小于、等于、大于等于、小于等于和不等于。基于关系表达式的决策图框如图4所示。

图4 基于关系表达式的决策图框

决策的条件也可以是一个布尔变量的值,直接根据布尔变量的值为TRUE或FALSE决定执行YES分支或NO分支。基于布尔变量的决策图框如图5所示。

图5 基于布尔变量的决策图框

5.结构定义图框。结构定义图框用于在流程图的编程中定义一个新的结构流程图(工程自带有SETUP结构和LOOP结构),该结构图是专门为完成某一操作而编写的,在该工程的其他结构图中可以反复被调用,目的是简化整个工程的流程图。在图纸中定义一个display结构,该结构内的图框可以暂时不编写,定义的display结构图框如图6所示。

图6 定义display结构图框

6.结构调用图框。结构调用图框是在流程图的编程中调用用户自己编写的完成某一特定逻辑功能的结构流程图,被调用的结构图必须已经定义好才能利用结构调用图框完成调用。display结构调用图框如图7所示。

图7 display结构调用图框

7.循环构建图框。在流程图的编程中,通过循环构建图框实现对某一操作的固定次数的操作和有条件的重复操作,对应C语言程序中的for计数循环、while和do~while循环。利用循环构建图框实现的for循环、while循环和repeat循环如图8所示,实现的循环次数在a变量初始值为0时都是7次。

图8 循环构建图框

8.互联图框。当流程图纵向或横向放不下时,需要将流程图断开并用互联图框连接起来,凡是互联号相同的线表示是连在一起的。互联图框如图9所示,将display结构断开并用互联号2连接起来。[2]

图9 互联图框

以上完成的图框都是通过双击对应图框并在弹出的编辑框中进行选择或输入完成的。

(二)可视化编程中变量的定义及功能

在操作图框中定义变量时要确定变量名和变量的数据类型。

1.整型变量的定义和功能。变量名的取名规则和C语言规定一样,以字母或下划线开头后面跟字母、下划线和数字,一般不超过8个字符,如a、a1、_a1、value。变量的类型名为INTEGER,为带符号的整数,整型变量只能存放整型数据,数据范围在-32768和32767之间。

2.浮点变量的定义和功能。变量的类型名为FLOAT,为带符号的实数,浮点变量存放的是带小数点的数据。

3.布尔变量的定义和功能。变量的类型名为BOOLEAN,布尔变量只能存放TRUE或FALSE。

(三)可视化编程中运算符及表达式

可视化的流程图只支持算术运算和关系运算,相对C语言的数据类型和运算符要少很多。

1.算术运算符和表达式。通过算术运算计算结果,算术运算符包含加、减、乘、除、求余,分别为“+”“-”“×”“/”和“%”。算术表达式一般在分配框中,完成数据的计算,如“a+5”“a-5”“a×5”“a/5”和“a%”。分配框的功能是将表达式的结果赋值给左边的变量,要求两边的数据类型必须一致。

2.关系运算符和表达式。关系运算是将两个数进行比较,关系运算符有“>”“>=”“<”“<=”“=”和“!=”。关系表达式一般在决策图框中,值为TRUE或FALSE,表示关系是否成立,如“5>a”“a<=6”“a!=3”等。

二、系统硬件电路的搭建方法

仿真平台提供了丰富的外部硬件模块,比如开关模块、按键模块、显示器模块、电机模块和传感器模块,用户可在没有硬件设备的情况下添加对应的硬件模块,像搭积木一样构造系统硬件电路。硬件模块分为Adafruit、Breakout Periphe-rals、Grove、Internet of Things、Motor Control等类型。绘制硬件电路时,打开添加硬件模块对话框,选择对应的硬件模块类型并找到对应的硬件模块,单击“添加”按钮,添加成功。

以添加一个Arduino LED(Red)模块完成8个发光二极管的显示电路为例,在可视化设计界面左侧的工程管理面板的Peripherals右击,在弹出的快捷菜单上单击“增加外围设备”命令,弹出“选择工程剪辑”对话框。

在“选择工程剪辑”对话框类别下拉列表框中选择“Breakout Peripherals”,在列出的硬件模块中选择“Arduino LED(Red)” 模块,单击“添加”按钮。在原理图设计界面,出现“Arduino LED(Red)” 模块,如图10所示。

图10 “Arduino LED(Red)” 模块

通过复制和修改IO端口号的方法放置另外7个发光二极管电路,完成系统8个发光二极管的显示电路,分别通过IO1~IO8端口控制。

用同样的方法添加Arduino Button Breakout Board(按键)模块,如图11所示。

图11 Arduino Button Breakout Board(按键)模块

三、系统自带硬件模块的图框功能

以上文添加的LED模块为例研究其自带图框的功能。

on图框和off图框功能。on图框使二极管亮,off图框使二极管熄灭,操作如图12所示。

图12 on图框和off图框

set图框功能。set图框使二极管亮(设置的状态为TRUE)和熄灭(设置的状态为FALSE),操作如图13所示。

图13 set图框操作

dim图框功能。dim图框设置二极管的亮度,亮度值为0~255。实现的原理是用一个PWM信号的脉宽来控制亮度,用dim图框设置二极管的亮度值分别为128和255,操作如图14所示。

图14 dim图框操作

toggle图框功能。toggle图框用于二极管灯的亮和熄灭之间切换,操作如图15所示。

图15 toggle图框操作

通过硬件模块自带的图框对硬件模块进行相关操作,而不需对控制器的IO端口直接操作,是图框功能的最大体现。

四、应用系统可视化流程图的组成

一个项目的可视化流程图至少包含SETUP结构和LOOP结构,复杂的项目还可包含用户自定义的其他结构,一个项目可由多张图纸组成。下面以一个二极管的显示亮度可调的可视化流程图和4位数码管模块组成的分秒计数器的可视化流程图为例分析可视化流程图的组成。

(一)一个二极管的显示亮度可调的可视化流程图组成

该可视化流程图只包含SETUP结构和LOOP结构。由于未涉及变量的初始化、IO引脚的模式设置和输出初始状态,所以SETUP结构中没有任何图框操作。LOOP结构是系统自带的一个死循环结构,CPU上电复位后首先执行一次SETUP结构流程图,然后进入到LOOP结构。该结构流程图由两个for循环结构组成,单片机通过变量i实现二极管显示模块的控制引脚高电平的占空比的变化,从而实现对二极管显示亮度的控制。二极管显示亮度可调的可视化流程图如图16所示。

图16 二极管显示亮度可调的可视化流程图

(二)4位数码管模块组成的分秒计数器的可视化流程图组成

该可视化流程图由两张图纸组成,通过菜单“项目”“新建图纸”命令新建图纸,图纸的名称采用默认名称;在两张图纸上分别编写SETUP结构流程图、LOOP结构流程图、OnTimerISR结构流程图、TimeUpdate结构流程图和TimeDisplay结构流程图。[3]每个结构流程图功能分析如下:

1.SETUP结构流程图功能。SETUP结构流程图主要完成变量的定义和初始值设置、LEDM1模块的初始化(init)和显示亮度(setBrightness)设置、timer1(定时器)初始化(定时1秒)等操作。其中,TimeDisp0、TimeDisp1、TimeDisp2和TimeDisp3都为整型变量,分别存储分钟和秒的十位和个位数字;second和minute为整型变量,存储秒和分钟值;DP变量为布尔变量,存储值为TRUE和FALSE,控制“:”二极管的显示和熄灭;Update为布尔变量,控制CPU是否刷新数码管显示内容。SETUP结构流程图如图17所示。

图17 SETUP结构流程图

2.LOOP结构流程图功能。LOOP结构流程图根据Update变量的值是否为1判断1s时间的到来,如果1s时间到,调用TimeUpdate结构流程图和TimeDisplay结构流程图,完成数码管的显示值刷新;否则,数码管的显示值不变。LOOP流程图如图18所示。

图18 LOOP结构流程图

3.TimeUpdate和TimeDisplay结构流程图功能。TimeUpdate结构流程图完成TimeDisp0-TimeDisp3变量值的修改,同时Update设置为FALSE,并根据DP变量的值确定“LEDM1”硬件模块中的“:”二极管亮或暗。TimeUpdate结构流程图如图19所示。

图19 TimeUpdate结构流程图

TimeDisplay结构流程图中,数码管从左往右依次显示变量TimeDisp0-TimeDisp3的值。TimeDisplay结构流程图如图20所示。

图20 TimeDisplay结构流程图

4.OnTimerISR结构流程图功能。利用单片机内的定时器完成1s的定时,1s时间到,单片机自动执行定时器中断结构流程图。OnTimerISR中断结构流程图(即定时器中断结构流程图)中,首先置变量Update为1(TRUE),然后对秒和分计数变量进行修改,DP变量取反。OnTimerISR中断结构流程图如图21所示。

图21 OnTimeISR中断结构流程图

五、可视化编程技术的应用推广

在电气自动化技术、应用电子技术、工业机器人技术等高职专业的人才培养方案中,单片机应用技术课程作为专业核心课程,支撑培养学生的智能电子产品设计和维护、物联网系统的设计和维护、各种机器人和无人机控制等的技术能力。基于单片机的源代码编程和底层的硬件设计要求学生具有较高的专业基础和能力,只有在这些领域具有一定的兴趣和学习动力的学生才能掌握这些技术。通过基于流程图的可视化编程和硬件模块搭积木式的构建使软件和硬件的设计变得简单,能够激发学生参与到相关技能大赛、科技创新等活动中来,提高学生学习和研究技术的兴趣,进一步提升专业人才培养质量。

猜你喜欢

流程图二极管可视化
基于CiteSpace的足三里穴研究可视化分析
自然资源可视化决策系统
云的识别指南
思维可视化
自然资源可视化决策系统
一种程序源代码的标准化流程图转化方法∗
平面低压降肖特基二极管外延氧化工艺
含理想二极管电路的疑难问题辨析お
Smart Shirts Generate Electricity