基于ATmega16L的温度控制系统设计

发布者:算法之手最新更新时间:2012-02-24 来源: 维库开发网关键字:ATmega16L  温度控制  LCD显示 手机看文章 扫描二维码
随时随地手机看文章

  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用于把绝对温度转换成摄氏温度。[page]


  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”可启动单次转换。在转换过程中此位保持为高电平,直到转换结束触发中断。然后被硬件清零。

[page]

  (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  温度控制  LCD显示 引用地址:基于ATmega16L的温度控制系统设计

上一篇:基于ATmega128的无线数据采集系统设计
下一篇:基于ATmega16的GSM家居安防报警器

推荐阅读最新更新时间:2024-03-16 12:54

ATmega16L-体育秒表设计
//有两个按键,其中一个接INT0,另一个接PD7 //启动时,数码管显示00.00 ,按下INT0 ,开始计时 //再按下INT0,计时停止。 //无论何时,按下PD7,计时清零。 //问题在于:时间不准,比1秒慢。时间转过一分钟,计时只有36秒。此时熔丝位为 #include iom16v.h const unsigned char duanma ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; const unsigned char weima ={0xfe,0xf
[单片机]
ATmega16L-体育秒表设计
北京蓝海让工业用彩色LCD显示开发变简单
以往,在消费电子以外的工业领域,显示器屏幕大多都是采用黑白屏幕的。主要原因是由于工业领域对于稳定性的要求非常高,而彩色液晶的成本也要贵一些,所以导致采用新技术的欲望就没那么强烈了。 近年来,随着彩色LCD的价格不断下降,本身的稳定性能又加强,而用户对于产品品质和可视性要求的不断提高。在很多工业产品中采用彩色LCD的越来越多,传统的LED数码管和单色LCD将逐渐被彩色的LCD代替。然而,开发彩色的LCD显示并非简单的事情,特别对于单片机控制系统有2个方面的难点:一是彩色LCD的点阵数目庞大,要保证LCD稳定显示,每秒的刷新率最少在30次以上,而每次更新画面的字节数在几百K字节以上。普通单片机难以承受。二是彩色LCD显示
[工业控制]
北京蓝海让工业用彩色<font color='red'>LCD显示</font>开发变简单
基于ARM单片机的装载机障碍物监测预警系统设计
1 引言   随着信息化、智能化、网络化的发展,嵌入式系统技术获得广阔的发展空间,工业控制领域也进行着一场巨大的变革,以32位高端处理器为平台的实时嵌入式软硬件技术将应用在工业控制的各个角落。嵌入控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化 进程、提高生产率等方面起到了极其重要的推动作用 。   现今,国内外虽有部分车辆安装了超声波倒车防撞报警装置、基于DSP的智能车辆防撞系统、图像处理技术的汽车追尾预警系统等,但是用于像装载机这种广泛用于城建、矿山、公路等工程的工程机械的障碍物监测预警系统却没有发现。
[单片机]
基于西门子S7-200PLC 的温度控制系统
   1 引言   染色工序在纺织品生产中占有重要地位,染色质量直接决定了纺织品的色泽、外观,甚至还影响纺织品的生产成本。在染色工序中,影响染色的因素主要有染液浓度、温度、液位等,其中温度控制是很重要而又复杂的控制过程。染色过程实际上是执行由工艺人员针对不同织物的一条温度曲线,每个工艺对染色的温度、升降温过程都有严格的要求,否则,容易使织物产生色差、缸差、条痕等疵点,造成复染率上升,生产成本的增加。针对染色过程温度控制的复杂性,设计了基于PLC 的染色机温度控制系统,实现对染色过程温度的控制,从而减少织物疵点,提高生产效率,降低生产成本。    2 系统控制要求   1)温度曲线存储要求对于不同的染色品种,其对温度的要求是不
[工业控制]
128*64 LCD显示驱动程序
//头文件部分 #include reg52.h //====================================================== //定义常用符号,LCD控制字符号常量,TIME0定时赋值常量 #define uchar unsigned char #define uint unsigned int #define DISPON 0x3f #define DISPOFF 0x3e #define DISPFIRSTLINE 0xc0 #define LCDBUZY 0x80 #define LIMIT 0x80 //128列限制 #define
[单片机]
如何利用单片机从LCD显示屏上读出所测得电阻值
1 前 言 在 电路 测试过程中常常会碰到由于忽略某些小 电阻 的影响引起实验数据与理论值之间存在较大误差,从而影响测试效果例如电感器变压器中往往存在铜电阻,地铁铁轨的电阻;由于其数值较小,一般的指针万用表无法测量出来;通常实验室里会用电桥进行测量,但电桥操作手续较烦,又不能直接读出被测电阻阻值鉴于此,我们采用了单片机,利用单片机的优势设计了该测量仪该测量仪可直接从LCD显示屏上读出所测得的电阻值,测量范围为10~2.9999k,同时可以把测试的数据进行储存,然后经串行口送入上位机,通过上位机的强大功能,可以对所测得的数据进行分析处理该测试仪的测量精度高达±0.1%,并采用四端测量法,电阻值不受引线长短及接触电阻的影响不仅
[单片机]
如何利用单片机从<font color='red'>LCD显示</font>屏上读出所测得电阻值
吉时利2510型自动调谐温度控制源表有哪些测试系统配置
在这篇文章里会讲2510型自动调谐温度控制源表进行测试系统配置时,对于正负输出引线、远程激活时对端口及附件的要求。 正、负输出引线连接的交换 2510型自动调谐温度控制源表假设正向电流为待测器件加热。许多激光二极管热电制冷器应用都假设正向电流为待测器件制冷;因此,对于利用正向电流为待测器件制冷的应用,要交换正、负输出引线连接(如图1所示)。这种交换对2510型自动调谐温度控制源表或温度控制性能没有不利影响。 图1 待测器件(温度控制)与2510-AT型自动调谐温度控制源表的连接(图示为4-线传感器)。 为了实现最佳精度,使用电热调节器或RTD时,输出需要4线模式,建议输入(温度传感器)也采用4线模式。对于输入连接,
[测试测量]
吉时利2510型自动调谐<font color='red'>温度控制</font>源表有哪些测试系统配置
基于NioslI的SOPC系统的LCD显示驱动IP核设计
  引言   NioslI嵌入式处理器是A1tera公司提出的SOPC解决方案,是一种用户可随意配置和构建的32位嵌入式处理器,结合丰富的外设可快速、灵活地构建功能强大的SOPC系统。Altera公司提供了一些通用的IP核,使得用户可轻松集成属于自己的专用功能;但对于一些特定的外设,没有现成可用的IP核,如液晶模块CBGl28064等。   本文以深圳秋田视佳实业有限公司的液晶显示模块CBGl28064为例,在基于NioslI的SOPC系统中设计了LCD显示驱动IP核,并下载到Cyclone系列的FPGA中,实现了对LCD的显示驱动。   1 CBGl28064液晶显示模块   CBG128064是一款以2片HD6
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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