简易数字式温度计的设计

简易数字式温度计的设计
简易数字式温度计的设计

分数:

单片机技能+电子初级工程师认证培训

设计报告

题目:简易数字式温度计的设计

指导老师:文丽

完成时间: 2012-5-15

华南理工大学广州学院电子信息工程学院

目录

1 引言

2方案设计

3 系统的硬件设计

4 proteus 仿真图

5 系统的软件设计

6 心理体会

7 参考文献

1 引言

在当下,人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。

2方案设计

本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:

●利用温度传感器(DS18B20)测量某一环境温度

●测量范围为-55℃~+127℃,精度为±0.5℃

●如果测量范围超过+127℃或低于-55℃蜂鸣器就会自动进行报警

●用液晶显示器LCD进行实际温度值显示

采用AT89S52单片机P3.5口控制温度传感器DS18B20的温度测量,以液晶显示器LCD形式输出测量温度。

图2.1原理图

3 系统的硬件设计

3.1 主控制器

AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:

3.2 温度传感器工作原理

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

?独特的单线接口仅需一个端口引脚进行通讯

?简单的多点分布应用

?无需外部器件

?可通过数据线供电

?零待机功耗

?测温范围-55~+125℃,以0.5℃递增。华氏器件-67~+2570F,以0.90F 递增

?温度以9 位数字量读出

?温度数字量转换时间200ms(典型值)

?用户可定义的非易失性温度报警设置

?报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件

3.3 温度传感器接口电路

4 proteus 仿真图

4.1 仿真图

利用proteus按电路图排放元器件以及连接线路,用keil C51将写好的C

语言进行仿真,获得的仿真图如下所示:

图4.1电路仿真图

4.2 仿真程序

//DS18B20温度检测及其液晶显示

#include //包含单片机寄存器的头文件

#include //包含_nop_()函数定义的头文件

#include

#define uint unsigned int //宏定义unsigned int为 uint,为了使程序更简洁与出现少错误。以下uchar同

#define uchar unsigned char

uchar code digit[11]={"0123456789-"}; //定义字符数组显示数字

unsigned char code Str[]={"MAX:"}; //说明显示的是温度

unsigned char code Ostr[]={"MIN:"};

uchar code str1[]={"Welcome To Use"}; //开机启动时的说明文字

uchar code str2[]={"My Work 2012"}; //开机说明文字

uchar code Error[]={" DS18B20 ERROR"}; //说明没有检测到DS18B20

uchar code Error1[]={" PLEASE CHECK"}; //说明没有检测到DS18B20

uchar code Temp[]={"TEMP:"}; //说明显示的是温度

uchar code User[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00}; //温度单位uchar flag,tltemp; //负温度标志和临时暂存变量

/******************************************************************************* 以下是对液晶模块的操作程序

*******************************************************************************/ sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚

sbit RW=P2^1; //读写选择位,将RW位定义为P2.1引脚

sbit E=P2^2; //使能信号位,将E位定义为P2.2引脚

sbit BF=P0^7; //忙碌标志位,,将BF位定义为P0.7引脚

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

函数功能:延时1ms

(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒

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

void delay1ms()

{

uchar i,j;

for(i=0;i<4;i++)

for(j=0;j<33;j++)

;

}

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

函数功能:延时若干毫秒

入口参数:n

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

void delaynms(uint n)

{

uint i;

for(i=0;i

delay1ms();

}

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

以下是对蜂鸣器的定义和操作

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

sbit beep=P3^6;

void delay500us()

{

uchar i,j;

for(i=0;i<2;i++)

for(j=0;j<33;j++);

}

void BEEP( )

{

uint i;

for(i=0;i<1000;i++)

{

beep=0;

delay500us();

beep=1;

delay500us();

}

beep=1;

delaynms(1000);

}

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

函数功能:判断液晶模块的忙碌状态

返回值:result。result=1,忙碌;result=0,不忙

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

bit BusyTest(void)

{

bit result;

RS=0; //根据规定,RS为低电平,RW为高电平时,可以读状态

RW=1;

E=1; //E=1,才允许读写

_nop_(); //空操作

_nop_();

_nop_();

_nop_(); //空操作四个机器周期,给硬件反应时间

result=BF; //将忙碌标志电平赋给result

E=0; //将E恢复低电平

return result;

}

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

函数功能:将模式设置指令或显示地址写入液晶模块

入口参数:dictate

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

void WriteInstruction (uchar dictate)

{

while(BusyTest()==1); //如果忙就等待

RS=0; //根据规定,RS和R/W同时为低电平时,可以写入指令

RW=0;

E=0; //E置低电平(根据书上表7.7,写指令时,E为高脉冲, // 就是让E从0到1发生正跳变,所以应先置"0"

_nop_();

_nop_(); //空操作两个机器周期,给硬件反应时间

P0=dictate; //将数据送入P0口,即写入指令或地址

_nop_();

_nop_();

_nop_();

_nop_(); //空操作四个机器周期,给硬件反应时间

E=1; //E置高电平

_nop_();

_nop_();

_nop_();

_nop_(); //空操作四个机器周期,给硬件反应时间

E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令 }

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

函数功能:指定字符显示的实际地址

入口参数:x

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

void WriteAddress(uchar x)

{

WriteInstruction(x|0x80); //显示位置的确定方法规定为"80H+地址码x"

}

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

函数功能:将数据(字符的标准ASCII码)写入液晶模块

入口参数:y(为字符常量)

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

void WriteData(uchar y)

{

while(BusyTest()==1);

RS=1; //RS为高电平,RW为低电平时,可以写入数据

RW=0;

E=0; //E置低电平(根据书上表7.7,写指令时,E为高脉冲,

// 就是让E从0到1发生正跳变,所以应先置"0"

P0=y; //将数据送入P0口,即将数据写入液晶模块

_nop_();

_nop_();

_nop_();

_nop_(); //空操作四个机器周期,给硬件反应时间

E=1; //E置高电平

_nop_();

_nop_();

_nop_();

_nop_(); //空操作四个机器周期,给硬件反应时间

E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令

}

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

函数功能:对LCD的显示模式进行初始化设置

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

void LcdInitiate(void)

{

delaynms(15); //延时15ms,首次写指令时应给LCD一段较长的反应时间

WriteInstruction(0x38); //显示模式设置:16×2显示,5×7点阵,8位数据接口delaynms(5); //延时5ms ,给硬件一点反应时间

WriteInstruction(0x38);

delaynms(5); //延时5ms ,给硬件一点反应时间

WriteInstruction(0x38); //连续三次,确保初始化成功

delaynms(5); //延时5ms ,给硬件一点反应时间

WriteInstruction(0x0c); //显示模式设置:显示开,无光标,光标不闪烁

delaynms(5); //延时5ms ,给硬件一点反应时间

WriteInstruction(0x06); //显示模式设置:光标右移,字符不移

delaynms(5); //延时5ms ,给硬件一点反应时间

WriteInstruction(0x01); //清屏幕指令,将以前的显示内容清除

delaynms(5); //延时5ms ,给硬件一点反应时间

}

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

以下是DS18B20的操作程序

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

sbit DQ=P3^2;

uchar time; //设置全局变量,专门用于严格延时

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

函数功能:将DS18B20传感器初始化,读取应答信号

出口参数:flag

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

bit Init_DS18B20(void)

{

bit flag; //储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在 DQ = 1; //先将数据线拉高

for(time=0;time<2;time++) //略微延时约6微秒

;

DQ = 0; //再将数据线从高拉低,要求保持480~960us

for(time=0;time<200;time++) //略微延时约600微秒

; //以向DS18B20发出一持续480~960us的低电平复位脉冲

DQ = 1; //释放数据线(将数据线拉高)

for(time=0;time<10;time++)

; //延时约30us(释放总线后需等待15~60us让DS18B20输出存在脉冲)

flag=DQ; //让单片机检测是否输出了存在脉冲(DQ=0表示存在)

for(time=0;time<200;time++) //延时足够长时间,等待存在脉冲输出完毕

;

return (flag); //返回检测成功标志

}

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

函数功能:从DS18B20读取一个字节数据

出口参数:dat

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

uchar ReadOneChar(void)

{

uchar i=0;

uchar dat; //储存读出的一个字节数据

for (i=0;i<8;i++)

{

DQ =1; // 先将数据线拉高

_nop_(); //等待一个机器周期

DQ = 0; //单片机从DS18B20读书据时,将数据线从高拉低即启动读时序

_nop_(); //等待一个机器周期

DQ = 1; //将数据线"人为"拉高,为单片机检测DS18B20的输出电平作准备

for(time=0;time<2;time++)

; //延时约6us,使主机在15us内采样

dat>>=1;

if(DQ==1)

dat|=0x80; //如果读到的数据是1,则将1存入dat

else

dat|=0x00;//如果读到的数据是0,则将0存入dat

//将单片机检测到的电平信号DQ存入r[i]

for(time=0;time<8;time++)

; //延时3us,两个读时序之间必须有大于1us的恢复期 }

return(dat); //返回读出的十六进制数据

}

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

函数功能:向DS18B20写入一个字节数据

入口参数:dat

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

WriteOneChar(uchar dat)

{

uchar i=0;

for (i=0; i<8; i++)

{

DQ =1; // 先将数据线拉高

_nop_(); //等待一个机器周期

DQ=0; //将数据线从高拉低时即启动写时序

DQ=dat&0x01; //利用与运算取出要写的某位二进制数据,

//并将其送到数据线上等待DS18B20采样

for(time=0;time<10;time++)

;//延时约30us,DS18B20在拉低后的约15~60us期间从数据线上采样

DQ=1; //释放数据线

for(time=0;time<1;time++)

;//延时3us,两个写时序间至少需要1us的恢复期

dat>>=1; //将dat中的各二进制位数据右移1位

}

for(time=0;time<4;time++)

; //稍作延时,给硬件一点反应时间

}

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

函数功能:做好读温度的准备

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

void ReadyReadTemp(void)

{

Init_DS18B20(); //将DS18B20初始化

WriteOneChar(0xCC); // 跳过读序号列号的操作

WriteOneChar(0x44); // 启动温度转换

delaynms(200); //转换一次需要延时一段时间

Init_DS18B20(); //将DS18B20初始化

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器,前两个分别是温度的低位和高位

}

/****************************************************************************** 以下是与温度有关的显示设置

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

函数功能:显示没有检测到DS18B20

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

void display_error(void)

{

uchar i;

WriteAddress(0x00); //写显示地址,将在第1行第1列开始显示

i = 0; //从第一个字符开始显示

while(Error[i] != '\0') //只要没有写到结束标志,就继续写

{

WriteData(Error[i]); //将字符常量写入LCD

i++; //指向下一个字符

delaynms(100); //延时100ms较长时间,以看清关于显示的说明}

WriteAddress(0x40); //写显示地址,将在第1行第1列开始显示

i = 0; //从第一个字符开始显示

while(Error1[i] != '\0') //只要没有写到结束标志,就继续写

{

WriteData(Error1[i]); //将字符常量写入LCD

i++; //指向下一个字符

delaynms(100); //延时100ms较长时间,以看清关于显示的说明}

while(1) //进入死循环,等待查明原因

;

}

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

函数功能:显示温度符号

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

void display_symbol(void)

{

uchar i;

WriteAddress(0x40); //写显示地址,将在第2行第1列开始显示

i = 0; //从第一个字符开始显示

while(Temp[i] != '\0') //只要没有写到结束标志,就继续写

{

WriteData(Temp[i]); //将字符常量写入LCD

i++; //指向下一个字符

delaynms(50); //延时1ms给硬件一点反应时间

}

}

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

函数功能:显示温度的小数点

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

void display_dot(void)

{

WriteAddress(0x49); //写显示地址,将在第2行第10列开始显示

WriteData('.'); //将小数点的字符常量写入LCD

delaynms(50); //延时1ms给硬件一点反应时间

}

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

函数功能:显示温度的单位(℃)

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

void display_cent(void)

{

uchar j;

WriteInstruction(0x40); //设定CGRAM地址

delaynms(5);

for(j=0;j<8;j++ )

{

WriteData(User[j]);//写入自定义图形℃

}

WriteAddress(0x4b);//设定屏幕上的显示位置

delaynms(5);

WriteData(0x00); //从CGRAM里取出自定义图形显示}

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

函数功能:显示温度的整数部分

入口参数:x

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

void display_temp1(uchar x)

{

uchar j,k,l; //j,k,l分别储存温度的百位、十位和个位j=x/100; //取百位

k=(x%100)/10; //取十位

l=x%100%10; //取个位

WriteAddress(0x46); //写显示地址,将在第2行第7列开始显示if(flag==1) //负温度时显示“—”

{

WriteData(digit[10]); //将百位数字的字符常量写入LCD

}

else{

WriteData(digit[j]); //将十位数字的字符常量写入LCD

}

WriteData(digit[k]); //将十位数字的字符常量写入LCD

WriteData(digit[l]); //将个位数字的字符常量写入LCD

delaynms(50); //延时1ms给硬件一点反应时间

}

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

函数功能:显示温度的小数数部分

入口参数:x

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

void display_temp2(unsigned char x)

{

WriteAddress(0x4a); //写显示地址,将在第2行第11列开始显示

WriteData(digit[x]); //将小数部分的第一位数字字符常量写入LCD delaynms(50); //延时1ms给硬件一点反应时间

}

/*------------------------------------------------

按键扫描函数,返回扫描键值

------------------------------------------------*/

uchar keyscan(void )

{

uchar temp;

P1=0xff;

P1=0xf0;

temp=P1;

if(temp!=0xf0)

{

delaynms(10);

if(temp!=0xf0)

{

P1=0xfe;

temp=P1;

switch(temp)

{

case(0xee):return 1;break;

case(0xde):return 2;break;

case(0xbe):return 3;break;

case(0x7e):return 5;break;

}

}

}

}

/*------------------------------------------------

写入字符串函数

------------------------------------------------*/

void LCD_Write_String(uchar x,uchar y,uchar *s)

{

if (y == 0)

{

WriteInstruction(0x80 + x); //表示第一行

}

else

{

WriteInstruction(0xC0 + x); //表示第二行

}

while (*s)

{

WriteData(*s);

s ++;

}

}

/***************************************************** 函数功能:主函数

***************************************************/ void main(void)

{

uchar num,tem;

char displaytemp[7],displaytem[7];

int tempH=50,tempL=1;

uchar i,j;

uchar TL; //储存暂存器的温度低位

uchar TH; //储存暂存器的温度高位

uchar TN; //储存温度的整数部分

uchar TD; //储存温度的小数部分

LcdInitiate(); //将液晶初始化

delaynms(5); //延时5ms给硬件一点反应时间

WriteAddress(0x02);

i=0;

while(str1[i]!='\0')

{

WriteData(str1[i]);

i++;

delaynms(100);

}

WriteAddress(0x40);

j=0;

while(str2[j]!='\0')

{

WriteData(str2[j]);

j++;

delaynms(100);

}

delaynms(3000);

WriteInstruction(0x01);

delaynms(5);

if(Init_DS18B20()==1)

display_error();

display_symbol(); //显示温度说明

display_dot(); //显示温度的小数点

display_cent(); //显示温度的单位

while(1) //不断检测并显示温度

{

beep=0;

flag=0;

ReadyReadTemp(); //读温度准备

TL=ReadOneChar(); //先读的是温度值低位

TH=ReadOneChar(); //接着读的是温度值高位

if((TH&0xf8)!=0x00)//判断高五位得到温度正负标志

{

flag=1;

TL=~TL; //取反

TH=~TH; //取反

tltemp=TL+1; //低位加1

TL=tltemp;

if(tltemp>255) TH++; //如果低8位大于255,向高8位进1

TN=TH*16+TL/16; //实际温度值=(TH*256+TL)/16,即:TH*16+TL/16

//这样得出的是温度的整数部分,小数部分被丢弃了 TD=(TL%16)*10/16; //计算温度的小数部分,将余数乘以10再除以16取整,}

TN=TH*16+TL/16; //实际温度值=(TH*256+TL)/16,即:TH*16+TL/16

//这样得出的是温度的整数部分,小数部分被丢弃了

TD=(TL%16)*10/16; //计算温度的小数部分,将余数乘以10再除以16取整,

//这样得到的是温度小数部分的第一位数字(保留1位小数) display_temp1(TN); //显示温度的整数部分

display_temp2(TD); //显示温度的小数部分

delaynms(10);

num=keyscan();

switch(num)

{

case 1:if(tempH<127)tempH++;break;

case 2:if(tempH>-55)tempH--;break;

case 3:if(tempL<127)tempL++;break;

case 5:if(tempL>-55)tempL--;break;

default:break;

}

sprintf(displaytemp,"MAX:%3d",tempH);

LCD_Write_String(0x00,0,displaytemp);

sprintf(displaytem,"MIN:%3d",tempL);

LCD_Write_String(0x09,0,displaytem);

tem=TN+(TD*0.1);

if(tem>tempH)

{

BEEP();

}

else if(tem

{

BEEP( );

}

}

}

5 系统的软件设计

系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序5.1 主程序

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图5.1所示。

5.2读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图5.2示

5.3温度转换命令子程序

温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图5.3所示

5.4 计算温度子程序

计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,

图5.3温度转换流程图图

图5.3计算温度流程图

6 心理体会

这次课程设计,我们的组员都很用心的去完成。从这次课程设计中,而我真正学到了很多有用的知识。拿到课题后,我首先将《单片机应用系统设计技术》中有关本次设计的内容复习了一遍。然后根据设计要求,我去图书馆查阅了相关的资料,对整体框架做了一个初步的了解。做完准备工作后就正式开始设计与绘图。先要将没每一功能模块设计出来,再整体排版、连接。通过近两个星期的单片机课程设计,我终于完成了“基于单片机的数字温度计设计”,心中不免有些高兴,但高兴之余也有我值得深思的。

虽然以前做过类似的实验,但这次的课程设计还是让我学到了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法。有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。通过这次的单片机课程设计我认识到了,学习要理论联系实际,把学到的理论知识同实际运用相结合,才能是我们的知识融汇贯通,才能真正的学到知识,真正的做到学以致用。

课程设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我对电子技术课程的理解,还让我感受到了设计程序的乐趣。在这次设计中,我一点也不怕麻烦,反复设计、绘图与修改,就是希望能把这次课程设计做好。因此对我来说,这次课程设计是非常有意义的。

7 参考文献

单片机应用系统设计技术,51系列单片机开发宝典,微机原理及应用,

数字式温度计的设计毕业设计

摘要 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温X围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该高精度数字式温度计采用了由DALLAS公司生产的单线数字温度传感器DS18B20,它具有独特的单线总线接口方式。本毕业论文详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,该温度计具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。 二、总体方案设计 1、数字温度计设计方案论证 2.1.1方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦。 2.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 2.2方案二的总体设计框图 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。 2、硬件设计 1.1 工作原理及硬件框图 基于DS18B20的温度测量装置电路图如图1所示,包括单片机最小系统、温度传感器、和显示电路。温度传感器DS18B20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节),单片机对接收到的数字信号进行标度变换,转换成实际的温度值并送数码管显示。DS18B20传感器可置于离装置150米以内的任何地方。STC89C51是整个电路装置的控制核心,STC89C51内带4K字节的FlashROM,用户程序存放在此。 图2 系统硬件框图 3、系统分析: 本设计主要的任务是单片机软件的设计,而软件中的核心在于单片机与集成温度传感器DS18B20接口程序的设计,另外一点便是对数码管扫描显示的理解与运用。由于DS18B20集成了温度数据采集、模数转换

简易数字温度计设计汇总

课程设计任务书 2015—2016学年第二学期 专业:学号姓名: 课程设计名称:电子技术课程设计 设计题目:简易数字温度计的设计 完成期限:自2016 年6月13 日至2016 年 6 月26 日共 2 周 一、设计依据 本课题要求利用电子技术相关知识设计出一个能够实现±0.1℃精度的数字温度计。电路由温度采集电路、数字频率计电路和LED显示电路构成。通过本课题练习,学生的综合知识应用能力、设计能力将有较大提高,对今后从事电子产品的研制、生产、经营维修等打下基础。 二、主要内容及要求 主要内容: 1、给出详细的总体设计方案; 2、完成各部分具体功能电路设计,主要包括基于热敏电阻的温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计; 3、给出正确的电路图,仿真、调试验证各部分设计的正确性; 4、整理设计成果,完成课程设计说明书的撰写。 要求所设计数字温度计的输出温度的范围-20~+45℃、误差范围±0.1℃,具体温度显示采用数码管实现。 三、途径和方法 利用模拟电子技术和数字电子技术的相关知识设计一个数控温度计,可以先查阅相关资料(网上查找或参考相关书籍手册),明确课题的方向和目的,然后学习完成课题所需的理论知识,了解温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计的工作原理;在理解的基础上确定设计电路方案,完成电路设计,画出原理图及PCB印制版图,通过仿真分析验证设计的正确性,最后提交课程设计说明书一份。 四、时间安排

课题讲解:2小时 阅读资料:10小时 撰写设计说明书:12小时 修订设计说明书:6小时 五、主要参考资料 [1]孙丽霞.数字电子技术[M].北京:高等教育出版社,2006:174-196. [2]杨素行.模拟电子技术基础简明教程[M].北京:高等教育出版社,2007:40-92. [3]高吉祥.全国大学生电子设计竞赛培训系列教程-基本技能训练与单元电路设计[M].北京:电子工业出版社,2007:24-57. [4]黄智伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社, 2005.1:43-66. [5]彭介华.电子技术课程设计指导[M] .北京:高等教育出版社,2002.12:37-228. [6]陈永甫.新编555集成电路应用800例[M].北京:电子工业出版,2000:80-130. [7]萧宝瑾. protel 99 SE操作指导与电路设计实例(第一版)[M]. 太原:太原理工大学,2004:198-230. [8]张义申,陆坤. 电子设计技术[M]. 西安:电子科技大学出版,1996:48-62. 指导教师(签字):教研室主任(签字): 批准日期:年月日

数字温度计课程设计报告

课程设计报告书 课程名称:电工电子课程设计 题目:数字温度计 学院:信息工程学院 系:电气工程及其自动化 专业班级:电力系统及其自动化113 学号:6100311096 学生姓名:李超红 起讫日期:6月19日——7月2日 指导教师:郑朝丹职称:讲师 学院审核(签名): 审核日期:

内容摘要: 目前,单片机已经在测控领域中获得了广泛的应用,它除了可以测量电信以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。 单片机是一种特殊的计算机,它是在一块半导体的芯片上集成了CPU,存储器,RAM,ROM,及输入与输出接口电路,这种芯片称为:单片机。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便的优点,使它迅速的得到了推广应用,目前已成为测量控制系统中的优选机种和新电子产品中的关键部件。单片机已不仅仅局限于小系统的概念,现已广泛应用于家用电器,机电产品,办公自动化用品,机器人,儿童玩具,航天器等领域。 本次课程设计,就是用单片机实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于51单片机的数字温度计的设计。 本文介绍了一个基于STC89C52单片机和数字温度传感器DS18B20的测温 系统,并用LED数码管显示温度值,易于读数。系统电路简单、操作简便,能 任意设定报警温度并可查询最近的10个温度值,系统具有可靠性高、成本低、功耗小等优点。 关键词:单片机数字温度传感器数字温度计

数字温度计设计

数字温度计 摘要:温度计在实际生产和人们的生活中都有广泛应用。该设计是数字温度计,首先是对总体方案的选择和设计;然后通过控制LM35进行温度采集;将温度的变化转为电压的变化,其次设计电压电路,将变化的电压量通过放大系统转化为所需要的电压;再通过TC7107将模拟的电压转化为数字量后直接驱动数码管LED对实时温度进行动态显示。最后在Proteus仿真软件中构建了数字温度计仿真电路图,仿真结果表明:在温度变化时,可以通过电压的变化形式传递,最终通过3位十进制数显示出来。 关键词:温度计;电路设计;仿真

目录 1 设计任务与要求 (1) 2 方案设计与论证 (1) 3 单元电路的设计及仿真 (2) 3.1传感器 (2) 3.2放大系统 (2) 3.3 A/D转换器及数字显示 (4) 4 总电路设计及其仿真调试过程 (6) 4.1总电路设计 (6) 4.2仿真结果及其分析 (7) 5 结论与心得 (9) 6 参考文献 (11)

1 设计任务与要求 温度计是工农业生产及科学研究中最常用的测量仪表。本课题要求用中小规模集成芯片设计并制作一数字式温度计,即用数字显示被测温度。具体要求如下:(1)测量范围0~100度。 (2)测量精度0.1度。 (3)3位LED数码管显示。 掌握线性系统的根轨迹、时域和频域分析与计算方法; (2)掌握线性系统的超前、滞后、滞后-超前、一二阶最佳参数、PID等校正方法;(3)掌握MATLAB线性系统性能分析、校正设计与检验的基本方法。 2 方案设计与论证 数字温度计的原理是:通过控制传感器进行温度采集,将温度的变化转化为电压的变化;然后设计电压电路,将变化的电压通过放大系统转化为需要的电压;再通过A/D转换器将模拟的电压转换为数字量后驱动数码管对实时温度进行动态显示。 原理框图如图2-1所示: 传感器放大系统A/D转换显示 图2-1 数字温度计原理框图 由设计任务与要求可知道,本设计实验主要分为四个部分,即传感器、放大系统、模数转换器以及显示部分。经过分析,传感器可以选择对温度比较敏感的器件,做好是在某参数与温度成线性关系,比如用温敏晶体管构成的集成温度传感器或热敏电阻等;放大系统可以由集成运放组成或反相比例运算放大器;A/D转换器需要选择有LED 驱动显示功能的,而可供选择的参考元件有ICL7107,ICL7106,MC14433等;显示部分用3位LED数码管显示。 方案一:用一个热敏电阻,通过热敏电阻把温度转化为电压,再得到每一度热敏电

简易数字温度计设计

简易数字温度计设计 Prepared on 22 November 2020

课程设计任务书 2015—2016学年第二学期 专业:学号姓名: 课程设计名称:电子技术课程设计 设计题目:简易数字温度计的设计 完成期限:自2016年6月13日至2016年6月26日共2周 一、设计依据 本课题要求利用电子技术相关知识设计出一个能够实现±℃精度的数字温度计。电路由温度采集电路、数字频率计电路和LED显示电路构成。通过本课题练习,学生的综合知识应用能力、设计能力将有较大提高,对今后从事电子产品的研制、生产、经营维修等打下基础。 二、主要内容及要求 主要内容: 1、给出详细的总体设计方案; 2、完成各部分具体功能电路设计,主要包括基于热敏电阻的温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计; 3、给出正确的电路图,仿真、调试验证各部分设计的正确性; 4、整理设计成果,完成课程设计说明书的撰写。 要求所设计数字温度计的输出温度的范围-20~+45℃、误差范围±℃,具体温度显示采用数码管实现。 三、途径和方法

利用模拟电子技术和数字电子技术的相关知识设计一个数控温度计,可以先查阅相关资料(网上查找或参考相关书籍手册),明确课题的方向和目的,然后学习完成课题所需的理论知识,了解温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计的工作原理;在理解的基础上确定设计电路方案,完成电路设计,画出原理图及PCB印制版图,通过仿真分析验证设计的正确性,最后提交课程设计说明书一份。 四、时间安排 课题讲解:2小时 阅读资料:10小时 撰写设计说明书:12小时 修订设计说明书:6小时 五、主要参考资料 [1]孙丽霞.数字电子技术[M].北京:高等教育出版社,2006:174-196. [2]杨素行.模拟电子技术基础简明教程[M].北京:高等教育出版社,2007:40-92. [3]高吉祥.全国大学生电子设计竞赛培训系列教程-基本技能训练与单元电路设计[M].北京:电子工业出版社,2007:24-57. [4]黄智伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社,:43-66. [5]彭介华.电子技术课程设计指导[M].北京:高等教育出版社,:37-228. [6]陈永甫.新编555集成电路应用800例[M].北京:电子工业出版,2000:80-130. [7]萧宝瑾.protel99SE操作指导与电路设计实例(第一版)[M].太原:太原理工大学,2004:198-230. [8]张义申,陆坤.电子设计技术[M].西安:电子科技大学出版,1996:48-62.

简易温度计设计

信息与电气工程学院 课程设计说明书(2014 /2015学年第二学期) 课程名称:《单片机原理及应用》课程设计 题目:简易温度计设计 专业班级: 学生姓名: 学号: 指导教师: 设计周数:2周 设计成绩: 年月日

1、实验目的 设计并制作出一个以单片机为核心的简易温度计系统 2、主要任务 1、确定整体设计方案; 2、设计键盘输入电路; 3、设计显示电路; 4、合理分配地址,编写系统程序; 5、采用Proteus进行仿真,软硬件联机调试。 3、技术要求 (1)以MCS-51单片机为核心,18b20为敏感元件,设计出一简易温度计; (2)使用三位数码管显示温度,并能进行温度设置; 4、以MCS-51单片机为核心设计简易温度计的简介 传统的温度检测以热敏电阻为温度敏感元件,需要后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定误差。以MCS-51为核心,18b20为测温传感器,通过3位共阳极LED数码管传送数据,实现温度显示。具有读数方便,测温范围广,测温精确,数字显示,可靠性高等特点。 5

6、系统硬件电路原理图

6.1 时钟电路 晶振电路由一个晶振与两个电容连接组成,与单片机的18、19管脚相连,另一端接地,电路图为: 电容大小没有固定值,一般5到30pf,晶振是给单片机提供工作信号脉冲的。这个脉冲就是单

片机的工作速度。一般用内部振荡方式,这种方式比较稳定。晶振频率为12MHZ,单片机工作速度就是每秒12M。单片机的工作频率是有范围的,不能太大,一般24M就不上去了,不然不稳定。 6.2 复位电路 复位电路由一个有极性电容、一个电阻与一个按键连接而成,一端连单片机的RST端,另一端接电源,电源另一端接单片机的EA。 其中电容是通过充放电来实现维持一段时间的高电平,电容充电时间与R C的值成正比,当按下按键时,由于电容充电,RST维持一段时间高电平以达到复位的目的。 一般情况下,选择大小为10到30uF的电容,而电阻一般选用1到10K?的。 电路图为: 6.3 DS18b20温度传感电路 此部分电路负责温度信号的采集、将温度信号转换成数字代码储存在温度控制寄存器中,向单片机发送温度数据等重要功能,主要由DS18b20芯片来完成,该电路的电路图为: 其中DQ为DS18b20的数据输入/输出端引脚,与单片机的P3.5口相连,单片机通过P3.5口向DS18b20发出各种命令,并读取其转换后的温度数据。 由于DS18B20单线通信功能是分时完成的,所以有严格的时隙概念,读写时序很重要。系统

数字温度计设计

数字温度计设计 Last updated on the afternoon of January 3, 2021

电子技术课程设计报告(数字温度计) 姓名: 学号: 专业年级:电信111 指导教师: 设计时间:2013/06/17-2013/06/27

第一章引言 科技的高速发展,科技产品在不断的的更新。传统的温度计已经不能满足人们对温度准确度和精确度的要求。这些参数的获取都需要有高科技做保证,在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器随着温度而引起的物理参数变化有:膨胀,电阻,电容,电动势,磁性能,频率,光学特性及热噪声等等。温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。 当今信息化时代展过程中,各种信息的感知、采集、转换、传输和处理的功能器件已经成为各个应用领域中不可缺少的重要技术工具。传感器是信息采集系统的首要部件,是实现现代化测量和自动控制的主要环节,是现代信息产业的源头,又是信息社会赖以存在和发展的物质与技术基础。可见理解和撑握传感器的知识与技术有着其极重要的意义。 对采集的信息都希望用最直接的方式显示出来,但是传感器所采集的信息是模拟的信号,并且信号是非常微小的,需要用放大器进行放大。模拟信号不能直接用数字仪器直接显示,通过模数转换之后就可以将模拟量转变成数字量,在通过数码管进行显示。有些可以直接与单片机链接。数码管有共阳极与共阴极两类,本次设计采用的是共阳极的七段数码管。 第二章设计任务与要求 ①设计任务:设计一数字温度计,将测量的温度值转换为数字量并显示出来,即将收集的模拟的信号转换成数字信号。 ②设计要求:必须选择一个温度传感器,并且所设计的数字温度计测量的范围为0-100℃,采用数模转换(单片机除外),LED数码管进行数字显示。 第三章设计方案 设计方案主要包括温度的采集与信号的放大,数模转换,数码显示三部分。

数字式温度计的设计与制作

数字式温度计的设计与制作 10级电子1班 一项目提出 1.1 任务 为某温室大棚设计一个数字式温度计,以便当棚内温度变化时,能及时提醒工作人员进行处理,保证温室温度变化在较小范围。 1.2 要求 (1)能实现温度数据的采集与记录。 (2)能实现各测量值的显示,精度为0.1摄氏度,温度范围在-55到+55摄氏度。 (3)能实现上、下限报警。 二项目分析 2.1 任务意义 一些温室大棚常常需要有较好的恒温性,即当温度变化达到一定数值时,需要及时调整,以保持温度恒定,保证作物的品质。现某大棚希望设计一个数字式温度计,能实时测量和显示大棚温度。当温度发生较大变化时,能及时做出报警提示。 2.2 系统方案设计 根据醒目的需求,本系统使用STC89C52单片机,DS18B20数字温度传感器等,监测大棚的温度变化。具体功能如下: *温度检测:系统能够实时检测大棚温度,温度分辨率为0.1摄氏度,温度范围为—55到+55摄氏度。 *温度显示:系统能实时显示大棚温度值,显示到小数点后一位,在设置上、下限报警时,显示上、下限提醒标志。 *温度报警:系统能够设置大棚温度范围,当棚内温度超出设定范围时发生报警。 *报警设置:系统能够设置上、下限报警温度值,设定精度为0.1摄氏度。 根据以上功能分析,数字温度计基本结构如图1所示,由单片机最小系统、按键模块、温度采样模块、显示模块和报警模块等组成。

图1:数字温度计的基本结构 三项目相关知识 3.1 数字温度传感器DS18B20的使用 可以测量温度的器件很多,但DS18B20是一种无须进过其它变换电路,直接输出被测温度数字量的传感器。它采用单总线专用技术,可通过串口线或其它I/O口线与计算机接口相连,支持多器件扩展,使用相当方便,测温范围为-55到+125摄氏度,其分辨率为0.5摄氏度,最高可达0.0625摄氏度。 3.1.1 DS18B20的外观及内部结构 DS18B20采用3脚TO-92A封装,外形如同普通的半导体三极管,除此之外,DS18B20也有8脚的SOIC封装及6脚的TSOC封装等形式,如图2所示。 图2:DS18B20封装形式

数字温度计的设计与仿真

单片机原理与应用设计课程综述 设计项目数字温度计 任课教师 班级 姓名 学号 日期

基于AT89C51的数字温度计设计与仿真摘要:随着科学技术的不断发展,温度的检测、控制应用于许多行业,数字温度计就是其中一例,它的反应速度快、操作简单,对环境要求不高,因此得到广泛的应用。 传统的温度测量大多使用热敏电阻,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路将模拟信号转换成数字信号才能由单片机进行处理。本课题采用单片机作为主控芯片,利用DS18B20来实现测温,用LCD液晶显示器来实现温度显示。 温度测量范围为0~119℃,精确度0.1℃。可以手动设置温度上下限报警值,当温度超出所设报警值时将发出报警鸣叫声,并显示温度值,该温度计适用于人们的日常生活和工、农业生产领域。 关键词:数字温度计;DS18B20;AT89C51; LCD1602 一、绪论 1.1 前言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求也越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机已经在测控领域中获得了广泛的应用。 1.2 课题的目的及意义 数字温度计与传统温度计相比,具有结构简单、可靠性高、成本低、测量范围广、体积小、功耗低、显示直观等特点。该设计使用AT89C51,DS18B20以及通用液晶显示屏1602LCD等。通过本次设计能够更加了解数字温度计工作原理和熟悉单片机的发展与应用,巩固所学的知识,为以后工作与学习打下坚实的基础。 数字温度计主要运用在工业生产和实验研究中,如电力、化工、机械制造、粮食存储等领域。温度是表征其对象和过程状态的重要参数之一。比如:发电厂锅炉

简易数字温度计课程设计

唐山学院 单片机原理课程设计 题目简易数字温度计 系 (部) 智能与信息工程学院 班级 姓名 学号 指导教师 2017 年 1 月 2 日至 1 月 6 日共 1 周 2017年1月4日

《单片机原理》课程设计任务书

课程设计成绩评定表

目录 1.方案论证 0 2.硬件设计............................................ 错误!未定义书签。 2.1系统构成 (1) 2.2器件选择 (1) 2.2.1 AT89C51概述 (1) 2.2.2 AT89C51引脚功能 (3) 2.2.3复位电路的设计 (4) 2.3数字温度传感器 (5) 2.3.1 DS1621的技术指标 (5) 2.3.2 DS1621的工作原理 (6) 2.4 单片机和DS1621接口电路...................... 错误!未定义书签。 2.5 七段LED数码显示电路 (7) 3.系统软件设计 (9) 3.1 编程语言选择 (9) 3.2 主程序的设计 (9) 3.3 温度采集模块设计 (10) 3.4 温度计算模块设计 (10) 3.5 串行总线编程 (11) 4.软硬件调试结果分析 (12) 5.设计总结 (13) 6.参考文献 (14) 附录A 多点温度采集系统电路原理图 (15)

1.方案论证 该系统可以使用方案一:热敏电阻;方案二:数字温度芯片DS1621实现。采用数字温度芯片DS1621 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS1621 的最大特点之一采用了单总线的数据传输,由数字温度计DS1621和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。 控制工作,还可以与PC 机通信上传数据,另外AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。 该系统利用AT89C51芯片控制温度传感器DS1621进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。故采用了方案二。 测温电路的总体设计方框图如图1-1所示,控制器采用单片机AT89C51,温度传感器采用DS1621,用5位LED数码管以串口传送数据实现温度显示。 图1-1 测温电路的总体设计方框图

DSB数字温度计的设计

单片机原理及应用 课程设计报告书 题目:DS18B20数字温度计的设计 姓名学号:李泽123621046 熊侃123621042 龚元123621038 专业班级:信本一班 指导老师:王耿 设计时间: 2015年6月

一、课题介绍 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器 18B20,单片机AT89S52,,四位共阴极数码管一个,电容电阻若干。18B20支持“一线总线”接口,测量温度范围-55°C~+125°C 。在-10~+85°C 范围内,精度为±0.5°C 。18B20的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED 显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED 显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55°C~+128°C ,由于能力有限,不能实现报警功能。 二、方案论证 方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦。 方案设计框图如下: 方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

数字式温度计设计课程设计

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:数字式温度计的设计学院名称:电气信息学院 专业班级:15电力(3)班 学生学号:1504200623 学生姓名:曾高 学生成绩: 指导教师:易先军 课程设计时间:2017.10.30 至2017.11.5

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,1.5倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,1.5倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,1.1,……;论文中的表、图和公式按章编号,如:表1.1、表1.2……;图1.2、图1.2……;公式(1.1)、公式(1.2)。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 用DS18B20设计一款能够显示当前温度值的温度计; 2. 通过切换按钮可以切换华氏度和摄氏度显示; 3. 测量精度误差在正负0.5摄氏度以内。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

简易数字温度计的设计与制作

简易数字温度计的设计与制作 来源:21IC中国电子网作者:郇玉龙赵宁 摘要:单片机在日用电子产品中的应用越来越广泛,温度则是人们日常生活中常常需要测量和控制的一个量。本文作者采用AT89C51单片机和温度传感器AD5 90从硬件和软件两方面介绍了一款简易数字温度计的设计过程,并对硬件原理图和程序流程图作了简洁的描述。 关键词:单片机AT89C51;温度传感器AD590;数字温度计;模数转换;数码显示 1.前言 随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器AD590具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,本文作者利用集成温度传感器AD590设计并制作了一款基于AT89C51的4位数码管显示的数字温度计,其电路简单,软硬件结构模块化,易于实现。 2.系统功能原理及硬件组成 该数字温度计利用AD590集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器ADC0804转换成单片机能够处理的数字信号,然后送到单片机AT89C51中进行处理变换,最后将温度值显示在D4、D3、D 2、D1共4位七段码LED显示器上。 系统以AT89C51单片机为控制核心,加上AD590测温电路、ADC模数转换电路、4位温度数据显示电路以及外围电源、时钟电路等组成。系统组成框图如图1所示。

图1 系统组成框图 2.1 AT89C51单片机 Atmel公司的生产的AT89C51单片机是一种低功耗/低电压、高性能的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,片内集成4K字节可改变程序Flash存储器,具有低功耗,速度快,程序擦写方便等优点,完全满足本系统设计需要。 单片机P0口作为ADC0804转换数据的输入端,P2.0接ADC0804的INTR端检测数据转换是否结束。P1.0~P1.3的输出信号接到译码器7447上作为数码管的显示,P1.4~P1.7则作为4个数码管的位选信号控制。P3口有特殊的功能,P3. 6用于控制ADC0804的启动,P3.7用于控制读取ADC0804的转换结果。 2.2 AD590温度传感器 AD590是美国模拟器件公司生产的单片集成两端感温电流源。AD590测温范围为-55℃~+150℃,满足人们日常生产和生活中的温度范围。AD590电源电压可在4V~6V范围变化,可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。AD590产生的电流与绝对温度成正比,它有非常好的线性输出性能,温度每增加1℃,其电流增加1μA。 AD590温度与电流的关系如下表所示:

温度计的设计报告

温度计的设计 一、设计内容和要求 本设计主要介绍了用单片机和数字温度传感器DS18B20相结合的方法来实现温度的采集,以单片机AT89C51芯片为核心,辅以温度传感器DS18B20和LED数码管及必要的外围电路,构成了一个单片机数字温度计。其主要研究内容包括两方面,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示。通过利用数字温度传感器DS18B20进行设计,能够满足实时检测温度的要求,同时通过LED数码管的显示功能,可以实现不间断的温度显示,并带有复位功能。 本次设计的主要思路是利用51系列单片机,数字温度传感器DS18B20和LED数码显示器,构成实现温度检测与显示的单片机控制系统,即数字温度计。通过对单片机编写相应的程序,达到能够实时检测周围温度的目的。 通过对本课题的设计能够熟悉数字温度计的工作原理及过程,了解各功能器件(单片机、DS18B20、LED)的基本原理与应用,掌握各部分电路的硬件连线与程序编写,最终完成对数字温度计的总体设计。根据实验要求实现测温范围在-55~128 o C的LED数码管显示。 本次设计的主要要求: (1)根据设计需要,选用AT89C51单片机为核心器件; (2)温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机的串行接口P0.0引脚相连; (3)显示电路采用8个LED数码管显示器接P1口并行显示温度值,数码管由P2口(P2.2~P2.3)选通,动态显示。 (4)给出全部电路和源程序。 二、课程设计的目的和意义 数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。 温度计是常用的热工仪表,常用于工业现场作为过程的温度测量。在工业生产过程中,不仅需要了解当前温度读数,而且还希望能了解过程中的温度变化情况。随着工业现代化的发展,对温度测量仪表的要求越来越高,而数字温度表具有结构简单,抗干扰能力强,功耗小,可靠性高,速度快等特点,更加适合于工业过程中以及科学试验中对温度进行在线测量的要求。近年来,数字温度表广泛应用在各个领域,它与模拟式温度表相比较,归纳起来有如下特点。⑴准确度高,⑵测量范围宽、灵敏度高,⑶测量速度快,⑷使用方便、操作简单,⑸抗干扰能力强,⑹自动化程度高,⑺读数清晰、直观方便。 数字温度计的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的仪表。数字化是当前计量仪器仪表发展的主要方向之一。而高准确度数字温度计的出现,又使温度计进入了精密标准测量领域。与此相适应,测量的可靠性、准确性显得越来越重要。 三、课程设计的总体方案和思路 根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示、报警等功能。选用数字温度传感DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。 该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单

简易数字式温度计的设计

分数: 单片机技能+电子初级工程师认证培训 设计报告 题目:简易数字式温度计的设计 指导老师:文丽 完成时间: 2012-5-15 华南理工大学广州学院电子信息工程学院

目录 1 引言 2方案设计 3 系统的硬件设计 4 proteus 仿真图 5 系统的软件设计 6 心理体会 7 参考文献

1 引言 在当下,人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。 2方案设计 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下: ●利用温度传感器(DS18B20)测量某一环境温度 ●测量范围为-55℃~+127℃,精度为±0.5℃ ●如果测量范围超过+127℃或低于-55℃蜂鸣器就会自动进行报警 ●用液晶显示器LCD进行实际温度值显示 采用AT89S52单片机P3.5口控制温度传感器DS18B20的温度测量,以液晶显示器LCD形式输出测量温度。 图2.1原理图

简单多点温度测量系统课程设计

课程设计报告(2010 —2011 年度第2学期) 题目:基于DS18B20的多点温度测量系统 院系: 姓名: 学号: 专业: 指导老师: 2011年5 月22 日

目录 1设计要求…………………………………………………………………………2设计的作用、目的………………………………………………………………3设计的具体实现…………………………………………………………………. 3.1系统概述……………………………………………………………………. 3.2单元电路设计与分析……………………………………………………… 3.3电路的安装与调试…………………………………………………………4心得体会及建议………………………………………………………………… 4.1心得体会…………………………………………………………………… 4.2建议…………………………………………………………………………5附录………………………………………………………………………………6参考文献…………………………………………………………………………

基于DS12B20的多点温度测量系统设计报告 1设计要求 运用DS12B20温度测量芯片实现一个多点温度测量系统,要求如下: (1).测量点为两点。 (2).测量的温度为-40~+40°C (3).温度测量的精度为±0.5°C (4).测量系统的响应时间要小于1S。 (5).温度数据的传输方式采用串行数据传送的方式。 2 设计的作用、目的 通过本设计可以进一步了解熟悉单片机的控制原理以及外设与单片机的数据通信方法,尤其是串行通信方法以及单片机与外设间的接口问题。 本设计旨在提高学生的实际应用系统开发能力,增长学生动手实践经验,激起学生学以致用的兴趣。 3设计的具体实现 3.1系统概述 本系统分为温度采集模块、核心处理模块、控制模块和显示模块。温度采集模块由DS18B20温度测量芯片构成,它负责测量温度后将温度量转化为数字信号,传输到数据处理模块;核心处理模块由AT89S52单片机组成,它负责与温度采集模块进行数据通信、对数据进行操作处理已经对各种外设的响应与控制;控制模块由几个按键组成,实现对测量点的选择以及电路复位的操作;显示模块由一块四位的八段译码显示管和驱动芯片组成,它的作用是显示测量的温度值。 系统模块组成图:

热敏电阻数字温度计的设计与制作

评分: 大学物理实验设计性实验 实《用热敏电阻改装温度计》实验提要 设计要求 ⑴通过查找资料,并到实验室了解所用仪器的实物以及阅读仪器使用说明 书,了解仪器的使用方法,找出所要测量的物理量,并推导出计算公式,在此基础上写出该实验的实验原理。 ⑵选择实验的测量仪器,设计出实验方法和实验步骤,要具有可操作性。 ⑶根据实验情况自己确定所需的测量次数。 实验仪器 惠斯通电桥,电阻箱,表头,热敏电阻,水银温度计,加热电炉,烧杯等实验所改装的温度计的要求 (1)要求测量范围在40℃~80℃。 (2)定标时要求测量升温和降温中同一温度下热敏温度计的指示值(自己确定测量间隔,要达到一定的测量精度)。 (3)改装后用所改装的温度计测量多次不同温度的热水的温度,同时用水银温度计测出此时的热水温度(作为标准值),绘制出校正曲线。 提交整体设计方案时间 学生自选题后2~3周内完成实验整体设计方案并提交。提交整体设计方案,要求电子版。用电子邮件发送到指导教师的电子邮箱里。 思考题 如何才能提高改装热敏温度计的精确度? 用热敏电阻改装温度计 实验目的: 1.了解热敏电阻的特性; 2.掌握用热敏电阻测量温度的基本原理和方法; 3.进一步掌握惠斯通电桥的原理及应用。 实验仪器:

惠斯通电桥,电阻箱,热敏电阻,水银温度计,滑动变阻器,微安表,加热电炉,烧杯等 实验原理: 1.惠斯通电桥原理 惠斯通电桥原理电路图如图1所示。当电桥平衡时,B,D之间的电势相等,桥路电流I=0,B,D之间相当于开路,则U B=U D;I1=I x,I2=I0; 于是I1R1=I2R2,I1R X=I2R0 由此得R1/R X=R2/R0 或R X=R0R1/R2 (1) (1)式即为惠斯通电桥的平衡条件,也是用来测量 电阻的原理公式。欲求R X,调节电桥平衡后,只要知道 R1,R2,R0的阻值,即可由(1)式求得其阻值。 2.热敏电阻温度计原理 热敏电阻是具有负的电阻温度系数,电阻值随温度升高而迅速下降,这是因为热敏电阻由半导体制成,在这些半导体内部,自由电子数目随温度的升高增加的很快,导电能力很快增强,虽然原子振动也会加剧并阻碍电子的运动。但这样作用对导电性能的影响远小于电子被释放而改变导电性能的作用,所以温度上升会使电阻下降。 这样我们就可以测量电桥非平衡时通过桥路的电流大小来表征温度的高低。 热敏电阻温度计的设计电路图如图2示

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

基于单片机的简易数字温度计的设计 张逊 摘要本文介绍了一种基于单片机的简易数字温度计的设计。该设计主要由三个模块组成:温度采集模块,数据处理模块及显示模块。温度采集主要由温度传感器DS18B20来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片STC89C52RC来完成,其负责把DS18B20传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着芯片DS18B20相互通讯。 该系统的数字温度计电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字温度计可以测量得温度范围—55~+125℃并通过一个四位一体的7段数码管显示出来。 关键词单片机;数字温度计;温度传感器;STC89C52RC;DS18B20

Based on single chip simple digital thermometer design ZhangXun Abstract This paper introduces a kind of based on single chip simple digital thermometer design. This design mainly consists of three modules: temperature acquisition module, data processing module and display module. Temperature acquisition is mainly composed of temperature sensor DS18B20 to complete, it is responsible for the collection of the analog conversion to the corresponding digital quantity in the transfer to the data processing module. Data processing by the chip STC89C52RC to complete, which is responsible for the DS18B20 transfer to the digital quantity in the course of data processing, produce the corresponding display code to display module display; In addition, it also control the chip DS18B20 mutual communication. The system of the digital thermometer circuit is simple, the element used less, low cost, and high measuring accuracy and reliability. The digital thermometer can measure temperature range - 55 ~ + 125 ℃ and through a quaternity seven period of digital tube display . Keywords Single-chip microcontroller; Digital thermometer; Temperature sensor; AT89C51; DS18b20

相关文档
最新文档