基于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的温度控制系统的硬件设计一引言(一)课题研究的背景随着大规模集成电路的发展,微型计算机的应用愈加广泛、日益深入。

STC89C52RC单片机的多功能温度控制器的设计

STC89C52RC单片机的多功能温度控制器的设计

STC89C52RC单片机的多功能温度控制器的设计0 引言在某些工业生产过程中,如恒温炉、仓库储藏、花卉种植、小型温室等领域都对温度有着严格的要求,需要对其加以检测和控制。

传统的温度测量方法是将温度传感器输出的模拟信号放大后送至远端A/D转换器,最后单片机对A /D转换后的数据进行分析处理。

这种方法的缺点是模拟信号在传输的过程中存在损耗并且容易受到外界的干扰,导致测量的温度精度不高。

文中以STC89C52RC单片机为控制核心,利用美国Dallas公司最新推出的单总线数字温度传感器DSl8820测量温度,单片机处理后对温度进行控制,并将温度显示在LCDl602上,还可通过按键设置温度上下限值实现温度超限报警等功能。

1 系统的组成和工作原理多功能温度控制系统的结构如图1所示,系统由六部分组成:控制核心部分、温度数据采集部分、加热装置控制部分、液晶显示部分、按键输入部分和报警提示部分。

单片机启动温度采集电路完成温度的一次转换,然后读出转换后的数字量并转化成当前的温度呈现在显示模块中,并将当前的温度与通过按键输入电路设定的保持恒温度数进行比较,以实现温度的控制。

还可以通过按键设置温度的上下限值以实现超温或低温报警提示功能。

本系统的设计目标要对温度的控制精度达到0.1℃。

1.1 报警电路报警电路采用蜂鸣器作为发声装置,当温度高于设定的上限值或低于下限值,给蜂鸣器送周期为1s,占空比为50%的方波,报警的时间可以持续1分钟或等待按键解除报警,这由软件控制实现。

1.2 按键电路采用2×3的小键盘,键盘的识别可以采用两种方法:行扫描法和行反转法。

两种方法都要注意消除按键的抖动。

文中采用行扫描法并做成子程序,出口参数为按键的键值。

定义键K1设置TH,K2设置TL,K3调高TH或TL,K4调低TH或TL,K5对TH或TL的数值进行确认。

1.3 温度检测电路温度检测电路采用智能温度传感器DSl8820,它与单片机相连只需要3线,减少了外部的硬件电路。

基于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的温度检测及报警系统。

该系统将多个单总线温度传感器DS18B20并接在控制器的一个端口上,对各个传感器温度进行循环采集,将采集到的温度值与设定值进行比较,当超出设定的上限温度时,通过蜂鸣器报警信号。

该系统设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景。

关键词:数字温度传感器;DS18B20;STC89C52;蜂鸣器。

AbstractTemperature detection and control of industrial production process, one of the more typical applications, with sensors in production and life is more widely used, using a new single-bus digital temperature sensor to achieve the test and control the temperature more rapidly development, this paper is designed based on STC89C52 temperature detection and alarm systems. The system will be more than a single-bus temperature sensorDS18B20 and connected to a port on the controller, the temperature sensors on each loop collection, the temperature will be collected to compare with the set value, when the temperature exceeds the upper limit set , Through the buzzer alarm. The system design and layout simple and compact structure, small size, light weight, anti-jamming capability, cost-effective to expand convenience, in large warehouses, factories, construction and other areas of intelligentmulti-point temperature measurement in a wide range of applications prospects.Key words: digital temperature sensor; DS18B20; STC89C52; alarm signal.毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。

基于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传感器采集温度信息。

单片机89C52对冰箱温度的控制设计

单片机89C52对冰箱温度的控制设计

基于51单片机的新型冰箱温度控制器系统摘要:文章研究的是一种新型的电冰箱控制器。

采用单片机STC89C51对整个系统进行控制,整个硬件部分控制都很便捷简单。

系统用人机交互式控制方式,做到手动速冻功能,满足更多用户不同的要求。

能用LCD显示冷冻室、冷藏室和环境温度,在断电时能够做到欠压保护,超温时的声光报警。

系统还能用语音来控制整个系统,这是整个系统的创新点之一。

整个系统最大的优点在于节能、低功耗、性价比高,能够满足大多数人的需求要求。

关键词:STC89C51;DS18B20;ISD1760;NE555Abstract:A new Refrigerator Controller .We used STC89C51 as the controller for getting the aim.It had very easy Circuit.And you can control in diffirent ways:thar are AUTO and BY HAND.And if you want make it work instantly ,you can get it.It has a key for starting right away.There are more choice for customer。

The circuit was designed to protecte the Compressors from the unstabled voltige.It would warn you by human vioce.this was our one of diffrentes with others.Our advantage were save energy,lou price and good quality,designing for ordinary people.Key words: STC89C51;DS18B20;ISD1760;NE5550、引言随着生活的改善,消费水平的提高。

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

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

基于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单片机的温度测量及报警电路设计 精品

摘要摘要:在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。

传统的测温元件有热电偶和二电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。

我们用一种相对比较简单的方式来测量。

采用美国DALLAS半导体公司推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55~125 ºC,最高分辨率可达0.0625 ºC。

DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。

基于STC89C52单片机的温度测量及报警电路,电路采用DS18B20作为温度监测元件,测量范围0℃-~50℃,使用LCD模块显示,能设置温度报警上下限。

着重介绍软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,STC89C52单片机功能和应用。

该电路设计新颖、功能强大、结构简单。

关键词:温度测量报警 DS18B20 STC89C52AbstractAbstract:In daily life and industrial production process, often used in the detection and control of temperature, temperature is the production process and scientific experiments in general and one of the important physical parameter. Traditional thermocouple and temperature components are the second resistor. The thermocouple and thermal resistance are generally measured voltage, and then replaced by the corresponding temperature, these methods are relatively complex, requiring a relatively large number of external hardware support. We use a relatively simple way to measure.Use the United States following DALLAS Semiconductor DS1820 improved after the introduction of a smart temperature sensor DS18B20 as the detection element, a temperature range of -55 º C ~ 125 º C, up to a maximum resolution of 0.0625 º C. DS18B20 can be directly read out the temperature on the north side, and three-wire system with single-chip connected to a decrease of the external hardware circuit, with low-cost and easy use.The introduction of a cost-based STC89C52 MCU a temperature measurement circuits, the circuits used DS18B20 high-precision temperature sensor, measuring scope 0 º C~+100 º C, can set the warning limitation, the use of seven segments LCD that can be display the current temperature. The paper focuses on providing a software and hardware system components circuit, introduced the theory of DS18B20, the functions and applications of AT89C51 .This circuit design innovative, powerful, can be expansionary strong.Key words:Temperature measurement warning DS18B20 STC89C52目录1绪论 (1)1.1 引言 (1)1.2设计内容及要求 (1)1.3主体的部分 (2)2 AT89S52单片机介绍及应用 (4)2.1 AT89S52的主要功能 (4)2.2 引脚结构及说明 (5)2.2.1方框图 (6)2.2.2 引脚说明 (7)2.3 特殊功能寄存器 (10)2.4 存储器结构 (13)2.5 软件看门狗及串口 (14)2.5.1WDT的使用 (14)2.5.2掉电和空闲方式下的WDT (15)2.5.3 定时器2 (15)2.6 其他功能介绍 (16)3 系统软件的设计 (23)3.1 程序设计语言 (23)3.2主程序 (23)3.3 显示子程序 (24)3.4定时器T0中断服务程序 (25)3.5T1中断服务程序 (25)3.6调时功能程序 (25)3.7时钟/秒表功能程序 (25)4 硬件电路的操作和显示 (26)4.1 硬件工作过程 (26)4.2 LED的性能特点 (27)5其他外围电路设计 (28)5.1 时钟电路 (28)5.2复位电路 (29)5.3键盘电路 (30)结论 (32)致谢 (33)参考文献 (34)附录A英文和翻译 (35)附录B电路原理图 (43)第一章绪论1.1引言随着科技的发展,在工业、农业生产等重要领域对温度的控制要求越来越高,因而对温度报警系统的要求也越来越高。

基于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单片机的智能温度控制器设计

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]。

本次电子工艺实训旨在练习实用单片机系统的设计与安装,掌握典型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单片机的温度控制电路设计

本科生毕业论文(设计)题目:基于温度传感器的单片机温控电路设计系部电子信息工程学院学科门类工学专业电子信息工程学号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单片机的智能温控报警系统设计
高 等特 点 。
本温 控报警器根 据需要可 设定不 同的报警上 下限 ,并具 有掉 电
保存 功 能 。该 系统 结构 简 单 ,具有 精度 高 、量 程 宽、 灵敏 度
高 、体积小 、功 耗低等优 点 ,适合 用于 日常生 活和工农 业生产
中 的温 度 控 制 。
1 . 系统硬件设计
【 关键词 】 单片机,温度传感器,控制
温度不 管在工农业 、 国防 、气 象环保还是 在 日常生 活 中都 是 一个重要 的测量参数 ,温度传感 器也经历 了传统 的分 立式温 度传 感器到模 拟集成 温度传感器 再发展到 如今的数字 式智能传 感器 ,而温控 报警器 也由传统 的人 工测控逐渐 发展到 当代的完 序运行 出错或操 作错误使系 统处于死锁状 态,也 需要 复位 。整 个复位 电路包括 芯片 内、外两部 分 。复位操作 方式有上 电 自动 复位和按键手动复位两种方式 ,S T C 8 9 C 5 2 单片机系统是上 电自
F L AS H,集成5 1 2 字节 的R A M ,4 K 字 节E E P R O M存储空 间,可 直接 使用 串口下载 。采 用A T ME L 非 易失存储器 技术制造 ,与工 业标准 的MCS . 5 1 指令集和输出引脚相兼容 。
2 . 结论
本 文 设 计 的温 控 报 警 器 用 S TC8 9 C5 2 进行温度控制 ,
以S T C 8 9 C 5 2 单片机为控制核心 ,整个系统硬件 部分包括 温
DS 1 8 8 2 0 内部 结构主要 由4 部分组成:6 4 位光刻R 0M、温度
传感器 、非挥 发的温度报 警触 发器T H和是出厂前被光刻好 ,可 以看作是DS 1 8 8 2 0 的 地址序列码。光 ̄ J I R OM的作用使每 一个DS 1 8 8 2 0 都各不相 同,这 样就可 以实现 I 根总线上挂接 多个D S 1 8 8 2 0 的 目的。DS 1 8 8 2 0 温度 传感器可完成对温度 的测量 。DS 1 8 8 2 0 温度传感器 的内部存储器 包括9 B高速 暂存R AM和非易失性 的可 电擦除的E E P R OM,后者 存放高温度和低温度触发器T H,T L 和结构寄存器 。

基于stc89c52的温湿度检测电路综合设计

基于stc89c52的温湿度检测电路综合设计

基于stc89c52的温湿度检测电路综合设计一、引言温湿度检测电路是一种常见的电子检测设备,其主要作用是对周围环境的温度和湿度进行实时监测和反馈。

在工业、农业、医疗等领域都有广泛的应用。

本文将基于STC89C52单片机,设计一个能够实现温湿度检测的电路,并对设计过程进行详细介绍。

二、硬件设计1. STC89C52单片机STC89C52是一种高性能、低功耗的8位单片机,具有强大的计算能力和丰富的外设资源。

它采用了CMOS工艺制造,工作电压为5V,最高主频可达22MHz。

在本次设计中,我们选择STC89C52作为主控芯片。

2. 温湿度传感器温湿度传感器是本次设计中最重要的部分之一。

根据需求,我们选择了DHT11数字温湿度传感器。

该传感器具有精确度高、响应速度快等优点,在市场上也较为常见。

3. 显示模块为了方便用户观察温湿度数据,我们需要一个显示模块来展示数据。

在本次设计中,我们选择了12864液晶显示屏。

该显示屏具有分辨率高、显示效果好等优点,可以满足我们的需求。

4. 其他外设为了让整个电路更加完善,我们还需要一些其他的外设。

例如电源模块、按键模块等。

三、软件设计1. 系统框图在进行软件设计之前,我们需要先画出系统框图。

如下图所示:其中,温湿度传感器通过单片机的IO口与单片机相连;液晶显示屏通过SPI接口与单片机相连;按键模块通过IO口与单片机相连。

2. 程序流程程序流程如下:(1)初始化各个外设;(2)读取温湿度传感器数据;(3)将数据转换为字符串格式;(4)将字符串格式的数据在液晶显示屏上展示;(5)判断是否有按键按下,如果有则进行相应操作;(6)返回步骤2。

3. 代码实现以下是代码实现部分的核心代码://初始化各个外设void init(){//初始化温湿度传感器DHT11_Init();//初始化液晶显示屏LCD_Init();//初始化按键模块KEY_Init();}//读取温湿度传感器数据并在液晶显示屏上展示void read_and_display(){char temp[16], humi[16];//读取温湿度传感器数据DHT11_Read_Data(&temp_value, &humi_value);//将数据转换为字符串格式sprintf(temp, "Temp: %dC", temp_value);sprintf(humi, "Humi: %d%%", humi_value);//在液晶显示屏上展示数据LCD_Show_String(0, 0, temp);LCD_Show_String(0, 1, humi);}//判断是否有按键按下并进行相应操作void check_key(){if(KEY_Scan() == KEY1_PRESSED){//按下KEY1,执行相应操作//...}}//主函数void main(){init();while(1){read_and_display();check_key();delay_ms(1000); //延时1s,避免频繁读取传感器数据}}四、总结本文基于STC89C52单片机,设计了一个能够实现温湿度检测的电路,并对设计过程进行了详细介绍。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

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

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

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

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

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

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

从上面的两种方案,可以很容易看出来,虽然方案(2)软件部分设计复杂点,但是电路比较简单且精度高,故采用方案(2)。

图1. 总体方框图三、系统硬件设计据设计的需求,分析单片机的工作原理,可以大体得出来温度控制电路设计的总体方框图,主处理器采用单片机STC89C52RC40,温度采集部分采用温度传感器,用4位LED显示数码管作为显示部分,用来将温度显示出来。

系统硬件电路部分由四大模块组成:温度采集模块、温度显示模块、报警模块、键盘模块和单片机最小系统模块[3]。

(一)单片机最小系统模块在课题设计的温度控制系统设计中,控制核心是STC89C52单片机,该单片机为51系列增强型8位单片机,它有32个I/O口,片内含4K FLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1μS。

使用该单片机完全可以完成设计任务,其最小系统主要包括:复位电路、震荡电路以及存储器选择模式(EA脚的高低电平选择),电路如下图3.1所示:图2.最小系统本课题设计的温度控制系统主控制芯片选型为STC89C52单片机,其特点如下:STC89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。

下面按引脚功能分为4个部分叙述个引脚的功能。

(1)电源引脚Vcc和Vss Vcc(40脚):接+5V电源正端 Vss(20脚):接+5V 电源正端。

(2)外接晶振引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。

在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。

XTAL2(18脚):接外部晶体的另一端。

在单片机内部,接至片内振荡器的反相放大器的输出端。

当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。

对于CHMOS芯片,该引脚悬空不接。

(3)控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。

(A).RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。

当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。

当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。

(B).ALE/ P (30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低(C).PSEN(29脚):片外程序存储器读选通输出端,低电平有效。

当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。

当访问外部数据存储器期间,PESN信号将不出现。

(D).EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。

当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。

若超出该范围时,自动转去执行外部程序存储器的程序。

当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。

对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。

(4)输入/输出(I/O)引脚P0口、P1口、P2口及P3口(A).P0口(39脚~22脚):P0.0~P0.7统称为P0口。

当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。

当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。

它分时提供8位双向数据总线。

对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。

(B).P1口(1脚~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。

对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。

对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。

(C).P2口(21脚~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。

当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。

对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。

(D).P3口(10脚~17脚):P3.0~P3.7统称为P3口。

它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。

P3口的第2功能见下表:表1 单片机P3.0管脚含义(二) 温度采集模块DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。

该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。

本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因:(1)系统的特性:测温范围为-55℃~+125℃,测温精度为士0.5℃;温度转换精度9~12位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。

(2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。

(3)系统复杂度:由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。

(4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。

同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。

DS18B20温度传感器只有三根外引线:单线数据传输总线端口DQ ,外供电源线VDD,共用地线GND。

DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。

这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。

另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。

(三)报警模块设计中的报警装置电路用到了发光二级管、三极管、10K的电阻。

将发光二级管的一端接地,另一端接三极管的发射极,三极管的基极通过电阻接在三极管上,三极管的集电极电源。

图5.报警器(四)键盘模块键盘实际是就是很多案件的一种组合,按键的按下与否形成一个高低电平,主控芯片CPU通过高低电平来识别所需信号,进而使程序进行下一步的操作。

键盘操作的软硬件的设计有以下几个方面的问题:对于此设计来说我们要准确的显示我们所要对应的信息,每按一次按键要显示所要显示的信息。

这按键是主要用来控制温度而设计的。

这样比键盘操作方便,也比较实惠。

按键电路采用中断模式。

图6.键盘输入(五)显示、指示模块本模块用的是0.56英寸2位数码管红色共阳数码管5261BS,一般正向压降的都是1.5~2V,额定电流为10mA,通过最大的电流为40mA。

根据各种不同管接线的方式,可将数码管分成共阴极型和共阳极型。

图7.数码管(六)系统总电路图系统整体硬件电路包括,传感器数据采集电路,温度显示电路,单片机主控电路等,通过Altium Designer可画出如图所示的电路图[4][5][6]图8. 系统总电路图四、系统硬件制作(一)硬件电路制作方法1.按照电路图插接面包板,连接线路。

2.电路焊接,将各元件焊接到面包板上。

(二)硬件电路制作过程1.准备好各类器件以及工具。

2.按电路图插接好面包板,先焊接小器件及简单电路.3.用电线连接距离较远的器件,进行焊接.4.焊接完成后用万用表进行电路测试,确保没有短路。

五、系统软件设计(一)软件设计思路及流程图主控制程序的主要是用来实时控制当前所要测控的环境温度,并读出由DS18B20测量的经过处理的当前环境的温度值,同时检查温度是否在限度之内,否则报警,同时调整温度值。

其主控制程序流程图如9所示。

图9 主程序流程图图10 读温度流程图1.读温度子程序读温度子程序的功能主要是用来将随机存储器中的9个字节读出,在读出字节时侯,需要进行冗余码校验。

相关文档
最新文档