当前位置:文档之家› 基于51单片机数字温度计设计

基于51单片机数字温度计设计

基于51单片机数字温度计设计
基于51单片机数字温度计设计

课题:基于51单片机数字温度计设计专业:电子信息工程

班级:(1)班

学号:

姓名:峰

指导教师:周冬芹

设计日期:

成绩:

重庆大学城市科技学院电气学院

基于51单片机数字温度计设计

一、设计目的

1、掌握单片机电路的设计原理、组装与调试方法。

2、掌握LED数码显示电路的设计和使用方法。

3、掌握DS18B20温度传感器的工作原理及使用方法。

二、设计要求

1、本次单片机课程设计要求以51系列单片机为核心,以开发板为平台。

2、设计一个数字式温度计,要求使用DS18B20温度传感器测量温度。

3、经单片机处理后,要求用4位一体共阴LED数码管来设计显示电路,以显示测量的温度值。

4、另外还要求在设计中加入报警系统,如果我们所设计的系统用来监控某一设备,当设备的温度超过或低于我们所设定的温度值时,系统会产生报警。

5、要求在设计中加入上下限警报温度设置电路。

三、设计的具体实现

1数字温度计设计的方案

在做数字温度计的单片机电路中,对信号的采集电路大多都是使用传感器,这是非常容易实现的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。采集之后,通过使用51系列的单片机,可以对数据进行相应的处理,再由LED显示电路对其数据进行显示。

2系统设计框图

温度计电路设计总体设计方框图如下图所示,控制器采用单片机A T89C51,温度传感器采用DS18B20,用4位一体共阴LED数码管以串口传送数据实现温度显示。此外,还添加了报警系统,对温度实施监控。

3主控器AT89C51芯片

对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。AT89C51 以低价位单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS—51的CMOS产品。

AT8951的管脚如下图所示:

A T89C51芯片管脚图

4时钟电路

80C51时钟有两种方式产生,即内部方式和外部方式。80C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。本次采用内部震荡电路,瓷片电容采用22PF,晶振为12MHZ。

晶体震荡电路图

5 复位电路

单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用10KΩ的阻值,电容采用10μF的电容值。

复位电路

6 温度传感电路

DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55~+125 摄氏度,可编程为9位~12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出。

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND 为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地,如下图所示。

DS18B20管脚图

7 显示电路

对于数字温度的显示,我们采用4位一体共阴LED数码管。足够显示0~100中各位数,并且还能显示一位小数部分。

4位LED数码显示管

8 温度报警电路

对于数字温度计的设计,除了温度的数字显示功能外还加入了报警系统,当测量的

温度超过或低于我们所设定的温度值时,系统会产生报警并亮红灯报警。其电路图如下所示。

蜂鸣器红灯报警系统电路图

源程序:

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

* 程序名; 基于51单片机的温度计

* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来

* 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限

* 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动

* 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除

* 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能,

* K1是实现减1功能,K3是用来设定上下限温度正负的。

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

#include

#include//将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)

#define uint unsigned int

#define uchar unsigned char

uchar max=0x00,min=0x00; //max是上限报警温度,min是下限报警温度

bit s=0; //s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右

bit s1=0;

//s1标志位用于上下限查看时的显示

void display1(uint z);

#include"ds18b20.h"

#include"keyscan.h"

#include"display.h"

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

/* 主函数/

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

void main()

{

beer=1; //关闭蜂鸣器

led=1; //关闭LED灯

timer1_init(0); //初始化定时器1(未启动定时器1)

get_temperature(1); //首次启动DS18B20获取温度(DS18B20上电后自动将EEPROM中的上下限温度复制到TH和TL寄存器)while(1)

{

keyscan();

get_temperature(0);

display(temp,temp_d*0.625);

alarm();

}

}

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

* 程序名; ds18b20数码管动态显示头文件

* 功能:通过定时器0延时是数码管动态显示******************************************* ***************************/

#ifndef __ds18b20_display_H__

#define __ds18b20_display_H__

#define uint unsigned int //变量类型宏定义,用uint表示无符号整形(16位)

#define uchar unsigned char //变量类型宏定义,用uchar表示无符号字符型(8位)

sbit wei1=P2^4; //可位

寻址变量定义,用wei1表示P2.4口

sbit wei2=P2^5; //用wei2表示P2.5口

sbit wei3=P2^6; //用wei3表示P2.6口

sbit wei4=P2^7; //用wei4表示P2.7口

uchar num=0; //定义num为全局无符号字符型变量,赋初值为‘0’

uchar code temperature1[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0 x7d,0x07,0x7f,0x6f}; //定义显示码表0~9

uchar code temperature2[]={ 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0 xfd,0x87,0xff,0xef}; //带小数点的0~9.

uchar code temperature3[]={ 0x00,0x80,0x40,0x76,0x38};//依次是‘不显示’‘.’‘-’‘H’‘L’

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

/ 延时子函数/

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

void display_delay(uint t) //延时1ms左右

{

uint i,j;

for(i=t;i>0;i--)

for(j=120;j>0;j--);

}

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

/* 定时器1初始化函数/

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

void timer1_init(bit t)

{

TMOD=0x10;

TH0=0x3c;

TL0=0xb0;

EA=1;

ET1=1;

TR1=t; // 局部变量t 为1启动定时器1,为0关闭定时器1

}

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

/* 定时器1中断函数/

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

void timer1() interrupt 3

{

TH0=0x3c; //重新赋初值,定时50ms

TL0=0xb0;

num++; //每进入一次定时器中断num加1(每50ms加1一次)

if(num<5)

{s=1;if(w==1){beer=1;led=1;}else{beer=1;led =1;}}

else //进入4次中断,定时200ms时若报警标志位w为‘1’则启动报警,不为‘1’不启动

//实现间歇性报警功能

{s=0;if(w==1){beer=0;led=0;}else{beer=1;led =1;}}

if(num>20) //进入20次中断,定时1s

{

num=0;

//num归0,重新定开始定时1s

s1=0; //定时1s时间到时自动关闭报警上下限显示功能

v1=1; //定时1s时间到时自动关闭报警上下限查看功能

}

}

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

/* 调整报警上下限选择函数

/

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

void selsct_1(uchar f,uchar k) //消除百位的0显示,及正负温度的显示选择

{

if(f==0) //若为正温度,百位为0则不显示百位,不为0则显示

{

if(k/100==0) P0=temperature3[0];

else

P0=temperature1[k/100];

}

if(f==1) //若为负温度,若十位为0,百位不显示,否则百位显示‘-’

{

if(k%100/10==0)

P0=temperature3[0];

else

P0=temperature3[2];

}

}

void selsct_2(bit f,uchar k) //消除十位的0显示,及正负温度的显示选择

{

if(f==0) //若为正温度,百位十位均为0则不显示十位,否则显示十位

{

if((k/100==0)&&(k%100/10==0))

P0=temperature3[0];

else

P0=temperature1[k%100/10];

}

if(f==1) //若为负温度,若十位为0,十位不显示,否则十位显示‘-’

{

if(k%100/10==0)

P0=temperature3[2];

else

P0=temperature1[k%100/10];

}

}

/******************************************* ***********/ /* 主函数显示/

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

void display(uchar t,uchar t_d) //用于实测温度、上限温度的显示

{

uchar i;

for(i=0;i<4;i++) //依次从左至右选通数码管显示,实现动态显示

{

switch(i)

{

case 0: //选通第一个数码管

wei2=1; //关第二个数码管

wei3=1; //关第三个数码管

wei4=1; //关第四个数码管

wei1=0; //开第一个数码管

if(a==0){selsct_1(f,t);} //若a=0则在第一个数码管上显示测量温度的百位或‘-’

if(a==1)

{

P0=temperature3[3]; //若a=1则在第一个数码管上显示‘H’

}

if(a==2)

{

P0=temperature3[4]; //若a=2则在第一个数码管上显示‘L’

}

break;

case 1:

//选通第二个数码管

wei1=1;

wei3=1;

wei4=1;

wei2=0;

if(a==0){selsct_2(f,t);} //若a=0则在第二个数码管上显示测量温度的十位或‘-’

if(a==1) //若a=1则在第二个数码管上显示上限报警温度的百位或‘-’

{

if(s==0) selsct_1(f_max,max);//若s=0则显示第二个数码管,否则不显示

else P0=temperature3[0]; //通过s标志位的变化实现调节上下限报警温度时数码管的闪烁

if(s1==1) selsct_1(f_max,max);//若s1=1则显示第二个数码管(s1标志位用于上下限查看时的显示)

}

if(a==2) //若a=2则在第二个数码管上显示下限报警温度的百位或‘-’

{

if(s==0) selsct_1(f_min,min);

else P0=temperature3[0];

if(s1==1) selsct_1(f_min,min);

}

break;

case 2:

//选通第三个数码管

wei1=1;

wei2=1;

wei4=1;

wei3=0;

if(a==0){P0=temperature2[t%10];}//若a=0则在第三个数码管上显示测量温度的个位

if(a==1) //若a=1则在第三个数码管上

显示上限报警温度的十位或‘-’

{

if(s==0) selsct_2(f_max,max);//若s=0则显示第三个数码管,否则不显示

else P0=temperature3[0];

if(s1==1) selsct_2(f_max,max);//若s1=1则显示第三个数码管

}

if(a==2) //若a=2则在第三个数码管上显示下限报警温度的十位或‘-’

{

if(s==0) selsct_2(f_min,min);

else P0=temperature3[0];

if(s1==1) selsct_2(f_min,min);

}

break;

case 3: //选通第四个数码管

wei1=1;

wei2=1;

wei3=1;

wei4=0;

if(a==0){P0=temperature1[t_d];}//若a=0则在第四个数码管上显示测量温度的小数位

if(a==1) //若a=1则在第四个数码管上显示上限报警温度的个位

{

if(s==0)

P0=temperature1[max%10];//若s=0则显示第四个数码管,否则不显示

else P0=temperature3[0];

if(s1==1)

P0=temperature1[max%10];//若s1=1则显示第四个数码管

}

if(a==2) //若a=2则在第四个数码管上显示下限报警温度的个位

{

if(s==0)

P0=temperature1[min%10];

else P0=temperature3[0];

if(s1==1)

P0=temperature1[min%10];

}

break;

}

display_delay(10); //每个数

码管显示3ms左右

}

}

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

/* 开机显示函数/

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

void display1(uint z) //用于开机动画的显示

{

uchar i,j;

bit f=0;

for(i=0;i

{

for(j=0;j<4;j++) //依次从左至右显示‘-’

{

switch(j)

{

case 0:

wei2=1;

wei3=1;

wei4=1;

wei1=0; break;

P0=temperature3[2];//第一个数码管显示

case 1:

wei1=1;

wei3=1;

wei4=1;

wei2=0;break;

P0=temperature3[2];//第二个数码管显示

case 2:

wei1=1;

wei2=1;

wei4=1;

wei3=0;break;

P0=temperature3[2];//第三个数码管显示

case 3:

wei1=1;

wei2=1;

wei3=1;

wei4=0;break;

P0=temperature3[2];//第四个数码管显示

}

display_delay(400); //每个数码管显示200ms左右

}

}

}

#endif

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

* 程序名; DS18B20头文件

* 说明:用到的全局变量是:无符号字符型变量temp(测得的温度整数部分),temp_d

* (测得的温度小数部分),标志位f(测量温度的标志位‘0’表示“正温度”‘1’表

* 示“负温度”),标志位f_max(上限温度的标志位‘0’表示“正温度”、‘1’表

* 示“负温度”),标志位f_min(下限温度的标志位‘0’表示“正温度”、‘1’表

* 示“负温度”),标志位w(报警标志位‘1’启动报警‘0’关闭报警)。

******************************************* **************************/ #ifndef __ds18b20_h__ //定义头文件

#define __ds18b20_h__

#define uint unsigned int

#define uchar unsigned char

sbit DQ= P2^3;

//DS18B20接口

sbit beer=P1^0; //用beer表示P1.0

sbit led=P1^1;

//用led表示P1.1

uchar temp=0; //测量温度的整数部分

uchar temp_d=0; //测量温度的小数部分

bit f=0; //测量温度的标志位,0’表示“正温度”‘1’表示“负温度”)

bit f_max=0; //上限温度的标志位‘0’表示“正温度”‘1’表示“负温度”)

bit f_min=0; //下限温度的标志位‘0’表示“正温度”、‘1’表示“负温度”)

bit w=0; //报警标志位‘1’启动报警‘0’关闭报警

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

/* 延时子函数/

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

void ds18b20_delayus(uint t) //延时几μs

{

while(t--);

}

void ds18b20_delayms(uint t) //延时1ms 左右

{

uint i,j;

for(i=t;i>0;i--)

for(j=120;j>0;j--);

}

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

/* DS18B20初始化函数/

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

void ds18b20_init()

{

uchar c=0;

DQ=1;

DQ=0;

//控制器向DS18B20发低电平脉冲ds18b20_delayus(80); //延时15-80μs

DQ=1;

//控制器拉高总线,

while(DQ);

//等待DS18B20拉低总线,在60-240μs之间

ds18b20_delayus(150); //延时,等待上拉电阻拉高总线

DQ=1;

//拉高数据线,准备数据传输;}

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

/* DS18B20字节读函数/

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

uchar ds18b20_read()

{

uchar i;

uchar d=0;

DQ = 1; //准备读;

for(i=8;i>0;i--)

{

d >>= 1; //低位先发;

DQ = 0;

_nop_();

_nop_();

DQ = 1; //必须写1,否则读出来的将是不预期的数据;

if(DQ) //在12us处读取数据;

d |= 0x80;

ds18b20_delayus(10);

}

return d; //返回读取的值

}

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

/* DS18B20字节写函数/

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

void ds18b20_write(uchar d)

{

uchar i;

for(i=8;i>0;i--)

{

DQ=0;

DQ=d&0x01;

ds18b20_delayus(5);

DQ=1;

d >>= 1;

}

}

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

/* 获取温度函数/

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

void get_temperature(bit flag)

{

uchar a=0,b=0,c=0,d=0;

uint i;

ds18b20_init();

ds18b20_write(0xcc); //向DS18B20发跳过读ROM命令

ds18b20_write(0x44); //写启动DS18B20进行温度转换命令,转换结果存入内部RAM

if(flag==1)

{

display1(1); //用开机动画耗时

}

else

ds18b20_delayms(1);

ds18b20_init();

ds18b20_write(0xcc);

ds18b20_write(0xbe);

a=ds18b20_read(); //读内部RAM (LSB)

b=ds18b20_read(); //读内部RAM (MSB)

if(flag==1) //局部位变量f=1时读上下线报警温度

{

max=ds18b20_read(); //读内部RAM (TH)

min=ds18b20_read(); //读内部RAM (Tl)

}

if((max&0x80)==0x80) //若读取的上限温度的最高位(符号位)为‘1’表明是负温度{f_max=1;max=(max-0x80);} //将上限温度符号标志位置‘1’表示负温度,将上限温度装换成无符号数。

if((min&0x80)==0x80)//若读取的下限温度的最高位(符号位)为‘1’表明是负温度

{f_min=1;min=(min-0x80);} //将下限温度符号标志位置‘1’表示负温度,将下限温度装换成无符号数。

i=b;

i>>=4;

if (i==0)

{

f=0; //i为0,正温度,设立正温度标记

temp=((a>>4)|(b<<4)); //整数部分

a=(a&0x0f);

temp_d=a; //小数部分

}

else

{

f=1; //i为1,负温度,设立负温度标记

a=~a+1;

b=~b;

temp=((a>>4)|(b<<4));

//整数部分

a=(a&0x0f); //小数部分

temp_d=a;

}

}

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

/* 存储极限温度函数/

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

void store_t()

{

if(f_max==1) //若上限温度为负,将上限温度转换成有符号数max=max+0x80;

if(f_min==1) //若下限温度为负,将上限温度转换成有符号数

min=min+0x80;

ds18b20_init();

ds18b20_write(0xcc);

ds18b20_write(0x4e); //向DS18B20发写字节至暂存器2和3(TH和TL)命令ds18b20_write(max); //向暂存器TH(上限温度暂存器)写温度

ds18b20_write(min); //向暂存器TL(下限温度暂存器)写温度

ds18b20_write(0xff); //向配置寄存器写命令,进行温度值分辨率设置

ds18b20_init();

ds18b20_write(0xcc);

ds18b20_write(0x48); //向DS18B20发将RAM中2、3字节的内容写入EEPROM

} //DS18B20上电后会自动将EEPROM中的上下限温度拷贝到TH、TL暂存器

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

/* 温度超限报警函数/

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

void alarm()

{

//若上限值是正值

if(f_max==0)

{

if(f_min==0) //若下限值是正值

{

if(f==0) //若测量值是正值

{

if(temp<=min||temp>=max)

{w=1;TR1=1;} //当测量值小于最小值或大于最大值时报警

if((tempmin))

{w=0;}

//当测量值大于最小值且小于最大值时不报警

}

if(f==1){w=1;TR1=1;} //若测量值是负值时报警

}

if(f_min==1) //若下限值是负值

{

if(f==0) //若测量值是正值

{

if(temp>=max)//当测量值大于最大值时报警

{w=1;TR1=1;}

if(temp

{w=0;}

}

if(f==1) //若测量值是负值

{

if(temp>=min)//当测量值大于最小值时报警

{w=1;TR1=1;}

if(temp

{w=0;}

}

}

}

if(f_max==1) //若下限值是负值

{

if(f_min==1) //若下

限值是负值

{

if(f==1) //若测量值是负值

{

if((temp<=max)||(temp>=min))

{w=1;TR1=1;} //当测量值小于最大值或大于最小值时报警

if((tempmax))

{w=0;}

//当测量值小于最小值且大于最大值时不报警

}

if(f==0){w=1;TR1=1;} //若测量值是正值时报警

}

}

}

#endif

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

* 程序名; 基于51单片机的温度计

* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来

* 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限

* 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动

* 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除

* 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能,

* K1是实现减1功能,K3是用来设定上下限温度正负的。

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

#include

#include //将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)

#define uint unsigned int

#define uchar unsigned char

uchar max=0x00,min=0x00; //max是上限报警温度,min是下限报警温度

bit s=0; //s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

基于51单片机的DS18B20数字温度计的实训报告

电子信息职业技术学院 暨国家示性软件职业技术学院 单片机实训 题目:用MCS-51单片机和 18B20实现数字温度计 姓名: 系别:网络系 专业:计算机控制技术 班级:计控 指导教师: * 伟 时间安排:2013年1月7日至 2013年1月11日

摘要 随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。 在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。 我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度围为-55~125 oC,最高分辨率可达0.0625 oC。DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 本文介绍一种基于AT89C51单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量围0℃-~+100℃,使用LED模块显示,能设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C51单片机功能和应用。该电路设计新颖、功能强大、结构简单。 关键词:单片机,数字控制,温度计, DS18B20,AT89S51

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.doczj.com/doc/7412691383.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

(完整word版)基于51单片机的温度控制系统设计

基于51单片机的水温自动控制系统 0 引言 在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。 1 设计任务、要求和技术指标 1.1任务 设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。 1.2要求 (1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。 (2)当液位低于某一值时,停止加热。 (3)用AD转换器把采集到的模拟温度值送入单片机。 (4)无竞争-冒险,无抖动。 1.3技术指标 (1)温度显示误差不超过1℃。 (2)温度显示范围为0℃—99℃。 (3)程序部分用PID算法实现温度自动控制。 (4)检测信号为电压信号。 2 方案分析与论证 2.1主控系统分析与论证 根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。 2.2显示系统分析与论证 显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案: 方案一:采用静态显示的方案 采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。 方案二:采用动态显示的方案 由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。 由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

基于AT89C5单片机的数字温度计设计

基于AT89C5单片机的数字温度计设计

CHANGZHOU INSTITUTE OF TECHNOLOGY 科研实践 题目:基于单片机的数字温度计的设计

目录 目录 (2) 1.绪论 (3) 1.1课题研究背景及意义 (3) 1.2课题研究的内容 (3) 2.数字温度计的系统概论 (5) 2.1系统的功能 (5) 2.2温度计的分析 (5) 3.设计方案和要求 (6) 3.1设计任务和要求 (6) 3.2元器件的选取 (6) 3.3系统最终设计方案 (7) 4.硬件设计 (8) 4.1总体设计结构图 (8) 4.2硬件电路概述 (8) 4.2.1最小系统 (8) 4.2.2输入电路设计 (11) 4.2.3输出电路设计 (12) 5.硬件仿真 (15)

6.实物制作 (18) 6.1电路板焊接 (18) 6.2电路板调试 (19) 7.小结 (20) 附录 (21) 1.参考文献 (21) 2.原理图 (22) 3.元器件清单 (23) 4.软件程序 (24) 5.实物图 (30) 1.绪论 1.1课题研究背景及意义 单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能仪器仪表,机电一体化产品,家用电器等各个领域。“单片机原理与应用”在工科院校各专业中已作为一门重要的技术基础课而普遍开设。学生在课程设计,毕业设计,科研项目中会广泛应用到单片机知识,而且,进入社会后也会广泛接触到单片机的工程项目。鉴于此,提高“单片机原理及应用”课的教学效果,让学生参与课程设计

实习甚为重要。单片机应用技术涉及的内容十分广泛,如何使学生在有限的时间内掌握单片机应用的基本原理及方法,是一个很有价值的教学项目。为此,我们进行了“单片机的学习与应用”方面的课程设计,锻炼学生的动脑动手以及协作能力。 单片机课程设计是针对模拟电子技术,数字逻辑电路,电路,单片机的原理及应用课程的要求,对我们进行综合性实践训练的实践学习环节,它包括选择课设任务、软件设计,硬件设计,调试和编写课设报告等实践内容。通过此次课程设计实现以下三个目标:第一,让学生初步掌握单片机课程的试验、设计方法,即学生根据设计要求和性能约束,查阅文献资料,收集、分析类似的相关题目,并通过元器件的组装调试等实践环节,使最终硬件电路达到题目要求的性能指标;第二,课程设计为后续的毕业设计打好基础,毕业设计是系统的工程设计实践,而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学实验的程序和实施方法。第三,培养学生勤于思考乐于动手的习惯,同时通过设计并制作单片机类产品,使学生能够自己不断地学习接受新知识(如在本课设题目中存在智能测温器件DS18B20,就是课堂环节中不曾提及的“新器件”),通过多人的合作解决现实中存在的问题,从而不断地增强学生在该方面的自信心及兴趣,也提高了学生的动手能力,对学生以后步入社会参加工作打下一定良好的实践基础。 1.2课题研究的内容 本文主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数 字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机喜爱的硬 件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也进 行一一介绍,该系统可以方便的是实现温度采集和显示,并可以根据需要任意 设定上下限报警温度,它使用起来方便,具有精度高、量程宽、灵敏度高、体 积小、功耗低等优点,适合我们日常生活和工农业生产中的温度测量,也可以 当做温度处理模块嵌入其他系统中,作为其他主系统的辅助扩展。DS18B20和AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合 与恶劣环境下进行现场温度测量,有广泛的应用前景。 本设计首先是确定目标,气候是各个功能模块的设计,再在Proteus软件上 进行仿真,修改,仿真。 本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范 围内时,可以报警。

基于51单片机的温度控制系统的设计

基于单片机的温度控制系统设计 1.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD 显示模块可以选用RT1602C。

3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 单片机时钟电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一 起形成了一个自激振荡电路,为单片机提供时钟源。 复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统 图2 单片机内部时钟方式电路 图3 单片机按键复位电路

基于51单片机的电子琴设计课程设计

目录 前言 (2) 第1章基于51单片机的电子琴设计 (3) 1.1 电子琴的设计要求 (3) 1.2 电子琴设计所用设备及软件 (3) 1.3 总体设计方案 (3) 第2章系统硬件设计 (5) 2.1 琴键控制电路 (5) 2.2 音频功放电路 (6) 2.3 时钟-复位电路 (6) 2.4 LED显示电路 (6) 2.5 整体电路 (6) 第3章电子琴系统软件设计 (7) 3.1 系统硬件接口定义 (7) 3.2 主函数 (8) 3.2.1 主函数程序 (8) 3.3 按键扫描及LED显示函数 (9) 3.3.1 键盘去抖及LED显示子程序 (10) 3.4 中断函数 (11) 3.4.1 中断程序 (12) 第4章电子琴和调试 (12) 4.1 调试工具 (12) 4.2 调试结果 (13) 4.3 电子琴设计中的问题及解决方法 (14) 第5章电子琴设计总结 (15) 参考文献 (16) 附录 (17)

前言 音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

基于51单片机及DS18B20温度传感器的数字温度计设计

基于51单片机及DS18B20温度传感器的数字温度计设计

摘要 本设计采用的主控芯片是ATMEL公司的AT89S52单片机,数字温度传感器是DALLAS 公司的DS18B20。本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。 单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。本次设计采用的AT89S52是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。本次设计的数字温度计采用的是DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。 本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报警程序报警。本设计的显示模块是用四位一体的数码管动态扫描显示实现的。在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。 关键词:单片机、数字温度计、DS18B20、AT89S52

目录 1 概述 ................................................................................................................................................................. - 1 - 1.1系统概述 ................................................................................................................................................. - 1 - 2 系统总体方案及硬件设计 ............................................................................................................................... - 2 - 2.1 系统总体方案 ........................................................................................................................................ - 2 - 2.1.1系统总体设计框图 ...................................................................................................................... - 2 - 2.1.2各模块简介 .................................................................................................................................. - 2 - 2.2 系统硬件设计 ........................................................................................................................................ - 5 - 2.2.1 单片机电路设计 ......................................................................................................................... - 5 - 2.2.2 DS18B20温度传感器电路设计.................................................................................................. - 6 - 2.2.3 显示电路设计 ............................................................................................................................. - 6 - 2.2.4 按键电路设计 ............................................................................................................................. - 7 - 2.2.5 报警电路设计 ............................................................................................................................. - 8 - 3 软件设计 ........................................................................................................................................................... - 9 - 3.1 DS18B20程序设计................................................................................................................................. - 9 - 3.1.1 DS18B20传感器操作流程.......................................................................................................... - 9 - 3.1.2 DS18B20传感器的指令表.......................................................................................................... - 9 - 3.1.3 DS18B20传感器的初始化时序................................................................................................ - 10 - 3.1.4 DS18B20传感器的读写时序.................................................................................................... - 10 - 3.1.5 DS18B20获取温度程序流程图................................................................................................ - 11 - 3.2 显示程序设计 ...................................................................................................................................... - 13 - 3.3 按键程序设计 ...................................................................................................................................... - 13 -4实物制作及调试 .............................................................................................................................................. - 14 -5电子综合设计体会 .......................................................................................................................................... - 15 -参考文献 ............................................................................................................................................................. - 16 -附1 源程序代码 .............................................................................................................................................. - 17 -附2 系统原理图 .............................................................................................................................................. - 32 -

基于51单片机的心率体温测试系统

摘要 本文介绍了一种基于51单片机的心率体温采集系统。首先介绍了51系列单片机的内部相关配置、工作原理以及编程方法,其次介绍了温度传感器PT100的相关测温方法以及通过红外光电传感器TCRT5000对射的方法来抓取人体脉搏信号。此次设计的电路部分主要包括:传感测量电路、放大电路、滤波整形电路、AD转换电路、计数显示电路、控制电路、电源供电电路等。通过按键开始测试,将PT100及TCRT5000输入的微弱信号进行放大整形,最后AD采集转换传送给单片机,在LCD1602上显示相关体温及心率信息。 本次硬件设计基于比较稳定可行、低成本的设计思想,软件设计采用模块化的设计方法,并且详细分析了红外传感器TCRT5000应用于心率测量上以及PT100应用于温度测量上的原理及优点,阐述了其他各配合电路的组成与工作特点,并且通过仿真进行电路的可行性验证,最后完成实物电路的设计,使得本次课题的预期结果得以实现。 关键词:51单片机;传感器;仿真;AD转换 -I

Abstract This paper introduced a heart rate and body temperature acquisition system that based on 51 single chip microcomputer. First the internal configurations of 51 single chip microcomputer are introduced. And the paper also tell how 51 single chip microcomputer works and how can we program on it. Then the method of using temperature sensor PT100 to get body temperature is introduced, and we use infrared photoelectric sensor TCRT5000 to get the pulse signal of human body.The design of the circuit mainly comprises sensing circuit , amplifying circuit, filtering and shaping circuit, AD converting circuit, counting and displaying circuit, controlling circuit, power supplying circuit and so on. When the keyboard is pressed, the system starts to get signal. The small signal from PT100 and TCRT5000 will be amplified and shaped. Then ad converter will change the analog signal into digital signal and send to 51 single chip microcomputer . At last LCD1602 will display the information of body temperature and heart rate. Keywords: Piezoelectric sensors;control circuit;counters;Multisim2001 simulation software control circuit. -II

基于单片机的数字温度计设计开题报告

****大学综合性设计实验 开题报告 ?实验题目:数字温度计的设计 ?学生专业10电气工程与自动化 ?同组人:———————— ?指导老师: 2013年4月

1.国内外现状及研究意义 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: ①传统的分立式温度传感器 ②模拟集成温度传感器 ③智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,AT89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89S51单片机,测温传感器使用DALLAS公司DS18B20,用液晶来实现温度显示。 2.方案设计及内容 (一)、方案一 采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

相关主题
文本预览
相关文档 最新文档