基于数字温度计的多点温度检测系统

基于数字温度计的多点温度检测系统
基于数字温度计的多点温度检测系统

基于数字温度计的多点温度检测系统

目录

摘要 4

整体框架 6

1 系统方案设计和论证6

2 系统硬件设计6

2.1单片机选择7

2.2 电源模块8

2.3 显示模块9

2.4 温度传感器10

3 单元电路的设计11

3.1主控制模板11

3.2 电源模块12

3.3显示模块12

3.4 单片机的最小运行系统12

3.5 温度传感器的电路13

3.6 蜂鸣器,发光二极管的电路14

4 软件设计 (16)

4.1 程序结构分析16

4.2 系统程序流程图16

4.3 DS18B20的初始化程序18

4.4 读温度子程序流程图18

4.5 显示模块软件设计19

4.6 报警控制电路软件设计20

4.7 多路数据巡回显示21

5 整机制作和调试 (21)

5.1 元器件焊接 (22)

5.2 整机调试 (22)

6.总结 (22)

参考资料 (23)

结束语 (24)

附录1 部分子程序 (25)

摘要:智能是新时代的发明,是人类信息时代发展的美好前景,人们可以给它设定一个模式,然后在某个环境中按照给定的模式自己既能够运作,根本不需要人们花时间去管理它,监控它,能够应用在家具,科学探险等方面。多路的温度检测只是其中一个很小方面的体现,本次设计的项目是基于数字温度计的多点温度检测系统,选择使用AT89C51的单片机作为微控制器,而设计出来的一种2路高低温智能检测温度的报警系统装置,系统检测温度的精确度能达到0.1度。DS18B20温度传感器对环境进行检测得到一个确定的温度数值,如果检测到的温度高于或低于最开始程序中就设定好的温度值时,蜂鸣器就会报警,提醒人们注意安全防范,做好应对措施,并且会将得到的数据保存在单片机的内部存储中,就算是没电的情况下也能将数据保存下来,不会造成数据的丢失,给人们的统计造成困扰。在通电时,系统就会开始工作,1602的液晶显示屏时刻显示其工作状态。我们选择的是5节与3号干电池来供电。

Abstract: intelligent is the invention of the new era, is the information age development prospects, it

need people management, and can be used in scientific explorations, and so on. 2 temperature detection system is a manifestation, temperature detection system in the design of the is used AT89C51

single-chip computer as the micro controller, and design a 2 road detection . And it has the function of no electric power saving, and the data is stored in the internal memory of the single chip microcomputer. When in working condition, it is displayed on the LCD screen of 1602. Power we use 3 and 5 dry batteries to power.

关键词:

AT89C51单片机DS18B20温度传感器1602显示液晶

整体的框架设计

1 设计方案与论证

根据市面价格的比较,我优先采用AT89C51系列的单片机作为控制的单元,因为此类型单片机在市场上价格这方面比较的便宜,还有是其具有比较强大的功能,与其他的单片机相比性价比还是很高的,而且在市场上或个体商户店中都很容易买到,非常的方便,我们能够省下了不少时间去做一些其他的事情。由DS18B20温度传感器对某环境进行温度信息的采集,然后将采集到的数据送入到主控的单片机中,由单片机完成余下的数据处理,从而能够自己智能的管理自己。显示器我选择使用1602LCD,本系统操作灵活,并且能实时显示温度传感器的工作状态。同时都记录下来,选择用软件的方法来解决复杂的硬件电路部分,可以使系统硬件简洁,易操作,有利于各方面的功能完美实现,用于本项目足够了。

2 系统硬件的设计

2.1 单片机选择

方案一:

使用CPLD作为系统部件的核心,来处理和控制系统。因为CPLD的程序容易编写、运转的速度快、丰富的可用资源、开发的周期短等优点,也可以使用VHDL语言来进行简单的编程。与其它单片机相比,控制起来不方面。还有就是CPLD的对信息处理的速度非常快,而本项目对处理信息的要求并不是很高,够用就行了。如果非要使用CPLD的话,在系统控制方面上必定会遇到许多没必要遇到的一些困难。所以,我们并不采用这种方案,进而提出了第二种方案。

方案二:

整个系统部件的核心是51系列的单片机,来达到本项目的检测目的。经过系统的分析之后,使用

AT89C51单片机设计出一种智能的温度检测系统,通过DS18B20的温度传感器得到一个温度数值,当此温度小于或者大于程序中开始设定好的温度值时蜂鸣器就会想起来报警,在这个方面上,单片机就能够将其快捷、方便、简单,丰富的资源、控制功能好以及位寻址的操作功能、还有市场单价便宜等优点充分体现出来。相对于此次项目的设计绰绰有余,更难的是51单片机在价格方面非常便宜,我们能够话更少的钱实现相同的功能。

2.2 电源模块

根据实际的业务需要我们想出了以下几种系统供电的方案。

方案I:

采用10V的蓄电池给系统供电。蓄电池的电流驱动能力很强大,电压输出方面也非常的稳定。不过蓄电池的体积太大,需要占用的地方也就多,同时市面上的价格也贵,不适合大学生用,蓄电池用在这种小设计中是不划算的,也非常不方便。所以提出了第二种方案。

方案2:

采用3节1.5 V 的五号干电池串联在一起来给系统供电,可以持续不间断的给传感器供电,并且保证总电压在4.5V左右稳定,而4.5V的电压正好是单片机传感器的工作电压范围中,方便使用和记录。通过不断的实验说明,这个系统用此方案能够稳定的运行。更换电池方面也为大家带来了方便。

2.3 显示模块

方案1:

使用数码管。因为数码管能够快速运转,容易操作,显示的结果简单易懂从而被人们大量采用。由于显示器要时刻显示检测的环境温度。所以需要一个设置菜单,而数码管的条件有限,有许多内容无法显示。

方案2:

用1602LCD液晶显示器来显示温度。由于LCD液晶具有内容丰富,显示快速、清晰、信息量大等多种优点,使人们的使用非常方便。1602LCD液晶用在此系统中显示已经够用了,通过比较我们决定采用此方案。

2.4 温度传感器

方案一:

使用铂电阻非线性测温的方法校正,因为热敏电阻的感温效应会时刻随着系统被测温度的变化而不断发生变化,然后再用桥式电路采集电压或电流,再通过放大器将桥式电路采集到的信号进行一次放大,再通过A\D转换器的作用,这样就能够将被检测到的温度通过显示电路清晰地显示在LCD液晶上。

图1铂电阻的桥式测温电路图

方案二:

使用DS18B20数字温度传感器来检测温度,在与固定好的单片机的电路连接在一起,这样就能获取温度传感器检测的环境温度了,然后进行转换,从而达到此次项目设计的目的。

图2 DS18B20的测温系统图

两种方案的比较:

第一种是靠模拟温度传感器来采集温度值,用过这种方式得到的数据,在信息处理上比较麻烦,并且很容易造成信号的失真. 然而DS18B20就不会存在这种麻烦,它能够直接将被测温度转换成简单的数字信号,然后在液晶显示器上显示出来,第二种方案的的优点是低功率的消耗、高性能、非常强的抗干扰的能力。通过比较以上两种考虑方案,不难看出容易实现的软件设计,电路简单的第二种方案更为适合,所以我们用第二种方案。设计框图如下所示。

AT89C51CPUDS18B20温度芯片1602显示报警电路电源

温度计总体设计图

DS18B20是Dallas旗下公司生产的一款一线式数字温度传感器,具有低功耗、微型化、抗干扰能力强等优点,多用于温度测控系统方面,DS18B20可以直接将温度转化为串行数字信号(9位二进制数)交给单片机自己去处理,并且一个总线上还能够接几个温度传感器芯片,还具有三引脚TO-92小体积的封装模式,检测的最低温度为-55℃,检测的最高温度为+125℃,具有9~12位的A/D转换精度,精确度可达0.1℃,被检测到的温度是用符号扩展的数字量的方式来串行输出,将多个DS18B20同时并联在一起,而CPU用一个端口线就可以和多个DS18B20连接通信,这种连接方式占用的端口不仅少,还可以节省不少的引线,多少省了一点钱,还有一些逻辑电路也不用连接了,简单化了硬件电路。所以DS18B20温度传感器在远程温度检测中被经常使用。

图4 DS18B20的温度芯片

3 设计电路单元

3.1 主控制模块

主控制模块的最小系统电路图如下所示。

3.2 电源模块

我们使用了3节1.5 V 的五号干电池串联给系统供电。

3.3 显示模块

显示模块是用1602的液晶,电路接口如下图7所示

3.4 单片机的最小运行系统

(1)晶振

单片机由晶振提供时钟信号。单片机的XIAL1接一个30PF的电容,XIAL2也接一个30PF的电容,XIAL1和XIAL2间并联一个12MHZ晶振,单片机的晶振电路就这样形成了。如下图所示:图8 晶振的电路图

(2)复位电路

单片机的启动大都需要用到一个操作--复位操作,这样CPU和系统的每个部位都处于一个确定的初始状态下,并且都是从初始态开始工作的。51系列的单片机都是从RST的引脚开始将复位信号不断地输入到芯片内部的施密特触发器中。正常工作状态下的系统,在振荡器稳定后,在RST的引脚上接一个高电平如果能够同时维持2个机器周期(就是24个振荡周期)或者以上的运转,那么该CPU就会响应同时会复位系统。单片机复位有两种方式:手动按钮复位和上电复位方式。

ALE的引脚悬空,复位的引脚接到复位电路上、VCC接上电源、VSS接地、EA接电源

3.5 DS18B20温度传感器的电路

(1)DS18B20的介绍

DS18B20是由美国DALLAS公司推出的一款第一片“一线总线”接口式的温度传感器,具有低功耗、微型化、高性能、抗干扰的能力强、微处理器很容易配置等优点,把检测的温度值直接转换为串行数字信号交给处理器进行处理。

DS18B20温度传感器在温度转换方面非常精准,不同的是,在开始转换温度时,I/O线上就必须保证处理器上时刻有充足的能量运转,单个DS18B20工作的电流能够达到1mA在温度转换时,当在一根I/O 线上串联几个温度传感器进行温度检测的时候,如果单单靠4.7K的上拉电阻来维持能量,则不能满足处理器所需要的能量,这样的话就会造成被测温度的值无法转换为易懂的数字信号或者转换之后的温度变大和变小。

所以只用单一的温度传感器去检测温度,使用电池供电的时候系统的操作不是很好使。工作状态下电压必须维持在5V左右系统才能正常运转,寄生的电源所能汲取到的能量会随着电源的电压的变化而变化,电源电压当下降时能量也在持续的减少,这样检测的温度值不准确,会有比较大的误差产生。

图10 温度传感器电路引脚图

(2)DS18B20的控制方法

DS18B20有六条控制命令:

温度转换44H 启动DS18B20进行温度转换

读暂存器BEH 读暂存器9个字节二进制数

写暂存器4EH 将数据写入暂存器的TH、TL字节

复制暂存器48H 将暂存器的TH、TL字节全部写入E2RAM中

重新调节E2RAM 和B8H 把E2RAM中的TH、TL字节写入暂存器TH、TL字节

读电源供电方式B4H 启动DS18B20发送的电源供电方式信号发送到主CPU

(3)DS18B20供电的方式

DS18B20的供电方式有以下两种,一种是采用电源供电,DS18B20 的1引脚接地,2引脚为信号线,3引脚接电源。另一种是使用寄生电源,必须保证在有效的时钟周期内DS18B20传感器上具有充足的电流,系统总线通常使用一个三极管来进行上拉复位。本设计采用第一种方案,为了保证DS18B20在有效的时钟周期内具有充足的电流,DS18B20的P2.3接口和AT89C51的P2.3接口单线总线用一个上拉电阻来上拉,需要两者来共同完成。写存储器和温度A/D转换在总线上拉的时候需要同时进行,所以这时总线上必须有一个强力的上拉,这个时间不能超过最大上拉时间10 μs。而寄生电源的VDD和GND都是采用接地的方式来为系统供电。所有的单线接口的发送和接收都必须满足三状态,因为单线制下一根线只能连接一

* ROM的命令紧跟着需要交换的数据。

* 功能指令随着需要交换的数据。

只有遵守了以上3个规则才可以访问DS18B20,都是其中任何一项或顺序错误,DS18B20就不会有主机响应(这两个命令Search ROM 和Alarm Search之后,主机都会返回第一步)。

1.初始化:

系统数据的交换都是从一个初始化序列开始的。是由DS18B20发的应答脉冲与主机所发出的复位脉冲两者所构成的。当DS18B20发出了响应主机发出的应答脉冲时,表明主机已经在总线上做好准备了并且随时可以工作。

2. ROM命令:

通过每个器件的64-bit ROM码,使主机完成指定的某一特定的器件来实现通信。

3. 功能命令:

对DS18B20进行读和写Scratchpad存储器是由主机通过其功能命令来实现,或者开启温度的转换。

3.6 蜂鸣器与发光二极管的报警电路

图11 蜂鸣器、发光二极管驱动引脚图

4.系统软件设计

4.1 分析程序结构

主程序只能调用3个子程序,分别是:处理温度信号的程序、数码管的显示程序、以及报警的温度程序。处理温度信号的程序:先通过对单片机传感器传来的数据信息进行相关的处理,观察相关的数据显示情况,然后做一些科学的判断。数码管的显示程序:是向数码管液晶显示屏送去数字信号,能够在液晶上充分显示数据。设定的按键程序:可以设定低温报警和高温报警两种方式。

4.2 系统程序流图

主程序能够每时每秒不停地显示被检测到的温度,能够快速的读出和处理DS18B20所监测到的数据,每1s都会进行一次数据的更新。这样每一秒就能得到一个检测的新温度,然后与设定的报警高低温相比较,如图11所示。

要把已存入到内存储中的整数和小数部分开需要调用读温度的子程序,然后将这两部分存放在两个单元中,然后将温度在液晶显示器上显示可供人们读取数据,这就需要调用显示子程序

调用显示子程序初始化1s到?初次上电发出温度转换开始命令读出温度值再计算处理数据显示刷新调用显示子程序初始化1s到?初次上电发温度转换开始命令读出温度值温度计算处理显示数据刷新

4.3 DS18B20初始化的程序流程图

在系统工作之前需要进行一次复位操作,流程图如下图所示:

发出复位命令发出跳过ROM命令初始化成功完成

图11 初始化程序流程图

4.4 读温度子程序的流程图

将DS18B20中的温度值读取出来需要调用读温度子程序,并将温度保存到温度暂存器中。程序如下图:

复位命令跳过ROM命令读取温度命令存在温度暂存器完成

图12 温度子程序的流程图

4.5 显示模块的软件设计

本项目采用1602LCD液晶显示器显示温度,显示的流程图如13

显示子程序

写缓冲单元以及循的环次数

Y

返回

图13 显示子程序的流程图

4.6 报警控制电路软件设计

当数字信号大于程序中开始设定好的高低温时,如果P2.4输出为“0”的低电平信号1,这时候晶体管将导通,同时蜂鸣器会报警发声,因为电压达到了+5V;如果P2.4输出为“1”的高电平信号时,那么三极管将会截止,蜂鸣器就会停止报警发声。报警流程如下

结束N显示值超出设定的报警值?Y发声报警设定温度报警值

图14 报警子程序的流程图

4.7 多路数据巡回显示

开始是否为扫描模式?显示通道及对应通道转换值NY显示通道0及其转换值扫描时间间隔是否到?NY通道号+1通道号是否>7?YN显示对应通道及其转换值判断是否为扫描模式?YN

图15 多路巡回显示功能流程图

如果为显示模式时下工作时,那么通道的采集值要与1602LCD液晶显示器所选择通道的通道号对应。若为显示模式下工作,那么其通道的采集值将于循环显示的2路通道的通道号相对应。独立的键盘操作会完成通道号的选择与模式的切换。

5. 整机的调试

1、测试环境与工具

测试温度:0~100摄氏度。

测试方法:目测。

2、测试方法

使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,键盘电路,显示电路,温度测试电路等)。系统自带测试表格数据,观察显示数据是否相符合即可。

3、测试结果分析

自检正常,温度显示正常,传输数据正确。

6. 结论

实现的项目功能:可以设置高温报警时的温度和低温报警是的温度,设定的温度能够精确到0.1℃,温度的按键调节按3次还具有连加、连减得功能。同时具有在没有通电的情况下也能保存数据的功能,保存的数据会在单片机内部的EEPOM中一直存储这,使用LCD1602液晶显示的能够很直观的看到实际所测的温度和设定的高、低报警温度。当温度超过或低于设定好的温度时,蜂鸣器就会发生报警,起到预防的作用。

参考资料

[5]张晓琴主编《数字电子技术及项目训练》西南交通大学出版社2010

[6]黄士生主编.模拟电子技术.北京:中国劳动社会保障出版社,2006

[7]肖前军主编《电子整机设计与制作》西南交通大学出版社2010

6 结束语

经过几个月的不断学习和努力,在孙老师的细心指导下,基于DS18B20的温度计的多点温度测量系统的毕业设计结束,基本完成了老师所布置的工作任务。

通过完成本次毕业设计让我掌握了很多东西,看到了理论知识和实际动手能力的区别,认识了实际操作的重要性,使我在知识的掌握上又有了很大的进步。同时也看清了自己的很多不足和欠缺的地方。这篇论文虽然还有很多不如意的地方,但毕竟是自己辛苦劳动所得。最后看着自己的作品完美完成,系统能够

/************************************************************** DS18B20读取模块

**************************************************************/ void delay(uchar x) /*实现精确延时*/

{

while(x--);

}

void dsreset() /*DS18B20的初始化程序*/

{

DQ=1; //拉高总线

delay(8); //稍作延时

DQ=0; /*拉低数据线480uS*/

delay(80);

DQ=1; /*拉高数据线保持30uS*/

delay(14);

delay(20); /*跳过DS18B20应答*/

}

void write_command(uchar com)

{

uchar i=0;

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

{

DQ=0; /*拉低数据线*/

DQ=com&0x01; /*发出数据低位*/

delay(5);

DQ=1; /*拉高数据线*/

com>>=1; /*右移一位*/

}

delay(4);

}

uchar read_data()

{

uchar j=0;

uchar dat=0; /*暂存读取的数据变量*/

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

{

DQ=1;

delay(1);

DQ=0;

dat>>=1 ; /*变量→一位*/

DQ=1;

delay(4);

}

return(dat);

}

uint data_take(uint x,uint y)

{

uint tmp;

tmp=x; /*把两个8位数据转换成一个16位整形数据*/

tmp<<=8;

tmp=tmp|y;

if(tmp>0xfff) /*检测符号位*/

{

symbol=1; /*符号位为1,需要进行数据补码还原,显示时也需要处理*/ tmp=~tmp+1;

}

else

{

symbol=0; /*符号位为0,正数*/

}

tmp=(uint)tmp*(6.25);

return(tmp) ;

}

uint main_DS18B20()

{

uint temp;

uchar data_l=0;

uchar data_h=0;

dsreset();

write_command(0xcc);

write_command(0x44);

dsreset();

write_command(0xcc);

write_command(0xbe);

data_l=read_data();

data_h=read_data();

temp=data_take(data_h,data_l);

return(temp) ;

}

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

LCM1602显示模块

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

{

uchar a,b,c ;

for(a=0;a

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

for(c=0;c<250;c++);

}

bit lcmbf() /*检测BF位*/

{

bit bf;

rs=0;

rw=1;

e =1;

_nop_();

_nop_();

_nop_();

_nop_();

bf=(bit)(data_8&0x80);

e =0;

/************************************************************** 数组的调整模块

**************************************************************/ void array_take(uint x)

{

uchar code disasc[]={'0','1','2','3','4','5','6','7','8','9','-',' '}; uchar point2;

uchar point1;

uchar ge;

uchar shi;

shi=x%10000/1000;

ge=x%10000%1000/100;

point1=x%10000%1000%100/10;

point2=x%10;

if(symbol)

disl2[0]=disasc[10];

else

disl2[0]=disasc[11];

disl2[1]=disasc[shi];

disl2[2]=disasc[ge];

disl2[3]='.';

disl2[4]=disasc[point1];

disl2[5]=disasc[point2];

disl2[6]='C';

/**********按键*************

2

1 4

3

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

sbit beep = P2^4; //蜂鸣器IO口定义

uchar a_a;

bit flag_300ms ;

bit flag_50ms ;

bit flag_2s;

uchar key_can; //按键值的变量

uchar menu_1; //菜单设计的变量

uint t_high = 300,t_low = 100;

uint t1_high = 301,t1_low = 101;

uint t2_high = 302,t2_low = 102;

uint t3_high = 303,t3_low = 103;

uint t4_high = 304,t4_low = 104;

bit flag_lj_en; //按键连加使能

bit flag_lj_3_en; //按键连3次连加后使能加的数就越大了

uchar key_time,flag_value; //用做连加的中间变量

bit key_500ms ;

uchar menu_shudu = 20; //用来控制连加的速度

uchar flag_clock; //温度报警变量

uchar flag_fuzi; //用做菜单内的初始化的

uchar t1=0,t2=0,t3=0,t4=0; //对就4个温度的报警标志位

uchar t_zong ; //一个有多少个报警

uchar zd_break_en,zd_break_value; //自动退出设置界面

/***********************1ms延时函数*****************************/

void delay_1ms(uint q)

{

uint i,j;

for(i=0;i

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

}

/******************把数据保存到单片机内部eepom中******************/ void write_eepom12()

{

SectorErase(0x2000);

byte_write(0x2000,

t1_high % 256);

byte_write(0x2001, t1_high / 256);

byte_write(0x2055, a_a);

void write_eepom34()

{

SectorErase(0x2200);

byte_write(0x2200, t3_high % 256);

byte_write(0x2201, t3_high / 256);

byte_write(0x2255, a_a);

}

void write_eepom56()

{

SectorErase(0x2400);

byte_write(0x2400, t5_high % 256);

byte_write(0x2401, t5_high / 256);

byte_write(0x2455, a_a);

}

void write_eepom78()

{

SectorErase(0x2600);

byte_write(0x2600, t7_high % 256);

byte_write(0x2601, t7_high / 256);

byte_write(0x2655, a_a);

}

/******************把数据从单片机内部eepom中读出来*****************/ void read_eepom12()

{

t1_high = byte_read(0x2001);

t1_high <<= 8;

t1_high |= byte_read(0x2000);

t1_low = byte_read(0x2003);

t1_low <<= 8;

t1_low |= byte_read(0x2002);

t2_high = byte_read(0x2005);

t2_high <<= 8;

t2_high |= byte_read(0x2004);

t2_low = byte_read(0x2007);

t2_low <<= 8;

t2_low |= byte_read(0x2006);

a_a = byte_read(0x2055);

}

void read_eepom34()

{

t3_high = byte_read(0x2201);

t3_high <<= 8;

t3_low = byte_read(0x2203);

t3_low <<= 8;

t3_low |= byte_read(0x2202);

t4_high = byte_read(0x2205);

t4_high <<= 8;

t4_high |= byte_read(0x2204);

t4_low = byte_read(0x2207);

t4_low <<= 8;

t4_low |= byte_read(0x2206);

a_a = byte_read(0x2255);

}

void read_eepom56()

{

t5_high = byte_read(0x2401);

t5_high <<= 8;

#include "menu.h"

/*************定时器0初始化程序***************/

void time_init()

{

EA = 1; //开总中断

TMOD = 0X01; //定时器0、定时器1工作方式1

ET0 = 1; //开定时器0中断

TR0 = 1; //允许定时器0定时

}

/****************独立按键处理函数************************/ void key()

{

static uchar key_new = 0,key_old = 0,key_value = 0; if(key_new == 0)

{ //按键松开的时候做松手检测

if((P2 & 0x0f) == 0x0f)

key_value ++;

else

key_value = 0;

if(key_value >= 15)

{

key_value = 0;

key_new = 1;

flag_lj_en = 0; //关闭连加使能

flag_lj_3_en = 0; //关闭3秒后使能

flag_value = 0; //清零

key_time = 0;

}

else

{

if((P2 & 0x0f) != 0x0f)

key_value ++; //按键按下的时候

else

key_value = 0;

if(key_value >= 10)

{

key_value = 0;

key_new = 0;

flag_lj_en = 1; //连加使能

zd_break_en = 1; //自动退出设置界使能

zd_break_value = 0; //自动退出设置界变量清零

}

}

key_can = 20;

if(key_500ms == 1)

{

key_500ms = 0;

key_new = 0;

key_old = 1;

zd_break_value = 0;

}

if((key_new == 0) && (key_old == 1))

{

switch(P2 & 0x0f)

{

case 0x0e: key_can = 4; break; //得到k1键值

case 0x0d: key_can = 3; break; //得到k2键值

case 0x0b: key_can = 2; break; //得到k3键值

case 0x07: key_can = 1; break; //得到k4键值

}

// write_sfm2(1,14,key_can);

}

key_old = key_new;

}

/****************报警函数***************/

void clock_h_l()

{

if((temperature1 <= t1_low) || (temperature1 >= t1_high)) t1 = 1; //温度1 报警标志位

t1 = 0;

if((temperature2 <= t2_low) || (temperature2 >= t2_high))

t2 = 1; //温度2 报警标志位

else

t2 = 0;

while(1)

{

if(flag_300ms == 1) //300ms 处理一次温度程序

{

clock_h_l(); //报警函数

if(t_zong != 0)

beep = ~beep;

else

beep = 1;

flag_300ms = 0;

menu_dispaly(); //不同级的菜单对应显示1602对应显示不同if(zd_break_en == 1) //自动退出设置界面程序

{

zd_break_value ++; //每300ms加一次

if(zd_break_value > 100) //30秒后自动退出设置界面

{

menu_1_break(); //第一级菜单退出函数

zd_break_en = 0;

zd_break_value = 0;

write_com(0x0c); //关闭光标

}

}

}

if(flag_50ms == 1)

{

flag_50ms = 0;

}

key(); //按键程序

if(key_can < 10)

{

key_with(); //设置报警温度

}

}

}

/*************定时器0中断服务程序***************/

void time0_int() interrupt 1

{

TH0 = 0x3c;

TL0 = 0xb0; // 50ms

flag_50ms = 1;

value ++;

if(value % 6 == 0)

{

flag_300ms = 1; //300ms

}

if(value >= 70)

{

flag_2s = ~flag_2s;

value = 0;

}

if(flag_lj_en == 1) //按下按键使能

{

key_time ++;

if(key_time >= menu_shudu) //500ms {

key_time = 0;

key_500ms = 1; //500ms

flag_value ++;

if(flag_value > 3)

{

flag_value = 10;

flag_lj_3_en = 1; //3次后1.5秒后连加大些}

}

}

}

基于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

基于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软件上 进行仿真,修改,仿真。 本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范 围内时,可以报警。

数字温度计设计

数字温度计 摘要:温度计在实际生产和人们的生活中都有广泛应用。该设计是数字温度计,首先是对总体方案的选择和设计;然后通过控制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数码管显示。 方案一:用一个热敏电阻,通过热敏电阻把温度转化为电压,再得到每一度热敏电

数字温度计的设计

数字温度计的设计 【摘要】 本文将介绍一种基于单片机控制的数字温度计,就是用单片机实现温度测量,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于AT89S52单片机的数字温度计的设计用LCD数码管以串口传送数据,实现温度显示,能准确达到以上要求,可以用于温度等非电信号的测量,主要用于对测温比较准确的场所,或科研实验室使用,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。 【关键词】关键词1温度计;关键词2单片机;关键词3数字控制;关键词4DS1620 目录 第一章绪论 (2) 1.1 前言 (3) 1.2 数字温度计设计方案 (3) 1.3 总体设计框图 (3) 第二章硬件电路设计............................ 错误!未定义书签。 2.1 主要芯片介绍 (5) 2.1.1 AT89C51的介绍 (5) 2.1.2 AT89C51各引脚功能介绍 (5) 2.2 温度传感器 (7) 2.2.1 DS1620介绍 (7) 第三章软件设计................................ 错误!未定义书签。

3.1 主程序流程图 (11) 3.4 计算温度子程序流程图 (13) 3.5 显示数据刷新子程序流程图 (13) 第四章 Proteus仿真调试......................... 错误!未定义书签。 4.1 Proteus软件介绍 (15) 4.2 Proteus界面介绍 (16) 4.2.1 原理图编辑窗口 (18) 4.2.2 预览窗口 (23) 4.2.3 模型选择工具栏 (31) 4.2.4 元件列表 (35) 4.2.5 方向工具栏 (37) 4.2.6 仿真工具栏 (38) 4.3 本次设计仿真过程 (39) 4.3.1 创建原理图 (40) 设计总结 (50) 结论 (57) 参考文献 (59) 致谢 (62) 附录 (72)

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

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

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

电子技术基础数字温度计课程设计要点

课程设计(论文) 题目名称数字温度计 课程名称电子技术课程设计 学生姓名屈鹏 学号1141201112 系、专业电气工程系电气工程及其自动化 指导教师李海娜 2013年12月17日

邵阳学院课程设计(论文)任务书 年级专业11级电气工程及其自动化学生姓名屈鹏学号1141201112 题目名称数字温度计设计设计时间2013.12.9—2013.12.20 课程名称电子技术课程设计课程编号121202306 设计地点电工电子实验室408、409 一、课程设计(论文)目的 电子技术课程设计是电气工程及自动化专业的一个重要的实践性教学环节,是对已学模拟电子技术、数字电子技术知识的综合性训练,这种训练是通过学生独立进行某一课题的设计、安装和调试来完成,着重培养学生工程实践的动手能力、创新能力和进行综合设计的能力,并要求能设计出完整的电路或产品,从而为以后从事电子电路设计、研制电子产品奠定坚实的基础。 二、已知技术参数和条件 用中小规模集成芯片设计并制作一数字式温度计,具体要求如下: 1、温度范围0-100度。 2、测量精度0.2度。 3、三位LED数码管显示温度。 三、任务和要求 1.按学校规定的格式编写设计论文。 2.论文主要内容有:①课题名称。②设计任务和要求。③方案选择与论证。④方案的原理框图,系统电路图,以及运行说明;单元电路设计与计算说明;元器件选择和电路参数计算的说明等。 ⑤必须用proteus或其它仿真软件对设计电路仿真调试。对调试中出现的问题进行分析,并说明解决的措施;测试、记录、整理与结果分析。⑥收获体会、存在问题和进一步的改进意见等。 注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效; 2.此表1式3份,学生、指导教师、教研室各1份。

数字温度计课程设计报告

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

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

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

基于51单片机的数字温度计设计 一.课题选择 随着时代的发展,控制智能化,仪器小型化,功耗微量化得到广泛关注。单片机控制系统无疑在这方面起到了举足轻重的作用。单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子,它可广泛应用与生产生活的各个方面,具有巨大的市场前景。 二.设计目的 1.理解掌握51单片机的功能和实际应用。 2.掌握仿真开发软件的使用。 3.掌握数字式温度计电路的设计、组装与调试方法。 三.实验要求 1.以51系列单片机为核心器件,组成一个数字式温度计。 2.采用数字式温度传感器为检测器件,进行单点温度检测。 3.温度显示采用4位LED数码管显示,三位整数,一位小数。 四.设计思路 1.根据设计要求,选择STC89C51RC单片机为核心器件。 2.温度检测采用DS18B20数字式温度传感器。与单片机的接口为P 3.6引脚。 3.采用usb数据线连接充电宝供电,接电后由按钮开关控制电路供电。 硬件电路设计总体框图为图1: 五.系统的硬件构成及功能 1.主控制器 单片机STC89C51RC具有低电压供电和体积小等特点,有40个引脚,其仿真图像如下图所示:

2.显示电路 显示电路采用4位共阳LED数码管,从P3口RXD,TXD串口输出段码。LED数码管在仿真软件中如下图所示: 3.温度传感器 DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下: 1.独特的单线接口仅需一个端口引脚进行通讯。 2.简单的多点分布应用。 3.无需外部器件。 4.可通过数据线供电。 5.零待机功耗。 6.测温范围-55~+125摄氏度。 其电路图如下图所示:

单片机课程设计 数字温度计课程设计

单片机原理及系统课程设计 专业:电气工程及其自动化 班级:电气1101 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2014 年 1 月 17 日

1设计题目 基于单片机的数字温度计设计。 2设计方案 2.1设计目的 单片机是单片微型计算机的简称,其具有体积小、可靠性高、功能强、灵活方便等优点,故可以广泛应用于各种领域。其中数字温度计就是一个典型的例子。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确等特点,其输出温度采用数字显示,主要用于对测温要求较高的场所,该设计主要使用的元件有单片机AT89C52,测温传感器使用DS18B20和LCD1602液晶显示器。 2.2性能指标 (1) 基本范围-50℃-110℃; (2) 精度为0.5℃; (3) 液晶LCD显示; (4) 可以设定温度的上下限以及报警功能。 3数字温度计系统的硬件设计 3.1数字温度计硬件框图 数字温度计系统硬件框图如图1所示。 图1 系统的硬件框图

3.2AT89C52单片机 AT89C52单片机引脚配置图,如图2所示。 图2 AT89C52引脚配置图 3.3外围电路 AT89C52的时序就是CPU在执行指令时所需控制信号的时间顺序。选择了内部时钟方式,即利用芯片内部的振荡器,然后在引脚XTAL1和XTAL两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路。外接晶振时,C1和C2值通常选择为30PF左右。C1和C2对频率有微调作用。晶体的频率范围可在1.2~12MHZ之间选择。 AT89C52的复位电路是按键电平复位电路,相当于按复位键后复位端通过电阻与Vcc电源接通。复位是单片机的初始化操作。单片机在启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。 显示电路采用LCD1602液晶显示器显示。 故障状态指示电路采用发光二级管以及蜂鸣器对运行方式进行指示,可清楚看到系统的故障状态。 测温传感器DS18B20可以直接读出被测温度值,采用三线制和单片机相连,少了外部的硬件电路,具有低成本和易使用的特点。

数字温度计的设计与仿真

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

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

基于单片机的数字温度计课程设计报告

单片机课程设计报告 数字温度计课程设计 姓名 学号: 专业班级:自动化 指导老师: 所在学院:电气工程学院 2010年12 月15日

引言 单片机的出现是近代计算机技术发展史上的重要里程碑。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。近年来随着电子技术和微型计算机技术的迅速发展,单片机的档次不断提高,其应用领域也在不断扩大,在工业测控、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人通信终端及通信产品中得到了广泛应用,已成为现代电子系统中最重要的智能化核心部件。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本课程设计是在学习了单片机的基本原理的基础上进行的,综合利用所学单片机知识完成一个单片机应用系统设计并仿真实现,从而加深对单片机软硬知识的理解,获得初步的应用经验;进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤。本设计的目标是用单片机和温度传感器及相关部件实现温度的测量和数字显示,测量精度小于0.5℃,可以设置温度测量的上下限,超出测温范围可以由蜂鸣器报警。 本设计首先是确定目标,接下来是各个功能模块的设计和相应程序的编写。再在proteus软件上进行仿真,若结果满足要求,则可以焊接硬件,若不满足继续修改,最终完成数字温度计的整个设计任务。经过仿真,本设计达到了预期的目标。

数字温度计设计总结报告

数字温度计(A2题)设计与总结报告专科组:春梁福鑫钟才莉 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研等各个领域,已经成为一种比较成熟的技术, 本设计在参阅了大量前人设计的数字温度计的基础上,利用单片机技术结合DS18B20温度传感器和DS1302时钟芯片构建了一个数字温度计。本温度计属于多功能温度计,当测量温度超过设定的温度上、下限,启动蜂鸣器和指示灯报警,可以显示当前测量日期、时间、温度,可调整显示日期、时间和星期。 关键词:单片机;数字控制;数字温度计;DS18B20;DS1302;报警 前言 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S52,测温传感器使用DS18B20,以及使用时钟芯片DS1302测实时时钟,用一块低功耗的RT1602C液晶显示器以串口传送数据,实现温度和时间显示,能准确达到以上要求。 本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为单片机小系统电路、测温电路、实时时钟电路、声光报警电路、语音报读电路、LED显示电路及电源电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C语言编程,利用Keil 软件对其编译和仿真,详细的设计算法将会在程序设计部分详细介绍。 一、方案论证比较与选择 方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦,制作成本高。 方案二: 方案二原理框架图 此设计方案是由数字式温度传感器、单稳态定时电路、计数电路、译码与LED数码管显示电路等组成的。但其测温围较小,电路设计也比较繁琐。 方案三: 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,因此我们改用一种智能传感器DS18B20作为检测元件,测温围-55℃~+125℃,分辨率最大可达0.0625℃。此传感器,可以直接读取被测温度值,而且采用3线制与单片机相连,减少了外部硬件电路,具有低成本和易使用的特点。 从以上三种方案,很容易看出,采用方案三,电路比较简单,软件设计也比较简单,故采用了方案三。 二、系统框图 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,

(完整版)基于51单片机的数字温度计

硬件课程设计实验报告课题:数字温度计 班级: 作者: 学号: 指导老师: 课设评价: 课设成绩:

目录 一.需求分析 (1) 二.概要设计 (1) 三.硬件电路设计 (3) 四.系统软件设计 (5) 五.软件仿真 (8) 六.实际连接与调试 (9) 七.本次课设的收获与感受 (11) 附录(程序源代码) (12)

一.需求分析 功能要求: 测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。 设计要求: (一)功能要求 (1) 由4位数码管显示当前温度。 (2) 具备报警,报警门限通过键盘设置。 (3) 精度为0.5℃。 (二)画出参考的电路原理图 (三)画出主程序及子程序流程图、画出MCS51内部RAM分配图,并进行适当地解释。 (四)写出实现的程序及实现过程。并进行适当地解释说明。 二.概要设计 (一)方案选择 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 (二)系统框图 该系统可分为以下七个模块: (1)控制器:采用单片机STC89C52对采集的温度数据进行处理; (2)温度采集:采用DS18B20直接向控制器传输12位二进制数据; (3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值; (4)门限设置:主要实现模式切换及上下门限温度的调节; (5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光; (6)复位电路:对整个系统进行复位; (7)时钟振荡模块:为整个系统提供统一的时钟周期。

单片机课程设计—数字温度计

第1章概述 1.1 数字温度计简介 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 此次课程设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。 1.2 设计内容及要求 本次单片机课程设计将以51系列单片机为核心,以开发板为平台;设计一个数字式温度计,要求使用温度传感器(可以采用DS18B20或采用AD590)测量温度,再经单片机处理后,由LED数码管显示测量的温度值。测温范围为0~100℃,精度误差在0.5℃以内。

第2章系统总体方案设计 2.1数字温度计设计的方案 在做数字温度计的单片机电路中,对信号的采集电路大多都是使用传感器,这是非常容易实现的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。采集之后,通过使用51系列的单片机,可以对数据进行相应的处理,再由LED显示电路对其数据进行显示。 2.2系统设计框图 温度计电路设计总体设计方框图如图 2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用6位LED数码管以串口传送数据实现温度显示。此外,还添加了报警系统,对温度实施监控。 图2.1 数字温度计框图

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

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:数字式温度计的设计学院名称:电气信息学院 专业班级: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.有程序运行结果的截屏图片。

简易数字式温度计设计

摘要 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该高精度数字式温度计采用了由DALLAS公司生产的单线数字温度传感器DS18B20,它具有独特的单线总线接口方式。本毕业论文详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,该温度计具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。 关键词:DS18B20 温度传感器STC89C51

目录 第一章绪论3 1.1 课题背景及研究意义3 1.2 国外的现状3 1.3 设计的目的4 1.4 设计实现的目标4 1.5 数字温度计简介5

第一章绪论 1.1 课题背景及研究意义 随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。本系统所使用的加热器件是电炉丝,功率为三千瓦,要求温度在400~1000℃。静态控制精度为2.43℃。 本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。 1.2 国外的现状 温度控制系统在国各行各业的应用虽然已经十分广泛,但从国生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工

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

毕业设计(论文)开题报告 课题名称:基于单片机数字温度计设计 院(系): 专业: 学号: 学生姓名: 指导教师: 职称: 2014年9月 6 日

一、选题依据 1.课题来源 随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。又随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL 公司的STC89S52为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。 2.课题背景 单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在的单片机在农业上页有了很多的应用。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到得测量温度的工具是各种各样的温度计,例如:水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用51单片机,测温传感器使用DS18B20,用4位共阳极LED数码管实现温度显示,能准确达到以上要求。 3.课题研究目的 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。而且现在单片机是市场热门的产品,我觉得我们应该熟悉、学习它。对单片机的进一步学习,使自己能够灵活的应用它。对C语言的有更加深刻的学习。对电路更加熟悉

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

课程设计报告 引言 随着电子技术的不断发展,我们能应用到的电子产品也越来越多。而生活中我们用的很多电子产品都越来越轻巧,价格也越来越便宜.利用电子芯片实现的东西也越来越来越多,比如数字温度计。当然,非电子产品的常用温度计也很便宜。此次课设论文所介绍的是自己动手制作的一个高精度数字温度计。本次课设不但丰富了课余生活,还从实践中学到并了很多新知识,并从中巩固了以前的知识。 用Protel 99软件来设计制作电路板——PCB(Printed circuit Bound)。在PCB上,布置一系列的芯片、电阻、电容等元件,通过PCB上的导线相连,构成电路,一起实现一定的功能。电路通过连接器或者插槽进行输入/输出,有时还有显示部分(如发光二极管LED、.数码显示器等)。可以说,PCB是一块连接板,它的主要目的是为元件提供连接,为整个电路提供输入输出端口和显示,电气连接通性是PCB最重要的特性之一。PCB在各种电子设备中有如下功能:(1)提供集成电路等各种电子元件固定、装配的机械支撑。(2)实现集成电路等各种电子元件之间的布线和电气连接或电绝缘,提供所要的电气特性。(3)为电动装配提供阻焊徒刑,为元器件插装、检查、维修提供识别符和图形。 做本课题的所用到的知识是我们学过的模拟电子电路以及数字逻辑电路等,当然还用到了刚刚学过不久的单片机知识。本次课设是把理论和实践结合起来,这不但可以锻炼自己的动手能力,而且还可以加深对数字逻辑电路和模拟电子电路的学习和理解。同时也激起了我学好单片机的斗志。为了全面清晰的表达,本论文用图文并茂的方式,尽可能详细的地介绍此次设计的全过程。

1.设计务任和要求 1.1、基本范围-20℃——100℃ 1.2、精度误差小于0.5℃ 1.3、LED 数码直读显示 1.4、可以任意设定温度的上下限报警功能 2. 系统总体方案及硬件设计 2.1数字温度计设计方案论证 2.1.1方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响从而出现较大的偏差。 2.1.2 方案二 考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。 2.2系统总体设计 温度计电路设计总体设计方框图如图2.1所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用4位LED 数码管以串口传送数据实现温度显示。

简易数字温度计课程设计

唐山学院 单片机原理课程设计 题目简易数字温度计 系 (部) 智能与信息工程学院 班级 姓名 学号 指导教师 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 测温电路的总体设计方框图

相关文档
最新文档