51单片机温度计

模拟电子技术基础

《基于DS18B20的数字报警温度计》

实验设计报告

学校:南京工程学院 院系:自动化 班级:数控102 姓名:陆路裕 同组学生姓名:曹群峰 学号:203100620

2011年12月3日

----南京工程学院----

目录

1.前言••2

2.设计任务及要求••3

2.1设计任务••3 2.2设计要求••4 3.设计总体方案••4 3.1方案论证••5

3.2方案的总体设计框图••5 4.电路原理图及硬件设计••6 4.1电路原理图介绍分析••7 4.2单片机系统••8 4.3温度传感器模块••8 4.4显示模块••12 4.5电源模块••13 5.系统程序设计••13 6.调试及仿真••29 7.电路的焊接及调试••30 8.遇到的问题和解决办法••33 9.总结和体会••34

基于DS18B20温度传感器的数字温度计设计

1.前言

目前,单片机已经在测控领域获得了广泛的应用,它除了可以测量电信以外,还可以用于温度,湿度等非电信号的测量。能独立工作的单片机温度检测和温度控制系统已经广泛用于很多领域。 单片机是一种特殊的计算机,它是在一块半导体的芯片上集成了CPU,存储器,RAM,ROM及输入与输出接口电路,这种芯片成为:单片机。由于单片机的集成度高,功能强,通用性好,特别它具有体积小,重量轻,能耗低,价格便宜,抗干扰能力强和使用仿版等方面的优点,是它迅速的得到了推广和应用,目前已经成为测量控制系统中的优良机种和新电子产品中的关键部件。单片机已不仅仅局限于小系统的概念,现已广泛应用于家用电器,机电产品,办公自动化产品,机器人,儿童玩具,航天器等领域。

这次我们的模电设计,就是用的单片机实现温度的控制,传统的温度传感器大多以热敏电阻作为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次我和陆路裕同学采用的正是DS18B 20数字温度传感器来实现基于51单片机的温度计的设计。 传统的温度计有发映速度慢,读数麻烦,测量精度不高,误差大等缺点而下面利用集成温度传感器DS18B20设计并制作了一款基

于AT89C51的4位数码管现实的数字温度计,其电路简单,软硬件结构模块化,易于实现。

该数字温度计利用温度传感器及接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器转换成单片机能够处理的数字信号,然后送到单片机中进行处理变换,最后将温度值显示在数码管上。系统以 单片机为控制核心,加上DS18B20温度传感器,4位温度数据显示的共阴极数码管,及外围电源和报警电路组成。

2.设计任务及要求 2.1 设计任务

现代生活中,多功能的数字温度计能给我们的生活带来很大的方便,支持"一线总线"接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89S52位控制器设计的AT89S51为控制器设计的DS18B20温度传感器结构简单,测温准确,具有一定控制功能的智能温度控制器。

此次我们的设计,就是用单片机实现温度的控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠习惯差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才由单片机处理。本次采用DS18B20温度传感器来实现基于51单片机的数字温度计的设计。

该数字温度计利用 DS18B20温度传感器及其接口电路完成温度

的测量并转换成模拟电压信号,经由数模转换器转换成单片机能够处理的数字信号,送到单片机进行处理变换,最后经过三极管的放大显示在共阴极数码管上。系统以51单片机为控制核心,加上测温电路,AD数模转换器,4位温度数据显示数码管以及外围电源时钟电路组成。

2.2 设计要求

$ 5V电源(+-0.3v)用于温度计的供电;

$ 温度采集采用DS18B20温度传感器;数字式温度计要求测温范围为-5~35°C,精度误差在0.1°C以内。 $ 4位数字共阴极数码管显示;

$ 3个按键,分别为复位重置按键,温度上限设置按钮, 温度下限设置按钮;

$ 设计温度显示计(含报警功能)电路图,并且用相关软件进行仿真演示;

$ 演示成功之后,设计和绘制软件流程图,并用C语言进行程序编写;

$ 准备元器件材料,按照电路图焊接电路,并进行调试; $ 分析讨论,总结经验,对成果进行优化,撰写报告;

3设计总体方案及器材选用分析

3.1方案论证

方案一:提到温度的检测,我们首先会考虑到传统的测温元件有

热电阻和热电偶,而热点阻和热电偶测出的一般都是电压,进行A/D转换后,讲究可以用单片机进行数据的处理,在显示电路上就可以将温度显示出来,而这需要比较多的外部的硬件的支持,硬件电路复杂(需要用到A/D转换电路,感温电路),软件调试也复杂,制作成本也非常高。

所以这个设计理论不符合这次我们对产品的要求,应继续来考虑另一可行方案。

方案二:进而考虑到使用温度传感器,在单片机电路设计中,大

多时使用传感器,这是我们应该想到的,所以可以采用一只温度传感器DS18B20,此温度传感器,可以很容易读出北侧温度值,进行转换,就可以满足设计要求,另外我们还别出心裁的在电路中加入了温度报警电路,可以实时监测温度,这在实际生产生活中有很大应用。

将两个方案进行比较可以看出,方案二原理简明易行,测量精

度高,故我们采用方案二。

3.2方案的总体设计框图

根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示、报警等功能。选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,

简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。

该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阴LED数码管以动态扫描法实现。检测范围5摄氏度到38摄氏度。

数字温度计总体电路结构框图如图1所示。

4.电路原理图及硬件设计

4.1 电路原理图介绍分析

这是我们设计的本次温度计的电路图:

4.2 单片机主控制器系统

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

4.3温度传感器模块

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20 的性能特点如下:

●独特的单线接口方式仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在唯一的三线上,实现多点组网功能; ●无需外部器件;

●可通过数据线供电,电压范围:3.0~5.5V;

●测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃ ●零待机功耗

●温度以9或12位数字量读出; ●用户可定义的非易失性温度报警设置

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作

DS18B20采用3脚PR-35 封装或8脚SOIC封装,其内部结构

框图如图3所示:

图3 DS18B20内部结构框图

64 b闪速ROM的结构如下:

开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最后8位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。主机操作ROM的命令有五种,如表1所列

指 令 读ROM(33H) 匹配ROM(55H) 跳过ROM(CCH) 搜ROM(F0H) 报警搜索(ECH)

说 明

读DS1820的序列号

继读完64位序列号的一个命令,用于此命令执行后的存储器操作将针对识别总线上各器件的编码,为操作各仅温度越限的器件对此命令做出响

DS18B20 温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失

性的可电擦除的EERAM。高速暂存RAM 的结构为8字节的存储器,结构如图4所示。

前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值.

当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5 ℃/LSB形式表示。温度值格式如下:

这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM

中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。图中,S表示位。对应的温度计算:当符号位S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值。例如+125℃的数字输出为07D0H,

+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

DS18B20温度传感器主要用于对温度进行测量,数据可用16位符号扩

展的二进制补码读数形式提供,并以0.0625℃/LSB形式表示。表2是部分温度值对应的二进制温度表示数据。

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字

节内容作比较,若T>TH或T

在64位ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机

根据ROM的前 56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数 据是否正确。

3)DS18B20测温原理

DS18B20的测温原理如图5所示,图中低温度系数晶振的振荡频率受温

度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法

计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。

另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概

念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

在正常测温情况下,DS1820的测温分辨力为0.5℃,可采用下述方法获

得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度Ts可用下式计算:

Ts=(Tz-0.25℃)+(CD-Cs)/CD

4.5显示模块 采用4位共阴极LED数码管显示,采用共阴极数码管需要加入负载驱动,所以我们在焊接时加上了四个三极管以驱动保证能够正常显

示,这在后面我们会用图来说明。

此外我们设置了KEY1,KEY2,KEY3三个按钮,KEY 1

是复位键,KEY2是增加上线温度报警键,KEY3是减少下线温度报警键。

4.6电源模块

5V直流电源(+-0.3v)用于该温度计的供电;

5系统程序的设计

系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,报警子程序和显示数据刷新子程序等.

#include

#include

#define uchar unsigned char

#define uint unsigned int

#include "DS18B20.c"

uint mun=0;

uchar time_wang=0;

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit B0=P1^0;

sbit B1=P1^1;

sbit B2=P1^2;

sbit B3=P1^3;

sbit K1=P3^1;

sbit K2=P3^2;

sbit K3=P3^3;

sbit jingbao=P3^7;

uchar wendu_H=38;

uchar wendu_L=5;

uchar SHOW=0;

/**************************************************************

*名称: Delay_NS()

*功能: 长软件1ms延时

***************************************************************/

void delay(uint ms)

{

uchar i;

} while(ms--) { //ms毫秒软件延时 for(i = 63;i > 1;i--); }

//--------------------------------------------------------------------------------------------

void Sys_Initial(void)

{

TMOD = 0x22; // 定时器1工作方式2,定时器0工作方式1

}

//**********************************************************TH0 = 0x3C; TL0 = 0xB0; // 50ms ET0 = 1; TR0 = 1; EA=1; // 开定时器T0中断 // 开定时器T0 // 开总中断

**************************************

void timer0() interrupt 1 using 2

{

TH0=0xff; TL0=0xa0; time_wang++; if(SHOW==0) { if(time_wang==5) { P2=0xff; B0=0;B1=1;B2=1;B3=1; P2=~table[mun/1000]; } if(time_wang==10) { P2=0xff; B0=1;B1=0;B2=1;B3=1; P2=~table[(mun%1000)/100]; } if(time_wang==15) {

B0=1;B1=1;B2=0;B3=1; P2=(~table[(mun%100)/10])&0x7f; } } if(SHOW==1) { if(time_wang==5) { if(time_wang==20) { } time_wang=0; P2=0xff; B0=1;B1=1;B2=1;B3=0; P2=~table[mun%10]; P2=0xff; B0=0;B1=1;B2=1;B3=1; P2=~0x38; } if(time_wang==10) {

B0=1;B1=0;B2=1;B3=1; P2=0xff; } if(time_wang==15) { P2=0xff; B0=1;B1=1;B2=0;B3=1; P2=~table[wendu_L/10]; } } if(SHOW==2) { if(time_wang==5) { if(time_wang==20) { } time_wang=0; P2=0xff; B0=1;B1=1;B2=1;B3=0; P2=~table[wendu_L%10];

B0=0;B1=1;B2=1;B3=1; P2=~0x76; } if(time_wang==10) { P2=0xff; B0=1;B1=0;B2=1;B3=1; P2=0xff; } if(time_wang==15) { P2=0xff; B0=1;B1=1;B2=0;B3=1; P2=~table[wendu_H/10]; } if(time_wang==20) { time_wang=0; P2=0xff; B0=1;B1=1;B2=1;B3=0; P2=~table[wendu_H%10];

} }

//---------------------------------

//********************************************************** void key_scan(void)

{

if(!K1) //启动 { } if(!K2) { delay(100); if(SHOW==0)return; if(SHOW==1) { if(wendu_L==(wendu_H-1)) delay(100); SHOW++; if(SHOW==3)SHOW=0; return;

wendu_L++;

}

if(SHOW==2) {

if(wendu_H

wendu_H++;

} } if(!K3) {

delay(100); if(SHOW==0)return; if(SHOW==1) {

if(wendu_L>0)

wendu_L--;

}

if(SHOW==2) {

if(wendu_H==(wendu_L+1))

return;

}

wendu_H--;

} }

//************************************************************************************************ void main(void) //主函数 {

// uchar i;

Sys_Initial();//单片机初始化,开定时器0 while(1) {

wendu_read();

mun=wendu*10+xiaoshu;

if(wendu>wendu_L&&wendu

jingbao=0; } else jingbao=1; key_scan();

}

//DS18B20的最底层函数。 sbit DS=P3^6;

#define uchar unsigned char uchar tempL=0xaa; uchar tempH=0x50; uchar wendu,xiaoshu;

//------------------------------------------------- void delay1(uchar count) {

while(count>0) count--; }

void reset(void) //send reset and initialization command { DS=0; delay1(100); DS=1; delay1(4); delay1(20); }

//温度传感器传回来的温度低八位 //温度传感器传回来的温度高八位

bit read_bit(void) //read a bit {

bit temp; DS=0; _nop_(); DS=1; _nop_(); temp=DS;

EA=1;

delay1(20);

EA=0;

return temp; }

uchar read_byte(void) {

uchar i,byte=0; bit j;

for(i=0;i

//read a byte date

byte=_cror_(byte ,1); j=read_bit();

if(j==0) byte=byte|0x00; else byte=byte|0x80; }

return byte; }

void write_byte(uchar command) //write a byte to ds18b20 { uchar i; for(i=0;i

if((command & 0x01)==0) { DS=0; delay1(8); DS=1; _nop_(); } else {

DS=0; _nop_(); DS=1; delay1(8); }

command=_cror_(command,1); } }

//-------------------------------------------------

//DS18B20读温度程序 uint readtemperature() {

uint temperature; EA=0;

reset(); //初始化 EA=1;

delay1(1); //转换需要一点时间,延时大一点,应该大于500us吧 EA=0;

write_byte(0xcc); //写SKIP ROM(跳过检查ROM序列,因为我们一般只有一个DS18B20!)

EA=1;

delay1(1); //转换需要一点时间,延时大一点,应该大于500us吧 EA=0;

write_byte(0x44); //写启动温度转换 EA=1;

delay1(12); //转换需要一点时间,延时大一点,应该大于500us吧 EA=0;

reset(); //初始化

write_byte(0xcc); //写SKIP ROM(跳过检查ROM序列,因为我们一般只有一个DS18B20!) EA=1;

delay1(1); //转换需要一点时间,延时大一点,应该大于500us吧 EA=0;

write_byte(0xbe); //读温度寄存器RAM(头两个值分别为温度的低位和高位) EA=1;

delay1(1); //转换需要一点时间,延时大一点,应该大于500us吧 EA=0;

tempL=read_byte(); //读出温度的低位LSB EA=1;

delay1(1); //转换需要一点时间,延时大一点,应该大于500us吧 EA=0;

tempH=read_byte(); //读出温度的高位MSB EA=1;

//温度转换,把高低位做相应的运算转化为实际温度

temperature=tempL+tempH*256;//将温度整理成16位变量 =((tempH*256)+tempL)*0.0625*10+0.5;//tempH*256的意思是tempH向左移8位

// delay_us(200);//两次间隔转换的间隔要延时一下 temperature=temperature*(0.625); return(temperature); }

/******************************************* 函数名称: wendu_read

功 能: 完成温度的读取与显示 参 数: 无 返回值 : 无

/********************************************/ void wendu_read(void) { uint t;

t=readtemperature(); wendu=(t/10)%1000; xiaoshu=t%10;

6.调试及仿真

我利用电脑中的 Proteus软件将设计好的电路图进行仿真,如下图所示:

其中温度上限设为38℃,下限设为5℃,并且可以由KEY1,KEY2按钮自由设置,非常方便。

6.电路的焊接及调试

我和曹群峰同学在电路调试和仿真成功的基础上,列出了这次电路焊接所需要的所有元件以及工具,出去进行购买,经过近两天的辛苦的搜罗寻找,我们终于集齐所有元件,清单如下

集齐了所有我们这次所需要的元器件之后,我们对电路图再进行了研究,争取以小的的面积用最少的线并且能够整齐有序的将各个元器件之间用导线连接起来的焊接就可以正式动工了。

整个焊接的过程持续了大约两个星期的时间,在这其中有成功也有失败,在我们最后的成品出来之前我们有两个报废的试验品,后来我们请教了相关专业的老师以及学长,吸取焊接过程中的不足,比如对虚焊,短路以及连线太过复杂等问题加以改进,终于在第三次得到了比较两人满意的结果,以下是我们这次整个焊接过程中的图片,以及我们最后成功时的成果展示的合影,每张图下面都附有说明:

经过了第一次和第二次的并不非常成功的焊接后,我们冷静下来,仔细针对诸如原件摆放,虚焊等问题分析了了失败的原因,开始了第三次焊接,结果成功了!请看下图:

7.遇到的问题和解决办法

针对这次的温度计的设计,我们深知光有原理图有理论知识是远远不够的,还要善于处理解决产品设计中遇到的各种意想不到的问题,不过可喜的是,这些问题都被我们一一解决了。下面我就按照从原理分析道实物调试的顺序对遇到的问题以及解决的办法做详尽的阐述:

①问题:当发现买来的4位显示共阴极数码管无法正常显示温度 这是我们调试测量温度成功时的照片,温度计上准确地显示了当时环境温度为19.5℃. 解决办法:在单片机和数码管之间加上4个三极管驱动,利用模电

课程中三极管能够对电流的放大作用 ,使得温度能够在数码管上显示出来

②问题:焊接过程中导致错焊,虚焊的问题,有时甚至会导线交叉短路

解决办法:重新在万能板上布局各个元件位置,并且用拖锡节约导线,简化电路的连接,利于后期检查。

8.总结和体会

--陆路裕 数控102

虽然这次接近一个月的温度计设计制作已经结束,但是留给我和曹群峰同学的影响是非常大的,下面我就具体说出我的一些想法。

这次的设计制作我主要负责程序的编写和电路的仿真,而电路的焊接是由我和曹群峰同学一起完成的。我想说和曹群峰同学的合作是一次愉快的经历,这次温度计的设计让我们的距离和友谊又再次加深。

整个设计的过程其实就是一个学习的过程,尤其是对我们的模拟电路这门课程很多知识的理解和运用,我们在制作开始之前对书本再次进行了复习巩固。

接下来是对DS18B20电路原理图的设计,刚开始曹群峰觉得有一定的难度,主要是对Proteus软件不是太理解,但是在我的帮助下也顺利完成。仿真的成功就预示着我们离成功又进了一步。

但我们还是不能掉以轻心,因为更大的挑战还在后头,果然在焊接过程中途中遇到了很多问题。电子元件不全所以要修改方案,焊接中检查是否焊错虚焊,修改程序使之符合自己的电路并调试成功,烧录芯片并调试成功。我们所做的就是迎接问题,改正错误,是自己的作品能够成功。

过程中我对这学期所学的模电课程知识有了更深一步的体会,并且复习了这个学期开学初的时候就参加过的金工实习,而且对接下来的单片机以及数电的学习打下了良好的基础,对以后的科技创新活动到了很大作用。在今后的学习生活中,要牢记在实验过程中的经验教训,争取获得更大的进步!


相关内容

  • AT89C51单片机水温控制系统

    张鹏:基于AT89C51单片机的水温控制系统设计 正文第 1 页 共 25 页 1 引 言 1.1 单片机 1.1.1 单片机简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM ...


  • 多路温度采集课程设计

    目录 1前言 ................................................................................................................. ...


  • 毕业设计论文 基于单片机的温度测量系统

    毕 业 论 文 基于单片机的温度测量系统 所在系部: 电气信息工程系 摘 要 随着社会经济的不断发展,现代农业生产离不开环境控制,本文在对国内外温室智能控制进行深入分析的基础上,针对温室智能化控制存在的诸多因子,将智能传感器监测和单片机控制 ...


  • 基于单片机的温度传感器的设计

    基于单片机的温度传感器 的设计 目 录 第一章 绪论 --------------------------------------------------------------------- ---2 1.1 课题简介 --------- ...


  • 51单片机水温水位控制系统

    摘 要 本温度设计采用现常见的89C51单片机,配以DS18B20数字温度传感器,该温度传感器可自行设置温度上下限.单片机将检测到的温度信号与输入的温度上.下限进行比较,由此作出判断是否启动继电器以开启设备.系统包括单片机模块.温度检测模块 ...


  • 基于单片机的温度报警器的设计与仿真_陈峰

    Computer与技术电脑知识与技术ComputerKnowledgeKnowledgeandandTechnologyTechnology电脑知识 Vol.6,No.27,September2010,pp.7540-7541ISSN100 ...


  • 温度传感器实验设计

    成都理工大学工程 技术学院 单片机课程设计报告 数字温度计设计 摘要 在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,作为自动化专业的学生,我们学习 ...


  • 单片机类毕业设计

    提示:以下所有论文,将鼠标移至想要查看的标题上,按住Ctrl键并单击鼠标左键即可打开查看详细内容.也可咨询QQ:3710167单片机毕业设计专题:4281. 基于51单片机的近距离无线接收发模块设计(字数:15492,页数:35 价格:¥1 ...


  • 基于单片机的空调控制器设计

    毕 业 设 计 基于单片机的空调控制器设计 指导教师 学院名称 论文提交日期 工程学院 2009年5月 专业名称 论文答辩日期 年 月 答辩委员会主席 ____________ 评 阅 人 ____________ 摘 要 在自动控制领域中 ...


  • 电子体温计的研制设计与实现

    电子与信息工程学院 本 科 毕 业 论 文 论文题目 电子体温计的设计与实现 学生姓名 刘 恒 强 学 号 093521016 专 业 电气工程及其自动化 班 级 指导教师 2013年5月 摘 要 摘 要 体温计在人们的日常生活中必不可少, ...