□黎民山
单片机教学是高校教育中具有较强理论性及实践性的课程,作为专业核心课程之一的单片机教学必须以应用与实践为主,设计方法以及流程图编程模式以单片机软件运行环境为主,针对图形化开发平台的优势,从硬件操作为基础、软件系统开发为主,为单片机教学以及实际应用提供有效的参考价值,促进学生能力的提升与软件模拟以及仿真教学、网络虚拟实验室等入手,采用形象化的模块,自顶向下设计流程,完成流程图设计,实现单片机软件程序编写与流程图模块的连接,运用EAD软件完成程序流程图设计,重点寻求问题解决方法以开发出具有较强实用性的产品,实现单片机系统开发的专业化处理,提高学生的设计能力以及实践能力。一、单片机软件系统开发的原理及流程图
(一)流程图与单片机系统软件开发。流程图是采用软硬件一体化编程的主要软件,以通过C语言、汇编等基础编程程序,借助QT跨平台搭建可视化、简单移植的流程图操作界面,改变传统对语法以及句法的编程,以可视化模块的形式完成编程操作,从框架界面中将编译软件安装在功能编辑盒中,再利用外部烧录软件就可以直观化监视整个编译过程,促进平台搭建以及解决编程问题。故而采用流程图模块化编程,可以降低对编辑者的专业基础要求,直接从软件开发方向以及系统功能拓展等入手,以图形化编辑为主完成软件程序编辑,节省程序开发时间以及解决复杂、繁琐的编程问题,有效提高学生单片机系统软件开发的效果以及积极性。以嵌入式流程图开发平台手段,从单片机的软件系统现状等为主,自顶向下设计流程,从而完成从程序编写,注重于捋清程序逻辑关系,从而提高对学生创造力的要求,实现立足学生创新能力以及实践能力为主的教学模式构建。基于现阶段高校在电子信息以及自动化等开设单片机课程,针对电子系统进行使用技能以及开发技能的完善,可有效引导学生将所学知识进行衔接与融通。
(二)基于流程图开发单片机软件的主要工作原理。单片机程序是利用专用编程器进行代码以及功能开发等等,依据单片机现场使用的标准而言,程序更新不能用编程器完成,为解决内部存在的各种程序问题,利用流程图可以完成解决方法、思路以及算法的计算,利用图形符号以及有向线段等实现程序设计,因此在编程功能开发中,首先需要根据编程引导程序预写,然后以新的应用程序对应的机器码将引导程序预写写入引导程序。基于整体流程图构建而言,将单片机的整体程序划分为几个主要功能模块,针对每个功能完成基本的流程图绘制后,利用形态符号表示处理方式,改变利用语言以及句法进行编程的繁琐模式,直接为程序编写提供引导功能。因此系统对图形以及符号等进行相应的改造,以完成程序编写。首先在模块操作中,系统设计是利用模块库,以显示模块、判断模块以及传感器模块等,根据子模块的各项处理方式描述,例如次数循环。用循环以及条件判断等,都有对应的子模块,主要模块组织结构必须进行整体调整,以功能拓展方向以及单机片的应用环境为主,针对性进行功能,结构优化,确保单机片的程序结构以及系统运行机制优良。不同模块之间有类似于C语言以及Mat-lab软件、Phython等工具箱,通过仿真模块的子函数模块,通过模块重组实现函数调用,各个模块之间的属性以及函数代表通过组合以及编造后,以改变模块功能的形式在属性设置中利用不同的数字输入,满足设计者对延时时间的需求。最重要的是系统中有相应的开放库,能够随时增加所需的模块,因此在系统设计中可以满足学生的个性化需求,按照自身设计方向的需求,从不同角度完成单片机系统的开发。不过目前系统只能用C51进行模块编写,因为C51具有局部变量以及全局变量两种属性,满足模块的独立性要求,满足不同层次模块参数传递以及相互影响的要求,只要学生完成设计思路、理清程序关系,进行模块连接就可以完成程序代码输入,符合课时以及教学要求。
(一)系统开发函数操作。基于流程图完成单片机软件系统开发,主要是能通过流程图与C51源程序实施转换,以根据嵌入式系统平台为主,从内部编程开始以类似PLC的梯形图以及指令表,根据不同模块之间的处理方式、函数以及逻辑关系,在模块衔接后完成自动转换,以便于提高编程效率。源程序也是可以进行修改的,为提高流程图的编程效果,通常将源程序修改作为补充手段,依据C51程序基本原理,可从函数集合以及符号选用等为主,以主函数以及处理方式的确定,凸显程序流程图的对应关系,以简化软件转换的复杂程度,直接根据基本控制结构、顺序、分支以及循环等组合、嵌套等完成结构化程序的流程图编写,再依据对应源程序,将函数按照流程图顺序等完成函数调用以及主函数声明。其中顺序结构中,根据流程图的模块调入顺序添加子函数;分支及循环则是根据模块中的模块选用,软件设计区为主进行模块判断,确定模块适用于分支、循环模块的区域内、区域外,分支结构中由于分支模块区域内的逻辑顺序,选择不同的连接方式,连接在分支模块区域内的模块,子函数则是出于分支函数中,若连接中模块区域外则是出于分支函数以外,所以在分支结构中,必须要在操作前明确各个模块间的组合与连接方式,以实现各个小模块的函数调用以及分支模块构建;循环模块的函数调用以及分支模块类似,都是根据模块的循环流程,进行子函数调用,实时将相应的流程图转变为C51源程序,目前在单片机软件系统开发中,仅局限于转换利用系统,进行模块构造完成程序流程图,实现单片机的系统设计。
(二)软件更新操作。单片机软件更新系统、硬件拓展等等,都是利用产品的初期研发为基础,基于单片机的运行环境以及系统操作结构,依照软件系统升级的要求,基于功能拓展以及安全等级升级等,利用程序流程图进行功能编程,比如以G28射出成型机械手臂控制器的操作而言来实现软件系统更新,主要是将控制器进行编程处理,单片机选用C8051F020,具有IAP功能,所以在软件更新中,主要是利用单片机系统的功能拓展为主,借助源系统的核心单片机的三引脚扩展后通过SD卡的SPI接口,构建流程图操作界面,直接在界面上根据系统模块进行编程,按照C51源程序的对应关系,设计不同的流程结构,采用相应的流程处理方式,在操作界面完成新功能编程,控制机械手臂完成设定的动作,从而配合机械生产要求进行实际应用,所以在界面设置以及系统处理中,参数设定要根据实际单片机的应用场景及生产需求,根据系统的初步构建,设定相应参数进行测试,确定统一产品的控制阐述,直接将软件更新编程通过SD卡以SPI接口加载到控制器中,可以避免直接变成操作,而是通过流程图完成程序编辑后直接使用,快速又方便。编程过程以及编程方式就可以由编程者自己选择,在程序设计前,先进行程序编程模块确定,明确系统升级,更新方向,将编程好的程序另存到SD卡中以便于完成产品的直接升级,避免在产品系统上进行处理,直接完成更新,一方面省去中间编程环节,另一方面缩减产品的升级时间,不影响实际工作,确保单机片升级环境,条件以及系统运行的有效发展,灵活应对各种操作。
(三)系统测试。系统初步构建的系统测试,以8个LED灯的闪烁的程序流程图为主,根据循环模块、发送模块以及发送模块等,从源程序C51对应转换关系进行程序代码的检测,从keil软件、编译后以proteus软件为主、Phython、Mat-lab软件通过下载或者是软件网络连接,进行LED灯的电路图测试,表示程序正确性以LED灯闪及灭为主,进行程序模块运行机制的检测,从而对软件系统进行开发以及流程处理,根据日光照射时的LED灯亮颜色以及显示屏的显示信息以及日光遮住时,以红绿灯、黑白天的显示、蜂鸣器为主,确定测试结果。根据结果显示的流程图可以实现单片机软件系统开发的功能拓展要求,依据程序新建、打开以运行、编译等等,可以实现控件之间的正常运转,使用中也不会出现BUG,根据测试结果完成系统反馈。
本文根据流程图编程的单片机软件开发系统为主,依据系统的开放性以及流程图编程的优势、特点等,从功能模块的封装、程序流程图的搭建以及编译、流程图模块的深入开发为主,丰富软件的功能以及实用性,针对复杂功能通过模块顺序以及结构、控制界面等等,依照C51源程序的对应情况,实现软件程序代码的自动生成,在高校单片机教学中,可以依据现有的技术以及实验室,进行软件代码编程及程序设计。