好文档 - 专业文书写作范文服务资料分享网站

温度控制的PID算法的C语言程序

天下 分享 时间: 加入收藏 我要投稿 点赞

我的题目是:基于PID算法的温度控制系统

89C51单片机,通过键盘输入预设值,与DS18B20测得的实际值做比较,然后驱动制冷或加热电路。用keil C语言来实现PID的控制。 最佳答案 7f0f2f1c2f

89C

89C89C1 L50℃3℃

2006-02-17 2009-04-23 2009-04-23 2009-04-24 2009-04-24 2009-10-11

超低温漂移高精度运算放大器0P07将温度一电压信号进行放大,便于A/D进行转换,以提高温度采集电

路的可靠性。模拟电路硬件部分见图2。

图2 ?温度电压转换电路

电控制执行电路的设计

??? 由输出来控制电炉,电炉可以近似建立为具有滞后性质的一阶惯性环节数学模型。其传递函数形式为:

??? 可控硅可以认为是线形环节实现对水温的控制。单片机输出与电炉功率分别属于弱电与强电部分,需要进行隔离处理,这里采用光耦元件TLP521 在控制部分进行光电隔离,此外采用变压器隔离实现弱强电的电源隔离。

??? 单片机PWM 输出电平为0 时,光耦元件导通,从而使三极管形成有效偏置而导通,通过整流桥的电压经过集电极电阻以及射集反向偏压,有7V 左右的电压加在双向可控硅控制端,从而使可控硅导通,交流通路形成,电阻炉工作;反之单片机输出电平为0 时,光耦元件不能导通,三极管不能形成有效偏置而截止,可控硅控制端电压几乎为零,可控硅截止从而截断交流通路,电炉停止工作。此外,还有越限报警,当温度低于下限时发光二极管亮;高上限时蜂鸣器叫。控制执行部分的硬件电路如下:

图3? 控制执行部分电路

3 键盘及显示的设计

??? 键盘采用软件查询和外部中断相结合的方法来,低电平有效。图3 中按键AN1,AN2,AN3,AN4, AN5的功能定义如表1所示。

??? 按键AN3与相连,采用外部中断方式,并且优先级定为最高;按键AN5和AN4分别与和相连,采用软件查询的方式;AN1则为硬件复位键,与R、C构成复位电路。

??????????????????? 表1 按键功能

按键 AN1 AN2 AN3??? 键名 复位键 运行键 功能转换键 功能 使系统复位 使系统开始数据采集 按键按下(D1亮)时,显示温度设定值;按键升起(D1不亮)时,显示前温度值 AN4 AN5 加一键 减一键 设定温度渐次加一 设定温度渐次减一 ??? 显示采用3位共阳LED静态显示方式,显示内容有温度值的十位、个位及小数点后一位,这样可以只用(RXD)口来输出显示数据,从而节省了单片机端口资源,在 口和(TXD)的控制下通过74LS164来实现3位静态显示。数字电路硬件部分见图:

图4? 数字硬件电路示意图

三 ?系统软件设计

??? 系统的软件由三大模块组成:主程序模块、功能实现模块和运算控制模块。

1 主程序模块

??? 在主程序中首先给定PID算法的参数值,然后通过循环显示当前温度,并且设定键盘外部中断为最高优先级,以便能实时响应键盘处理;软件设定定时器T0为5秒定时,在无键盘响应时每隔5秒响应一次,以用来采集经过A/D转换的温度信号;设定定时器T1为嵌套在T0之中的定时中断,初值由PID算法子程序提供。在主程序中必须分配好每一部分子程序的起始地址,形式如下:

?????????? ORG? 0000H

?????????? AJMP? MAIN

?????????? ORG? 0003H

?????????? AJMP? INTO

?????????? ORG? 000BH

?????????? AJMP? TT0

?????????? ORG? 001BH???

?????????? AJMP? TT1?

主程序流程图见图5。

2 功能实现模块

??? 以用来执行对可控硅及电炉的控制。功能实现模块主要由A/D转换子程序、中断处理子程序、键盘处理子程序、显示子程序等部分组成。

T0中断子程序

??? 该中断是单片机内部5s定时中断,优先级设为最低,但却是最重要的子程序。在该中断响应中,单片机要完成A/D数据采集转换、数字滤波、判断是否越限、标度转换处理、继续显示当前温度、与设定值进行比较,调用PID算法子程序并输出控制信号等功能。

T1中断子程序

???? T1定时中断嵌套在T 中断之中,优先级高于T 中断,其定时初值由PID算法子程序提供,T1中断响应的时间用于输出可控硅(电炉)的控制信号。

3? 运算控制模块

??? 运算控制模块涉及标度转换、PID算法、以及该算法调用到的乘法子程序等。

标度转换子程序

??? 该子程序作用是将温度信号(00H~FFH)转换为对应的温度值,以便送显示或与设定值在相同量纲下进

温度控制的PID算法的C语言程序

我的题目是:基于PID算法的温度控制系统89C51单片机,通过键盘输入预设值,与DS18B20测得的实际值做比较,然后驱动制冷或加热电路。用keilC语言来实现PID的控制。最佳答案7f0f2f1c2f89C89C89C1L50℃3℃2006-02-17
推荐度:
点击下载文档文档为doc格式
3igkx3l14f3pebe0io3703gjy5zcvb00lwt
领取福利

微信扫码领取福利

微信扫码分享