单片机温度检测系统设计.docx

上传人:b****5 文档编号:3903391 上传时间:2022-11-26 格式:DOCX 页数:24 大小:898.76KB
下载 相关 举报
单片机温度检测系统设计.docx_第1页
第1页 / 共24页
单片机温度检测系统设计.docx_第2页
第2页 / 共24页
单片机温度检测系统设计.docx_第3页
第3页 / 共24页
单片机温度检测系统设计.docx_第4页
第4页 / 共24页
单片机温度检测系统设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

单片机温度检测系统设计.docx

《单片机温度检测系统设计.docx》由会员分享,可在线阅读,更多相关《单片机温度检测系统设计.docx(24页珍藏版)》请在冰豆网上搜索。

单片机温度检测系统设计.docx

单片机温度检测系统设计

 

单片机课程设计说明书

题目:

温度检测系统设计

系部:

专业:

班级:

学生姓名:

学号:

指导教师:

 

2015年12月14日

2.1设计思路1

 

1设计任务与要求

1.1设计任务

利用电阻、瓷片电容、电解电容、12MHz晶振、STC89C52单片机、DS18B20温度传感器、液晶显示器、1P杜邦线彩色、排针、最小系统板、电位器、洞洞板等,完成一个温度检测系统。

1、采用单片机及温度传感器设计温度检测系统;

2、温度检测结果采用液晶显示器输出;

3、必须具有上电自检功能及外接电源,公共地线接口。

1.2设计思路

1、熟悉此电路工作原理。

2、掌握组装与调试方法。

3、画出Proteus原理图,PCB图。

4、用Proteus仿真。

5、测量范围0~99摄氏度,精度误差小于1摄氏度。

6、一份设计说明书。

7、做出所设计的系统的实物。

2设计方案

2.1设计方案

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以可以采用温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

故针对上述现象,本文设计了一种由单片机控制的温度采集与显示系统,它以STC89C52单片机为核心,采用温度传感器DS18B20实现对温度信号的采集以及运用LCD1602液晶显示器来显示数据。

在温度信号的采集方面,采用DS18B20型温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度,并可根据实际要求通过简单的编码实现9~12位的数字式读数方式,可在-50℃~+300℃范围内显示数据,在-10~+85℃时精度为±0.5℃。

2.2单片机STC89C52RC

2.2.1单片机STC89C52RC功能介绍

STC89C52RC是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

2.2.2STC89C52RC管脚介绍

STC89C52RC单片机,选用PDIP封装。

管脚如图3-1所示:

图2-1PDIP封装的STC89C52

单片机的引脚功能说明:

1、电源引脚

VCC(40脚):

电源端,工作电压为5V。

GND(20脚):

接地端。

2、时钟电路引脚XTAL1(19脚)和XTAL2(18脚)。

3、复位RST(9脚)。

4、输入输出(I/O)引脚

P0.0-P0.7(39脚-32脚):

输入输出脚,称为P0口,是一个8位漏极开路型双向I/O口,内部不带上拉电阻。

P1.0-P1.7(1脚-8脚):

输入输出脚,称为P1口,是一个带内部上拉电阻的8位双向I/0口。

P2.0-P2.7(21脚—28脚):

输入输出脚,称为P2口,是一个带内部上拉电阻的8位双向I/O口。

P3.0-P3.7(10脚—17脚):

输入输出脚,称为P3口,是一个带内部上拉电阻的8位双向I/O口。

P3端口具有复用功能。

2.2.3STC89C52RC单片机器件参数

1、增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。

2、工作电压:

5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)。

3、工作频率范围:

0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz

4、用户应用程序空间为8K字节。

5、片上集成512字节RAM。

6、通用I/O口(32个),复位后为:

P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。

7、ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片

8、具有EEPROM功能。

9、共3个16位定时器/计数器。

即定时器T0、T1、T2。

10、外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒。

11、通用异步串行口(UART),还可用定时器软件实现多个UART。

12、工作温度范围:

-40~+85℃(工业级)/0~75℃(商业级)。

13、PDIP封装。

2.3温度传感器DS18B20

DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。

主要根据应用场合的不同而改变其外观。

2.3.1DS18B20的主要特性

1、适应电压范围更宽,电压范围:

3.0~5.5V,在寄生电源方式下可由数据线供电。

2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。

4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。

5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。

6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。

2.3.2DS18B20的外形和内部结构

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的外形及管脚排列如图3-2所示:

图2-2温度传感器DS18B20

DS18B20引脚定义:

(1)GND为电源地;

(2)DQ为数字信号输入/输出端;

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

2.4液晶显示器LCD1602

2.4.1液晶显示器LCD1602功能介绍

1602液晶显示器也叫1602字符型液晶显示器,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

如图3-3所示:

图2-3液晶显示器LCD1602

2.4.2LCD1602管脚介绍

LCD1602采用标准的16脚接口,如图3-3所示,其中从左到右为1-16脚:

第1脚:

GND为电源地

第2脚:

VCC接5V电源正极

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:

RW为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

第6脚:

E(或EN)端为使能(enable)端,高电平

(1)时读取信息,负跳变时执行指令。

第7-14脚:

D0~D7为8位双向数据端。

第15-16脚:

空脚或背灯电源,15脚背光正极,16脚背光负极。

2.4.3LCD1602主要特性

1、3.3V或5V工作电压,对比度可调。

2、内含复位电路。

3、提供各种控制命令,如:

清屏、字符闪烁、光标闪烁、显示移位等多种功能。

4、有80字节显示数据存储器DDRAM。

5、内建有192个5X7点阵的字型的字符发生器CGROM。

6、8个可由用户自定义的5X7的字符发生器CGRAM。

3硬件电路设计

3.1系统框图

温度检测系统由USB接口电源,DS18B20温度传感器组成的温度检测模块,STC89C52单片机组成的核心电路,复位电路、时钟电路及液晶显示器组成的显示电路构成。

如图3-4所示:

电源模块

复位电路模块

DS18B20温度检测模块

 

STC89C52单片机

LCD1602显示模块

时钟电路模块

 

 

图3-1系统框图

3.2最小的单片机系统

单片机最小系统以AT89C52RC为核心,外加时钟电路和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。

3.2.1时钟电路

时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。

本系统采用的为12MHz的晶振,一个机器周期为1us,C1、C2为22pF。

如图3-5所示

图3-2时钟电路仿真图

3.2.2复位电路

复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效。

上电自动复位通过电容C3和电阻R1来实现。

如图3-6所示:

图3-3复位电路原理图

按键手动复位是复位键来实现的,上图3-6中未添加复位键,复位键可添加在正5V电源与单片机RST管脚之间。

3.3温度检测系统设计

DS18B20采用单线进行数据传输,第2管脚外接一个4.7k上拉电阻与单片机的P3.6口相连进行数据的双向传输,第3管脚外接正5V电源,第1管脚接地。

如图3-7所示:

图3-4温度检测仿真图

外部电源供电方式是DS18B20的最佳工作方式,工作温度可靠,抗干扰能力强,电路也简单,并且可以开发出稳定可靠的多点温度监控系统。

3.4液晶显示电路设计

LCD1602液晶显示屏采用标准的16脚接口,VSS管脚接地,VDD管脚接正5V电源,VEE管脚接电位器RV1,RS管脚外接单片机的P1.1口,RW管脚接地,E管脚外接单片机的P1.2口,D0-D7管脚分别接单片机的P2.0-P2.7口,仿真图未标识出的A、K管脚为背光灯电源管脚,分别接正5V电源和地。

如图3-8所示:

图3-5液晶显示电路原理图

液晶显示器虽然加了驱动电路,但并不发光,液晶显示器发出来的光是由背光发出的,灯管的特性类似于家用日光灯,工作时需要高压。

这部分电路通常称为高压背光电路。

或叫高压背光驱动电路。

液晶显示器所消耗的电能基本全是由背光消耗。

相对而言,这部分电路工作在高压大电流下,很容易出现故障,液晶显示器的自然故障大多数是这个部分出现了电路故障。

4主要参数计算与分析

温度显示一共2个字节,LSB是低字节,MSB是高字节,其中MSB是字节的高位,LSB是字节的低位。

大家可以看出来,二进制数字,每一位代表的温度的含义,都表示出来了。

其中S表示的是符号位,低11位都是2的幂,用来表示最终的温度。

DS18B20的温度测量范围是从-55度到+125度,而温度数据的表现形式,有正负温度,寄存器中每个数字如同卡尺的刻度一样分布。

如表一所示:

TEMPERATURE

DIGITALOUTPUT

(Binary)

DIGITALOUTPUT

(Hex)

+125度

0000011111010000

07D0h

+25.0625度

0000000110010001

0191h

+10.125度

0000000010100010

00A2h

+0.5度

0000000000001000

0008h

0度

0000000000000000

0000h

-0.5度

1111111111111000

FFF8h

-10.125度

1111111101011110

FF5Eh

-25.0625度

1111111001101111

FF6Fh

-55度

1111110010010000

FC90h

表一实际温度对照表

二进制数字最低位变化1,代表温度变化0.0625度的映射关系。

当0度的时候,那就是0x0000,当温度125度的时候,对应十六进制是0x07D0,当温度是零下55度的时候,对应的数字是0xFC90。

反过来说,当数字是0x0001的时候,那温度就是0.05,达到了设计要求。

5软件设计

5.1整体系统分析

温度检测系统由温度及中断初始化,温度检测,温度输入处理,温度显示等几部分模块组成。

如图5-1所示:

图5-1软件设计

5.2程序流程图

程序流程图包括:

开始后先进行各个模块的初始化,然后再进行温度(数据)的采样处理,最后由液晶显示器输出温度。

如图5-2所示:

开始

单片机开始初始化

LCD显示初始化

中断初始化

DS18B20初始化

LCD显示实时温度

DS18B20进行温度采集

等待

 

 

 

图5-2程序流程图

6Proteus软件仿真

温度检测系统设计的Proteus原理图设计,找到12MHz晶振、STC89C52单片机、DS18B20温度传感器、液晶显示器等器件,并用线进行连接,注意电源与地。

如图6-1所示:

图6-1温度检测系统仿真图

加载程序液晶屏显示温度。

如图6-2所示:

图6-2温度检测系统模拟运行

通过调整DS18B20中的“+”“-”即可改变显示数值。

7实物制作

7.1器材清单

实物制作用到的器件有以下几种,如表二所示:

名称

封装

型号

参数

数量

瓷片电容

直插

30PF

2

石英晶体

直插

11.0592MHZ

1

电阻

直插

1/4W

10K

1

电解电容

直插

22UF/16V

1

CPU

双列直插

STC89C52RC

HD

1

CPU座

双列直插

DIP-40

1

电阻

直插

1/4W

4.7K

1

温度传感器

直插

DS18B20

1

电位器

直插

3296W-103

10K

1

液晶显示器

LCD1602

1

1P杜邦线彩色

母对母两头插好杜邦头

孔对孔40根一排

单根长度20cm

30针

排针

直插

脚距2.54高11

1X40单排插针

30线

最小系统板

1

洞洞板

9X7CM

单面

1

表二温度检测单片机元器件明细表

7.2最小系统板制作

焊接最小系统板,把电容、极性电容、12Mhz晶振、电阻、排针、底座插到最小系统板上,因为背面电路都已连接好,只需在各个位置焊上个元器件即可。

实物图如图7-1所示:

图7-1最小系统电路实物图

7.3温度检测系统电路板制作

DS18B20焊接时应注意1,2,3脚,电路板最右面焊排针,以便输入信号。

输入程序前用杜邦线将各个模块进行连接。

实物图如图7-2所示:

图7-2温度检测系统电路实物图

7.4温度检测展示

室内温度测量如图7-3所示:

图7-3室温

用手指捏住DS18B20一段时间,再次进行温度的测量。

如图7-4所示:

图7-4手指加热

7.5焊接点展示

每个焊点以方正,不带刺,均匀为好。

当焊好电路后,仔细检查焊点质量与是否导通。

如图7-5所示:

图7-5焊接点展示

7.6作品检查

1、首先按照仿真图将实物焊接,注意焊接的质量,不要出现虚焊等现象。

2、通电观察现象。

3、通电后无反应。

4、将单片机换一块最小系统板,检查是否原来最小系统板有问题及单片机是否有问题。

5、液晶显示器的显示和仿真是否有不同。

6、检查单片机引脚与液晶显示器连接的顺序是否正确.程序是否匹配。

7、液晶显示器不亮或亮的很暗。

8、检查线路的正负极是否接反,检查限流电阻阻值是否正确,检查是否有断路现象。

当焊好电路后通电之后,发现电路不亮,检查了一下单片机向外的接口,虚焊了个地方,重新焊好后,接入液晶显示器,发现有一组液晶显示器不亮,原因是未连接背光电路,重新连接后,通电,试验成功。

8结论

本系统充分利用了STC89C52RC芯片的I/O引角。

系统统采用MSC-51系列单片机为中心器件来设计温度检测系统,实现了能根据实际温度通过单片机芯片的P2口控制液晶显示器的显示;系统设计简便、实用性强、操作简单、程序设计简便。

系统不足之处在于电路18B20易损坏、以及液晶显示不明显等。

由于本设计涉及到的知识面比较广,再加上本人在相关领域知识的缺乏,所以本设计的性能指标还是有待改善的,并让我明白了仿真和真实动手是具有差距的,想的和做的并不一样。

要特别注重细节,制作实物时出现液晶屏不显示故障,当时只认为是程序或焊接有问题,最后才发现只是电位器没调节好。

这次课程设计,使我对所学的知识与技能、分析和解决问题的能力进行了可贵的锻炼,使我深刻领会了单片机的基本原理以及了解到单片机应用系统开发过程的艰难。

在常用编程设计思路技巧的掌握方面都向前迈了一大步。

通过这次的课程设计,我充分意识到了自己所学的东西还是非常有限的,明确了以为要努力的方向,不能只学习课本上的理论知识,还要了解一些书本上无法学到的东西,为自己的以后奠定了一定的基础。

 

附录:

C语言程序:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineLCDIOP2//1602数据口

sbitDQ=P3^6;//ds18b20与单片机连接口

sbitrs=P1^1;//1602数据命令选择引脚

//sbitrd=1;//读写选择

sbitlcden=P1^2;//1602选通引脚

floatf_temp;//浮点型温度值

uinttvalue;//温度值

uchartflag;

ucharcodetable[]={"Thetemperature"};//每行显示16个字符

ucharcodetable1[]={"is:

000.0Cwfu"};

uchardatadisdata[5];

voiddelay(uintz)//短延时

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidwrite_com(ucharcom)//1602写命令子程序

{

rs=0;//RS是数据命令选择短,高电平写数据,低电平写命令

//rd=1;

lcden=0;//1602选通端,高电平选通,低电平禁止

P2=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

voidwrite_date(uchardate)//1602写数据子程序

{

rs=1;//RS是数据命令选择短,高电平写数据,低电平写命令

//rd=1;//?

?

?

?

lcden=0;//1602选通端,高电平选通,低电平禁止

P2=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

voidinit()//1602初始化程序

{

ucharnum;

lcden=0;

write_com(0x38);//00111000B,功能模式设置,设置为8为数据口,两行显示,5*7点阵

write_com(0x0c);//00001011B,显示开及光标设置,关显示,显示光标,光标闪烁

write_com(0x06);//00000110B,显示光标移动设置,读或写一个字符,地址指针减一且光标减一,写一个字符屏幕显示不移动

write_com(0x01);//00000001B,显示清屏,数据指针和所有显示清屏

write_com(0x80);//1000000B,关闭显示

delay(5);

write_com(0x80);//1000000B,设置为2行显示,写入第一行字符的地址,第一行地址是00-2F

for(num=0;num<16;num++)

{

write_date(table[num]);//写入第一行数据

delay(5);

}

write_com(0x80+0x40);//11000000B,设置为2行显示,写入第二行字符的地址,第而行地址是40-67

for(num=0;num<16;num++)//写入第二行数据

{

write_date(table1[num]);//写入第二行数据

delay(5);

}

}

voiddelay_18B20(unsignedinti)//延时1微秒

{

while(i--);

}

voidds1820rst()/*ds1820复位*///DS18B20要求数据线拉低500US即可复位。

{unsignedcharx=0;

DQ=1;//DQ复位

delay_18B20(4);//延时

DQ=0;//DQ拉低

delay_18B20(100);//精确延时大于480us

DQ=1;//拉高

delay_18B20(40);

}

uchards1820rd()/*读数据*/

{

unsignedchari=0;

unsignedchardat=0;

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

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(10);

}

return(dat);

}

voidds1820wr(ucharwdata)/*写数据*/

{

unsignedchari=0;

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

{

DQ=0;

DQ=wdata&0x01;

delay_18B

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1