利用ATmega16L设计的温度控制系统

分享到:

  概述:一种基于ATmega16L单片机的温度控制系统,阐述该系统的软硬件设计方案。采用模块化设计方法,利用增量式PID算法使被控对象的温度值趋于给定值。实验结果表明该系统具有良好的检测和控制功能。

  1 引言

  随着科学技术的进步,检测行业发展快速,除了检测项目和内容不断扩大,更重要的是检测愈来愈科学化、职能化,主要表现在检测过程及检测结果由计算机监控和显示。多点温度的采集控制近年来在检测行业应用较为广泛,其中以微机为核心的监控技术价格低廉,使用方便,应用也最普遍。

  本文主要介绍基于ATmega16L单片机的温度控制系统的设计,具体包括炉温的采集和控制、LCD显示以及PC机绘制温度变化的曲线图等。硬件和软件设计采用模块化的思想,系统集成度较高。

  2 系统的硬件设计

  图1为系统硬件的总体结构图。系统由主控制器、温度传感器、运算放大电路、液晶显示电路、键盘电路、串口通信电路等构成。由结构图1可看出,系统模块较多,所以应合理分配I/O 口资源,各模块以ATmega16L单片机为核心相连接。

  2.1 主控制器

  系统主控制器采用ATmega16L,该单片机是一款高性能、低功耗的8位AVR微处理器,具有先进的RISC结构,内部有大容量的ROM、RAM、FLASH和EEPROM,集成4通道PWM,SPI串行外设接口,同时具有8路10位A/D转换器,对于数据采集系统而言,外部无需单独的A/D转换器,从而可节省成本。另外,该单片机提供JTAG调试接口,可采用自制的简易JTAG仿真器进行程序调试。

  2.2 温度采集电路

  图2为温度采集电路。该电路主要由温度传感器AD590和差分运算放大器AD524组成,其中温度传感器AD590是一种新型的两端式恒流器件。激励电压范围是4~30 V,测温范围为-55~+150℃。当AD590的电流流过一个5 kΩ的电阻时,温度升高1 K,该电阻上的电压增加5 mV,即转换成5 mV/K。因此,温度在0~100℃间变化时,电阻电压在1.365~1.865 V间变化。运算放大器AD524用于把绝对温度转换成摄氏温度。

  2.3 温度控制电路

  该电路主要由光电耦合器和可控硅组成,如图3所示。单片机发出的控制信号(PWM)经驱动器后控制光电耦合器的工作状态。当光电耦合器工作后,使双向可控硅的触发极处于高电平,可控硅处于导通状态,进而控制加热棒的工作。

  2.4 其他电路

  (1)显示电路系统的模块较多,I/0接口紧张,显示器选用液晶显示器TCl602A,接口采用高4位数据传输方式。

  (2)键盘电路系统采用非矩阵式键盘,该键盘结构简单,使用方便,不会占用较多I/O,适用于按键个数较少的场合。

  (3)串口电平转换 电路电平转换由MAX488器件完成,MAX488为RS-488收发器,速度高于MAX232,简单易用,单+5 V供电,外接少量器件即可完成从TTL电平到RS-488电平的转换。

  3 系统软件设计

  系统采用分层控制方式保证温度控制系统稳定。下位机采用ATmega16L单片机作为硬件开发核心,采用C语言编程。上位机采用工控机作为监控系统,采用Visual Basic6.0编程,两层之间采用RS-488通讯实现数据交换。在单片机部分,软件设计采用模块化设计方法,整个软件可分为主程序、按键处理程序、A/D转换程序、增量式PID处理程序、串行通信程序和显示处理程序、数据保存处理程序、看门狗处理程序。

  (1)主程序 系统主程序主要完成系统各部件初始化操作,此外,在系统开始运行后等待按键处理。图4为其流程。

  (2)按键处理程序 键盘处理程序通常采用查询方法实现按键的识别,CPU只要一有空闲就调用键盘扫描程序,查询键盘,识别键值,并予以处理。

  (3)A/D转换程序 ATmega16有一个10位包括采样保持电路的逐次逼近型A/D转换器,该转换器与一个8通道模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。通过设置ADCSRA寄存器的ADEN即可启动A/D转换器,只有当ADEN置位时,参考电压及输入通道选择才生效。向A/D转换器启动转换位ADSC位写“1”可启动单次转换。在转换过程中此位保持为高电平,直到转换结束触发中断。然后被硬件清零。

  (4)增量式PID处理程序 该温度控制系统具有滞后性、时变性和非线性,不可能建立该系统的精确数学模型,因此如果使用常规的线性控制理论,要达到满意的控制效果非常困难。采用  增量式数字PID控制器,可解决这个难题。

  增量式PID是指数字控制器的输出只是控制量的增量,由于计算机输出的是增量,所以误动作时对输出的影响较小。控制增量的确定仅与最近的k、k-1、k-2次的采样有关,所以能够较容易地通过加权处理而获得较好的控制效果。另外,对于数字控制系统,由于A/D转换器位数的限制,其输出控制量受最小和最大值的限制,系统加入抗积分饱和法对其优化。图5为增量式PID控制算法程序流程。

  以下是增量式PID控制的程序代码:

  (5)串行通信程序 系统与上位计算机之间采用RS-488的串行数据传输方式。单片机采用中断方式接收数据,而发送数据则采用查询方式。

  (6)显示处理程序 LCD-TC1602A LCD接口设计采用4位控制方式,使用4位数据线D4~D7控制时序分两次传送,先传送高4位数据,再传送低4位数据。

  (7)数据读写处理程序 ATmega16单片机内部集成有512 B的EEPROM,它是作为一个独立的数据空间而存在的。ATmesa16单片机通过对相关寄存器的操作实现对EEPROM按字节读写。

  (8)看门狗处理程序 ATmega16单片机内部集成有硬件看门狗,看门狗由片内独立的振荡器驱动,设置看门狗的步骤为:先初始化并打开看门狗,然后把喂狗指令放在循环程序中。

  4 系统测试分析

  各个模块测试完成后,将下位机由测试端的硬件通过串口与PC机连接,构成完整的温度测试系统。在上位机中运行Visual Basic编写的监控程序,通过下位机的键盘设置加热炉温度为80℃.单击“打开通信端口”,选择所要通信的端口后,单击“开始测温”,这时下位机就会向上位机发送实时温度值,并实时绘出温度趋势曲线。

  当单击“结束”时,整个系统停止工作。上位机显示的温度趋势曲线如图6所示,测试结果显示,该系统对加热炉温度的采集和控制比较准确。

  5 结束语

  充分利用AVR ATmega16单片机的内部资源,系统集成 度高,系统利用增量式PID算法改变PWM的输出值,然后控制可控硅的开关,最终使被控对象的温度值趋向于给定的温度值。该系统操作容易、可靠性好,具有较高的实用价值。就其采样频率和分辨率来说属于中速类型,适合于对数据采样频率要求不是特别高的应用场合。

继续阅读
基于Atmega16L的高精度频率调节器

1 引言 在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了

ATmega16L-体育秒表设计

//有两个按键,其中一个接INT0,另一个接PD7 //启动时,数码管显示00.00 ,按下INT0 ,开始计时 //再按下INT0,计时停止。 //无论何时,按下PD7,计时清零。 //问题

ATmega16L-EEPROM写入读取例程

读写AVR单片机EEPROM实验。先向单片机EEPROM写入1到255,然后依次读出,并在数码管上显示出来***************************************/#includ

ATmega16L-外部中断1例程

取自周兴华的《AVR单片机C语言高级程序设计》 程序现象:PB口上的8个灯一直同时闪烁。当按下接在PD7的一个按键时, 接在PD3的一个小灯开始闪烁PD3对应于INT1. 闪了十次之后,PB上的灯继

基于AVR单片机的高精度频率调节器设计

精确的频率控制是现代化工业生产与高精度测试的必备手段。基于AD9850可以发生优于1Hz频率精确度的信号,这对于频率测试来说至关重要。本文介绍的这种频率调节器由Atmel公司的AVR单片机Atmega16L作为控制核心,采用4×4键盘作为频率值输入设备。

©2018 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss