单片机的图形化编程方法探讨

分享到:

        引言

  单片机可以用汇编语言编程,也可以用高级语言C、Basic编程,也可以用图形化语言编程。

  工业控制中普遍采用可编程控制器,其CPU模块内的微控制器往往是普通的单片机,而可编程控制器可以梯形图编程,或者用流程图编程。现在的智能教育机器人控制器均用单片机,而这些机器人的编程大多支持流程图编程。上海广茂达电子信息有限公司的能力风暴系列机器人采用VJC可视化流程图与C语言编程;中鸣机器人系列采用机器人快车软件编程,该软件也是可视化流程图与C语言编程;西米亚公司的乐高系列、博思威龙机器人、美国的VEX系列机器人、双龙公司的机器人DIY系列均可以采用可视化流程图与C语言编程。而这些机器人的控制系统核心均为单片机。由此可知,普通单片机的开发一定可以采用流程图编程。其实,机器人的流程图编制软件可以反过来作为相应单片机的编程软件。下面用一个实例详细说明单片机如何用图形化编程。

  1  问题描述

  某机器上,2台电机通过滚珠丝杠驱动工作台做顺序运动,如图1所示。用单片机系统控制2台电机,实现规定的顺序动作。当行程开关KX1压下时,电机D1带动卡紧机构右移,右移到撞块压下KX2时,电机D1停转,并且这种状态延迟一段时间T1。电机D2按以下顺序开始动作:当行程开关KX3压下时,电机D2带动工作台右移,工作台右移到撞块压下KX4时,电机D2停转,并且这种状态延迟一段时间T2;然后电机D2反转,带着工作台向左返回,工作台返回左侧压下KX3时,电机D2停转,同时电机D1反转,松开卡紧机构直到KX1压下,电机D1停转。

  图1  卡紧机构和工作台的顺序动作动作

  顺序如图2所示。

按此在新窗口浏览图片500)this.width=500" border=0>

图2  动作顺序图

  2  单片机控制系统组成

  实现上述控制功能的方案有多种,如继电器接触器控制系统、可编程序控制器控制系统、单片机控制系统等。本文用单片机控制系统来实现上述控制动作,单片机控制系统的组成如图3所示。

按此在新窗口浏览图片500)this.width=500" border=0>

图3  单片机控制系统结构图

  单片机采用Motorola公司的MC68HC11E1。为了仿真实验的需要,单片机控制系统采用上海广茂达电子信息有限公司的能力风暴机器人 ASUII中的主控制板。行程开关KX1~KX4用机器人上的碰撞开关来模拟,碰撞开关电路如图4(a)所示。电机D1、D2用机器人2轮的驱动电机来模拟,电路如图4(b)所示。其中,电机驱动芯片选用的是TI公司的SN754410。

按此在新窗口浏览图片500)this.width=500" border=0>

图4  能力风暴机器人上的碰撞开关电路和驱动电机电路

  3  VJC程序流程

  使用能力风暴机器人的编程开发环境VJC1.6(可以从上海广茂达电子信息有限公司网站www.grandar.com上下载)编制、调试和下载程序。针对上述单片机双电机启停控制系统,用VJC1.6编制的流程图如图5所示。实际的单片机控制系统,只要把相应的传感器及其驱动电路、电机及其驱动电路更改成适应实际对象的元器件,就仍然可以用这种单片机控制板和相应的编程软件。更进一步的应用可以扩充软硬件系统。

  程序总体为一循环程序。在每一次循环中,依次检测4个碰撞开关,按照电机的动作顺序要求启动或停止电机。程序模块的使用和变量的设置方法此处从略,请参见说明书,或与上海广茂达电子信息有限公司联系。

  图5的流程图在VJC1.6环境下可以转化为C语言程序,具体可参看VJC1.6的使用。

  在VJC1.6环境下编制的程序,无论是流程图还是C语言程序,均可以直接下载到单片机的闪存或EEPROM中,这也是这种编程和开发方法受到人们欢迎的原因。但是目前这种方法仅用在以单片机为核心的智能机器人的程序开发之中,还没有专门用于单片机开发的这种图形化编程环境,相信不久的将来就会出现这种方法。

按此在新窗口浏览图片500)this.width=500" border=0>

图5  双电机启停控制部分流程图

  结语

  这里单片机系统实现的功能就相当于一个可编程控制器系统,而且编程语言是流程图语言。可见,某些单片机系统略加扩充就可以成为一个可以使用流程图编程、C语言编程和汇编语言编程的功能相当完备的可编程控制器,从而与现有的可编程控制器在工业控制领域并驾齐驱。

  参考文献

  [1]  上海广茂达电子信息有限公司. 能力风暴智能机器人开发系统VJC1.0使用手册,2003.
  [2]  上海广茂达电子信息有限公司.能力风暴智能机器人ASMII/ASUII使用手册,2003.
  [3]  谢宋和,宋寅卯,路康,等.Motorola单片机原理及应用系统开发技术[M].北京: 北京航空航天大学出版社,1999.

  刘广瑞(博士、副教授),主要研究方向为自动控制理论、机器人控制、流体传动与控制、可编程序控制器与现场总线、数控机床等;
吴文静(研士),主要研究方向为数字液压技术。

继续阅读
基于TB6612FNG和单片机的直流电机控制系统设计

本设计中使用的TB6612FNG是一款新型驱动器件,能独立双向控制2个直流电机,它具有很高的集成度,同时能提供足够的输出能力,运行性能和能耗方面也具有优势,因此在集成化、小型化的电机控制系统中,它可以

一种太阳能报警器系统设计

引言   我国是世界上受自然灾害影响最为严重的国家之一,近年来由于滥砍滥伐严重,自然资源过度开采,造成地质灾害和自然灾害发生的频率增多,破坏程度也越来越严重,2008年的四川汶川大地

基于单片机的多功能供电控制系统

引言在工业控制中经常需要对某些温度进行巡检和控制,需要定时控制电机的起动和停止,需要根据料位计开关的状态控制多台卸料、输料电机按照设定顺序运转。在对温度巡检和控制时,要求当温度低于设定的温度下限时,加

基于ATmega16的电动车锂电池组设计

随着电动自行车的逐渐普及,电动自行车的主要能源---锂电池也成为众人关心的焦点。锂电池与镍镉、镍氢电池不太一样,因其能量密度高,对充放电要求很高。当过充、过放、过流及短路保护等情况发生时,锂电池内的压

单片机到嵌入式之路1:简单的讨论一下C语言知识

在单片机中C语言的位操作用的比较多,而且用的好对代码的执行效率都是很有帮助的,下面简单介绍一下在单片机中的应用,就算是抛砖引玉吧。

精彩活动