基于单片机STC89C52的智能温度控制器的硬件设计

合集下载

基于STC89C52的温度控制系统的硬件设计论文

基于STC89C52的温度控制系统的硬件设计论文

计算机控制技术课程设计论文题目:基于STC89C52的温度控制系统的硬件设计院系:电子电气工程学院学号:姓名:授课教师:完成时间:2015.6.15摘要本次课程设计内容是检测温度,进行显示,并利用当前的温度值实现相应的控制功能。

为了实现温度控制功能,该设计以STC89C52为主要控制器,通过DALLAS 公司的DS18S20温度传感器测温的新型数字温度计。

本数字温度计设计采用美国DALLAS半导体公司推出的一种智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最大分辨率可达0.0625℃。

主控制器采用单片机STC89C52,其集成度高,片内资源丰富,接口模块包括SPI、SCI、A/D、PWM 等。

显示电路采用3位共阳极LED数码管,从P0口输出段码,列扫描用P1口来实现。

由于采用了改进型智能温度传感器DS18B20 作为检测元件,与传统的温度计相比,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。

DS18B20 温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。

随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。

因此本次设计内容的思想符合了市场的主潮流,有很好的应用前景,同时对设计人员也是很好的一次锻炼。

关键词:STC89C52,DS18B20,温度控制,数码管显示目录一引言 (1)(一)课题研究的背景 (1)(二)课题研究的目的和意义 (1)二硬件电路的设计 (2)(一)系统设计的框架 (2)(二)单片机最小系统电路 (3)1.STC89C52单片机的特性及引脚介绍 (4)2.STC89C52单片机的时序介绍 (7)(三)温度检测系统电路 (8)1.温度检测电路 (8)2.DS18B20的介绍 (8)3.DS18B20的引脚及其功能 (9)4.DS18B20的使用方法 (10)(四)系统电源电路设计 (10)(五)系统按键电路设计 (11)(六)直流电机控制电路设计 (12)(七)温度显示电路设计 (14)三系统的调试与软件设计 (17)(一)串口通讯工具 (18)(二)系统软件设计 (20)1.系统程序总流程图 (21)2.温度采集子程序流程图 (22)3.标度变换子程序流程图 (24)4.数码管显示子程序流程图 (25)5.电机控制子程序流程图 (26)四总结与体会 (27)参考文献 (28)致谢 (30)附录Ⅰ (31)附录Ⅱ (33)基于STC89C52的温度控制系统的硬件设计一引言(一)课题研究的背景随着大规模集成电路的发展,微型计算机的应用愈加广泛、日益深入。

基于STC89C52的智能温度控制系统硬件设计_张蓉蓉

基于STC89C52的智能温度控制系统硬件设计_张蓉蓉

heji yu Fenxi130 基于STC89C52的智能温度控制系统硬件设计张蓉蓉(江苏财经职业技术学院机械与电子工程系,江苏淮安223001)摘 要:以农植物在生长过程中所要求的环境温度为控制对象,以STC89C52单片机为核心,对大棚智能温度控制系统进行深入研究,设计完成了一套温室大棚室温智能调控系统。

首先分析了大棚温控系统的功能要求,进而确定系统的硬件结构,选择STC89C52单片机作为控制核心,选用可编程温度传感器DS18B20对温度信号进行检测,设计了温度采集、显示、按键、存储及温度控制等硬件电路,测试结果证明,该系统达到了设计要求。

关键词:STC89C52;DS18B20;智能温度控制系统;硬件;设计0 引言近年来,随着民众对反季节农产品需求量的逐步增大,越来越多的农户开始采用温室栽培的方法进行农作物栽培。

温室栽培技术的核心是控温,传统的方法多为手工作业,不仅工作量大,且实时性、精确度和有效性都很差。

本文研究了一种基于STC89C52单片机的温控系统设计方法。

系统采用STC89C52作为处理器,借助智能温度传感器DS18B20采集大棚内温度信号,并转变成数字信号输入单片机内,实现单片机对温室大棚内温度的控制。

调试结果表明,本设计方案可以满足系统控温速度快、实时性强和精确度高的要求。

1 系统工作原理本系统用于实现对大棚内环境温度的智能调节,各种植物要求有不同的生长环境,因此,本系统需要有一定的设置范围。

如基于某种植物,其生长环境的室温范围为20~30℃。

要求控制系统在温度越出设定的范围时,蜂鸣器启动并发出警报声,且令相应继电器动作,开启设备,调控棚内温度,使室温保持在设定的范围内不变。

系统硬件结构框图如图1所示。

系统上电工作后,首先由微处理将命令写入温度传感器,随后温图1 温控系统硬件结构框图度传感器开始转换数据,数据转换后再通过CPU来进行处理,处理后的数据结果将显示到数码管上,与此同时,系统还将完成对温度范围的判断,并针对判断结果作出相应的动作。

基于STC89C52单片机的恒温控制系统

基于STC89C52单片机的恒温控制系统

(2) ,温度传感器实时数据采集
设计中选用数字传感器 DS18B20,其内部可自动完成对温度模拟量到数字量的转换和 放大, 通过一根信号即可将实时温度参数读入主控单片机进行控制处理。 本设计中通过 P2.2 口进行信号传输,控制程序中只要对 DS18B20 初始化完毕就可以实时读取采集温度信号。
(3) ,LCD 液晶集成模块 TJDM1602 初始化
二、系统硬件原理设计
1.系统总体框图
温度传感器 DS18B20
LCD 显示 STC 89C52 单片机基本 控制系统 双向可控硅
采集
电炉加热 器
键盘
1
2. 系统功能实现的设计
(1)温度采集
本设计采用数字传感器 DS18B20,DS18B20 是一种可组网的单线数字温度传感器,它采 用单线总线结构,集温度测量和 A/D 转换于一体,直接输出数字量,用一根 I/O 线就可以 传送数据与命令,其温度测量范围为-55oC~+125oC,精度为+/-0.5oC,使用中无需外部器件, 可利用数据线或外部电源提供电能,供电电压范围为 3.3~5.5V,通过编程实现 9~12 位分 辨率读出温度数据。 使用时,将 DS18B20 的数据 DQ 与单片机的一位具有三态功能的双向口连接就可以实现 数据传输,为保证在有效的时钟周期内提供足够电流,采用外部电源单独供电,在数据线 上加一个 6.8KΩ 的上拉电阻。 具体接线如下:
o
四、 主控程序
在控制算法中采用比例和比例积分相结合的方法,温度设定值与实际水温相小于 20oC 就开始介入比例控制,这样可以很好的抑制住水温上升的惯性,并在相差 10~5oC 时采用不 同参数的比例控制,最大限度的达到控制系统的快速性,小于 5oC 时采用比例积分控制, 使得水温逐渐向设定值稳定地逼近。 设计中采用位置式 PID 模型,将微分项置为 0 即可实现 PI 控制。参考 PID 算法如下:

基于STC89C52单片机无刷直流电动机智能控制器系统硬件电路控制软件的设计

基于STC89C52单片机无刷直流电动机智能控制器系统硬件电路控制软件的设计

基于STC89C52单片机无刷直流电动机智能控制器系统硬件电路控制软件的设计1 引言随着人们生活水平的提高,产品质量、精度、性能、自动化程度、功能以及功耗、价格问题已经是选择家用电器的主要因素。

就电动机而言,传统的直流电动机均采用电刷, 以机械方法进行换向, 存在着相对的机械摩擦, 由此带来了噪声、火花、无线电干扰以及寿命短等致命弱点, 制造成本高及维修困难等缺点,因而大大地限制了它的应用范围。

永磁无刷直流电动机是近年随着电力电子器件及新型永磁材料发展而迅速成熟起来的一种新型机电一体化电机,既具有交流电机的结构简单、运行可靠、维护方便等优点,又具备直流电机那样固有的优越的起动性能和调速特性,而无机械式换向机构,现以广泛应用于各种调速驱动场合,其应用前景看好,尤其从当今的环保、能源、效率等综合因素出发,水磁无刷直流电机可望在未来的电动车及冰箱或空调类永磁压缩机领域占有主导地位。

就目前而言,永磁无刷直流电动机控制器结构已有多种形式,由最初复杂的模拟式到近来以单片机为核心的数字式,但新型电机控制专用芯片的出现,给无刷直流电机调速装置设计带来了极大的便利,这种集成模拟控制芯片控制功能强、保护功能完善、工作性能稳定,组成的系统所需外围电路简单、抗干扰能力强、特别适用于对控制器体积、价格性能比要求较高的场合。

专用控制芯片优点固然多,但往往价格比较昂贵。

在一些控制要求精度不是很高的场合,就需要能有一种工作稳定、价格又比较低廉的控制器。

本设计就是基于此市场需求,详细介绍了一种利用普通的STC89C5X单片机作为主控芯片的无刷直流电动机控制器的设计。

2 无刷直流电动机概述2.1无刷直流电动机的特点传统的直流电机以其优良的转矩特性和调速性能在运动领域中有着广泛的应用,但机械电刷却是它的致命弱点。

电刷的存在带来了一系列的问题,如:存在机械摩擦、噪声、电火花无线电干扰及寿命短,再加上它制造成本高及维修困难等缺点,从而大大地限制了它的应用范围。

基于STC89C52单片机的数字温度计_单片机课程设计1 精品

基于STC89C52单片机的数字温度计_单片机课程设计1 精品

通信***班,*** 基于STC89C52单片机的数字温度计单片机课程设计报告项目名称专业班级学生姓名指导教师年月日通信***班,*** 基于STC89C52单片机的数字温度计摘要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于STC89C52单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。

实验结果表明,DS18B20与STC89C52结合可以实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。

关键词:温度检测;单片机;数字温度传感器;温度采集;I通信***班,*** 基于STC89C52单片机的数字温度计AbstractWith the progress and development of this epoch ,Single-chip Microcomputer (SCM ) technology has spread into various fields ---our lives ,work ,scientific researches and so on ,becoming a comparatively mature technology .This article was mainly written to introduce a temperature measurement system(TMS ) based on STC89C52 SCM .It’s with a detailed description of the development progress of TMS using digital temperature sensor ,putting emphasis on analyzing the hardware connection of the sensor under the SCM ,software programming and each module progress .This system can conveniently achieve the temperature data collection and display ,and can be arbitrarily set upper and lower alarm temperature .It’s quite easy to use ,with high accuracy ,wide range ,high sensitivity ,small size ,low power dissipation ,etc .Thus ,it’s suitable for our daily life and industrial and agricultural production’s temperature measurement ,and also can be used as temperature processing modules embedded in other systems ,as an auxiliary expansion of other main systems .Experimental results show that ,the integration of DS18B20 and STC89C52 can achieve the simplest TMS ,which has simple structure ,strong anti-jamming capability ,suitable for conducting in-situ temperature measurement ,all above leading this to have broad prospects of applications .Keywords:T emperature measurement ; Single-chip Microcomputer (SCM ) ; Digital Temperature sensor; Temperature data collectionII通信***班,*** 基于STC89C52单片机的数字温度计目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 背景 (1)1.2 数字温度计的设计目的 (1)1.3 本文研究的意义 (1)第2章系统硬件选择 (2)2.1 单片机的选择 (2)2.1.1 STC89C52单片机的性能介绍 (2)2.1.2 STC89C52单片机引脚图 (2)2.2. 温度传感器的选择 (4)2.2.1 DS18B20 介绍 (4)第3章原理分析 (6)3.1原理框图 (6)3.2原理分析 (6)第4章系统的硬件电路设计 (7)4.1 显示电路 (7)4.2报警电路 (7)4.3 数字温度传感器 (7)4.4单片机最小系统电路 (8)4.5数字温度计的实物图 (8)4.6系统板上硬件连线 (9)第5章系统的软件设计 (10)5.1 程序流程图 (10)5.2元件清单及程序代码 (11)第6章实验数据分析 (14)6.1 proteus仿真图 (14)6.2系统调试与分析 (14)结论 (15)参考文献 (16)附录1 (17)附录2 (18)致谢 (26)项目创新及特色 (27)III通信***班,*** 基于STC89C52单片机的数字温度计第1章绪论1.1 背景在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

基于STC89C52单片机的温度控制电路设计

基于STC89C52单片机的温度控制电路设计

2.7系统整体硬件电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,单片机主控电路等,通过Protel99se 可画出如图2-9所示的电路图[9][10][11]图2-9 温度控制电路原理三系统软件设计3.1 温度控制系统原理框图主控制程序的主要是用来实时控制当前所要测控的环境温度,并读出由DS18B20测量的经过处理的当前环境的温度值,同时检查温度是否在限度之内,否则报警,同时调整温度值。

其主控制程序流程图如3-1所示。

图3-1 主程序流程图图3-2读温度流程图温度控制系统C语言程序#include <reg51.h>#define uint unsigned int#define uchar unsigned charsbit p34=P2^4;sbit p35=P2^5;sbit p36=P2^6;sbit dp=P0^7;sbit p37=P2^7;sbit DQ=P2^2; //定义DS18B20总线I/Osbit SET=P3^1; //定义选择报调整警温度上限和下限(1为上限,0为下限)sbit LING=P2^0; //定义闪烁signed char m; //温度值全局变量bit sign=0; //外部中断状态标志signed char shangxian=38; //上限报警温度,默认值为38signed char xiaxian=5; //下限报警温度,默认值为5ucharcode LEDData[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; /*****延时子程序*****/void Delay(uint i){while( i-- );}/*****初始化DS18B20*****/void Init_DS18B20(void){unsigned char x=0;DQ=1;Delay(8); //稍做延时DQ=0; //单片机将DQ拉低Delay(80); //精确延时,大于480usDQ=1; //拉高总线Delay(14);x=DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay(20);}/*****读一个字节*****/unsigned char ReadOneChar(void){unsigned char i=0;unsigned char dat=0;for (i=8;i>0;i--){DQ=0; // 给脉冲信号dat>>=1;DQ=1; // 给脉冲信号if(DQ)dat|=0x80;Delay(4);}return(dat);}/*****写一个字节*****/void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;}}void Tmpchange(void) //发送温度转换命令{Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0x44); //启动温度转换}/*****读取温度*****/unsigned int ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Tmpchange();Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器a=ReadOneChar(); //读低8位b=ReadOneChar(); //读高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*100+0.5; //放大100倍输出并四舍五入return(t);}/*****显示开机初始化等待画面*****/Disp_init(){P0 = 0x80; //显示-p34=1;p35=0;p36=0;p37=0;Delay(200);P0 = 0x80;p34=0;p35=1;p36=0;p37=0;Delay(200);P0 = 0x80;p34=0;p35=0;p36=1;p37=0;Delay(200);P0 = 0x80;p34=0;p35=0;p36=0;p37=1;Delay(200);P0 = 0x80;}/*****显示温度子程序*****/Disp_Temperature() //显示温度{uint a,b,c,d,e;e=ReadTemperature(); //获取温度值a=e/1000; //计算得到十位数字b=e/100-a*10; //计算得到个位数字d=e%10; //计算得到小数点后两位c=(e%100)/10; //计算得到小数点后一位m=e/100;if(m>shangxian || m<xiaxian) LING=1; //温度不在范围内报警else LING=0;p34=0;p35=0;p36=0;p37=0;P0 =LEDData[d]; //显示小数点后两位p34=1;p35=0;p36=0;p37=0;Delay(300);p34=0;p35=0;p36=0;p37=0;P0 =LEDData[c]; //显示小数点后一位p34=0;p35=1;p36=0;p37=0;Delay(300);p34=0;p35=0;p36=0;p37=0;P0 =LEDData[b]; //显示个位dp=0;p34=0;p35=0;p36=1;p37=0;Delay(300);p34=0;p35=0;p36=0;p37=0;P0 =LEDData[a]; //显示十位p34=0;p35=0;p36=0;p37=1;Delay(300);p34=0;p35=0;p36=0;p37=0; //关闭显示}disptiaozheng(){uchar f,g,j,k;f=shangxian/10;g=shangxian%10;j=xiaxian/10;k=xiaxian%10;p34=0;p35=0;p36=0;p37=0;P0 =0xc0; //显示0p34=1;p35=0;p36=0;p37=0;Delay(200);p34=0;p35=0;p36=0;p37=0;P0 =0xc0; //显示0p34=0;p35=1;p36=0;p37=0;Delay(200);p34=0;p35=0;p36=0;p37=0;if(SET==1){P0 =LEDData[g];dp=0; //显示上限温度个位}else{P0 =LEDData[k];dp=0;}p34=0;p35=0;p36=1;p37=0;Delay(200);p34=0;p35=0;p36=0;p37=0;if(SET==1) P0 =LEDData[f]; //显示上限温度十位else{if(f==0) P0=0x00; //不显示下限温度十位else P0 =LEDData[j]; //显示下限温度十位}p34=0;p35=0;p36=0;p37=1;Delay(200);p34=0;p35=0;p36=0;p37=0; //关闭显示Delay(20);}/*****外部中断0服务程序*****/void int0(void) interrupt 0{EX0=0; //关外部中断0 sign=1;if(SET==1) shangxian++;else xiaxian++;Delay(500);EX0=1;}/*****外部中断1服务程序*****/void int1(void) interrupt 2{EX1=0; //关外部中断0 sign=1;if(SET==1) shangxian--;else xiaxian--;Delay(500);EX1=1;}/*****主函数*****/void main(void){uint z;IT0=1;IT1=1;EX0=1;EX1=1;EA=1;ReadTemperature();LING=0;for(z=0;z<100;z++){Disp_init();}while(1){Disp_Temperature();if(sign==1){for(z=0;z<300;z++)disptiaozheng();sign=0;}}}。

基于STC89C52单片机的水温控制系统设计方案

基于STC89C52单片机的水温控制系统设计方案

基于STC89C52单片机的水温控制系统设计方案第1章方案论证本设计中的芯片可以采用二种方案。

方案一:采用热电偶温度传感器,放大器,A/D转换器作为测量温度的电路。

热电偶通过电位差的数值与不加热部位测量点的温度来测温,和这两种导体的材质有关。

热电偶传感器有自己的优点和缺陷,它灵敏度比较低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响,因此不适合测量微小的温度变化。

由于热电偶温度传感器的灵敏度与材料的粗细无关,用非常细的材料也能够做成温度传感器。

也由于制作热电偶的金属材料具有很好的延展性,这种细微的测温元件有极高的响应速度,可以测量快速变化的过程。

硬件电路复杂,需要设计A/D转换电路,以及与其相关的编程,总体设计起来较困难,软件、硬件调试复杂,硬件成本较高。

而且器传感器有以下缺点:它灵敏度比较低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响[]。

所以总体来说,在硬件、软件上的成本都比较高,而且易受外部环境的影响,系统工作不稳定。

方案二:采用数字可编程温度传感器作为温度检测元件。

数字可编程温度传感器可以直接读出被测温度值。

不需要将温度传感器的输出信号接到A/D转换器上,减少了系统的硬件电路的成本和整个系统的体积同时具有极强的抗干扰纠错能力;负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

由于采用的是具有一总线特点的温度传感器,所以电路连接简单;而且该传感器拥有强大的通信协议,同过几个简单的操作就可以实现传感器与单片机的交互,包括复位传感器、对传感器读写数据、对传感器写命令[2]。

软件、硬件易于调试,制作成本较低。

也使得系统所测结果精度大大提高。

通过以上二种方案的论证和比较,从设计的实用性、方便性和成本等诸多方面考虑,最终选择了以DS18B20为温度测量和传输元件的设计,这样设计在本次毕业设计中能够在经费有限的情况下,进行最优的实现方法。

具体方案:采用STC89C52作为整个电路的核心控制器件,用DS18B20传感器采集温度信息。

基于STC89C52单片机智能温度控制系统硬件设计

基于STC89C52单片机智能温度控制系统硬件设计
●DS18B20的报警上下限值可以根据实际需求自行设置
●超过报警限值的DS18B20可以通过报警搜索命令定位识别
●多个DS18B20可以并联在同一线上也可以达到测温的目的
●电源极性接反时,DS18B20不会因发热而烧毁但不能正常工作
综合以上两种方案可以清晰的看出。方案二中的数字式集成温度传感器DS18B20的高度集成化是其主要的特点,这种特点有效的避免了外接运放放大器转换等电路原因引起的误差。此外DS18B20相对热敏电阻对温度的敏感度较高,符合本实验要求的≤ ±2℃的误差要求。在工作过程中,DS18B20将温度值直接转换为数字信号量直接输出,使得系统的程序设计得以简化。因此,方案二更适合本方案。
基本方案:本方案是基于单片机进行温度数据的采集及处理,由于数字温度传感器DS18B20内部集成有模数转换部件,芯片可将采集到的温度模拟数据进行数字化并通过单总线传输给单片机。所以单片机将接收到的数据进行分析和处理,并将数据显示在液晶屏幕上。通过按键输入预设温度,如果不在温度范围内,便驱动蜂鸣器报警,同时驱动电炉进行加热,以达到控制温度的效果。
以上两个方案相比较,再根据方案要求:需要同时对检测温度和设定温度同时进行显示。考虑到显示的效果和质量高和功耗低等特性。再此方案中采用方案一中的1602LCD液晶显示。
第二章各单元模块的硬件设计
2.1 系统主要器件的介绍
硬件系统中包括:AT89C52单片机、DS18B20温度传感器、1602LCD液晶显示等。
(5)对升温和降温过程的时间不作要求。
要求采用单片机控制实现。
1.3 方案总体设计框图
温度传感器将检测温度信息转变为模拟电压信号之后,将电压信号放大并且传输到单片机可以接受的处理能力范围内,然后经过低通滤波,去除掉杂乱信号并送入单片机。单片机将检测到的待测温度的信息与设定的值进行比较之后,如果检测的值相比较设定的要高,单片机输出的低电平驱动了报警的系统自动的报警提示温度过高,同时散热电路开始工作,实现散热功能;当温度较设定的值低时,单片机输出高电平,同时加热电路开始工作,实现加热的功能。从而实现对温度的一个动态平衡的控制,自动控制一个温室的温度,功能要求如下:

基于89C52单片机的智能温控仪设计

基于89C52单片机的智能温控仪设计

第29卷 第3期2008年6月大连交通大学学报JOURNAL OF DAL I A N J I A OT ONG UN I V ERSI TY Vol .29 No .3 Jun .2008 文章编号:167329590(2008)0320091204基于89C52单片机的智能温控仪设计普仕凡1,张丽艳2,李桂林2,郭宇明2,孙灵姗2,郭峰2(1.大连市91550部队230所,辽宁大连116023;2.大连交通大学电气信息学院,辽宁大连116028)3摘要:采用89C52单片机,设计了一种应用于供暖系统的智能温控仪,该温控仪采用DS18B20三引脚的温度传感器和PCF8583时间芯片,可以自动实现不同时间采用不同的供暖温度.详细介绍了该仪表的硬件设计和软件流程,并分析了该温控仪的应用前景.关键词:智能;温控;单片机中图分类号:TP391文献标识码:AD esi gn of I n telli gen t Tem pera ture Con trolM eter Ba sed on 89C52SCMPU Shi 2fan 1,ZHANG L i 2yan 2,L I Gui 2lin 2,G UO Yu 2m ing 2,S UN L ing 2shan 2,G UO Feng2(1.I nstitute 230of Unit 91550,P LA,Dalian 116023,China;2.School of Electrical &I nf or mati on,DalianJ iaot ong University,Dalian 116028,China )Abstract:By adop ting 89C52SC M ,a kind of intelligent te mperature contr ol meter used forheating syste m has been designd .The meter adop ts the three p ins DS18B20te mperature sens orand ti m e chi p t o realize different heating te mperature on different ti m e aut omatically .The struc 2ture of this meter,hard ware design method and corres ponding s oft w are fl ow p r ocess is illustra 2ted in details .Finally,the f oregr ound of the meter app licati on is als o exp lained .Key words:intelligence;te mperature contr ol;SC M电热供暖主要用于我国北方的厂房以及家庭分户供暖.本文针对小区域电热供暖的实际需要开发了该仪器.本温控仪的功能是:①监测暖气管道内的回水温度.②对嵌入到暖气管道内的加热体进行软加电或断电.③24h 内,由用户通过键盘设定三段上限温度、下限温度、起控时间、停控时间.这可以满足供暖系统在白天、夜间、凌晨采用不同的供暖温度.1 智能温控仪组成图1 硬件框图该仪器的硬件框图如图1所示,由89C52单片机[1]、温度传感器(DS18B20)、时钟/日历芯片(PCF8583)、数码管、过零检测、可控硅、RS485、看门狗、键盘输入组成.3收稿日期:2007212208作者简介:普仕凡(1975-),男,工程师,硕士E 2ma il:pushifan@.92 大连交通大学学报第29卷2 软、硬件设计说明2.1 硬件设计本文给出了单片机与温度传感器及时钟/日历芯片的硬件设计说明,而且简单阐述了过零检测电路、可控硅驱动电路、看门狗电路及RS485通讯电路的原理及设计.(1)温度传感器DS18B20 图2 D S18B20与单片机的硬件连接图DS18B20[2]只有一个引脚用于通讯,可提供9~12位的数字温度测量结果(默认为12位),并具有非易失性的用户可编程温度上下限报警功能.它的温度测量范围是-55~+128℃.DS18B20可以不需要外部供电而从数据线上直接获得电源(寄生电源).每只DS18B20都有自己的64位串行(系列)码,它允许多个DS18B20在同一个总线上工作;因此仅用单片机的一条口线就可以监控较大区域内的多个热源情况.DS18B20采用T O 292封装,有三个引脚,其中1脚为(G ND )地,2脚为(QD )数据输入输出引脚,漏极开路单线接口引脚,当应用寄生电源供电时也提供电源,3脚为(VDD )电源正极,寄生模式下必须接地.智能温控仪中DS18B20与单片机的硬件连接如图2所示.DS18B20的数据总线需要一个417K 的上拉电阻.DS18B20采用严格的单线协议,每次进入DS18B20都必须遵循:初始化、ROM 命令、DS18B20功能命令这样的处理顺序,否则DS18B20将不会响应.初始化时主控单片机将数据总线拉低不小于480μs 来传送复位脉冲,主机释放总线后,当DS18B20检测到上升沿时,它等待15~60μs 后将总线拉低60~240μs 发送一个存在脉冲,这时主机与DS18B20的通讯才建立.智能温控仪中只用了一个DS18B20,采用DS18B20默认的12位温度测量结果,其准确度是010625℃.因此智能温控仪中只需要一个ROM 命令,两个DS18B20功能命令,它们的命令字分别为:0xCC (跳过ROM );0x44(开始温度变换);0x BE (读暂存器).(2)时间芯片PCF8583 图3 PCF8583与单片机连接图智能温控仪中的时钟芯片选择的是PCF8583.PCF8583通过I 2C 接口与单片机通讯,其内部除了有16个特殊功能寄存器外,还有240个自由RAM区可供使用,向这些RAM 区写入的数据不掉电时可长期存在.因此将用户设定的三段温度上下限和开启、关闭时间暂存于PCF8583自由RAM 区中,使用一个3.6V 的锂电池作为备用电池供电.具体电路如图3所示.在仪器工作区间PCF8583由电源经锗二极管(I N 5819)供电,同时给电池充电,仪器不工作时,PCF8583由电池经1K 电阻供电,使得时间和用户设置的参数不会丢失.(3)过零检测电路过零检测电路用于检测220V 市电的过零点,电路如图4所示.交流220V /50Hz 市电经过变压器T1后,变成9V /50Hz 交流电,降压后的交流电通过整流桥B3整流后,变为100Hz 的直流脉动电压送入电压比较器LM339,L M339将过零点附近的输入信号变成低电平,送入单片机外中断0.这样单片机就根据这一信号来计算可控硅的导通角位置,实现对可控硅导通角的控制.在本供暖系统中采用随机触发型可控硅,上电过程可控硅的导通角从0°增加到360°,历时10s,此后一直处于全导通状态. 第3期普仕凡,等:基于89C52单片机的智能温控仪设计93 图4 过零检测电路 (4)可控硅驱动电路图5 可控硅驱动电路可控硅驱动电路如图5所示.图中K1是60A 的随机触发可控硅,其控制电压为3~16V.当P1.6为低电平时,可控硅导通,如果P1.6发出一个低电平脉冲,则可控硅在P1.6发出低电平脉冲时导通,在220V 市电过零时截止.因此通过准确计算并控制P116发出低电平脉冲的时间,就可以控制加在加热体上的市电的导通角.(5)看门狗电路单片机软件因干扰等各种因素造成程序跑飞时,看门狗能适时复位,确保程序能够返回正常工作状态.本智能温控仪中,采用MAX813L 作为看门狗,如果MAX813L 的WD I 端在1.6s 内没有触发信号,单片机的RESET 端将产生复位脉冲,重新启动系统工作.为了使系统能正常工作,又要使系统在程序跑飞时能及时复位,这就要求有很科学的喂狗方法.本文采用主程序和子程序相结合的喂狗方式,在主程序里置位,在子程序里清零.(6)RS485通讯电路智能温控仪留有RS485接口,有利于实现对多个智能温控仪的连网监控.RS485接口电路如图6所示,采用半双工通讯方式.单片机的P1.7用于控制收发转换.图6 RS485接口电路图2.2 软件设计流程智能温控仪的单片机软件程序采用C 语言[3]编写,可读性强,程序存于单片机内部的Flash 中,其软件流程设计如图7所示.由图7可知,该智能温控仪程序包括参数初始化、PCF8583RAM 区数据的读写、开启关闭时间的判断、控制时间段的选择、对选出段的温度上下限判断、键盘处理、通讯处理等. 大连交通大学学报第29卷94图7 软件设计流程图3 应用前景该智能仪器体积小、成本低、智能化高,可以实时显示时间和温度,还能通过串口与计算机通讯;可以作为大型电热锅炉的控制部件,也可以嵌入小型家用取暖设备,实现定时定温供暖;还可以用于洗浴设备的定时定温控制.该仪器可以给使用单位和个人带来极大方便,使人们生活得更舒适.因此该仪器具有很好的市场前景.参考文献:[1]CYG NAL I N TEGRATE PRODUCTS I N C.C8051F单片机应用解析[M].潘琢金,孙德龙,等译.北京:北京航空航天大学出版社,2002:12268.[2]刘畅生.传感器简明手册及应用电路[M].西安:西安电子科技大学出版社,2005.[3]刘文涛.单片机语言C51典型应用设计[M].北京:人民邮电出版社,2005.。

基于STC89C52温度控制系统

基于STC89C52温度控制系统

基于单片机STC89C52温控系统摘要文章介绍了基于单片机STC89C52[1]温度控制的硬件设计和软件设计,它在很多领域都广泛运用,而该系统硬件部分的重心在于单片机。

DS18B20温度测量系统是以STC89C52单片机作为控制核心,智能温度传感器DS18B20为控制对象,用2极共阳数码管显示,用蜂鸣器报警,发光二极管作为指示灯,运用C语言[2]实现系统的各种功能。

设计完成了DS18B20的温度采集电路、显示电路、温度处理电路、报警提示电路。

关键词温度传感器DS18B20;单片机STC89C52;蜂鸣器;发光二极管1.设计分析(1)温度设定范围为0~99℃,最小区分度为1℃,标定温度≤1℃,当外界温度高于或低于设定值时蜂鸣器报警。

(2)用十进制2极共阳数码管显示实际的温度,最小区分度为1℃。

(3)四键盘输入,设置温度加、减、确定、复位,实现对电路的控制。

2.设计方案实现温度控制的方法主要有以下几种:方案一:采用纯硬件的闭环控制系统。

该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。

且要实现题目所有的要求难度较大。

方案二:FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。

即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。

这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。

方案三:单片机与高精度温度传感器结合的方式。

即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。

方案三克服了方案一、二的缺点,所以本设计任务是基于STC89C52单片机和温度传感器实现对温度的控制。

系统框图如下图2.1:图2.1 系统总体控制框图 用DXP 设计的整体电路图如图2.2所示。

图2.2 温控系统的整体设计图 3.硬件设计 根据总系统的结构可以将其分为八个功能模块:单片机STC89C52主控制模 单片机S T C 89C 52 温度传感器D S 18B 20 键盘输入 数码管显示电路 蜂鸣器报警块、DS18B20温度信号采集模块、键盘输入模块、数码管温度显示模块、蜂鸣器报警模块、流水灯模块、5V继电器模块、电源模块。

基于STC89C52单片机的温度控制电路设计

基于STC89C52单片机的温度控制电路设计

基于STC89C52单片机的温度控制电路设计简介本文将详细介绍基于STC89C52单片机的温度控制电路设计。

该电路可用于控制温度在一个特定范围内,广泛应用于冰箱、洗衣机、烤箱、水壶等家电设备。

本文将包括电路原理图、程序设计以及关键参数的详细介绍。

电路原理图基于STC89C52单片机的温度控制电路包括传感器、AD转换、单片机、LCD显示屏和继电器等组成,以下是该电路的原理图:程序设计程序设计是该电路的关键部分,主要包括采集温度数据、控制继电器、LCD屏幕显示等功能。

下面是程序设计的具体路线图:1.初始化LCD屏幕和单片机;2.初始化AD转换器,接收传感器发送的温度信号,将其转换为可处理的数字量;3.设定合适的温度范围,将温度数值与设定值进行比较,以判断当前温度是否在正常范围内;4.如果温度低于设定值,则打开继电器,开启加热设备;5.如果温度高于设定值,则关闭继电器,关闭加热设备;6.将温度数据显示在LCD屏幕上,确保操作的可视化。

关键参数在设计基于STC89C52单片机的温度控制电路时,需要考虑的关键参数包括:温度传感器温度传感器是将温度信号转换为电信号并输出的一种传感器。

常见的温度传感器有热电偶、热敏电阻、热电阻等。

在选择温度传感器时,需要考虑工作温度范围、响应时间、输出精度等因素。

AD转换器AD转换器是将模拟信号转换为数字信号并输出的一种电路,常见的AD转换器有单片机内置ADC、MAX7219等。

在选择AD转换器时,需要考虑分辨率、采样速度、精度等因素。

LCD显示屏LCD显示屏是一种广泛应用于各种电子设备上的输出设备。

在选择LCD显示屏时,需要考虑分辨率、适用场景、功耗等因素。

继电器继电器是将小电压控制的电器通过中间继电器进行电气隔离后,将高电压或大电流控制的电子器件。

在选择继电器时,需要考虑继电器类型、负载能力、寿命等因素。

本文介绍了基于STC89C52单片机的温度控制电路设计,并详细分析了电路原理图、程序设计以及关键参数。

基于STC89C52单片机的温度控制电路设计

基于STC89C52单片机的温度控制电路设计

基于温度传感器的单片机温控电路设计一、设计分析在各行业中广泛应用的温度控制器及仪器仪表主要具有如下的特点:一是在复杂的温度控制系统中能够适应于大惯性、大滞后的控制;二是在受控系统数学模型难以建立的情况下,得到控制;三是在受控系统中,能够被控制过程很复杂且参数时变的温度控制系统控制;五是温度控制系统普遍具有参数自检功能,借助计算机技术,能控制对象和参数,并且具有特性进行自动调整的功能等特点[1]。

本次电子工艺实训旨在练习实用单片机系统的设计与安装,掌握典型51系列单片机最小系统及外围电路设计、常用电子元器件的识别、万用板焊接电路的方法、巩固常用电子仪表测量与调试电路参数的方法,培养创新实践动手能力,为下学期单片机、电子系统设计等课程奠定理论和实践基础。

具体要求如下:1.自行设计以STC89C52RC40单片机为控制核心的实用单片机控制系统的硬件电路,实现至少一个环境参量信息采集、数值显示、报警功能。

2.根据设计,利用万用板焊接硬件电路,并做简单调试。

3.要求模块化设计,单片机最小系统模块、显示模块、信息采集报警模块、键盘模块,主要贵重器件用排座插接,电阻、电容、按键等元器件要求布局合理、排列整齐,无虚焊。

二、设计方案本文设计是以单片机为核心,实现温度实时测控和显示。

确定电路中的一些主要参数,了解温度控制电路的结构,工作原理,对该控制电路性能进行测试。

具体设计方案:(1)本设计是用来测控温度的,可以利用热敏电阻的感温效应,将被测温度变化的模拟信号,电压或电流的采集过来,首先进行放大和滤波后,再通过A/D 转换,将得到的数字量送往单片机中去处理,用数码管将被测得的温度值显示出来。

但是这种电路的设计需要用到放大滤波电路,A/D转换电路,感温电路等一系列模拟电路,设计起来较麻烦[2]。

(2)本设计采用单片机做处理器,可以考虑使用温度传感器,采用由达拉斯公司研制的DS18B20型温度传感器,此传感器可以将被测的温度直接读取出来,并进行转换,这样就很容易满足设计要求。

基于STC89C52单片机的温控风扇系统设计

基于STC89C52单片机的温控风扇系统设计

基于STC89C52单片机的温控风扇系统设计1功能本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统选用STC89C52里左机作为控制平台对风扇转速进行控制。

可在测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。

2.硬件设计硬件电路主要由:1.单片机最小系统2.风扇驱动电路3.1CD1602显示屏电路4.DS18B20温度采集电路3.程序设计(1)1CDI602驱动程序^define1CD1602_DBPOsbit1CD1602RS=P2^0;sbit1CD1602RW=P2」;sbit1CD1602_E=P2^2;∕*等待液晶准备好*/void1cdWaitReady()(unsignedcharsta;1CD1602DB=OxFF;1CD1602RS=0;1CD1602RW=1;do{1CD1602_E=1;sta=1CD1602_DB;〃读取状态字1CD1602_E=0;}whi1e(sta&0x80);〃bit7等于1表示液晶正忙,重复检测直到其等于0为止}/*向1CDI602液晶写入一字节命令,Cmd-待写入命令值*/void1cdWriteCmd(unsignedcharcmd){1cdWaitReadyO;1CD1602_RS=0;1CD1602_RW=0;1CD1602_DB=cmd;1CD1602_E=1;1CD1602_E=O;∕*向1CDI602液晶写入一字节数据,dat-待写入数据值*/void1cdWriteDat(unsignedchardat)1cdWaitReadyO;1CD1602_RS=1;1CD1602_RW=0;1CD1602_DB=dat;1CD1602_E=1;1CD1602_E=0;∕*设置显示幽起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标*/void1cdSetCursor(unsignedcharx,unsignedchary)unsignedCharaddr;if(y==O)//由输入的屏幕坐标计算显示RAM的地址addr=OxOO+x;〃第一行字符地址从OXOO起始e1seaddr=0x40+x;〃第二行字符地址从0x40起始1cdWriteCmd(addrI0x80);〃设置RAM地址}/*在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,St1字符串指针*/void1cdShowStr(unsignedcharx,unsignedchary,unsignedchar*str)1cc1SetCursor(x,y);〃设置起始地址whi1e(*str!='O')〃连续写入字符串数据,直到检测到结束符(1cdWriteDat(*str++);))/*初始化1602液晶*/voidInit1cd1602(){1cdWriteCmd(0x38);〃16*2显示,5*7点阵,8位数据接口1cdWriteCmd(OxOc);〃显示器开,光标关闭1cdWriteCmd(0x06);〃文字不动,地址自动+11cdWriteCmd(OxO1);〃清屏}(2)DS18B20驱动程序sbitI0-18B20=P3Λ2;I软件延时函数,延时时间C1O)us*/voidDe1ayX1Ous(unsignedchart){do{-∏θP-();-∏θP-();-∏θP-();∏0P-();-∏θP-();-∏θP-();-∏θP-();_nop_();}whi1e(一t);)/复位总线,获取存在脉冲,以启动一次读写操作/ bitGet18B20Ack()(bitack;EA=O;〃禁止总中断I0_18B20=0;〃产生500US复位脉冲De1ayX1Ous(50);I0_18B20=1;De1ayX1Ous(6);〃延时60USack=I0.18B20;〃读取存在脉冲WhiIe(!IOJ8B20);〃等待存在脉冲结束EA=I;〃重新使能总中断returnack;}/向DS18B2O写入一个字节,dat-待写入字节/voidWrite18B20(unsignedchardat)unsignedcharmask;EA=O;for(maSk=OXO1;mask!=0;mask〈〈=1)〃低位在先,依次移出8个bit {IO」8B20=0;〃产生2us低电平脉冲-∏0P-();nop_();if((mask&dat)==0)〃输出该bit值I0_18B20=0;e1seI0_18B20=1;De1ayX1Ous(6)〃/延时60usIO18B20=1”/拉高通信引脚}EA=I;}/从DS18B20读取一个字节,返回值-读到的字节/unsignedcharRead18B20()(unsignedchardat;unsignedcharmask;EA=O;for(mask=0x01imask!=CHmask<<=1)”低位在先,依次采集8个bit I0」8B20=0;〃产生2us低电平脉冲-∏0P-();-∏0P-();I0」8B20=1;〃结束低电平脉冲,等待18B20输出数据nop_();〃延时2us-∏θP-();if(!IO_18B20)//读取通信引脚上的值dat&=~mask;e1sedatI=mask;De1ayX1Ous(6);//再延时60us)EA=I;returndat;)/启动一次18B20温度转换,返回值-表示是否启动成功/bitStart18B20()(bitack;ack=Get18B20Ack();〃执行总线复位,并获取18B20应答if(ack==0)(Write18B20(Oxcc);Write18B20(0x44);return~ack;/读取DS18B20转换的温度值,返回值-表示是否读取成功/bitGet18B20Temp(int*temp)(bitack;unsignedchar1SB,MSB∕∕16bit温度值的低字节和高字节ack=Get18B20Ack();〃执行总线复位,并获取18B20应答if(ack==0)(Write18B20(OxCC);〃跳过R0M操作Write18B20(OxBE);〃发送读命令1SB=Read18B20();〃读温度值的低字节MSB=Read18B20();〃读温度值的高字节*temp=((int)MSB<<8)+1SB;〃合成为16bit整型数}return~ack;)(3)主程序sbitIN1=P27;sbitIN2=P2A6;sbitENA=P2";bitfIag1s=O;〃IS定时标志unsignedcharTORH=O;unsignedcharTOR1=O;i∏ttemp;〃读取到的当前温度值unsignedcharIen;intintT,decT;〃温度值的整数和小数部分unsignedcharstr[12];voidCompare();voidGetTempO;voidConfigTimerO(unsignedintms);unsignedcharIntToString(unsignedchar*str,intdat);externbitStart18B20();externbitGet18B20Temp(int*temp);externvoidInit1cd1602();externvoid1cdShowStr(unsignedcharx,unsignedchary,unsignedchar*str);voidmainO{bitres;EA=I;ConfigTimerO(IO);//T0定时IOmsStart18B20();〃启动DS18B20Init1cd1602();〃初始化液晶whi1e(1)if(f1ag1s)〃每秒更新一次温度fIag1s=O;res=Get18B2OTemp(&temp);〃读取当前温度if(res)〃读取成功时,刷新当前温度显示(GetTemp();1cdshowStr(θz o,''We1cometouse〃);〃显示字符及温度值1cc1ShowStr(0,1/'CurrentT:〃);1cdShowStr(10,1,str);Compare();}e1se〃读取失败时,提示错误信息(1cdShowStr(0,0,^error!〃);)Start18B20();〃重新启动下一次转换)}}/温度获取函数,获取当前环境温度值并保存在Str数组中/ voidGetTempO{intT=temp>>4;〃分离出温度值整数部分decT=tempMxOF;〃分离出温度值小数部分Ien=IntToString(str,intT);〃整数部分转换成字符串str[1en++]=,.,;CIeCT=(C1eCT*10)/16;〃二进制的小数部分转换为1位十进制位str[1en++]=decT+'0';〃十进制小数位再转换为ASCI1字符WhiIe(ICn<6)〃用空格补齐到6个字符长度(str[1en++]≈,,;)str[Ien++]=,❷';)/延时函数,用于PW/控制/voidde1ay(unsignedintz)(unsignedintx,y;for(x=z;x>0;x-)for(y=110;y>0;y--);)/比较函数,通过温度值的比较设置曳血的转速/voidCompareO(unsignedinti=0;unsignedcharj;if((intT>=24)&&(intT<26))〃以两度为一个温差范围,并设温度范围索引j=0;e1seif((intT>=26)M(intT<28)){J=I;)e1seif((intT>=28)&&(intT<30)){j=2;}e1seif(intT>=30){j=3;)switch(j)〃根据温度索引设置电机转速(case0:IN1=I;IN2=0;for(i=0;i<200;i++){ENA=I;de1ay(20);ENA=O;de1ay(30);break;1:IN1=I;IN2=0;for(i=0;i<200;i÷+)(ENA=I;de1ay(30);ENA=0;de1ay(30);)break;case2:IN1=1;IN2=0;for(i=0;i<200;i÷+){ENA=I;de1ay(55);ENA=O;de1ay(30);}break;case3:IN1=I;IN2=0;ENA=I;break;defau1t:break;/整型数转换为字符串,St1字符串指针,dat-待转换数,返回值-字符串长度/unsignedcharIntToString(unsignedchar*str,intdat)(signedchari=0;unsignedcharIen=O;unsignedcharbuf[6];if(dat<O”/如果为负数,首先取绝对值,并在指针上添加负号{dat=-dat;*str++≡,」;Ien++;}do{〃先转换为低位在前的十进制数组buf[i++]=dat%10;dat/=10;}whi1e(dat>O);Ien+=i;//i最后的值就是有效字符的个数\vhi1e(i—>0)〃将数组值转换为ASCI1码反向拷贝到接收指针上StΓ++=buf[i]÷,Q,;*str≡,❷';returnIen;}voidConfigTimerθ(unsignedintms){unsigned1ongtmp;tmp=11059200/12;tmp=(tmp*ms)∕1000;tmp=65536-tmp;tmp=tmp+12;TORH=(unsignedchar)(tmp>>8); TOR1=(unsignedchar)tmp;TMOD&=OxFO;TMOD∣=0x01;THO=TORH;T1O=TOR1;ETO=I;TRO=I;)voidInterrupt!imerθOinterrupt1static unsignedchartmr1s=0; THO=TORH;T1O=TOR1;tmr1s++;if(tmr1s>=100)(tmr1s=O;fIag1s=I; ))。

基于STC89C52单片机的智能温度控制器设计

基于STC89C52单片机的智能温度控制器设计

基于STC89C52单片机的智能温度控制器设计本论文设计了基于STC89C52单片机的温度控制器,可人工设定温度值,采用温度传感器AD590采集温度数据,通过控制继电器对水泥电阻进行加热,最终使温度稳定于设定值。

控制器能方便实现温度的检测与控制,操作简便、扩展方便且具有良好的人机互动功能。

标签:单片机;温度控制;A/D转换;运算放大器1 引言智能温度控制器被广泛用在家用电器和仪器仪表中,尤其是在科研生产和教学实验的过程中。

本设计利用AD590温度传感器采集温度,通过STC89C52单片机控制继电器调温,使温度稳定于设定的温度值,并实时显示系统实测的温度值与设定的温度值。

2 设计功能本设计采样AD590温度传感器来采集当前温度,通过温度设定键设定温度值,使用水泥电阻作为控制器的加热对象,当温度低于预设值时,启动继电器加热,并最终使温度稳定在设定值。

当系统检测到温度第一次达到预设温度值时,蜂鸣器和LED灯同时报警。

3 智能温度控制器整体设计根据设计要求,智能温度控制器系统由主电路模块、温度采集模块、显示模块、键盘模块、控制执行模块等组成。

系统原理框图如图1所示。

3.1 主电路模块单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。

在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。

基于以上因素本设计选用单片机STC89C52作为本设计的控制元件[1]。

3.2 温度采集模块温度检测是温控系统的最关键部分,它直接影响整个系统的测量和控制精度。

目前检测温度的传感器有多种类型,其测量范围、应用场合等也不尽相同。

本设计采集模块选用温度传感器AD590。

AD590是美国模拟器件公司生产的单片集成两端感温电流源,即将温度转换为电流,测温范围为-55℃~+150℃,非线性误差在±0.3℃。

其精度高,同时可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏[2]。

基于STC89C52单片机的温度控制电路设计

基于STC89C52单片机的温度控制电路设计

本科生毕业论文(设计)题目:基于温度传感器的单片机温控电路设计系部电子信息工程学院学科门类工学专业电子信息工程学号1008211048姓名徐晓龙指导教师万丽娟2012年5月18日基于温度传感器的单片机温控电路设计摘要随着微处理器和大规模集成电路的发展,及其在测试控制技术方面的广泛应用,仪器设备的智能化已成为自动化技术发展方向,数据采集与温度检测的自动化将取代传统的方法。

本设计采用STC89C52型号的单片机,数字温度传感器采用美国DALASS公司的1–Wire器件DS18B20,即单总线器件DS18B20,与单片机组成一个测温系统,当系统上电时,温度传感器就会读出当前环境的温度,并在LED数码显示管上显示出当前的温度,该测温系统的测温范围为-40℃~110℃,按此要求设计硬件和软件以实现这一功能。

关键词:单片机温度传感器DS18B20测量电子线路温度ABSTRACTAlong with the microprocessor and large scale integrated circuit, and in the test control technology is widely used, and the intelligent instrument and equipment has become automation technology development direction, data acquisition and temperature automatic testing would replace the traditional method.This design uses the STC89C52 type of single chip microcomputer, digital temperature sensor using the American DALASS company 1-Wire device DS18B20, namely single bus device DS18B20, and consists of a single chip microcomputer temperature measurement system, when the system is powered on, temperature sensors will read the current environment temperature, and in display tube LED digital showed on the current temperature, the temperature measurement system of measuring temperature range for 40 ℃~110 ℃-according to this design requirement for hardware and software to achieve this function.Keywords:single chip microcomputer temperature sensor DS18B20 measurement circuit temperature目录一绪论 (1)1.1课题研究背景及意义 (1)1.2国内外研究现状 (1)1.3研究内容 (2)二系统硬件设计 (3)2.1总体设计方案 (3)2.1.1 设计思路 (3)2.1.2设计方框图 (3)2.2单片机介绍 (3)2.2.1 STC单片机结构介绍 (4)2.2.2 STC单片机引脚介绍 (6)2.3 DS18B20数字温度传感器介绍 (8)2.3.1功能介绍 (8)2.3.2内部存储器介绍 (9)2.4 显示模块设计 (11)2.4.1 LED数码管结构 (12)2.4.2 共阳数码管数字编码 (12)2.5按键电路的设计 (13)2.5.1判键及其接口电路设计 (13)2.5.2键盘的工作方式 (13)2.6报警装置电路设计 (14)2.7系统整体硬件电路 (15)三系统软件设计 (16)3.1温度控制系统原理框图 (16)3.1.1 读温度子程序 (17)3.1.2温度转换子程序 (17)3.1.3计算温度子程序 (18)3.1.4温度显示子程序 (19)四总结与展望 (20)参考文献 (21)附录 (22)一绪论1.1课题研究背景及意义目前温度控制系统在很多场合都得到广泛的应用,因此在国内外发展非常迅速,并在智能化、环境自适应、参数自动调整等方面取得显著成果。

基于89c52单片机的智能温度控制

基于89c52单片机的智能温度控制

摘要:恒温控制在工业生产过程中举足轻重温度的控制直接影响着工业生产的产量和质量。

本设计是基于AT89C51单片机的恒温箱控制系统,系统分为硬件和软件两部分,其中硬件包括:温度传感器、显示、控制和报警的设计;软件包括:键盘管理程序设计、显示程序设计、控制程序设计和温度报警程序设计。

编写程序结合硬件进行调试,能够实现设置和调节初始温度值,进行数码管显示,当加热到设定值后立刻报警。

另外,本系统通过软件实现对按键误差、加热过冲的调整,以提高系统的安全性、可靠性和稳定性。

本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机A T89C51作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。

关键词:单片机;恒温;控制;报警Designing of Automatic Constant Temperature Box Controlled By SCMAbstract: The system makes use of the single chip A T89C51 as the temperature controlling center, uses numeral thermometer DS18B20 which transmits as 1-wire way as the temperature sensor, through the pressed key, the numerical code demonstrated composite of the man-machine interactive connection ,to realize set and adjust the initial temperature value. After the system works, the digital tube will demonstrate the temperature value, when temperature arriving to the setting value, the buzzer will be work immediately. In addition, the system through the software adjusting to the pressed key error, and the excessively hutting.Keywords: SCM; Constant temperature; control; waring .目录1. 系统方案选择和论证 (2)1.1 题目要求 (2)1.1.1 基本要求 (2)1.1.2 说明 (2)1.2 系统基本方案 (2)1.2.1 各模块电路的方案选择及论证 (2)1.2.2 系统各模块的最终方案 (5)2. 硬件设计与实现 (6)2.1系统硬件模块关系 (6)2.2 主要单元电路的设计 (6)2.2.1 温度采集部分设计 (6)2.2.2 加热控制部分 (8)2.2.3 键盘、显示、控制器部分 (8)3. 系统软件设计 (14)3.1 读取DS18B20温度模块子程序 (14)3.2 数据处理子程序 (14)3.3 键盘扫描子程序 (16)3.4 主程序流程图 (17)4. 系统测试 (18)4.1 静态温度测试 (18)4.2动态温控测量 (18)4.3结果分析 (19)附录1:产品使用说明 (19)附录2:元件清单 (19)附录3:系统硬件原理图 (20)附录4:软件程序清单 (21)参考文献 (26)1.系统方案选择和论证1.1题目要求本文利用A T89C51对温度进行控制,采用单总线传输方式的DS18B20作为温度传感器,与按键、数码显示、报警器等外部辅助硬件共同组成一个温度控制系统。

基于89C52单片机的智能温控仪设计

基于89C52单片机的智能温控仪设计

Absr c t a t:By a o t 9C5 d p i 8 2 SCM ,a k n fi t l g n e e au e c n r lme e s d f r ng i d o n el e t tmp r t r o to tr u e o i h ai g s se h sb e e ind Th t ra o  ̄ t e t r e p n 8 0 t mp r tr e s r e tn y tm a e n d sg . e mee d p h h e i sDS1 e e au e s n o B2
基 于 8 5 9 2单 片 机 的 智 能 工仪 设 计 C , 皿了 日士
普仕凡 张丽艳 李桂 林 郭 宇明 , 灵姗 郭峰 , , , 孙 ,
(. 1 大连 市 95 0部 队 20所 , 15 3 辽宁 大连 16 2 ;. 10 32 大连 交通大学 电气信息学院 , 宁 大连 16 2 ) 辽 10 8
电热 供 暖主要 用于我 国北 方 的厂房 以及 家庭 分户 供 暖. 文 针对 小 区域 电热供 暖 的实 际需 要 开 发 本 了该 仪器 . 温控仪 的功 能是 : 本 ①监 测 暖气管 道 内的 回水 温度 . 对 嵌入 到 暖 气 管道 内的加 热体 进 行 软 ② 加 电或断 电. 4h内 , ( 由用户通 过 键盘 设定 三段上 限温度 、 限温度 、 下 起控 时 间 、 停控 时 间. 可以满 足 这 供 暖 系统 在 白天 、 间 、 夜 凌晨 采用 不 同 的供 暖 温度 .
tr ft i tr a d r e in me o n or s n i g s fwa e fo p o e s i lu ta u e o h s me e ,h r wa e d sg t d a d c re po d n o h t r w r c s s il sr . l td i e al .Fi ly,t e f r g o d o h tra pl ain i lo e p an d e n d t i s nal h o e run ft e me e p i to s as x li e . c Ke r s:i e l e c y wo d ntl g n e;tmp r t r o to ;S i e e a u e c n r l CM
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机STC89C52的智能温度控制器的硬件设计作者:关朴芳来源:《甘肃科技纵横》2020年第10期摘要:基于现代社会智能发展迅速,智能温度现在普遍广泛在仪器仪表或家用电器中使用,特殊是在实验教学和科技研发上运用。

智能温度控制器比普通温度控制器具有一定的优势,使用起来方便快捷,测温精度和分辨率相比普通控制器较高。

所以本文设计控制器的硬件采用单片机STC89C52作为核心元件,满足了温度控制器的硬件要求,具有体积小、成本低、功耗低等优点,使控制器的硬件更加有效的灵活使用。

采用温度传感器AD590采集温度数据当做高阻抗、恒流调节器,通过测量并转变成微安级的电流信号,之后经过电路硬件的设计改造实现了控制报警及加热功能,达到不同的需求。

整个控制器硬件的设计智能读取环境温度、连接简捷方便、使用安全。

所以使用单片机控制电器的工作状态,可以将温度值稳定在预设温度,是一种具有实时显示温度并控温的智能温度控制器。

关键词:温度传感器;A/D转换;运算放大器;单片机中图分类号:TP273.5引言:智能温度控制器让人们可以拥有一个舒适的生活环境,本设计是基于单片机STC89C52的温度控制[1],它不仅实现温度的监测和控制功能还有功耗低、准确性高一些優点,还可根据降温与升温设置报警温度,很好的运用到我们现实生活中[2]。

温度控制在工业控制领域也具极其重要的作用,温度通常也是比较常见的被控参数之一[3]。

文中运用A/D转换电路、数码管显示电路、温度传感器AD590和使用单片机控制报警及加热功能。

AD590温度传感器使用运算放大电路将温度传感器输出的小信号进行放大,并转变成微安级的电流信号,它不容易接触电阻、引线电阻、电压噪音的干扰[4]。

温度传感器现在使用研究特别推广比如参考文献[5]中ARM的智能温度控制器的设计与研究,对于不同产品运行环境的需求和不同生产车间工作温度的需求等,所需要的温度高低范围不同,控温精度不同,数据采集的精度不同,需要针对性的选用测温元件,测温方法以及控制算法[6]。

1智能温度控制器设计智能温度控制器由控制执行、温度采集、显示、键盘、主电路等几种模块构成。

图1为系统结构规律框图:1.1主电路中单片机的运用单片机型号品类相对较多,每款型号都有较独特的运用情况,如果想要采用以往性价比最好的型号,就要多加对照,合理选择。

通常选取单片机需要从性能、串行接口、运行速度、功耗、定时/计数器、存储器、模拟电路功能、工作电压、I/O、口封装形式、工作温度范围、抗干扰性、保密性,中断源的数量和优先级、有无上电复位功能、单片机内有无时钟振荡器、有没有低电压检测功能等考虑[7]。

结合上文要素本文选用单片机STC89C52作为重要元件,采用单片机生动的编程设计和充足的I/O端口,控制单片机的精确性,完成单片机的解码掌握编码及编码。

1.2温度采集的重要作用当前检测温度的传感器测量范围、运用地方等不完全相同,品类较多。

温度检测是温控系统的重要部分,整个系统的测量和控制精度直接受其影响。

其精度高,同时可以经受44V正向电压和20V反向电压,器件反接也不会轻易损坏,极大减少了因错接线而造成的经济损失。

本文选用美国模拟器件公司生产的AD590温度传感器[8],是一款可以将温度量转变为电流量的传感器,非线性误差在±0.3℃、测温范围为-55℃~+150℃。

由于以上特点,AD590温度传感器常用于工业和农业的温控环节上。

通过运算放大电路将温度传感器输出的小信号进行放大,放大后的信号输入到A/D转换器(ADC0804)转变成数字信号输入单片机,系统温度信息可由温度传感器AD590测量并转变成微安级的电流信号[9]。

1.3显示的实测数据及温度文章中关于显示模块的设计要求为4位数据显示,即前2位显示设定温度值,后2位显示实测温度值,故采用共阳四位LED数码管。

上电时,数码管即刻显示当前温度,并实时进行采样。

在单片机的外围接上四位LED数码管,用来显示温度和我们所需的实际测量数据[10]。

1.4 键盘及控制执行键盘处理、加热控制及报警处理与单片机间进行数据的处理及控制。

根据设计要求,选用3个按键控制设定的温度值,选用继电器控制水泥电阻作为加热控制,报警处理选用蜂鸣器和LED灯。

2系统硬件设计2.1 A/D转换电路2.2 基准电压电路及温度采集电路基准电压电路及温度采集电路[12],如图3、图4所示。

根据TL431稳压的原理,其输出的电压为VREF(1+R26/R39)(VREF=2.5V),因传感器AD590输出电压为基准电压加上实际温度值,所以通过调节可变电阻的阻值使其输出的电压为2.73V,通过使用硬件方式使AD590输出电压与摄氏温度值建立简易的线性关系,提高温度采集精度。

传感器AD590随温度升高电流也随之升高,其输出电流是以绝对温度(-273℃)为基准,即0℃时输出电流273uA。

而A/D转换的模拟量为电压,所以要在其串联一个10K的电阻,电路中使用10K的高精度滑动变阻器R40串联1个1K的电阻R29来使得电阻值精确为10K,电路中输入电源为直流+12V,则AD590输出的电压值为(273+T)uA×10K=(2.73+T/100)V。

当T=25℃时,输出电流为I=(273+25)uA=298uA,因(R29+R40)=10K,则输出电压为2.98V。

2.3 运算放大电路本文通过集成运算放大电路处理温度采集电路电压信号[13],然后再输入到A/D转换电路。

如图5所示,集成运算放大电路依次对信号进行电压跟随、差动放大、电压比较、同相大处理。

电源供电过程中有杂波,为避免杂波干扰选用TL431作为稳压元件,调节电位器使得输出电压U1为2.73V,再利用电位器实行分压处理。

U2为AD590温度采集对应的电压值。

电压信号U1和U2输入差动放大器,则其输出电压U3=U2-U1,因U3信号较薄弱,则再对U3进行同相放大,放大倍数为6,最后输出电压值为Uo=6U3=6(U2-U1)。

举例说明:如果被测温度为28℃时,则输出电压Uo=(0.28×6)=1.68V,再将输出电压Uo输入到A/D转换电路,那么A/D转换电路输出的数字量与摄氏温度模拟量就会形成线性比例关系。

2.4 四位数码管显示电路本文使用四位一体数码管动态扫描显示温度值及设定值[14],如图6所示。

数码管显示的内容,可以通过单片机来控制数码管的管脚a、b、c、d、e、f、g、dp的电平来实现。

数码管的显示工作方式有两种,一种是静态显示,另一种是动态显示:静态显示是指当显示某个字符时,数码管内部相应的发光二极管处于恒定地导通或截止状态。

动态显示是指轮流点亮各位显示器,每一位显示器每隔一段时间被点亮一次。

本文采用的是动态显示方式,该电路中使用限流电阻与NPN型三极管控制位选来保护数码管,防止数码管出现过流损坏。

2.5 报警电路及加热控制电路本文实现控制报警及加热功能是通过单片机的P20、P21、P22口,如图7所示。

加热控制单元选用的继电器额定电流范围为5A~10A,额定直流电压为+5V,允许通过的交流电压范围是120V~250V;水泥电阻是热源,使用传感器AD590进行测量其温度,通过控制继电器的通断,进而来控制电源是否对水泥电阻进行加热[15]。

水泥电阻规格为47Ω/5W,两端加上直流+12V的电压,使其快速升温到预设温度值。

由于,单片机输出电流过小无法驱动电路,所以采用三极管对信号进行放大,再控制蜂鸣器和LED灯。

3 结束语随着控制技术与温度测量的快速发展和使用广泛,通过单片机为重要核心的控制系统与温度采集的研究与使用有效提高了生产生活中对温度的控制程度,这个设计实现了智能控制方法,具有很好的社會效益。

因此本文设计的智能温度控制电路主要使用了STC89C52单片机有抗干扰、功耗低、性能高的作用,还运用了温度传感器AD590、数模转换器ADC0804,集成运放LM324和数码管等元件深入分析智能控制器硬件。

经过实践数据表明该硬件设计具有体积小、性价比高、对环境要求不高、易于推广应用、线路简单、分量较轻、安装比较灵活、可靠性强、抗干扰能力强等显著优点,而且还实现控制报警及加热功能,确保能稳定安全运行,具有一定的推广价值。

该设计在结构上可以进行一些灵活改变,比如:液晶显示,语音报警,科技研发软件等,以达到不同需求,在工业研究和生活环境中使用更加便捷。

参考文献:[1]郭天祥.新概念51单片机C语言教程[M] .电子工业出版社,2009.1.[2]薛小玲.单片机接口模块应用与开发实例详解[M].北京航空航天大学出版社,2010.1.[3]谢维成.单片机原理与应用及C51程序设计[M] .清华大学出版社,2009.7.[4]曾思通.基于STC89C52单片机的智能温度控制器设计[J].科技创新与应用,2013(35):28-29.[5]蔡恩丰. 基于ARM的智能温度控制器的设计与研究[D].宁波大学,2014.[6]符永逸. 智能型温度控制器的研制[D].武汉理工大学,2006.[7]单片机原理及其接口技术[M]. 清华大学出版社,胡汉才编著, 2004.[8]刘振全.集成温度传感器AD590及其应用[J].传感器世界,2003(03):35-37+27.[9]李梦雨,黄乐天,李强. 基于带温度补偿的转换器的时域温度传感器[J]. 电子技术应用, 2018, 44(09):58-61.[10]史雪雪,刘清惓,浦玮,等. 强制通风温度传感器辐射误差修正与网站设计[J]. 现代电子技术, 2019.[11]黄忠和. 电路分析在日常生活中的应用与实践[J]. 中学物理教学参考, 2019(14).[12]魏访,郑朝霞. 基于无线传感器网络的工业环境温湿度监测系统[J]. 仪表技术与传感器, 2018, No.424(05):55-57.[13]庄楚楠,许佳雄. 温度系数连续可调的带隙基准源电路设计[J]. 液晶与显示, 2018,33(005):412-418.[14]张历,刘斌,桂军国,等。

复杂环境下数显式仪表数码管定位与识别方法[J]. 工矿自动化, 2018, 44(004):85-89.[15]鲁维佳,潘玉恒,果颖,等. 基于虚拟仪器和单片机的实时温度采集与控制系统[J]. 仪表技术与传感器, 2018, No.420(01):120-122.作者简介:关朴芳(1979.1-),女,锡伯族,辽宁沈阳人,硕士研究生,副教授,研究方向:自动化控制。

相关文档
最新文档