利用ATmega16设计电热锅炉温度控制器的方法

发布者:楼高峰最新更新时间:2013-12-11 来源: eefocus关键字:ATmega16  电热锅炉  温度控制器 手机看文章 扫描二维码
随时随地手机看文章

    电热锅炉是可将电能直接转化成热能,具有热效率高、体积小、无污染、噪声小、运行安全可靠、供热稳定、自动化程度高等优点,是理想的节能环保型的供暖设备。

    本控制器主要针对过程控制实验室的控制装置而设计的,对浙大中控的AE2000B过程控制实验装置中电热锅炉的温度进行控制、显示,具有手动、自动功能,带有漏电、超温、超压及缺水保护和报警系统。

    智能仪表的研制开发

    智能仪表是以单片机为核心的仪表,其设计要点大致有两点,即模块化设计和模块的连接。

    ● 模块化设计

    依据仪表的功能、精度要求等,自上而下按仪表功能层次把硬件和软件分成若干个模块,分别进行设计与调试,然后把它们连接起来,进行总调,这是设计仪表最基本的思想。

    硬件部分包括主机电路、过程输入/输出通道(模拟量输入/输出通道和开关量输入/输出通道)、人机联系部件和接口电路以及串行数据通信接口等。软件部分包括监控程序(包括初始化、键盘和显示管理、中断管理、时钟管理、自诊断等),中断处理程序以及各种测量(数字滤波、标度变换、非线性校正等)和控制算法等功能模块。模块化设计的优点是:无论是硬件还是软件,每个模块都相对独立,故能独立地进行研制和修改,使复杂的研制工作得到简化,从而提高工作教益和研制速度。

    ● 模块的连接

    上述各种软、硬件研制、调试之后还需要将它们按一定的方式连接起来,才能构成完整的仪表,以实现数据采集、传输、处理和输出等各项功能。为实现既定的各种功能,软件模块的连接一般是通过监控主程序调用各种功能模块,或采用中断的方法实时地执行相应的服务模块来实现的。

     硬件模块连接方法有两种:一种是以主机模块为核心,通过设计者自行定义的内部总线(数据总线、地址总线和控制总线)连接其他模块;另一种是用标准总线连接其他模块,这种方式可选择标准化、模块化的典型电路,使配接灵活、方便。


图1  智能控制器硬件系统原理图

    温度控制器硬件的开发

    ● 单片机的选择

    选用高性能、低功耗的8位ATMEGA16单片机,它具有如下特点:16KB的系统内可编程Flash(具有同时读写的能力,即RWW);512B EEPROM;1KB SRAM;32个通用I/O口线;32个通用工作寄存器;3个具有比较模式的灵活的定时器/计数器(T/C);可编程串行接口;低功耗空闲和掉电方式等。ATMEGA16的主电路如图2所示。[page]


图2  ATMEGA16电路图

    ● 外部设备的选择

     一台智能仪表往往需要有多种外部设备。根据功能模块划分,外部设备通常指过程输入/输出通道、人机接口(键盘、显示器、连接电路)等。

    (1)模拟量输入通道

    A/D转换器采用MEGA16芯片上的5~8路10位AD转换。ATmega16有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。单端电压输入以0V(GND)为基准。器件还支持16路差分电压输入组合。两路差分输入(ADC1、ADC0与ADC3、ADC2)有可编程增益级,在A/D转换前给差分输入电压提供0dB(1x)、20dB(10x)或46dB(200x)的放大级。七路差分模拟输入通道共享一个通用负端(ADC1),而其他任何ADC输入可作为正输入端。ADC包括一个采样保持电路,以确保在转换过程中输入到ADC的电压保持恒定。

    (2)开关量输出通道

    在测控系统中,被控设备的驱动常常采用模拟量输出驱动和数字量(开关量)输出驱动两种方式。前者由于其输出受模拟器件的信号漂移等影响,很难达到较高的控制精度。随着电子技术的迅速发展,特别是单片机进入测控领域后,数字量输出控制的应用日益广泛。精度控制上,开关量输出控制比模拟输出控制高。利用开关量输出控制往往无须改动硬件,而只需改变程序就可用于不同的控制场合。

    本设计采用开关量输出,并提供2种输出方式由用户选择: 继电器控制输出(AC 220V/3A,DC 24V/5A)阻性负载;SCR(可控硅)输出400V/0.5A。PWM输出电路如图3所示。


图3  PWM电路输出电路

    (3)数码显示电路

    显示屏驱动电路的主要作用是接受来自控制系统的数字信号,将发光二极管点亮,实现在LED显示屏上的信息的显示。在显示电路中采用双4位LED显示,测量值和目标值同时显示,LED显示屏使用的驱动电路是基于通用型集成电路移位寄存器74HC595和6B595来设计的,如图4所示。


图4  数码显示电路

    (4)键盘输入电路

    键盘输入的功能主要包括设定温度、在LED显示中进行显示实际温度和显示工作时间这两者循环显示的时候进行选择。同时考虑避免误操作而引起的设定温度的改变,所以系统专门增加一个确定键。因此该系统具有4个按键:模式选择、增加按钮、减少按钮及确定按钮。电路如图5所示。


图5  键盘输入电路

   (5)通信接口电路

    通信传输采用标准的RS485或RS232计算机数据串行通信方式,通过串口按一定的通信协议接收来自计算机串口RS232的信号,经过处理后按一定的规律传送到显示屏上显示。通信接口电路如图6所示。[page]


图6  通信接口电路

    系统软件研制

    系统软件主要采用了PID控制实现,全部软件都是用C语言编写的,软件流程图如图7,由一些功能模块组成。


图7  主程序

    初始化模块完成I/O的设置、数据存储器分配(包括A/D采样的结果、输入按键的键码、程序标志等) 、定时器、A/ D的设置并开中断;循环扫描模块检测是否有键盘输入、A/D转换完成否、是否定时中断等判别任务。若有则转跳至相应的子程序或中断程序;中断处理模块依据状态完成定时计数、A/D采样、键盘扫描等任务;显示驱动模块依据状态完成温度或系数的显示;键盘处理模块检测键码并进入相应处理程序;定时中断模块完成定时计数,定时间隔约为1s,为系数的设置提供数码;温度控制模块依据测得的数据和预置数的差确定控制信号的输出。

    在实验装置中的应用

    用ATMEGA16单片机实现的智能温度控制器,主要有如下功能:

    (1)能对电热锅炉进行升温、恒温的控制;

    (2)系统能方便地设定指定温度和恒温时间。系统工作时能循环显示工作时间、实际锅炉温度,给定温度,可随时进入或退出系统;

    (3)系统应具有温度超限、防干烧报警功能,当延迟1分钟后,则自动断电退出工作状态;

    (4)系统应具有二位式控制和PID控制功能,系统应具有与PC机的通信功能;

    (5)系统应具有较强的抗干扰能力。

     将研发的智能温度控制器应用于浙大中控的AE2000B型过程控制实验装置中,具有稳定性好、精度高、抗干扰能力强等特点,满足实验所需的各项指标的要求,达到了预期的效果。

    结束语

    通过实践运行表明,所设计的系统能够可靠、稳定、无扰动地完成手动、自动切换的功能,并且在系统出现超温、超压、缺水以及漏电等紧急情况时能报警并自动切断系统。以PID算法为核心的控制器能很好地满足系统的稳定性和精度要求,并且具有开发周期短、成本低、性能高、功能易扩大的优点。

关键字:ATmega16  电热锅炉  温度控制器 引用地址:利用ATmega16设计电热锅炉温度控制器的方法

上一篇:用Atmega8实现8路键盘D触发锁存器源程序代码
下一篇:Atmega32M1的电动工具电机驱动方案

推荐阅读最新更新时间:2024-03-16 13:32

avr单片机atmega16自动浇花器Proteus仿真+源程序
单片机源程序如下: #include iom16v.h #include macros.h #define key_bz 0b00000111 #define uchar unsigned char #define uint_16 unsigned short char smg_zx ={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x37};// 全局变量 char smg_wx ={0B00000001,0B00000010,0B00000100,0b00001000}; char smg_oFF ={0x3f,0X71,0X71}; unsigned i
[单片机]
avr单片机<font color='red'>atmega16</font>自动浇花器Proteus仿真+源程序
ATmega16开发板教程(6)——串口通信
7、串口通信 串口通信的基本概念就是用一根线收RX和另外一根线发TX数据,那么什么时候发?什么时候开始收呢?例如,古时候的暗号——天王盖地虎、小鸡炖蘑菇,说完就开始交易。 串口通信最重要的参数就是波特率、起始位、数据位、奇偶校验、停止位,这些必须匹配正确才能正常通信。 串口通信可以理解为:两个人交流时语速(波特率)要一致,一个人说得快,一个说的慢,那么聊天就失败了;当2个人交流语速一致时,那么就要通过举手(起始位)示意,告诉对方我要开始说话了;然后说话(数据位);说完话后可以思考思考自己说的话是不是对的——奇偶校验,也可以不用考虑太多就直接放下手,示意我说完了——结束位。 如下图为串口通信的时序图,默认电平为1,起始位
[单片机]
<font color='red'>ATmega16</font>开发板教程(6)——串口通信
单片机模拟空调温度控制器,按键设定温度和控制风力
空调温度控制器,LCD1206显示,按键设定温度和控制风力,流水灯模拟风力,红色LED指示灯代表加热电机工作,蓝色LED指示灯代表制冷电机工作。 单片机源程序如下: /*用于QX—mini5学习板*/ #include reg52.h #include LCD1602.h #include DS18B20.h //#include uart.h sbit jdq = P0^0; //用蜂鸣器代替继电器 sbit key1=P3^5; //设定温度加 sbit key2=P3^4; //设定温度减 sbit key3=P3^3; //设定风力加 sbit
[单片机]
单片机模拟空调<font color='red'>温度控制器</font>,按键设定温度和控制风力
3个atmega16之间的(TWI互相通信)+(中断形式仿真)
//1号主机: #include avr/signal.h #include avr/io.h #include util/delay.h #include string.h #define uchar unsigned char #define STATUS (TWSR&0xf8) #define SLA_W 0x32 #define SLA_R 0x33 #define SLAVER_ADDRESS 0x32 #define START 0x08 #define RE_START 0x10 #define MT_SLA_WRITE_ACK 0x18 #define MT_SLA_READ_A
[单片机]
atmega16单片机用于智能型铅酸电池充电器
0 引言   本文针对矿用永磁操动机构馈电开关智能控制器采用的铅酸蓄电池在充电过程中存在充电过度、充电不足、电池过热和充电速度慢等诸多问题,提出了一种以atmega16 单片机为核心的智能充电器设计方案。采用了基于sugeno 推理的模煳PID 控制算法,提高了充电器的充电速度,减少了电池损耗,实现了对铅酸蓄电池充电过程的智能化控制。   目前矿用永磁操动机构馈电开关智能控制器采用铅酸蓄电池作为备用电源。传统的铅酸蓄电池充电方法有恒流限压充电和恒压限流充电,但充电效果都不是很理想,一方面这些方法充电时间过长,温升过快。另一方面,充电过程中存在过充和欠充现象。专家研究表明:铅酸蓄电池充电过程对其寿命影响最大,过充电、充电不足以及
[模拟电子]
<font color='red'>atmega16</font>单片机用于智能型铅酸电池充电器
51单片机用PID算法温度控制器毕业设计
毕业设计任务 设计并制作一个水温自动控制系统,控制对象为纯净水(容量大于等于1升),容器为瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。 基本功能及要求 1.温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。 2.环境温度降低时(例如用电风扇降温)温度控制的静态误差≤1℃。 3.在硬件中显示水的实际温度。 4.采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。 5.温度控制的静态误差≤0.2℃。 6.在设定温度发生突变(由40℃提高到60℃)时,用上位机显示温度变化曲线。 实物图 电路原理图 功能框图 PI
[单片机]
51单片机用PID算法<font color='red'>温度控制器</font>毕业设计
AVR之简单的ADC程序
最近看了ATmega16的ADC,写下这个简单的程序,了解下ADC的简单控制。 程序用Proteus仿真的,用的是ICCAVR7 的编译器(头文件有所不同,自己掂量) 程序的内容是:通过PA1外部电压的读入并动态的显示在3位数码管上 #include iom16v.h #include AVRdef.h unsigned char tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管0~9 void display(unsigned char smg); unsigned char temp; void delay_1ms(unsigned int z
[单片机]
Atmega16与DS1302数码管显示程序
/*本程序为八位共阴极数码管且有两个573控制的动态扫描,本程序只用数码管显示到秒钟, 其他的要显示请自己编写,能用1602显示更好*/ #include iom16v.h #include macros.h //这里面有BIT(),所以要包含 #define uchar unsigned char #define uint unsigned int //#pragma data:code //注code的功能是把后面的数据存在程序存贮器中,不用code就放到了随机存贮器中. const table ={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x3
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved