装载机控制系统设计经典

来源:本站
导读:目前正在解读《装载机控制系统设计经典》的相关信息,《装载机控制系统设计经典》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《装载机控制系统设计经典》的详细说明。
简介:铲装作业是装载机工作过程的重要组成部分,决定了装载机作业的效率和性能。采用计算机技术和电液比例技术来控制工作装置的运动,对铲装过程中的几个重要参数进行自动控制,进而实现优化工作过程的目标。根据装载机的工作原理,本课题设计了装载机的单片机控制系统。

1 前言

1.1 嵌入式单片机的发展

单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

目前,基于单片机的微控制器已广泛应用于家电控制、通讯、工业控制、智能仪器仪表、金融电子等许多领域。

1.2 本课题的设计背景

装载机属于铲土运输机械类,广泛用于公路、铁路、建筑、水电、港口和矿山等工程建设。装载机具有作业速度快、效率高、机动性好、操作轻便等优点,因此成为工程建设中土石方施工的主要机种之一,对于加快工程建设速度,减轻劳动强度,提高工程质量,降低工程成本都发挥着重要的作用,是现代机械化施工中不可缺少的装备之一。

(一) 国内外装载机发展现状及趋势

工程机械在它一百多年的发展历程中,经历了三次飞跃和更新换代。首先,内燃机的出现引发了动力革命,继而50年代出现的液体传动(包括液压,液力传动)引发了传动革命,如今正进行着操纵和控制的革命。

工程机械当前面临的主要问题即为操纵和控制。要使工程机械高效节能,就要对发动机、传动系统和工装系统进行控制,合理分配功率,使其处于最佳工况;为了减轻操作者劳动强度和改善操纵性能,需要采用自动控制,以实现省力化和自动化;要完成高技能作业,就需要进行工作装置的智能化控制;为了提高安全性,进行运行状态监测,故障自动报警,便需要安全控制;为避免操作者在十分恶劣的环境或无法接近的场所中作业,就需要进行远距离控制或无人驾驶操作。

在经历了50到60年的发展后,到20世纪90年代终末期国外轮式装载机技术已经达到相当高的水平。液压技术、微电子技术和信息技术的各种智能系统已广泛应用于装载机的设计、计算操作控制、检测监控、生产经营和维修服务等各个方面,使国外轮式装载机在原来的基础上更加“精致”,其自动化程度也得以提高,进一步提高了生产效率,改善了司机的作业环境,提高了作业舒适性,降低了噪声、振动和排污量,保护了自然环境。综观国外装载机的发展历程,主要有以下特点:

(1)产品系列化、成套化,更新速度加快

(2)采用大量新结构、新技术,使产品的性能日趋完善

(3)重视安全性、舒适性和可靠性

(4)更加节能与环保

(二) 国内装载机发展现状

从1966年我国第一台轮式装载机在柳工诞生到现在,我国的装载机行业已有四十几年的发展历史;与发达国家近百年的发展历史相比,我国轮式装载机的研究起步较晚,进程也比较缓慢,其中很多制造技术是陆续从美国、德国和日本等国家引进的。虽然目前我国装载机生产厂家有很多,成为了世界上装载机的产销大国,但是大而不强,国内的企业自主研发创新能力普遍较弱,装载机的生产技术只相当于发达国家上世纪八九十年代的水平,与发达国家的差距较大。

近几年来,国内各生产厂家逐渐认识到技术落后的严重性,为了取得市场竞争的优势地位,纷纷加大技术投入,加快了新产品的研发速度;采用了不同的技术路线,在关键部件及系统上技术创新,提高产品的科技含量,形成了有自己特色的产品,提高产品在国际、国内的竞争力;使产品从低水平、低质量、低价位、满足功能型向高水平、高质量、中价位、经济实用型过渡;还有一些企业引进了国外具有部分机电一体化功能的工程机械制造技术,并且与国外公司合资生产各种工程机械,在关键部件及系统上进行技术创新,以摆脱目前产品设计雷同,无自己特色和优势的现状。目前,我国装载机行业已经能够独立研制和开发各种新机型,形成了一整套完整的体系,各企业基本上都能够自主生产高技术水平的第三代产品,这些产品大都采用了先进的电子控制系统;如柳工集团生产的国内第三代轮式装载机产品ZL50G。ZL50G应用了国家级技术创新项目—装载机高压液压系统技术,使国产机液压系统压力达到了国际上通用的20MPa;选用了进口一流发动机,提高了可靠性,延长了大修间隔时间;配置了世界一流水平的变速箱、变矩器和驱动桥,传动系统不仅更卓越,而且寿命长达1万小时以上;安装了性能可靠的电子监控系统等多项新技术,使装载机的性能得到很大提升,其主要指标已达到了20世纪90年代中期国际水平,是我国装载机产品的一大进步;但是与国外先进装载机生产商相比还有不小的差距,需要我们努力赶上。

(三) 装载机的发展趋势

现代科技日新月异,各种新技术层出不穷,特别是自动化、智能化技术的出现,为工程机械的改进提供了技术基础,未来装载机将会向以下方向进一步发展:

(1)机电一体化、微电子、机器人技术将广泛得到应用

以大规模集成电路为代表的现代微电子技术和其它高新技术在装载机上将得到越来越广泛的应用,进一步促进装载机技术的进步。工程机械电子技术、传感器技术、电子控制理论也将得到迅速发展。

(2)液压技术将得到进一步普及

液压技术将得到进一步发展和应用,并继续朝着高速、高压、大流量、大功率、静动态特性好等更高水平发展。

(3)产品将更加节能、环保

一些节能新技术和新方法,如代用燃料、节能装置将更深入地试验研究并推广应用,进一步降低能耗,提高作业经济效益。

(4)产品具有安全性、舒适性和可靠性的特点

装载机的安全性、舒适性和可靠性将得到更广泛的重视,多用途、多功能装载机的研制、开发工作将得到进一步加强并取得新的突破[4]。

1.3 本文的主要研究内容及研究思路

本文主要解决装载机铲斗在任意位置卸载后的自动放平问题。具体内容为:在尽可能较小改变装载机原有工作装置主要结构的基础上,利用装载机本身自带的蓄电池,使用51系列单片机作为控制系统的核心,设计装载机的单片机控制系统。并编制与之相配套的软件系统,设计人机互动部分,将控制手柄等各种人所发出的指令进行解释处理,达到实现铲斗自动放平的最终目的。

研究思路主要为:控制系统对输入的信号进行加工处理,输出PWM信号驱动电液控制系统,电液控制系统做出相应动作控制铲斗的状态,状态传感器传回反馈信号给控制系统,控制系统进行判断后,根据不同情况进行相应的修正动作,利用系统的高速处理信息的能力,实时调整工作装置的角度,实现工作装置的自动放平功能。

1.4 本课题的研究意义

随着科技的不断发展,工程机械的自动化程度必然会越来越高,实现机电液一体化是发展的必然趋势。我国在这方面还比较落后,加快新产品的研究与开发,提高产品的质量,是我国装载机行业的必经之路。本文针对目前装载机只能在最高位卸载后自动放平,而在其他任意位置不能自动放平的这个问题,设计了以单片机为核心的控制系统,配套相应的软件,并定义了低位区、高位区和自动控制区,圆满地解决了这个问题。该问题的解决可有效的提高工作精度和工作效率,减少人为的操作,降低工作人员的劳动强度,实现工作装置部分自动化,提高装载机科技含量,增加产品竞争力的目的。

2 系统开发软硬件概述

2.1 Proteus仿真软件简介

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件[9]。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

Proteus主要用于绘制原理图并可进行电路仿真,Proteus ARES 主要用于PCB 设计。ISIS 的主界面主要包括:1 是电路图概览区、2 是元器件列表区、3 是绘图区。绘制电路图的过程如下:

单击2 区的P 命令即弹出元器件选择(Pick Devices)对话框,Proteus 提供了丰富的元器件资源,包括30 余种元器件库,有些元器件库还具有子库。利用该对话框提供的关键词(Keywords)搜索功能,输入所要添加的元器件名称,即可在结果(Results)中查找,找到后双击鼠标左键即可将该元器件添到2 区,待所有需要的元器件添加完成后点击对话框右下角的OK 按钮,返回主界面。接着在2 区中选中某一个元器件名称,直接在3 区中单击鼠标左键即可将该元器件添加到3 区。

由于是英国的软件,特别要注意的是绘图区中鼠标的操作和一般软件的操作习惯不同,这正像是司机座位和人行道走向和国内不同一样。单击左键是完成在2 区中被选中的元器件的粘贴功能;将鼠标置于某元器件上并单击右键则是选中该元器件(呈现红色),若再次单击右键的话则删除该元器件,而单击左键的话则会弹出该元器件的编辑对话框(Edit Component);若不需再选中任何元器件,则将鼠标置于3 区的空白处单击右键即可;另外如果想移动某元器件,则选中该元器件后再按住鼠标左键即可将之移动。

元器件之间的连线方法为:将鼠标移至元器件的某引脚,即会出现一个“×”符号,按住鼠标左键后移动鼠标,将线引至另一引脚处将再次出现符号“×”,此时单击鼠标左键便可完成连线。连线时在需拐弯的地方单击鼠标左键即可实现方向的改变。绘制好电路后,可利用1 区的绿色边框对3 区的电路进行定位。

2.2 Keil编译及调试软件简介

目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVision IDE集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。

应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存——建立工程并添加源文件——设置工程——编译/汇编、连接,产生目标文件——程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单File—New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File—Open…,直接打开已用其他编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project—New Project…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group ‘Source Group1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其他文件)。加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project—Option for Target ’Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其他选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。

成功编译/汇编、连接后,选择菜单Debug—Start/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。Keil能以单步执行(按F11或选择Debug—Step)、过程单步执行(按F10或选择Debug—Step Over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug—Inline Assambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug—Insert/Remove Breakpoint或Debug—Breakpoints…等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。

Keil软件Eval版(免费产品)的功能与商业版相同,只是程序的最大代码量不得超过2kB,但对初学者而言已是足够。Keil软件由于其强大的软件仿真功能,友好的用户界面以及易于掌握的特点而受到工程技术人员的欢迎,有人甚至认为Keil是目前最好的51单片机开发应用软件。

3 装载机控制系统硬件设计

装载机工作装置中动臂、铲斗的运动状态是由动臂油缸和转斗油缸来控制的,所以铲斗的自动放平的实现必须以油缸的自动控制为基础。装载机的工作装置是一个两自由度的机构,铲斗的位置和角度由动臂油缸和转斗油缸的给进量来确定,动臂油缸主要控制动臂的举升位置,转斗油缸主要控制铲斗相对于动臂的角度。实际操作中只要检测动臂举升的角度和铲斗与动臂的角度,就可以判断出铲斗的位置和角度。需要注意的是,在装载机的正常工作状态下,这两个角度并不是相互独立的。

装载机的动臂位置角可以独立地控制铲斗的位置,而铲斗与动臂的角度则需要根据动臂位置角的大小来决定。

为了实现铲斗的自动放平,需要在原有的液压系统上,增加电液控制功能,对转斗油缸进行自动控制。由计算机系统采集到的动臂和铲斗的角度信息通过处理后发送给电液控制系统,电液控制系统对转斗油缸的长度进行控制,从而来控制铲斗的角度。电液控制系统很好的融合了液压能传递较大功率的优越性与计算机控制的精确、灵活性,是日后装载机的发展方向。

电液比例阀包括比例流量阀、比例压力阀、比例换向阀等。根据工程机械液压操作的特点,以结构形式划分的电液比例阀主要有两类:一类是滑阀式比例阀,另一类是螺旋插装式比例阀。

滑阀式比例阀是机械液压系统最基本的元件,该类阀一般能实现方向与流量的调节,是一种复合阀。电液滑阀式多路阀是一种比较理想的电液转换控制元件,它不仅保留了手动多路阀的基本功能,还增加了电反馈的比例伺服操作和负载传感等先进的控制手段,应用非常广泛。

目前的电液控制中,随着计算机的广泛应用,数字式比例元件及其控制系统得到快速发展。数字电液比例控制系统采用的数控元件可分为四种类型:模拟式比例阀、组合式数字阀、步进式数字阀和高速开关阀。高速开关阀早期主要应用在一些要求快速操作的液压系统,因为其数字化的特征在计算机控制的液压系统中受到重视。高速开关阀采用脉宽调节(PWM)控制,只要控制脉冲频率或脉冲的宽度,开关阀就能像其它的流量阀一样,对流量或其他量进行连续的控制。因为其具有的这个优点,高速开关阀成为一种广泛使用的数字阀。虽然当前普通的电磁阀也具有同样的开关数字特征,但普通电磁阀的响应时间较慢。而开关元件的响应速度直接影响系统的稳定性,响应速度越抉,稳定性越好,控制精度也越高。所以普通的电磁开关阀作为PWM控制元件并不是特别理想。

本课题研究所用的数字电液比例控制系统就是通过高速开关阀作为先导阀与多路换向阀组成的一种数字电液比例换向阀。这种数字高速开关阀,具有结构简单、价格低廉、工作可靠、寿命长、易于维修、抗污染能力强、可在恶劣的环境下工作等特点。特别是高速开关阀具有较高的响应速度,重复误差小,可直接采用计算机数字控制,省去了数字量与模拟量的转换。这样就可以应用低价的计算机系统和高速开关阀构成高可靠性、适用于工程机械的数字电液比例控制系统。高速开关阀有很多种控制方式,目前常用的是PWM的方式,本文也是采用这种方式。

3.1 高速开关阀对主阀芯位移控制原理

装载机工作装置的数字电液比例控制系统主要由计算机系统、功率放大器、数字高速开关阀、主换向阀和动臂油缸及铲斗油缸等部分组成。系统采用高速开关阀做为先导级,控制多路阀主阀芯的位移,油缸获得与主阀芯位移成比例的输出流量,从而控制工作装置的运动速度及方向。

装载机控制系统设计经典

上图所示为高速开关阀原理图,当开关阀通电时,衔铁和顶杆向左移动,推动回油阀钢球关闭回油口,进油阀钢球同时也向左移动,打开进油口,进油口和控制口接通,油液向相应的控制腔注入;当开关阀断电时,开关阀的阀芯在进油口油液的压力作用下将进油口关闭,控制口和回油口接通,控制腔的油液回流向油箱。

装载机控制系统设计经典

一个理想的开关阀,在一个调制周期T内,电压波形与阀芯的位移应该完全相同。但是由于高速开关阀受电磁铁的响应能力及阀芯运动时间的影响,实际的阀芯响应不能实时地跟随脉宽信号的变化,而是有一定的滞后。并且其响应特性随脉冲调制周期(或频率)和占空比变化很大。如图3-4所示为调制周期较大时,阀芯位移与占空比之间的关系曲线,其中的横坐标t为时间,纵坐标Xv为阀芯位移。图b表示阀芯对脉宽调制信号做出完全响应的情况,实际上阀芯在吸合和释放过程中并非匀速运动。图中表示成匀速仅为简化结果。通常用开启时间ton表示从线圈加上电压的时间开始,一直到阀开启至阀芯最大位移处的时间,toff表示从线圈断电到阀芯完全关闭所需要的时间,由图b可得:

装载机控制系统设计经典

式中t1、t2、t3和t4分别为电磁铁电流增长到阀芯可以移动的滞后时间、阀芯开启运动时间、电磁铁电流衰减到阀芯可以移动的时间和阀芯关闭运动时间。

以PWM信号控制下的高速开关阀的阀芯平均位移与占空比之间的静态特性曲线如图3-5所示,其中横轴表示占空比,纵轴表示阀芯的平均位移。

装载机控制系统设计经典

如果实际应用的系统中油液压力较大、油缸的泄漏不可忽略时,需要考虑油液的可压缩性和油缸的泄漏。

本文需要用电控的方法来实现铲斗的自动放平,而实际装载机的液压系统中,动臂油缸与转斗油缸的控制阀之间有干涉;即一个阀如果不是处于中位,则另一个阀不能工作;也就是说,同一时刻动臂油缸与转斗油缸只有一个可以工作,这样当处于工况III和工况IV时,转斗油缸被锁住,无法进行操作,如图3.5。

装载机控制系统设计经典

改造可采用两种方式,一种是增加一个供油泵,将原来干涉的油路分开,每个阀都有独立的油泵供油;另一种是增加一个三位四通阀和一个小油泵,并联在转斗液压缸的油路上,对液压缸的长度进行调节,本文采用后一种方式,下图即为改造后的液压系统。

改造可采用两种方式,一种是增加一个供油泵,将原来干涉的油路分开,每个阀都有独立的油泵供油;另一种是增加一个三位四通阀和一个小油泵,并联在转斗液压缸的油路上,对液压缸的长度进行调节,本文采用后一种方式,下图即为改造后的液压系统。

装载机控制系统设计经典

3.2 控制系统硬件的选择 3.2.1 单片机的选择

单片机选用美国Atmel公司生产的AT89C52芯片,AT系列单片机是当今世界

上新型的电擦写8位单片机,该产品和Intel的MC-51系列单片机完全兼容,内部含有Flash存储器,有超强的加密功能,完全替代8751/52和87C51/52,低电压,

低电流,低功耗,有DIP,PLCC,QRP封装形式,有民用级,工业级,汽车级,军品级等多种产品规格。它的特性表现在如下几个方面:

(1)内部含Flash存储器

由于内部含Flash存储器,编程错误亦无废品产生,因此在应用系统的开发过程中可以十分容易地进行程序的修改,大大缩短了应用程序的开发周期。

(2)与80C51引脚兼容

AT89系列单片机的引脚与80C51是一样的,所以当用AT89系列单片机取代80C51时,可以直接代换。

(3)可反复进行系统试验

每次试验可以编入不同的程序,从而使设计不断优化,而且随应用系统的变化,还可以方便地进行程序升级。

(4)价格低廉性能稳定相对于英特尔公司的MCS-51系列产品有更高的性价比。结合本课题的实际情况:芯片须有一定的内部ROM区以保存单片机程序;芯片中程序的读写必须方便,当调试中发现程序存在问题时便于改正和重写;鉴于Atmel单片机具有集成度高、系统结构简单、工艺特性好,可靠性和处理功能强、速度快等优点,可以满足本课题的需要,故本电路以AT89C52芯片为核心构成控制单元。

3.2.2 单片机与高速阀接口电路的设计

单片机对高速阀的控制任务就是将供给流量按程序要求转化为占空比信号输出到高速阀电路中,高速阀电路根据这些脉冲信号产生一系列的开关驱动信号,此信号通过功率放大,使开关阀磁铁按特定频率励磁,实现了控制主阀流量的要求,如图4-1。如果高速阀的驱动电流比较大,需要在控制芯片与高速阀的连接处有信号放大电路。

装载机控制系统设计经典

3.2.3 单片机系统中的按键接口

键盘是单片机应用系统最常用的输入设备,操作人员可以通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通信。

装载机控制系统设计经典

在图4-2中,当按键未被按下时,P1.1输入为高电平,S闭合后,电路不会马上稳定地接通,断开时也不会马上断开,而是有一连串的抖动,这种抖动对人来说是感觉不到的,但对单片机能够感应到。按键抖动会引起一次按键被误读多次,为了确保单片机对键的一次闭合仅作一次处理,必须进行消抖处理,在键闭合稳定时取键状态,当键释放稳定后再进行处理。按键的抖动,可用硬件或软件两种方法消除,由于本设计使用的按键较少,所以采用硬件消抖,如图所示:

装载机控制系统设计经典

本文采用基本RS触发器来实现按键的消抖,基本RS触发器实际上是由两个与非门按一定方式连接所构成。设单刀双掷开关原来与A点接通,这时触发器的状态为1,当开关由A拨向B时,其中有一短暂的浮空时间,这是触发器保持原来的状态不变,触点与B接触时,B点的电位由于振动而产生“毛刺”,但是首先是A点已经为高电平,B点一旦出现低电平,触发器的状态即翻转为0,即使B点再出现高电平,也不会改变触发器的状态,所以Q端的电压波形不会出现“毛刺”现象。

实际可采用74LS00芯片作为两个按键的消抖芯片,74LS00芯片集成了四个与非门,通过一定的连接恰好可以满足两个按键的消抖需要。

3.2.4 串行通信接口

几个数据处理设备(计算机主机与外部设备)之间的信息交换称为数据通信。计算机与外部设备、计算机之间的数据通信经常发生。数据通信由两种不同的方式:

即并行方式和串行方式,本课题采用串行方式。

串行方式是指数据的各位在一条传输线上分时传送。只需一根数据线,外加若干条控制线和一根地线。因为数据是在一条数据线上一位一位分时传送,所以一个字节数据,至少得分8次才能传送完毕。

串行通信必须实现的基本功能是:数据发送时,把并行数据变成串行数据发送到线路上去;在接收时,把串行数据变成并行数据,送入计算机或其他的智能设备处理。串行通信比并行通信传输速度低,但技术的发展,使串行通信也能达到很高的速度,完全能满足一般数据通信对传输速度的要求。串行通信能大大节省传输线路,而且能进行远距离传输。

串行通信可以分为同步通信和异步通信两类。同步通信通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。

(1)同步通信

同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,它们均由同步字符、数据字符和校验字符组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步,实际中比较难以做到。

(2)异步通信

异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不干扰。

通信中如果接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。异步操作的最大优点是互相通信的两个或多个装置之间各自有自己的时钟,数据帧之间可能不同步,但每个数据帧中的每个位必须严格同步,并且通信各方必须遵守有严格的帧格式协议。

89C52单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式,与串行传送信息的外部设备相连接。89C52单片机通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓存寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。

与PC机串口通信中,RS-232所规定的逻辑电平是与单片机的逻辑电平不一致,因此当单片机和PC机进行通信时,必须将微处理器的信号电平(TTL电平)转换为RS-232电平,或者对两者进行逆转换,这两种转换通常是由专用电平转换芯片来实现的。最常用的芯片有MAX232。

MAX232芯片是Maxim公司生产的包含两路接收器和驱动器的IC芯片,适用于各种EIA-232C和V.28/V.24的通信接口。MAX232芯片内部有一个电源电压变压器,可以把输入的+5V电源电压变换成为RS-232-C输出电平所需要的±10V电压。

MAX232使用典型工作电路如图所示。其中5个电容均为1μF。在实际应用中,器件对电源噪声很敏感。因此,电源必须要对地接去耦电容,另外的4个同样数值的电解电容,用以提高抗干扰能力。与此同时,9脚、12脚可直接连接在TTL/CMOS电平的单片机的串行发送端TXD;10脚、11脚可直接连接在TTL/CMOS电平的单片机的串行接收端RXD;同样的,8脚、13脚可直接连接在PC机的RS-232串口的发送端,7脚、14脚可直接连接在PC机的RS-232串口的接收端。

装载机控制系统设计经典

3.2.5 传感器的选用

传感器包括测量动臂与机架、动臂与铲斗之间的角度传感器和测量机身倾斜度的倾斜传感器以及控制手柄所用的环形电势差计。

角度传感器选用某型号的直流差动电感式角位移传感器,该传感器采用非接触式技术,不存在磨损问题,内部的数字电路具有很强的环境干扰功能,特别适合于工业应用。

该传感器量程为0~360度,输入电压为4.75~5.25V,在输入电压为5V时输出电压为0.5~4.5V,最大输入电流21mA,输出阻抗小于10欧姆,频率响应200Hz,线性度误差±0.5%,可重复性0.1%,工作温度-45~+100度,耐久性一亿次,完全能够满足本课题的设计要求。

测量机身倾斜度的传感器是整个系统正常工作的关键元件,因此选用ADIS16209倾斜计,它是ADI公司最近发布的一款高集成度、双轴倾斜计。ADIS16209可编程、双轴倾斜计传感器适用于多种需要测量倾斜变化的工业应用设备。

ADIS16209体积非常小,功能相同的倾斜计解决方案的外形尺寸通常是ADIS16209的100倍。

ADIS16209作为最精密的微电子机械系统(MEMS)倾斜计,提供小于0.1度线性倾斜误差的全补偿直接角度输出,从而使其精度提高到至少是同类倾斜传感器的两倍。ADIS16209双轴可编程倾斜计,基于ADI公司的iMEMS集成微电子机械系统内核,当它处于水平安装时,能够在±30度测量范围内以小于0.1度的误差测量双轴倾斜。由于其独特的双轴工作模式,这种新式传感器在全部360度范围内也支持垂直安装的单轴检测。可调整的数字传感器器数据是通过工业标准的串行外设接口(SPI)输出,这个接口可接入倾斜度(0.025度分辨率)、加速度(0.244 mg分辨率)、温度和电源电压。ADIS16209还具有一个12bit辅助ADC输入和DAC输出、数字自检功能和可配置的状态监测,包括报警器。传感器采用3 V~3.6 V单电源供电,并且能够耐受3500g冲击。是一种理想的测量机身倾斜度的传感器。

用作角位移测量的环形电势差计的设计如图所示。它由电阻环和与中央转轴相连的滑动接触片组成,环形电阻的一端接直流电源,另一端接地电势。滑动接触点与电源输入端的电阻值正比于轴的转角。环形电势差式的角位移传感器在涉及转动测量和控制的机械系统中引用极广,环形电势差计角位移传感器结构紧凑、轻便可靠,大量用在汽车方向控制这种关键的地方。

装载机控制系统设计经典

3.2.6 A/D转换芯片

A/D转换芯片采用ADC0809,ADC0809被广泛应用在各种领域中。该芯片是用CMOS工艺制成的双列直插式28引脚的8位A/D转换器。片内有8路模拟开关及地址锁存与译码电路、8位A/D转换和三态输出锁存缓冲器,其数据输出线可以直接与单片机的数据总线相连。

ADC0809的工作过程是:首先输入3位地址,并使ALE置1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

3.2.7 装载车灯的控制(略) 3.2.8 电源的设计

在大多数的单片机系统中默认电源电压都是为5V,所有EDA软件都是以默认值5V为标准的;实际操作中,可用装载机上所带的蓄电池与LM7805构建,如下图

所示:装载机控制系统设计经典

其中LM7805为3端正稳压电路TO-220封装。使用外接元件,可提供多种固定的输出电压和电流,应用范围较广。内含过流、过热和过载保护电路。带散热片时,输出电流可达1A,完全能够满足电路系统的供电要求。

3.3 单片机应用系统的整体设计

在确定了以上各种元器件的型号后,下一步就是控制系统的整体设计了。这里使用Proteus软件进行整体的设计,Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统,该软件的特点有:

1、全部满足我们提出的单片机软件仿真系统的标准,可以非常容易的修改电路,更换元器件,在同类产品中具有明显的优势。

2、具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、IC调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

3、目前支持的单片机类型有:6800系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列,支持大量的存储器和外围芯片。

该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,恰好可以弥补没有实验器材的缺陷。

下图即是在Proteus上所设计的整个控制系统的电路图:

装载机控制系统设计经典

4 装载机控制系统的软件设计

如果说控制系统硬件电路是人的大脑,那么软件就是人脑的思想;没有软件的支持,硬件就毫无用处。软件的设计是极为重要的步骤,通常由于系统的复杂性,软件设计不能“眉毛胡子一把抓”,必须要分块独立设计,各个块之间都要提供一个公共的接口,用于和外界的通信,不同的块可以由不同的团队去完成,这样可以大大的降低软件设计的难度,提高资源的利用率。本课题就是遵照这种方式,对软件系统各个部分进行分块,逐个进行设计。

4.1 软件开发的一般步骤

软件生存周期中的软件开发过程由概要设计、详细设计、实现(即编码与单元测试)、组装测试、验收测试5个阶段组成。其中,概要设计和详细设计统称为设计;

编码即编程;单元测试、组装测试和验收测试统称为测试。软件开发过程就是软件开发人员按照需求规格说明的要求,由抽象到具体,直到生成程序,并进行全面地测试,最后产生软件产品的过程。

1.概要设计

概要设计又称总体设计。其任务是对需求规格说明中提供的软件系统逻辑模型进行进一步的分解,从而建立软件系统的总体结构和各子系统之间、各模块之间的关系,定义各子系统接口界面和各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划,进而给出每个功能模块的功能描述、全局数据定义和外部文件定义等。要完成概要设计,必须选择某种方法和工具。比如,可以来用面向数据流的设计方法,将需求分析得到的软件系统数据流图进一步分解,然后以结构图为工具,将数据流图映射为软件系统层次结构图;也可以采用面向对象的设计方法和工具等。需要指出,设计的软件系统应具有良好的总体结构、尽量降低模块接口的复杂度,并力争做到各功能模块之间的联系较松散(低耦合度),而功能模块内部具有较高的内聚度。

2.详细设计

详细设计阶段的任务是将概要设计产生的功能模块进一步细化,形成可编程的程序模块,然后设计程序模块的内部细节,包括算法、数据结构以及各程序模块间的接口信息,并设计模块的单元测试计划。详细设计可以采用结构化的设计方法,采用结构化的程序流程图、N—S图、过程设计语言等工具进行描述,也可以以采用面向对象的设计方法等。

3.实现

实现即是编码和单元测试。编码的主要任务是根据详细设计规格说明用某种选定的程序设计语言把详细设计的结果转化为机器可运行的源程序模块,这是一个编程和调试程序的过程。一般来说,对软件系统所采用的分析方法、设计方法、编程方法以及所选用的程序设计语言应尽可能保持一致。编码阶段应注意遵循编程标准、养成良好的编程习惯,以便编写出正确的便于理解、调试和维护的程序模块。每编写出一个程序模块的源程序,调试通过后,即对该模块进行测试,这称为单元测试。单元测试的任务是按照详细设计阶段的单元测试计划给出的测试用例和预期的结果认真测试每一个程序模块,找出错误并改正。

4.组装测试

组装测试是根据概要设计提供的软件结构、各功能模块的说明和组装测试计划,把经过单元测试检验的模块按照某种选定的策略逐步进行组装和测试。组装测试的主要任务是测试系统各模块间的连接是否正确,系统或子系统的正确处理能力、容错能力、输入/输出处理能力是否达到要求。

5.验收测试

验收测试又称确认测试。其任务是按照验收测试计划和准则对软件系统进行测试,看其是否达到了需求规格说明中定义的全部功能和性能等方面的需求。确认测试结束时,应生成验收测试报告、项目开发总结报告,并向用户提交源程序清单、最终用户手册、操作手册等文档资料。

4.2 软件设计总体思路

本课题选用的编程软件是keil,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil软件是目前最流行开发MCS-51系列单片机的软件,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。更重要的一点是,编译后生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

随着版本的不断更新升级,keil软件完全克服了以前用C语言编程代码过于臃肿,程序执行效率低的缺点;与用汇编所设计的程序相比,目前优化过的C语言代码长度仅为前者的1.2倍左右;而当今硬件的发展速度又极快,系统的容量和运行速度都大幅提高,用C语言给单片机系统编程有逐渐取代汇编之势,是今后的发展方向。

根据系统需要,本软件设计的总体思路是,当系统上电后,看门狗芯片产生200ms复位脉冲使系统复位;系统刚上电后各端口默认为高电平,紧接着系统进入初始化程序,初始化中系统默认为自动控制打开,然后进入自动控制子程序,执行完成一次后进行判断,达到退出的条件时便返回主程序。系统主要包括几大模块:系统初始化、数据收集处理、工作装置状态识别处理、工作模式选择、按键中断、串口中断、看门狗使能、错误处理以及发送数据等部分。其中最重要的三部分是初始化、自动控制子程序和手动控制子程序。系统工作的总流程图如图5-1所示。

装载机控制系统设计经典

在正常情况下,某一时刻系统到底是自动控制还是手动控制,主要取决于以下四个方面:

1、自动放平键是否闭合;

2、转斗油缸手动开关是否闭合或转斗操作杆电位计是否不在中位;

3、工装装置是否处于自动控制区;

4、系统故障灯是否点亮。

4.3 软件各模块的设计

由上文所述,系统主要分为系统初始化、自动控制子程序和手动控制子程序这三大模块,现在开始分别设计系统的各个模块。

4.3.1 系统的初始化

系统的初始化比较简单,主要包括自动控制灯的初始化、报警灯的清零、模数转换芯片的初始化、数据的更新、定时器的赋值及中断的打开等,比较重要的有定时器中断和串口的设置。

当单片机的CPU正在处理某件事情的时候,单片机外部或内部发生的某一事件请求CPU迅速去处理,于是CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。中断服务处理程序处理完该事件后,再回到原来被终止的地方继续原来的工作,这就是中断,CPU处理事件的过程,称为CPU的中断响应过程。

中断是单片机的一个很重要的功能,如果没有中断技术,CPU的大量时间可能会浪费在原地踏步的查询操作上,采用中断技术完全消除了CPU在查询方式中的等待现象,大大地提高了CPU的工作效率。由于中断工作方式的优点极为明显,因此在单片机的硬件结构中都带有中断系统。

MCS—51单片机的每一个中断源可以用软件独立地控制为允许中断或关中断状态;每一个中断源的中断级别均可用软件来设置。

根据系统情况,需要打开单片机的五个中断,分别是外部中断0、外部中断1、定时器T0、定时器T1和串口中断。外部中断0监测串口通讯键是否按下,如果按下,串口开始工作,串口指示灯点亮;外部中断1监测自动放平键是否按下,定时器T0主要为系统提供延时,定时器T1是为了设置串口的波特率。

所有的操作都必须通过设置相应的寄存器来完成,与之相关的有六个寄存器,分别是TMOD、TCON、SCON、PCON、IE和IP寄存器,赋予寄存器不同的数值可以使其工作在不同的方式下。由上文所述,T0主要为系统提供延时,工作方式为方式1,为16位的计数器,由TH0作为高8位和TL0作为低8位构成。T0设置为50ms中断一次,其具体设置如下:

TH0=(65536-50000)/256;//高8位赋初值

TL0=(65536-50000)%256;//低8位赋初值

由于TMOD的字节地址为89H,不能单独地进行位操作,TMOD高四位是T1的控制位,低四位是T0的控制位,T1工作在方式2,即8位的常数自动重新装载的定时器;T0工作在方式1,为16位的定时器;设置TMOD时需要同时设置,可以向TMOD一次性赋值来完成:

TMOD=0x21;

IE寄存器是中断允许寄存器,字节地址为A8H,可进行位操作,与T0相关的设置有以下两位:

EA=1;//总中断允许位

ET0=1;//T0中断允许位

T0中断可采用高优先级中断:

PT0=1;

最后,令TR0=1即启动定时器T0。当启动T0后,定时器从初值开始加1计数,当最高位产生溢出时,由硬件置TF0为1,向CPU申请中断,CPU相应中断后,将TF0清零,TF0也可由软件清零。51系列的单片机内部有一个全双工的异步通信串口,数据在串行线上是以位的形式发送和接收。每当串行口接收或发送1字节数据,均可发出中断请求。串口使用的数据线较少,但传输数据较慢。串口通信中,收发双方的波特率必须一致,方式1和方式3的波特率需要由T1的溢出率来确定。

装载机控制系统设计经典

式中:SMOD—波特率倍增位;

如果系统的晶振频率为11.0592MHz,波特率为9600,SMOD=0,则TH1的初值为FDH;如果需要其他的波特率,可根据上式计算出来。

设置SCON中SM0、SM1为0、1时,串口工作在方式1,串口以方式1输出时,数据位由TXD端输出,发送一帧信息为十位,1位起始位,8位数据位和一位停止位,当CPU执行一条写缓冲器的指令,就启动发送,方式1发送数据的时序见下图:

装载机控制系统设计经典

串行口以方式1接收时,数据从RXD引脚输入,当CPU检测到起始位的负跳变时,则开始接收,每接收到一位数据时,都进行3次连续的采样,接收的值是3次采样中至少2次相同的值,以保证接收到的数据位的正确性。

装载机控制系统设计经典

由于定时器和中断的设置是联系较紧密的两部分,在本文采用整体设置的办法可使程序简单明了,也便于日后的修改。

//定时器及中断的设置

TH0=(65536-50000)/256;//赋初值,50ms中断一次

TL0=(65536-50000)%256;

TH1=0xf4;//波特率设为2400,自动重装

TL1=0xf4;吉林大学硕士学位论文

IT0=1;//外部中断0设为跳沿触发

IT1=1;//外部中断1设为跳沿触发

PX0=1;//外部中断0设为高优先级中断

PX1=1;//外部中断1设为高优先级中断

PT0=1;//T0设为高优先级中断

TMOD=0x21;//T1设为方式2,T0设为方式1,定时器模式

SM0=0;//串口方式1

SM1=1;

EA=1;//总中断打开

ET0=1;//T0中断打开

EX1=1;//外部中断1打开

ET1=1;//T1中断打开

TR0=1;//启动定时器T0

需要注意的是,所有函数的声明和定义都在单独的文件中进行,这样做的好处是便于统一管理,一目了然,不至于到处定义函数以至于最后使程序的可读性很差,甚至随着代码的增加达到失控的程度,在后面所提到的所有独立的函数前边都没有声明以及定义,也是出于同样的原因。

初始化中默认自动控制键打开和自动控制灯亮,紧接着就是数据的更新,0、1、2分别代表AD芯片的第几路模拟通道,三路通道分别连接着手动电位计、动臂转角传感器和铲斗与动臂夹角传感器。

4.3.2 手动控制子程序

手动控制子程序也比较简单,主要就是监测手动电位计电压值,将此电压值经过处理后传给PWM函数,PWM函数发送相对应的占空比信号,执行完成后依次检测自动放平键、故障灯、手动开关和电位计的位置,如果达到手动控制退出的条件就清空转角数据组中的数据,转到主程序;如果没有退出就继续进行手动控制。下图为手动控制流程图。

装载机控制系统设计经典

当系统进入手动控制子程序,首先进入while(1)构成的循环中,执行完成后需要进行由if语句构成的三重判断,只有全部为真后才能执行最里边的语句,退出手动控制。

4.3.3 自动控制子程序

自动控制子程序是系统设计的关键部分,也是系统设计的难点,这是因为自动控制不光要及时更新数据做出调整外,还要能够立即响应手动控制,体现手动操作为主、自动控制为辅的原则;当手动控制停止后,还能够立即切换为自动控制。另外,自动控制区的辨别也极为重要,装载机的工况III和工况IV要能够准确的识别;

当工作装置处于低位区或高位区时,可能要进行装载或卸载作业,这时也要退出自动控制,转为手动控制。下面首先对低位区和高位区的识别进行研究。

当装载机工作装置处于铲掘状态时,铲斗一般处于低位区,我们可以把装载机工作装置完全放下时的状态定为零位点,规定一个特定的角度,当工作装置在这个角度内的区域规定为低位区;同理,工作装置处于最高位时定为高位点,高位点减去一个特定的角度,这个角度所包含的区域定为高位区。系统在低位区和高位区不工作,在低位区铲斗的放平由机构优化和手工的操作可以获得;工作装置进入高位区,高位区范围较小,又这时即将进入卸载状态,周围地形的变化也比较小,依靠机构优化可以达到自动放平,所以在高位区也不工作,只更新自动控制标志位,自动放平系统在这两个区域不工作是完全可以的,而且可以避免引起误操作。

当铲斗卸载后准备进入工况I时,这时需要由卸载工况转变为铲掘工况,自动放平在这一工况开始工作,系统自动放平功能的基础就是能够识别出这种情况从而准确地进行操作,需要说明的是,由于本文选用的AT89C52芯片计算能力有限,如果按照第二章的推导顺序计算CD的长度,有可能需要很长的时间,不能达到实时控制的目的;这里采用查表法,建立一个二位数组,第一维存储以度为单位的数值,第二维存储以十分之二度为单位的数值,装载机作业时,卸载并不一定在高位区,也有可能在自动控制区或低位区,这时仅仅依赖高位区系统不工作就不能满足需要了,需要另寻新的途径使系统识别出这种特殊的情况,进而解决此问题。

综合以上所有的问题,可以用以下几个方法去解决:

1、定义系统低位区和高位区,系统在这两个区域内转为手动控制;

2、设立一个判别卸载的标志位unload_flag,系统进入低位区将标志位清0,卸载后将其置1。

3、建立一个动态的临时高位区。定义一个长度为100、float类型的数组用来记录动臂的转角,采用先进先出法对数组中的数据进行更新,最新进来的数据处于低序号的位置,最高序号位置的数据在下次更新时将被覆盖。这样犹如系统拖着一条“尾巴”,“尾巴”中记录着前99次动臂转角的信息,当系统第一次进入自动控制子程序后,先对数组进行数据更新,更新完成后将数组中第一位和最后一位数据进行比较,如果第一位数据小于等于最后一位数据,说明工作装置处于停止或下降状态,自动控制系统开始工作。需要注意的是,数组中数据不能更新太快,如果太快有可能判断不出铲斗具体的状态。

装载机工作场所环境一般比较恶劣,如果现场有干扰源,则有可能出现数据出错的情况。抗干扰的方式有很多种,如上一章硬件设计时所用到的光电隔离方法,这里介绍用软件的方式排除部分错误;工作装置正常工作时得到的数据会有确定的范围,如果由于干扰使数据超出这个范围,我们可以将这个数据剔除,重新读取数据;如果错误次数超过5次,我们就认为干扰影响太严重,打开报警灯并退出自动控制转为手动控制。

经过上面的分析,可以得到一个比较明确的自动控制子程序的设计思路,再加以完善后就可以编制具体的程序了,下图是自动控制子程序的流程图。

装载机控制系统设计经典

自动控制子程序是一个无返回值的函数,系统进入自动控制子程序立即进入一个无限循环,循环中有if条件语句包含的break语句,如果if中的条件不满足,系统永远都会在此循环中运行。

4.4 程序的调试仿真

程序编制完成以后,下一步就可以对其进行调试了。程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。任何一个比较大的程序写完之后,一定会存在大量的错误,这是任何人都不能避免的事情,编完计算机程序,必须进行测试,将其中的错误逐一改正;如果没有一个良好的编程习惯,在修改程序时将会遇到巨大的困难,因此,将程序分块是一个比较好的方法,每一个函数都放在单一的文件里,方便日后的修改和调试。这里仍旧使用keil软件自带的调试器,将编写好的各种文件加入工程后,会显示在左侧的Project Workspace窗口,如图5-4。下边是各种按钮,比较重要的是寄存器按钮和函数按钮,点击函数按钮,

会弹出工程包含的所有c文件,点击前边的加号,将会展开此文件所包含的全部函数,如图5-5所示,在这里可以很方便的知道某一个具体的函数在那个c文件中。

装载机控制系统设计经典

装载机控制系统设计经典

程序写好后,还需经过编译,编译程序的基本功能是将用高级程序设计语言书写的源程序,翻译成等价的用计算机汇编语言、机器语言或某种中间语言表示的目标程序的翻译程序。用户利用编译程序实现数据处理任务时,先要经历编译阶段,再经历运行阶段。编译阶段以源程序作为输入,以目标程序作为输出,其主要任务是将源程序翻译成目标程序。编译时通常会发现多个错误,使编译不成功,检查到的错误需要一一改正,编译才能通过。编译过后还有链接过程,由编译生成的目标文件并不能被立即执行,在编译产生的各对象文件之间并没有建立任何连接,对应于某个源文件的对象文件包含在其他源文件中定义的函数引用或其他指定项的引用也没有被解析;同样也没有建立同库函数的连接。所有的这些问题,都需要经链接程序的处理方能得以解决。链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。当链接也没有错误后,如果设置软件允许生成.hex文件,系统就会自动生成一个hex格式的文件放在工程目录下,还显示这个程序有多少代码,如图所示。

装载机控制系统设计经典

生成的hex格式的文件一般为二进制或十六进制码,这两种代码可以被单片机系统识别,将此hex文件写入到单片机系统内即可进行系统的运行了,这里采用软件仿真的办法,在Proteus中AT89C52芯片上双击左键,弹出Edit Component窗口,在Program File一栏点击文件夹图标,在弹出框中选择hex文件所在路径,确定后点击OK关闭Edit Component窗口,hex文件即被导入芯片。

提醒:《装载机控制系统设计经典》最后刷新时间 2024-03-14 01:18:59,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《装载机控制系统设计经典》该内容的真实性请自行鉴别。