×
单片机 > 单片机程序设计 > 详情

基于AT89C51温度智能控制系统的软件设计

发布时间:2020-06-24 发布时间:
|
    超大规模集成电路技术的发展促进了单片机的诞生,单片机具有功能强、性价比高、可靠性高、功耗低、体积小等特点。单片机技术的出现既提高了产品质量,又丰富了产品功能,同时还简化了控制系统的设计。单片机主要应用在电力、化工、石油、冶金、航空航天、机械制造等生产实践中,用来实现信号检测、数据采集以及对应用对象的控制。
    随着国民经济的发展,需要对工业现场中的温度进行监测和控制。温度是表征对象和工程状态的重要参数之一。研究和设计高性能的温度控制系统具有重要意义。所以本设计选用温度作为被控量进行研究。温度控制系统一般具有非线性、时滞以及不确定性,为了能实现较高的控制精度,采用PID闭环算法进行控制。智能温度控制系统满足产品对成本低、性能稳定、可远程监控制现场温度的要求。

1 系统方案设计
    本系统采用AT89C51作为温度控制系统主控单元。AT89C51是一种带4 kB闪存可编程可擦除只读存储器的低电压、高性能CMOS的8位微处理器。指令系统和引脚与典型的MCS-51系列完全兼容,方便软件的编写。系统整体电路包括:主控电路、A/D数据采集、信号调理、LED显示、控制输出、控制对象、双向可控硅模块、设定输入等电路,如图1所示。


    (1)主机电路。包括核心控制器件单片机,以及由时钟电路、复位电路、电源电路构成的最小系统。主要完成功能运算,是控制系统数据处理的重要电路。
    (2)数据采集电路。本系统需要实时采集温度数据,经过A/D转换器转换成数字信号,存入AT89C51的内部数据存储器,送LED显示器显示,并与设定值比较,经过PID算法得到控制量并由单片机输出以控制电热丝加热。
    (3)键盘处理电路。本系统采用独立键盘,主要功能为输入控制系统的设定值,以便与系统采样值比较。键盘共有4个键,其中第2个选用双稳态开关,为后续键盘处理子程序提供便利。第1个、第3个和第4个键选用按钮开关。第1个键按下则转入外部中断处理。第2个键判断是十位还是个位进行加减操作,第2个键按下转十位进行加减操作,否则转入个位加减操作。第3个和第4个键分别为加1和减1操作。
    (4)LED显示电路。显示电路采用两个4位LED显示数码管,共阴极接法。由于LED显示电路较多选用动态扫描方式,为实现LED显示管的动态扫描,要给显示器提供段和位控。
    (5)控制执行电路。系统用加热丝进行加热,加热时间的长短取决于PWM波高电平时间的长短。

2 软件部分
    系统采用AT89C51单片机进行数据处理分析,设置相应的温度初始值并对采集到的信号进行实时处理显示。首先由温度的采样值与设定值之差求出温度误差,通过PID闭环控制算法获得控制量U,然后由定时子程序处理,发出可以改变占空比的PWM控制信号,控制加热片的工作时间,从而达到调节温度的目的。软件设计时采用了模块化设计,由主程序模块、功能实现模块和运算控制模块组成。
2.1 主程序模块
    在主程序中首先给定PID算法的参数值,然后通过循环显示当前温度,以等待中断,并且使键盘处于最高优先级。外部中断为高优先级,以便使主程序能及时响应键盘处理。初值由PID算法子程序提供,以用来执行对加热丝的控制。系统总体程序流程图如图2所示。

[page]

2.2 功能实现模块
    功能实现模块主要由A/D转换子程序、中断处理子程序、键盘处理子程序和显示子程序等组成。
    (1)A/D转换子程序。
    先送地址锁存允许ALE一上跳沿,使A、B、C地址状态送入地址锁存器中,然后发送给START一个上跳沿使内部寄存器清0,再给其发送一个下跳沿,开始进行A/D转换,然后判断转换结束状态信号EOC是否为1,为0则继续等待转换,为1则将转换好的数字量经ADC0808的8个数据输出端送到AT89C51的P0.0~P0.7口,A/D转换流程图如图3所示。


    (2)T0中断子程序。
    该中断是单片机内部5 s定时中断,为低优先级,但却是最重要的处理子程序。在该中断响应中,单片机要完成的工作有:A/D数据采集和转换、数字滤波、标度变换处理、显示设定值、调用PID算法及PWM处理子程序。产生控制信号PWM波是单片机上常用的模拟量输出方法,通过外接转换电路,可以将脉冲的占空比变成电压。程序中通过调整占空比调节输出模拟电压,PWM的占空比由定时器通过定时来实现,定时长短取决于PID运算的结果。
    (3)T1中断子程序。
    T1中断子程序嵌套在T0中断子程序中,为高优先级的中断。T0的定时初值由PID算法子程序提供,T0中断的响应时间用于对电热丝的控制,也就是产生PWM波。
    (4)键盘处理子程序。
    作为高优先级的功能键,系统要实时准备响应实时中断。在中断的响应过程中,应能显示设定值和控制处理后的值,其流程图如图4所示。

[page]

2.3 运算控制模块
    运算控制模块涉及标度变换、PID算法及该算法调用的乘法子程序等。
    (1)温度标度转换模块。
    控制系统读人被测量模拟信号,并转换成操作人员的物理量,这种转换就是标度转换。线性标度变换的公式为
   
    式中,Y为参数测量值;Ymax为测量范最大值,Ymin为测量范最小值;Ymax为对应的A/D转换值;Nmin为Ymin对应的A/D转换值;X为测量值Y对应的A/D转换值。在本系统中Ymin=0,Ymax=100,Nmin=0。
    (2)PID算法。
    在模拟控制系统中,控制器最常用的控制规律是PID控制。工业控制算法常用位置型PID算法,经离散化后的算式为
   
    式中,U(n)为第n个采样时刻控制器的输出量,e(n)第n个采样时刻的偏差值,Kp为比例系数,Ki为积分作用系数,Kd为微分作用系数。由于位置式算法每次输出与整个过去状态有关,算式中用到过去偏差的累加值,容易产生较大的累计误差。而增量式中只需计算增量,算式中不需要累加,控制增量的确定仅与几次偏差采样值有关,当存在计算误差或精度不足时,对控制量计算的影响较小,且容易通过加权处理获得较好的控制效果。由于计算机只输出控制增量,所以误动作时影响较小,且必要时可用逻辑判断的方法去掉,对系统安全运行有利。
    由于上述优点,所以增量式PID控制算法得到广泛的应用。其控制算法表达式为

    式(3)是PID位置式的递推形式,是编程时常用的形式之一。按增量式PID控制算法编程时,a0,a1,a2可预先算出存入固定单元。PID算法流程图如图5所示。



3 结束语
    本嵌入式智能温度控制系统能够实时处理采集到的数据、通过键盘实现设定初始值并实时显示当前的温度值,采用PID闭环控制算法增强了系统的抗干扰能力,提高了智能系统的精确度,达到了较高的设计水平,是一种成本低且效果好的嵌入式系统。

 

关键字:单片机  PID  工业控制  温度 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向