《基于单片机的除氧器压力控制系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的除氧器压力控制系统设计.doc(51页珍藏版)》请在三一办公上搜索。
1、基于单片机的除氧器压力控制系统设计摘 要随着锅炉参数的提高和容量的增大,锅炉的用水量也将进一步增大,这给除氧器的除氧控制提高了难度。除氧器是锅炉以及供热系统的关键设备之一,在锅炉的给水处理过程中,除氧是非常关键的环节,所以对除氧器内的压力,就能更好的控制除氧器的出水的含氧量。本设计针对除氧器压力进行讨论与设计研究,采用单片机来对除氧器内压力进行精确控制,同时,本设计对系统的人机交互以及与上位机的连接都做了研究,极大的增强了系统的自动化程度以及减小了人工劳动的繁琐。关键词:除氧器 压力控制 单片机 锅炉ABSTRACTIncreasing boiler parameters and improv
2、e the capacity of the boiler, the water will be further increased, which increase the difficulty to control the deaerator deaerator. The deaerator is one of the key equipment of boiler and heating system, the water treatment process of boiler deaerator, which is the key link, so the deaerator pressu
3、re, oxygen content control of deaerator can better effluent. The design of the study and design of the deaerator pressure, using single-chip microcomputer to control the pressure inside the deaerator, at the same time, the design of the connection of human-computer interaction system and PC are stud
4、ied, greatly enhance the automation degree of the system and reduces the labor.Key Words: deaerator pressure control Micro Control Unit boiler 目 录摘 要ABSTRACT目 录CONTENTS第1章 绪论11.1 设计背景与研究意义11.2 国内外研究现状及发展21.2.1除氧器压力控制技术发展21.2.2单片机技术发展21.3设计目标3第2章 压力控制系统实现方案42.1 系统总体任务42.2系统实现方案4第3章 系统的硬件选择和设计73.1系统的硬
5、件电路设计73.1.1 A/D-D/A转换模块设计83.1.2通讯传输模块设计113.1.3 时间模块设计123.1.4 单片机接口扩展133.1.5主控模块设计153.1.6 线性稳压电源的设计183.1.7 显示与键盘模块设计193.1.8 看门狗电路设计21第4章 系统软件设计244.1 系统软件相关介绍244.1.1 系统主程序流程图244.1.2 系统初始化254.1.3 显示与A/D转换的数据处理264.1.4 按键部分软件设计294.1.5 通信协议及通信模块软件设计304.1.6 时间模块软件设计32第5章 系统软件仿真345.1 系统仿真软件相关介绍345.1.1 MATLA
6、B简介345.2 MATLAB仿真软件相关操作355.2.1 MATLAB仿真设计355.2.2 单片机电路设计355.2.3 MATLAB对串口的编程365.2.4 MATLAB与单片机测控系统的软件设计375.2.5 MATLAB仿真程序流程37第6章 经济与社会效益分析39结 论40致 谢41参考文献42附录144附录253CONTENTSChinese AbstractIEnglish AbstractIIChinese DirectoryIIIEnglish DirectoryChapter One The introduction11.1 Project background an
7、d Research significance11.2 Domestic and foreign research present situation and development21.2.1 Deaerator pressure control technology development21.2.2 Single-chip technology development21.3 Research design goals3 Chapter Two Pressure control system implementation scheme42.1 The system overall mis
8、sion42.2 System implementation scheme4 Chapter Three Hardware selection and design of the system73.1 Hardware circuit design of the system73.1.1 A/D-D/A Conversion module design83.1.2 Communication module design113.1.3 Time module design123.1.4 Single chip microcomputer interface extension133.1.5 Ma
9、ster control module design153.1.6 The design of linear regulated power supply183.1.7 Display and the keyboard module design193.1.8 Watchdog circuit design21 Chapter Four System software simulation244.1 Related system software is introduced244.1.1 The system main program flow chart244.1.2 System init
10、ialization254.1.3 Display and A/D conversion of data processing264.1.4 Key part of the software design294.1.5 Communication and software design of communication module304.1.6 Time module software design32 Chapter Five System software simulation345.1 System simulation software related introduction345
11、.1.1 Introduction of the MATLAB345.2 MATLAB simulation software related operations355.2.1 The MATLAB simulation355.2.2 Single-chip microcomputer circuit design355.2.3 MATLAB to programming of the serial port365.2.4 MATLAB with the single chip microcomputer measurement375.2.5 MATLAB simulation proces
12、s37Chapter Six Analysis of economic and social benefits39Conclusion40Acknowlegement41References42The appendix One44The appendix Two53第1章 绪论1.1 设计背景与研究意义单片机应用发展迅速而广泛。在控制系统中,单片机既可作为处理器,也可以作为控制系统的前端机,完成模拟量的采集与开关量的输入、处理和控制计算。随着科技的发展压力测量控制技术趋于智能化、微型化、可视化。本设计思想是采用单片机作为处理器与控制器,对除氧器压力进行控制,并要求具有一定的智能化,可操作性与稳
13、定性。除氧器采用单片机控制具有以下明显优势:(1)直观而集中的显示除氧器内各运行参数。能显示压力、温度等的状态。(2)在运行中可以方便的随时修改各种参数的控制值,并修改系统的控制参数。可以方便的改变压力的上限值、下限值。(3)作为除氧器压力控制装置,其主要任务是保证除氧器的安全、稳定、经济运行,减轻操作人员的劳动强度。在采用单片机控制的除氧器压力控制系统中,有十分周到的安全机制,可以设置报警。杜绝由于人为疏忽造成的重大事故。综合以上各种优点可以预见采用单片机控制除氧器压力系统是行业的大势所趋。单片机是在一块芯片上集成了所需CPU、存储器、输入、输出等相关部件。单片机问世以来,性能不断的提高和完
14、善,体积小、速度快、功耗低等的特点使它的应用领域日益广泛。单片机在控制领域得到了大量广泛的应用。使用单片控制除氧器压力是很好的选择。在现代社会中,随着工业的发展,居民生活区的集中热力供应量的需求也越来越大,蒸汽锅炉的容量不断提高,对操作过程要求更加严格,除氧器的压力控制直接影响设备的安全和使用寿命。传统压力控制不能进行远距离集中控制,自动化程度很低,调节精度比较差等等缺点,而且单靠人工操作不能适应,控制系统改造的必要性随着科学技术的不断进步而提高,被控对象的复杂程度越来越高,人们对控制精度的要求也不断提高。随着单片机技术以及自动控制技术的发展,利用单片机及其外围芯片实现除氧器压力控制已经成为可
15、能,而且也成为一种发展的趋势,单片机不仅具有体积小,安装方便,功能较齐全等优点,而且拥有很高的性价比,因此应用前景广泛,将保证除氧器正常供水,维持稳定系统,保证安全经济运行。本设计即是用单片机实现的一种除氧器压力控制系统。1.2 国内外研究现状及发展1.2.1除氧器压力控制技术发展由于单片机问世已久,众多企业在单片机测控装置研究、生产、应用中,取得了很大的成绩,总结了很多经验。目前国内外对除氧器压力控制的方法一般采用单冲量控制。单冲量控制用于除氧器给水流量较小时的情况。除氧器工作在给水流量较小时,单冲量控制方式有上限输出。一般情况下,单冲量控制方式的输出上限为满状态输出的50%。由于给水流量较
16、小时除氧器压力受其影响变化的扰动也就很小,因此采用单冲量系统既满足调节品质的要求,又可以减小整个给谁全程调节的参数的整定1。1.2.2单片机技术发展目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家
17、、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为几个范畴,在智能仪器仪表上的应用,在工业控制中的应用,在家用电器中的应用,在计算机网络和通信领域中的应用,在医用设备领域中的应用,在各种大型电器中的模块化应用,在汽车设备领域中的应用等等2。未来单片机技术将向多功能、高性能、高速度、低电压、低功耗、外围电路内装化及片内储存器容量增加的方向发展。所以本课题将采用单片机来实现对除氧器内压力的控制。1.3设计目标本课题的研究对象为除氧器的压力,对其压力进行控制。基本思想是以单片机作为控制器,通过单片机、压力传感器和数模转换器等硬件系统和软
18、件方法设计实现具有压力报警和控制的双重功能,同时也具有压力显示的功能。系统的硬件部分包括以下几个部分:单片机作为核心控制器、压力采集部分、键盘显示部分、A/D变换部分、报警部分、压力控制等部分组成。第2章 压力控制系统实现方案2.1 系统总体任务本文主要设计的系统实现的功能有:(1)当除氧器内压力低于控制压力值时,开启给水水阀对除氧器进行加水。(2)当除氧器内压力高于控制压力值时,停止对除氧器内进行加水。(3)当由于某种特殊原因,压力高于控制点压力时,仍然没有关闭给水水阀,则达到上限压力值时,进行报警,关闭给水水阀。(4)设计消除报警按钮,当有报警时操作人员在知道的情况下可以按下消除报警并去做
19、相应的处理工作。(5)设计紧急停止按钮,在遇到紧急情况是可以停止系统的运行。(6)设计实验按钮,在系统启动之前进行调试实验,确保系统可以正常运行及报警。(7)安装温度、压力传感器,可以进行温度与压力值的显示。2.2系统实现方案根据上面对系统任务的简单描述,将系统功能进行细分,此系统从整体看可以分为五部分:调节阀控制部分,信号采集部分,通信部分,数据处理部分,人机交互部分。调节阀控制部分主要完成对调节阀的控制,从而控制除氧器内压力值大小。信号采集部分则用于采集压力等相关参量。通信部分主要完成与上位机的通信任务。数据处理部分主要完成PID运算和数据运算功能,而人机交互部分用来显示除氧器运行状态和相
20、应的按键控制。在稳定除氧器内压力时,可行性较大的方式主要有二种:因为测量压力范围最高值在100kpa,压力比较小,比较好实现压力的控制。本方案就通过控制检测压力即测量压力,并通过PID运算等控制系统输出,从而实现压力的控制。图2-1 方案一第二种是考虑到除氧器内本身存在的压力和温度对除氧器内压力的影响。由于除氧原理多采用加热式除氧,所以计算实际压力值时应当考虑到水温变化与当前压力的变化,所以要对实际压力值进行一定的补偿计算3。图2-2方案二经过二个方案比较后发现方案一比方案二少了一个前馈,。所以当系统运行在不同状态时时,除氧器内的压力会随着温度和当前压力的变化而变化。如果只对单一量进行补偿,系
21、统的稳定性和抗干扰能力就会相对差一些,所以选择方案二来设计系统的控制。在方案二中,当除氧器内的实际压力和水温都在不断变化时,单片机输出的调节信号也会发生相应变化,调节阀接到信号后也会自动变化,控制除氧器给水水量的大小,从而实现除氧器内压力稳定的目的。第3章 系统的硬件选择和设计系统方案选择完毕之后,希望实现系统应有的功能,须选择合适的硬件和设计才能完成设计意图。3.1系统的硬件电路设计基于单片机的除氧器压力控制系统有单片机、调节阀、差压变送器、上位机等构成。系统采用一台单个单片机来对调节阀控制,实现调节阀控制给水水量的大小来实现除氧器内压力的稳定。通过差压变送器采样来自除氧器内的压力,配合压力
22、传感器的压力补偿,将数据传送回单片机进行PID运算,发出控制信号,控制调节阀。单片机连接上位机,上位机装有监控软件,对除氧器内压力进行监控。整个系统结构框图如图3-1所示4。 图3-1 整体方框图3.1.1 A/D-D/A转换模块设计A/D是指模/数转换器,是模/数转换器的缩写。是将连续的模拟量(如象元的灰阶、电压、电流等)通过取样转换成离散的数字量。尽管ADC芯片的品种、型号很多,其内部功能强弱、转换速度快慢、转换精度高低有很大差别,但从外特性看,无论哪种芯片,都必不可少地要包括以下四种基本信号引脚端:模拟信号输入端(单极性或双极性);数字量输出端(并行或串行);转换启动信号输入端;转换结束
23、信号输出端。除此之外,各种不同型号的芯片可能还会有一些其他各不相同的控制信号端。这里,我们选用ADC0809。ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口,由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成5。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据6。ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进
24、行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。ADC0809是单路8位输入A/D转换器,转换时间小于。量化间隔:(3-1)绝对量化误差:(3-2)相对量化误差:(3-3)在压力传感器误差与参考电压误差不大的情况下,ADC0809是完全满足设计误差要求的7。在本设计中,单片机通过锁存器74HC373锁存,再经过IO扩展芯片8255输出端与ADC0809通信,其启动信号直接由单片机输出控制。片选信号由单片机输出给8255,从而接受ADC0809的数据或向其发送数据。本设计当中的单片机ADC0809模数转换器如图3-2所示。图3-2 ADC0809数
25、模转换器数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。这里我们采用DAC0832。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。DAC0832是8分辨率的D/A转换集成芯片。DAC0832有三种工作方式,分别为直通方式,单缓冲方式和双缓冲方式。本设计采用了单缓冲的工作方式,输入寄存器和DAC寄存器共用一个地址,同时选通输出,输入数据在控制信号作用下,直接进入DAC寄存器中。和同时进行,并且与单片机的端相连接,单片机对DAC0832执行一次写操作,将数
26、据直接写入DAC寄存器中。本设计当中的单片机DAC0832数模转换器连接如图3-3所示8。 图3-3 DAC0832数模转换器3.1.2 通讯传输模块设计通讯模块是单片机与上位机进行数据通讯的处理芯片及其外围电路。目前单片机与上位机通讯采用两种方式,一种是常见的USB接口;第二种是采用美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口解决方案。采用USB接口设计作为备用接口。USB设计采用器件MAX232来实现。MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电,是一种把电脑
27、的串行口rs232信号电平(-10 ,+10v)转换为单片机所用到的TTL信号点平(0 ,+5)的芯片。其中MAX232通信原理图如图3-4所示9。 图3-4 MAX232通信原理图本设计提供的USB物理接头使单片机和上位机之间可以通过USB线进行连接。整个USB转串口线不需要外接电源,直接使用USB供电即可。3.1.3 时间模块设计通过单片机的定时器,可以设计时间功能,然而单片机自身的产生时间数据大大占用了系统的资源,降低了工作效率,甚至影响了其他功能的实现,因此在本设计方案中,采用了外部芯片提供时间信号,用以系统记录时间信息。DS1302因其较小的体积,占用I/O口资源少等特点,是常用的时
28、间芯片。此次设计采用DIP-8封装。DS1302中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中电压较大者供电。当Vcc2大于Vcc10.2V时,Vcc2供电,当Vcc2小于Vcc1时,DS1302由Vcc1供电。本设计中直接把芯片的2脚接高电平,由其给芯片供电。X1和X2是振荡源接口,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传输。RST输入有两种功能:首先RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RS
29、T为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果传送过程中RST置为低电平,则会终止此次传输,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端。SCLK始终是输入端,用来输入串行时钟信号。根据DS1302的特点,设计电路如图3-5所示10。图3-5 DS1302时间模块在实际应用中,起控制、输入输出的三个端口上拉较弱,容因产生信号串扰,因此加上了上拉电阻,加强信号的稳定性。3.1.4 单片机接口扩展因为本设计中有键盘输入控制与显示器等设备,而单片机接口数量有限,为解决
30、这一问题,我们选择常见的可编程并行I/O接口芯片8255。8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。下面简单介绍一下8255的各个接口功能。D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。工作于三种方式中的任何一种。PB0PB7:端口B输入输出线,一个8位的
31、I/O锁存器,一个8位的输入输出缓冲器。PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。其设计图如图3-6所示11。4图3-6 8255扩口8255A有三种工作方式,分别是方式0:基本输入输出方式;方式1:选通输入输出方式;方式2:双向输入输出方式。在本设计当中,我们使用8255A的方式0这种工作方式,即基本输入输出方式。这种工作方式的基本特点是任何一个端口可以作为输入口,也可以作为输出口,各个端口之
32、间没有规定的必然联系。各个端口的输入或者输出,可以有不同的组合。3.1.5 主控模块设计主控模块即是整个系统的控制与主要数据运算单元。本设计采用单片机来作为主控模块的主要组成部分。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。根据性价比以及被控对象接口数量,运算要求等方面的综合考虑,我们选用STC公司的STC89C51型单片机。图3.1STC89C5
33、1型单片机工作电压5.5V3.4V,其工作频率范围为0.40MHz,完全能够满足控制系统的设计要求。STC89C51单片机有40个引脚,采用双列直插(DIP)方式封装。单片机最小系统一般应该包括单片机、晶振电路、复位电路。晶振采用12MHz晶振,保证单片机有所需的机器周期。复位电路采用常用的按键复位。本设计当中的单片机最小系统如图3-7所示12。图3-7 单片机最小系统对于单片机最小系统的各个部分,都有相应的电容电阻等的元件,选择正确的阻值大小与电容大小是单片机最小系统正常运行的关键所在。晶振计算:为了对CPU时序进行分析,首先要为它定义一种能够度量各时序信号出现时间的尺度。最常用的尺度包括时
34、钟周期、机器周期和指令周期。时钟周期又称振荡周期,由单片机片内振荡电路OSC产生,常定义为时钟脉冲频率的倒数。机器周期定义为实现特定功能所需的时间,对于此款单片机来说,机器周期由十二个时钟周期T构成。指令周期定义为执行一条指令所需的时间。为了方便我们编程以及定时的准确性,我们采用12MHz晶振作为单片机的晶振源。计算如下:(3-4)此时单片机的机器周期为,如此方便计算与编程。复位电路RC计算:单片机复位电路可以正常引导单片机到正确的程序执行位置,复位电路不正常会导致程序错乱甚至不能运行。此单片机复位电路为按键式高电平复位,即正常工作时复位引脚为低电平,按下复位按键时,复位脚为高电平并维持两个机
35、器周期(24个振荡周期)或以上。假设高电平复位有效,舍去充放过程中较低的电平,一般的单片机复位脉冲宽度为0.71ms,RC计算公式为:;(3-5);这里我们取经验值电容为,电容为。计算延时时间:根据RC计算公式,计算出延时时间为,满足单片机的按键复位要求13。3.1.6 线性稳压电源的设计稳压电源通常分为线性稳压电源和开关稳压电源。线性稳压电源是比较早使用的一类直流稳压电源。线性稳压直流电源的特点是:输出电压比输入电压低;反应速度快,输出纹波较小;工作产生的噪声低:效率较低,产生的热量大。线性稳压电源一般由电源变压器、整流、滤波电路及稳压电路组成,其基本流程为变压,蒸馏,滤波,稳压,输出。本设
36、计中电源变压器T的作用是将电网220V的交流电压变换成整流滤波电路所需要的交流电压Ui。变压器的副边与原边的功率比为P2/P1=,式中为变压器的效率。采用变压器,将市电220V/50Hz变为15V/50Hz的交流电,然后通过整流电路,将交流电压Ui变换成脉动的直流电压。这里我们采用的整流电路为全波整流电路,以此来保证输出电压有效值。然后将此脉动直流电压进行滤波处理,即通过电容将脉动直流电压的文波减小或者消除,此时电压基本稳定,再通过稳压电路来稳定输出电压。同时,本设计涉及到传感器以及调节阀, 需要用到放大器,所以,我们通过7812和7912芯片来输出12V与-12V电源。满足设计全局的供电需求
37、。这里,将15V输出电压变为12V电压,我们采用的是LM7812芯片。用LM7812三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。相应的使用7912来输出-12V电压14。7805在测试条件下输出电压最小值为4.8/4.75V,最大值为5.2/5.25V,典型值为5V,输出峰值电流为2.2A,满足系统设计要求。输出+5V电压可以给单片机等工作模块供电。其设计图如图3-8所示。图3-8 线性电源3.1.7 显示与键盘模块设计显示模块设计:本设计采用12864液晶进行显示。该点阵的成本相对较低,适用于各类仪器,小型设备的显
38、示领域。压力控制系统中的温度压力等等参数将通过12864液晶进行显示,同时,系统的运行状态也将通过液晶显示。考虑到液晶屏有可能损坏,本文将液晶屏连接接头做成插头形式,方便更换与维护。其具体硬件连接如图3-9。图3-9显示模块按键设计:因为除氧器压力控制系统目的之一是减少人工劳动的繁琐,基本上是全自动运行,不需要过多的人工控制,所以设计按键较少。键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机输入数据、发送命令等功能,是人工干预单片机系统的主要手段。考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路即可。设计按键分别执行功能为:1、当除氧器压力过高时报警,消除报警;2、 当压力控
39、制系统运行之前,实验按钮测试保证所需报警等功能完好运行;3、系统紧急关闭按钮;4、设定值增量按钮,即“+”按钮;5、设定值减量按钮,即“-”按钮;6、系统预留按钮;按键的处理可以采用中断方式,也可以采用查询方式。键盘工作方式的选取原则是既要保证能及时响应按键操作,又要不过多占用单片机的工作时间。所以选择中断方式处理按键。按键设计如图3-10所示。图3-10按键设计3.1.8 看门狗电路设计看门狗电路它实质上是一个可由CPU复位的定时器,它的定时时间是固定不变的,一旦定时时间到,电路就产生复位信号或中断信号。当程序正常运行时,在小于定时时间隔内,单片机输出一信号刷新定时器,定时器处于不断的重新定
40、时过程,因此看门狗电路就不会产生复位信号或中断信号,反之,当程序因出现干扰而“跑飞”时,单片机不能刷新定时器,产生复位信号或产生中断信号使单片机复位或中断,在中断程序中使其返回到起始程序,恢复正常。本设计采用MAX831L看门狗电路监控单片机的工作,如果单片机工作不正常,看门狗电路在规定时是内得不到刷新复位,就输出信号强制单片机复位重新启动工作,保证仪器正常工作。本设计利用了MAX831L的手动复位输入端。只要程序一旦跑飞引起程序“死机”,端电平由高到低,当变低超过140ms,将引起MAX831产生一个200ms的复位脉冲。同时使看门狗定时器清0和使脚变成高电平。也可以随时使用手动复位按扭使M
41、AX831L产生复位脉冲,由于为产生复位脉冲端要求低电平至少保持140ms以上,故可以有效地消除开关抖动。该电路可以适时地监控电源故障(掉电、电压降低等)。图中RI的一端接未经稳压的直流电源。电源正常时,确保R9上的电压高于1.26V,即保证MAX831L的PFI输入端电平高于1.26V。当电源发生故障,PFI输入端的电平低于1.25V时,电源故障输出端电平由高变低,引起单片机中断,CPU响应中断,执行相应的中断服务程序,保护数据,断开外部用电电路等。程序正常运行时,由主程序在小于1.6s的时间间隔内周期性地从P1.7端向MAX831L的P1.7输入端发送一个脉冲信号,以消除芯片内部的看门狗定
42、时器。实现指令为:若超过1.6s该输入端收不到脉冲信号,则内部看门狗定时器溢出,8号引脚由高电平变为低电平。引起MAX831L产生一个200ms的复位脉冲。同时使看门狗定时器清零和使8号引脚变成高电平15。需要引起注意的是,整个单片机系统完成复位后,在PC指针的指针下整个程序将从0000H地址处重新开始初始化运行,而这在很多情况下是不允许的(如连续的工艺流程),为此必须采取相应的措施。首先在对单片机系统完成复位后,程序应该先判断是开机运行(冷启动)还是运行过程中“死机”之后的重新加载运行(热启动)。因此一般情况下在这两种启动方式下,系统程序在进入主流程在进入主流程前所要做的工作往往不同。如冷启
43、动后,系统程序在初始化程序往往要进行系统资源的自检以及将各外围设备修改设置,只是对单片机系统本身的一些资源进行必要的设置工作。其次,在大多数情况下,我们总可以把一个连续的过程分解开来,把它变成一个个独立的子过程(状态)组成的连续过程。在主程序运行过程中,适时保存相应状态和该状态下的相关参数。其设计如图3-11所示16。图3-11 看门狗电路这样当程序运行出现“死机”,在MAX831L作用下系统复位和初始化后,将首先查询事先保存的状态参数,然后根据此参数决定程序的流向。同时把该状态下事先保存的参数取出,对系统外围设备进行必要的恢复设置工作和引导程序继续运行。第4章 系统软件设计4.1 系统软件相
44、关介绍8051系类单片机共拥有111条系统指令,可实现51种基本操作。然而汇编语言指令却有程序的可读性低,程序开发人员的开发时间长与开发难度大,程序移植性差等缺点。C语言是一种编译型程序设计语言。它兼顾了多种高级语言的特点,并具备汇编语言的功能。用C语言来编写目标系统软件,会大大缩短开发周期,增加软件的可读性,便于改进和扩充。用C语言进行51系列单片机程序设计是单片机开发与应用的必然趋势。KEIL C51开发工具套件可用于汇编C语言程序、汇编源程序,链接和定位目标文件和库,创建HEX文件以及调试目标程序17。本设计使用KEIL C51 Vision4为开发编译环境,使用C语言编写程序,实现各模
45、块功能设计。4.1.1 系统主程序流程图系统主程序的功能主要是完成对单片机的初始化,设置警戒压力的上下限值,实时显示压力值以及键盘扫描等工作。主程序流程图如图4-1所示。系统启动CPU初始化参数设定按键输入按键处理采样子程序显示实时压力数据处理子程序控制调节阀显示开关是否是图4-1 主程序流程图4.1.2 系统初始化该模块在系统上电开机时将系统端口、数据存储区、标志位、指针、地址等赋予有含义的值。具体分为以下几个模块列表描述。如表4.1:表4.1 初始化参数及含义模块变量/端口初始值功能控制端口初始化adRD/P1.31A/D转换芯片数据读入控制,初始为不读入adWR/P1.40A/D转换芯片
46、转换控制,初始为停止E/P1.50通信接收发送控制,初始为接收DIS/P1.60显示数据锁存控制,初始为保持RELAY/P1.71继电器控制,初始状态为断开波特率发生器初始化TMOD0x22单片机片内定时/计数器工作在方式二SCON0x40串行口为8位UART工作方式TH10xf4波特率设置为4800bpsTL10xf4IE0禁止定时器中断TR11启动定时器REN1允许串行口接收数据数据参数初始化xmark0x7531数据存储状态标志字节指针numtab0x0001数据存储区指针Uplq0xCF高压力警戒值,初始值downlq0x10低压力警戒值,初始值4.1.3 显示与A/D转换的数据处理系统中,显示输出的要求为压缩BCD码,而A/D转换输入的数据是8位16进制码,因此在实现显示之前需要编码的转换。对8位A/D转换器而言,其十六进制、相对满偏电压比率、相对电压幅值的关系对应如表4.2:表4.2 A/D转换幅值数据关系对照表十六进制二进制满刻度比率相对电压幅值Vref=2.5V高四位低四位高四位电压低四位电压F111115/1615/2564.8000.320E1