基于单片机酿酒多路温度控制系统软件设计基于单片机酿酒多路温度控制系统软件设计 在微机测控系统中软件的重要性与硬件同样重要。硬件是躯体,软件是灵魂,当系统的硬件电路确定之后,系统的主要功能还要靠软件来实现,而且软件的设计在很大程度上就决定了产品的性能。为了满足系统的要求,编制软件时一般要符合以下基本要求: (1)易理解性、易维护性。要达到易理解和易维护等指标,在软件的设计方法中结构化设计时最好的一种设计方法,这种设计方法时由整体到局部,然后再由局部到细节,先考虑整个系统所要实现的功能。确定整体目标,然后把这个目标分成一个个的任务,任务中可以分成若干个子任务,这样逐层细分,逐个实现。 (2)实时性。实时性是电子测量系统的普遍要求,即要求系统及时响应外部事件的发生,并及时给出处理结果。近年来,由于硬件的集成度与速度的提高,配合相应的软件,实时性比较容易满足设计的要求。 (3)准确性。准确性对整个系统具有重要意义,尤其是测量系统,系统要进行一定量的运算。算法的正确性和准确性对结果有着直接的影响,因此再算法的选择、计算的精度等方面都要附和设计的要求。 (4)可靠性。可靠性是系统软件最重要的指标之一,作为工业用的产品,抗干扰技术的应用是必不可少的,最起码的要求是在软件受到干扰出现异常时,系统还要能恢复正常工作。 4.1 程序设计语言与软件开发环境本设计中采用的处理器是AT89C51单片机,由此可采用面向MCS-51的程序设计语言,包括ASM51汇编语言和C51高级语言,这两种语言各有特点。汇编语言更接近机器语言,常用来编制与系统硬件相关的程序,如访问I/O端口、中断处理程序、实时控制程序、实时通信程序等;而数学运算程序则适合用C51高级语言编写,因为用高级语言编写运算程序可提高编程效率和应用程序的可靠性。 考虑到汇编语言的以下特点,在智能测控装置的基本功能软件开发中,全部程序均采用ASM51汇编语言编写: 1. 汇编语言是最基本的程序设计语言。迄今为止,汇编语言仍然是计算机系统底层软件(例如汇编程序、PC机的BIOS等)设计的基本语言; 2. 能充分利用机器的硬件功能与结构特点。汇编语言与机器语言密切相关,因此能透彻地反映计算机硬件的功能与特点。程序员可充分利用机器硬件系统的许多特性(如寄存器、标志位以及一些特殊指令等)。这样能充分发挥程序设计的技巧; 3. 用汇编语言编写的程序比起用高级语言编写程序具有更高的系统性能。汇编语言程序具有执行速度快和节省存储空间的特点,它可以精确地描述算法,把计算过程和控制过程刻画得更具体; 4. 实时性能好。用汇编语言编制的程序可以对各种接口芯片及I/O端口直接进行控制,实时性能好。对于一些应用领域(例如工业监控系统等)汇编语言是不可缺少的,一般高级语言不适合这种应用,因为一般高级语言不能充分地利用计算机硬件所提供的诸如中断等方面的功能。 与以往的80C51单片机不同,AT89C51具有在线调试和下载功能,它由支持AT89C51的开发工具包Keil uVersion2.0开发系统来提供。也就是说,在用户系统保留AT89C51的情况下,通过开发系统与AT89C51的串行接口通信,直接对用户系统进行调试,并在调试完成后将调试好的程序下载到AT89C51中。Keil uVersion2.0开发系统提供四项功能:编译、下载、调试和模拟,分别由Keil uVersion2.0提供的编译器、在线串行下载器、调试器和模拟器来实现。Keil uVersion2.0编译器可在Windows操作系统下直接使用,编译汇编源程序,并生成16进制文件和列表文件。串行下载器是一个软件程序,它允许通过标准PC机上的串口串行下载汇编程序到片内8kB的闪速程序存储器中。调试器采用Windows系统,允许用户使用AT89C51的UART串行接口在芯片上调试代码执行。在典型调试对话中,调试器提供对片内所有外围设备的访问、单步和设置断点的代码执行控制方式。模拟器采用Windows系统,能完全模拟AT89C51的所有功能。模拟器使用简单,结合了许多标准调试特征,包括多断点、单步以及代码执行跟踪等能力。 4.2 主程序的设计AT89C51的主程序的大部分功能是对各路的温度信号进行定时循环采样。定时刷新显示,它是整个多路温度测量仪的主线。 单片机上电复位后,即进入主程序,除了系统的初始化程序和从E PROM中读取参数外,其余部分是个循环圈,循环圈的大小得看工作时的条件,除非系统掉电或程序受干扰跑飞等异常情况而重新使系统复位,主程序的流程图如图4-1所示。 图4-1 主程序流程图 第5章 系统的干扰分析微机测控系统在工业现场运行时其运行环境有以下特点:恶劣的供电条件;严的噪声;周围环境的电磁场;使用不清洁的电源;现场各类仪器相互间的串扰;影响系统可靠性的湿度、温度、灰尘、腐蚀性气体及其它损害。由于工业生产对系统的高可靠性要求,可以看出一个微机测控系统的设计是否成功,除了前面所讲的总体方案设计、硬件、软件设计以外,还有一项起决定作用的因素,那就是抗干扰措施如何。由于微机测控系统必须运行与工业现场,与之相连的被控对象及待测参数往往遍布整个控制区域,所以必须解决系统在恶劣环境中的适应性,并采用各种措施提高其可靠性。因为系统的干扰,很可能由此引起系统的误操作。所以系统的抗干扰是必须的。 在抗干扰措施中最常用的就是硬件抗干扰,但是仅靠硬件抗干扰措施是不够的,需要进一步借助于软件措施来克服某些干扰。对于各种随机出现的干扰信号,在微机组成的自动检测系统中,通过一定的计算程序,对多次采样信号构成的数据组进行平滑加工,以提高其有用信号在采样值中所占的比例,减少乃至消除各种干扰及噪声,以保证系统工作的可靠性。在具体系统设计过程中,如果能正确的采用软件抗干扰措施构成双道抗干扰防线,无疑将大大提高工业测控系统的可靠性。 硬件抗干扰措施有:1.电源的抗干扰; 2.硬件看门狗电路; 3.改电压传输为电流传输,并建议用户采用屏蔽线传输温度信号。 软件抗干扰措施有:1.指令冗余技术; 2.软件陷阱; 3.串行的E PROM; 4.数字滤波技术的应用。 下面针对本系统所采用的抗干扰方法对它们进行详细的介绍。 5.1 系统硬件抗干扰措施若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。 “看门狗”技术可由硬件实现,也可由软件实现。 “看门狗”电路的功能就是对CPU进行实时检测,当CPU落入死循环之后,能及时发现并使整个系统复位。分析及实践表明,对来自电网的干扰不仅要采取硬堵的办法,还要采取容错措施。使用看门狗电路的目的,就是当单片机受干扰程序运行异常时,产生一复位信号使单片机复位。看门狗电路实质上是一个单稳电路。当程序运行正常时,单片机定时给单稳电路输入触发信号,使单片机输出保持暂稳态:当干扰异常时,单片机不能给触发信号,单稳输出回到稳态引起单片机硬件夏位:看门狗不仅对来自电网方面的干扰起作用,而且对来自空间等其他方面的干扰也起作用。 程序中一种常见的情况是“跑飞”的程序既没有进入软件循环,又没有遇到冗余指令,而自动形成一个死循环,则可使用权用监视定时器(俗称看门狗)的方法。大多数可靠性高的测控系统都设置监视定时器功能单元。其可使因受到干扰而偏离了预定路径运行的测控应用程序能在允许的时间内回到原先的路径上来,从而保障系统的正常运行。监控定时器功能单元可由硬件方法实现,也可由软件方法实现。 看门狗电路如图5-1所示 图5-1 看门狗电路 其工作原理是:硬件结构由两片74HC123可重复触发的单稳态触发器集成电路构成。触发输入信号引脚B1连于并行I/O接口,其输出信号是单稳态触发器输出端Q2信号。 5.2 系统软件抗干扰措施在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。在工业现场,软件抗干扰的内容主要是:一、消除模拟输入信号的嗓声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。 指令冗余技术主要是为了防止 CPU受到干扰,因为一旦CPU收到干扰后,往往将一些操作数当作指令码来执行,从而引来程序运行的混乱(飞程序现象)。如果程序弹飞到某一单指令上时,会自动纳入正轨;但是,若弹飞到某一双指令上时,若取指令时刻落在操作数上,误将操作数当作操作码,错误就会发生;如果程序弹飞到三指令上时,因它有两个操作数,那么,继续出错的机会就更大。 针对这种飞程序现象,通常采用指令冗余来解决。所谓指令冗余,就是在编写控制程序的过程中,应该多采用单字节指令,并在关键地方有意插入一些单字节指令(NOP)或将有效单字节指令重写。在指令冗余技术的实际应用中,一般的做法是在一些对程序流向起决定作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOP指令,以保证弹飞的程序迅速纳入正确轨道;在某些对系统工作状态起重要作用的指令前插入两条NOP指令,以保证正确执行。很明显,这将无疑会降低系统的效率,但是在绝大多数情况下,CPU还不至于忙到不能多执行几条指令的程序,所以这种方法还是被广泛采用的。 |
|