基于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单片机的温度控制电路设计
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单片机的水温控制系统设计方案第1章方案论证本设计中的芯片可以采用二种方案。
方案一:采用热电偶温度传感器,放大器,A/D转换器作为测量温度的电路。
热电偶通过电位差的数值与不加热部位测量点的温度来测温,和这两种导体的材质有关。
热电偶传感器有自己的优点和缺陷,它灵敏度比较低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响,因此不适合测量微小的温度变化。
由于热电偶温度传感器的灵敏度与材料的粗细无关,用非常细的材料也能够做成温度传感器。
也由于制作热电偶的金属材料具有很好的延展性,这种细微的测温元件有极高的响应速度,可以测量快速变化的过程。
硬件电路复杂,需要设计A/D转换电路,以及与其相关的编程,总体设计起来较困难,软件、硬件调试复杂,硬件成本较高。
而且器传感器有以下缺点:它灵敏度比较低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响[]。
所以总体来说,在硬件、软件上的成本都比较高,而且易受外部环境的影响,系统工作不稳定。
方案二:采用数字可编程温度传感器作为温度检测元件。
数字可编程温度传感器可以直接读出被测温度值。
不需要将温度传感器的输出信号接到A/D转换器上,减少了系统的硬件电路的成本和整个系统的体积同时具有极强的抗干扰纠错能力;负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
由于采用的是具有一总线特点的温度传感器,所以电路连接简单;而且该传感器拥有强大的通信协议,同过几个简单的操作就可以实现传感器与单片机的交互,包括复位传感器、对传感器读写数据、对传感器写命令[2]。
软件、硬件易于调试,制作成本较低。
也使得系统所测结果精度大大提高。
通过以上二种方案的论证和比较,从设计的实用性、方便性和成本等诸多方面考虑,最终选择了以DS18B20为温度测量和传输元件的设计,这样设计在本次毕业设计中能够在经费有限的情况下,进行最优的实现方法。
具体方案:采用STC89C52作为整个电路的核心控制器件,用DS18B20传感器采集温度信息。
基于STC89C52单片机智能温度控制系统硬件设计
●超过报警限值的DS18B20可以通过报警搜索命令定位识别
●多个DS18B20可以并联在同一线上也可以达到测温的目的
●电源极性接反时,DS18B20不会因发热而烧毁但不能正常工作
综合以上两种方案可以清晰的看出。方案二中的数字式集成温度传感器DS18B20的高度集成化是其主要的特点,这种特点有效的避免了外接运放放大器转换等电路原因引起的误差。此外DS18B20相对热敏电阻对温度的敏感度较高,符合本实验要求的≤ ±2℃的误差要求。在工作过程中,DS18B20将温度值直接转换为数字信号量直接输出,使得系统的程序设计得以简化。因此,方案二更适合本方案。
基本方案:本方案是基于单片机进行温度数据的采集及处理,由于数字温度传感器DS18B20内部集成有模数转换部件,芯片可将采集到的温度模拟数据进行数字化并通过单总线传输给单片机。所以单片机将接收到的数据进行分析和处理,并将数据显示在液晶屏幕上。通过按键输入预设温度,如果不在温度范围内,便驱动蜂鸣器报警,同时驱动电炉进行加热,以达到控制温度的效果。
以上两个方案相比较,再根据方案要求:需要同时对检测温度和设定温度同时进行显示。考虑到显示的效果和质量高和功耗低等特性。再此方案中采用方案一中的1602LCD液晶显示。
第二章各单元模块的硬件设计
2.1 系统主要器件的介绍
硬件系统中包括:AT89C52单片机、DS18B20温度传感器、1602LCD液晶显示等。
(5)对升温和降温过程的时间不作要求。
要求采用单片机控制实现。
1.3 方案总体设计框图
温度传感器将检测温度信息转变为模拟电压信号之后,将电压信号放大并且传输到单片机可以接受的处理能力范围内,然后经过低通滤波,去除掉杂乱信号并送入单片机。单片机将检测到的待测温度的信息与设定的值进行比较之后,如果检测的值相比较设定的要高,单片机输出的低电平驱动了报警的系统自动的报警提示温度过高,同时散热电路开始工作,实现散热功能;当温度较设定的值低时,单片机输出高电平,同时加热电路开始工作,实现加热的功能。从而实现对温度的一个动态平衡的控制,自动控制一个温室的温度,功能要求如下:
基于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[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单片机的恒温控制系统设计作者:张承煜陈巍杨阳来源:《商情》2020年第17期【摘要】本文针对笔记本电脑的散热问题,提出了一种主要是以散热降温为目的恒温控制系统。
设计中采用了DS18B20作为温度传感器检测温度,以液晶显示屏LCD1602实现温度和时间日期的显示,采用水冷循环法对笔记本电脑的温度进行恒温控制,同时可以通过按键来设置水泵动作和蜂鸣器报警的温度。
【关键词】风冷系统 STC89C52 温度传感器1.概述随着电子产品的高速发展,其内部组件功耗和发热量也不断提升。
如何有效的给电子产品降温成了一个亟待解决的问题。
本系统是基于笔记本电脑在正常工作时对温度的要求而设计的。
2.系统的总体设计本次设计的整体方案框图如图,所示。
分别由单片机最小系统、温度传感器模块、水冷系统模块、人机接口模块、蜂鸣器报警模块和电源模块等部分组成。
3.系统硬件电路设计本设计是以STC89C52单片机为核心,采用DS18B20来完成对被测物体的温度检测,通过液晶显示屏LCD1602实现温度、时间、日期及状态的显示,键盘控制电路实现对时间、日期、温度报警阈值的设置,同时还有报警模块蜂鸣器进行温度超阈值报警,同时水冷系统模块动作进行4蜂温处理。
系统督本硬件电路如图2所示。
3.1 最小系统电路最小系统由时钟晶振电路和复位电路组成。
系统时钟采用11.0592MH石英晶体。
STC89C52采用高电平复位,本电路采用上电和手动复位两种方式进行。
3.2 温度传感器模块温度传感器模块采用DS1BB20,数据端口DQ接4.7k上拉电阻后连接在单片机的P1.3口,可实现单片机与温度传感器之间的通信,包括写温度测量指令和获取温度数据等。
温度数值经单片机内部处理后与设定值比较,确定系统的执行机构、显示模块和报警模块的运行状态。
3.3 水冷系统模块水冷系统模块采用水循环实现恒温控制。
通过小型继电器对小型离心潜水泵驱动实现水循环控制。
基于STC89C52单片机的温度控制电路设计说明
基于温度传感器的单片机温控电路设计一、设计分析在各行业中广泛应用的温度控制器及仪器仪表主要具有如下的特点:一是在复杂的温度控制系统中能够适应于大惯性、大滞后的控制;二是在受控系统数学模型难以建立的情况下,得到控制;三是在受控系统中,能够被控制过程很复杂且参数时变的温度控制系统控制;五是温度控制系统普遍具有参数自检功能,借助计算机技术,能控制对象和参数,并且具有特性进行自动调整的功能等特点[1]。
本次电子工艺实训旨在练习实用单片机系统的设计与安装,掌握典型51系列单片机最小系统及外围电路设计、常用电子元器件的识别、万用板焊接电路的方法、巩固常用电子仪表测量与调试电路参数的方法,培养创新实践动手能力,为下学期单片机、电子系统设计等课程奠定理论和实践基础。
具体要求如下:1.自行设计以STC89C52RC40单片机为控制核心的实用单片机控制系统的硬件电路,实现至少一个环境参量信息采集、数值显示、报警功能。
2.根据设计,利用万用板焊接硬件电路,并做简单调试。
3.要求模块化设计,单片机最小系统模块、显示模块、信息采集报警模块、键盘模块,主要贵重器件用排座插接,电阻、电容、按键等元器件要求布局合理、排列整齐,无虚焊。
二、设计方案本文设计是以单片机为核心,实现温度实时测控和显示。
确定电路中的一些主要参数,了解温度控制电路的结构,工作原理,对该控制电路性能进行测试。
具体设计方案:(1)本设计是用来测控温度的,可以利用热敏电阻的感温效应,将被测温度变化的模拟信号,电压或电流的采集过来,首先进行放大和滤波后,再通过A/D 转换,将得到的数字量送往单片机中去处理,用数码管将被测得的温度值显示出来。
但是这种电路的设计需要用到放大滤波电路,A/D转换电路,感温电路等一系列模拟电路,设计起来较麻烦[2]。
(2)本设计采用单片机做处理器,可以考虑使用温度传感器,采用由达拉斯公司研制的DS18B20型温度传感器,此传感器可以将被测的温度直接读取出来,并进行转换,这样就很容易满足设计要求。
基于STC89C52单片机的智能温度控制器设计
a d v a l = P 1 ; | 禳 撬
a d r d =1 ;
_
一
n o p _ 0 ; a d l = a d v a l * 1 0 0 ; 燃
a d2 =a d1 / 5 3 ;
处 理
a d 3 = a d 2 * 1 0 ;
a d 4= a d3 / 3 ;
科 技 创 新
P 1口; v i 叶接放 大器 的输 出 口, V i r 接地, 这两端 可 以输 入差分 电压 , 即 它 可以测量 V i n + 与V i n 一 之 间的电压 , V i n + 与放大器之 间串联一个 1 0 k O 电阻, 限制流入 v i 叶段的电流, 防止电流过大而哓坏 A / D芯片。 电 阻和电容组成 R C振荡电路 , 给A D C 0 8 0 4 提供工作所需的脉冲, 脉冲的 频 率为 1 1 . 1 R C ) 。 根 据芯片 手册 , R 5 取1 0 k l  ̄ , C 4 取1 5 o p F 。 V r e 端 通 过 两个 1 k n 的 电阻 R 6 、 R 7 分压 得 到 V r e 电压即 2 . 5 V, 将 该 电压 作 为 A / D芯 片工作 时 内部 的参考 电压 。
a d wr =l ;
—
n o p _ 0 ; a d
_ 一
| 禹 人
[ 1 】 胡 汉才. 单 片机 原理及其接 口技 术 . 北京: 清华大学  ̄  ̄ , 2 0 0 4 . 2 [ 2 ] 刘振全 集成 温度传 感器 A D 5 9 0 及 其应 用田 . 传感 器世 界, 2 o 0 3 , 3 : 3 5 — 3 7 . [ 3 ] 康 华光 . 电子技 术基础 数 字部分啤 北京: 高等教 育 出版社, 2 o o 6 . 4 5 作者 简介 : 曾思通 ( 1 9 8 5 一 ) , 福 建漳 州人 , 硕 士研 究 生 , 福建 船政 交 通 职业 学院教 师。
基于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单片机的温度控制电路设计
本科生毕业论文(设计)题目:基于温度传感器的单片机温控电路设计系部电子信息工程学院学科门类工学专业电子信息工程学号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课题研究背景及意义目前温度控制系统在很多场合都得到广泛的应用,因此在国内外发展非常迅速,并在智能化、环境自适应、参数自动调整等方面取得显著成果。
基于STC89C52单片机的温度控制系统
基于STC89C52单片机的温度控制系统作者:吴健,侯文,郑宾来源:《电脑知识与技术》2011年第04期摘要:讨论了一个以STC89C52单片机为核心的温度控制系统,给出了系统的单片机电路、控温输出电路、温度检测放大等电路的设计。
实现了炉温的自动控制,并提高控温的精度,具有重要的工程应用价值。
关键词:STC89C52单片机;温度控制;温度检测中图分类号:TP273文献标识码:A文章编号:1009-3044(2011)04-0902-02A Temperature Control System Based on STC89C52 MCUWU Jian, HOU Wen, ZHENG Bin(National Key Laboratory for Electronic Measurement Technology, North University of China, Taiyuan 030051, China)Abstract: This paper discusses a STC89C52 MCU to increase the technical indexes of accused of temperature control system,Presented the design of the MCU circuitry of system, temperature control output circuit, temperature detecting amplifier circuit and so on. Realized of furnace temperature automatic control and improve the precision temperature control. Be provided with important engineering use value.Key words: STC89C52 MCU; temperature control; temperature test随着工业技术的不断发展,利用温度控制表,温度接触器的控制方式已不能满足高精度、高速度的控制要求,其主要缺点是温度波动范围大,受仪表本身误差和交流接触器寿命的限制,通断频率很低。
基于STC89C52的蓝牙温度控制系统
基于STC89C52的蓝牙温度控制系统【摘要】文中所设计的温度控制系统以STC89C52单片机为核心控制单元,主要由温度采集模块DS18B20、温度控制模块,状态指示模块以及蓝牙收发模块组成。
单片机通过采集温度数据,根据所设定的温度值做出决策,控制温度控制模块的动作,从而实现温度控制,指示灯实时显示当前系统工作状态,并且单片机通过蓝牙模块向电脑发送当前温度数据;PC机通过自带蓝牙或通过蓝牙适配器,向系统发送控制命令,设定温控控制阈值。
【关键词】STC89C52 温度控制DS18B20 蓝牙现代温度控制系统发展的主流方向是智能化、集成化,温度控制系统已应用于生活的各个方面,各行各业对于温度控制的要求越来越高。
由于蓝牙采用无线接口来代替有线光缆连接,具有很强的移植性,并且适用于各种场合,而且应用简单很容易实现,其应用范围十分广泛。
因此,我们可以改变传统的温控系统的设计理念,对单片机和蓝牙技术进行整合,在低端电子产品上采用蓝牙技术,设计出一个数据传输系统,具有很好的实用价值。
1 方案简介本系统主要由温度采集模块DS18B20、温度控制模块,状态指示模块以及蓝牙收发模块四个主要部分组成。
单片机通过采集温度数据,根据所设定的温度值做出决策,控制温度控制模块的动作,从而实现温度控制,指示灯实时显示当前系统工作状态,并且单片机通过蓝牙模块向电脑发送当前温度数据;PC机通过自带蓝牙或通过蓝牙适配器(在本设计中选择了蓝牙适配器的传送方式),向系统发送控制命令,设定温控控制阈值。
2 单片机系统硬件设计基于STC89C52的蓝牙温度控制系统的总体硬件结构图如图1所示。
蓝牙模块设计采用HC-06蓝牙串口模块,该模块分两种方式使用:(1)成对使用,一主一从,分别接串口(产品本身已经配对好,给单个模块上电,闪的快的为主机,闪的慢的为从机)。
主从成对使用不需要驱动程序,两个模块都上电就能传输。
(2)从机配合蓝牙适配器使用,蓝牙适配器需要驱动程序。
基于STC89C52单片机的温度控制系统
Computer Knowledge and Technology电脑知识与技术第7卷第4期(2011年2月)基于STC89C52单片机的温度控制系统吴健,侯文,郑宾(中北大学电子测试技术国家重点实验室,山西太原030051)摘要:讨论了一个以STC89C52单片机为核心的温度控制系统,给出了系统的单片机电路、控温输出电路、温度检测放大等电路的设计。
实现了炉温的自动控制,并提高控温的精度,具有重要的工程应用价值。
关键词:STC89C52单片机;温度控制;温度检测中图分类号:TP273文献标识码:A文章编号:1009-3044(2011)04-0902-02A Temperature Control System Based on STC89C52MCUWU Jian,HOU Wen,ZHENG Bin(National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan030051,China)Abstract:This paper discusses a STC89C52MCU to increase the technical indexes of accused of temperature control system,Presented the design of the MCU circuitry of system,temperature control output circuit,temperature detecting amplifier circuit and so on.Realized of furnace temperature automatic control and improve the precision temperature control.Be provided with important engineering use val-ue.Key words:STC89C52MCU;temperature control;temperature test随着工业技术的不断发展,利用温度控制表,温度接触器的控制方式已不能满足高精度、高速度的控制要求,其主要缺点是温度波动范围大,受仪表本身误差和交流接触器寿命的限制,通断频率很低。
基于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作为温度传感器,与按键、数码显示、报警器等外部辅助硬件共同组成一个温度控制系统。
采用STC89C52单片机进行实时温度控制系统的软硬件的设计
采用STC89C52单片机进行实时温度控制系统的软硬件的设计引言温度是日常生活中非常重要的物理量,其测量包括接触式和非接触式两种,前者需要感温元件与被测物体接触,会产生滞后现象,后者则是通过接收被测介质发出的辐射来实现的。
实时温度控制系统运用数字温度传感器DS18B20 采集温度,单片机作为主控芯片来对温度值进行处理,控制和传输,通过蜂鸣器实现报警功能,运用VB 编程制作上位机管理软件。
整个系统设计结构简单,连接方便,易于管理,可以应用于人不宜或者不易接触的地方,达到自动读取环境温度,并具有报警功能,节省人力和物力。
2 系统基本原理系统结构框图如图1 所示,数字温度传感器DS18B20 将待测介质温度值传递给单片机,单片机对温度值进行处理,当温度超出所设范围(本系统所设温度极限为31℃)则通过报警电路实现报警。
通过RS232 串口实现PC 机与单片机的通信,单片机将采集到的温度值传递给PC 机。
图1 系统结构框图通过使用Vi sual Bas ic 中的通信控件MSComm(Microsoft Communication Control),可以在Windows环境下轻松实现串口数据交换,MSComm 是Microsoft提供的简化Windows 下串行通信编程的ActiveX 控件,通过对此控件的属性和事件进行编程,可以方便地发送和接收数据。
利用MSComm 控件制作上位机软件,可以实时显示环境温度值和提示信息。
3 硬件设计3.1 单片机控制设计本设计采用STC 公司的STC89C52 单片机作为主要控制芯片,此单片机具有4 组8 位I /O 口(DIP-40 封装),3 个16 位定时/ 计数器,8 个中断源,8KB Flash 程序存储器,512Byte 片内RAM 数据存储器,一个全双工串行通信接口。
STC 单片机性价比高,功能多,抗干扰能力很强,串口编程很方便,保密性很强。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于STC89C52的蓝牙温度控制系统
作者:倪文彬
来源:《中国科技纵横》2013年第23期
【摘要】文中所设计的温度控制系统以STC89C52单片机为核心控制单元,主要由温度采集模块DS18B20、温度控制模块,状态指示模块以及蓝牙收发模块组成。
单片机通过采集温度数据,根据所设定的温度值做出决策,控制温度控制模块的动作,从而实现温度控制,指示灯实时显示当前系统工作状态,并且单片机通过蓝牙模块向电脑发送当前温度数据;PC机通过自带蓝牙或通过蓝牙适配器,向系统发送控制命令,设定温控控制阈值。
【关键词】 STC89C52 温度控制 DS18B20 蓝牙
现代温度控制系统发展的主流方向是智能化、集成化,温度控制系统已应用于生活的各个方面,各行各业对于温度控制的要求越来越高。
由于蓝牙采用无线接口来代替有线光缆连接,具有很强的移植性,并且适用于各种场合,而且应用简单很容易实现,其应用范围十分广泛。
因此,我们可以改变传统的温控系统的设计理念,对单片机和蓝牙技术进行整合,在低端电子产品上采用蓝牙技术,设计出一个数据传输系统,具有很好的实用价值。
1 方案简介
本系统主要由温度采集模块DS18B20、温度控制模块,状态指示模块以及蓝牙收发模块四个主要部分组成。
单片机通过采集温度数据,根据所设定的温度值做出决策,控制温度控制模块的动作,从而实现温度控制,指示灯实时显示当前系统工作状态,并且单片机通过蓝牙模块向电脑发送当前温度数据;PC机通过自带蓝牙或通过蓝牙适配器(在本设计中选择了蓝牙适配器的传送方式),向系统发送控制命令,设定温控控制阈值。
2 单片机系统硬件设计
基于STC89C52的蓝牙温度控制系统的总体硬件结构图如图1所示。
蓝牙模块设计采用HC-06蓝牙串口模块,该模块分两种方式使用:(1)成对使用,一主一从,分别接串口(产品本身已经配对好,给单个模块上电,闪的快的为主机,闪的慢的为从机)。
主从成对使用不需要驱动程序,两个模块都上电就能传输。
(2)从机配合蓝牙适配器使用,蓝牙适配器需要驱动程序。
可配合笔记本电脑、PDA、蓝牙手机等设备直接使用,规定的配对密码为“1234”。
本系统采用的是配合蓝牙适配器的使用方式。
本系统采用两个继电器控制发热装置,一个继电器控制升温电路,一个继电器控制降温电路。
并且分别采用两个LED显示灯来显示两个继电器的工作状态,红灯亮则表示升温继电器
在工作,绿灯亮则表示降温继电器在工作。
在进行温度控制时,先对系统设置一个目标温度,当实际温度高于或低于此目标温度时,触发继电器工作,相应的指示灯亮,当温度达到目标温度时则停止工作。
温度的测量精度为正负1度。
温控电路工作原理简述如下:温控电路工作时,先给9012的三极管的端口提供一个低电平使9012三极管导通,导通后触发电磁继电器的电磁铁开始工作,让电磁铁带有磁性,从而使单刀双掷开关打到里一边。
这是电源Vcc接通开始工作,电流流至LED显示等,把灯点亮,从而显示当时的工作状态。
在进行温度控制时,升温控制电路和降温控制电路只有一个电路工作,不会同时进行工作。
在进行温度控制时要么红灯亮即此时在进行升温,要么绿灯亮即此时在对系统降温。
当系统温度达到预定值(系统温度平衡)时,LED显示灯中都没有电流两灯都会熄灭。
3 系统软件设计
3.1 主程序流程图
主程序主要功能为:根据获取的温度值与上位机设定的阈值,决策温度控制器的动作,并向PC机发送温度数据。
主程序主要是控制整体模块的程序,子程序控制各个元器件功能的实现。
3.2 子程序设计
由于系统主要由温度采集模块DS18B20、温度控制模块,状态指示模块以及蓝牙收发模块组成,每个模块都需要有各自的程序来控制其功能的实现。
因此,设计了温度采集程序、温度控制程序、蓝牙收发程序等对不同的系统模块用不同的控制程序分别进行局部控制。
(1)温度采集程序设计:本系统采用了DS18B20温度传感器进行温度采集。
(2)温度控制程序设计:温度控制采用的是两个继电器分别对应于升温和降温。
并且设计了两个状态指示灯与之相对应。
(3)蓝牙模块程序设计:蓝牙模块是采用无线通讯技术将PC机与单片机相结合,从而实现无线远程的温度控制。
4 系统的实验验证
本系统采用蓝牙驱动和串口调试助手的方式进行调试。
蓝牙模块和适配器配对成功后会获取相应的COM端口,然后在串口调试助手中选择相应的COM端口进行温度的控制。
实际的控制功能是在控制过程中先设定一个目标温度,当实际温度高于次温度时,降温继电器开始工作,绿灯亮要求外界进行降温控制,一旦达到目标温度则停止工作;当实际温度低于设定的目标温度时,触发升温继电器工作,红等亮要求外界进行升温控制,当达到平衡是停止工作。
5 结论
本系统中,单片机通过采集温度数据,根据所设定的温度值做出决策,控制温度控制模块的动作,从而实现温度控制,指示灯实时显示当前系统工作状态,并且单片机通过蓝牙模块向电脑发送当前温度数据;PC机通过蓝牙适配器,向系统发送控制命令,设定温控控制阈值,实现了准确调控温度的功能。
参考文献:
[1]王海宁.基于单片机的温度控制系统的研究[J].合肥工业大学,2008:55~87.
[2]金纯等.蓝牙技术[M]. 北京:电子工业出版社,2011.
[3]安彬.浅析单片机在温度测控方面的应用[J].信息与电脑(理论版),2011(5):38~85.
[4]李钢.1-Wire总线数字温度传感器DS18B20原理及应用[J].现代电子技术,2005.
[5]鹿玉红,戴彦,江培蕾. 基于 PROTEUS 的 DS18B20 数字温度计的仿真实现[J].福建电脑,2010,Vol.1.。