单片机温度检测系统设计Word下载.docx
- 文档编号:18933624
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:24
- 大小:908.03KB
单片机温度检测系统设计Word下载.docx
《单片机温度检测系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《单片机温度检测系统设计Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
最高运作频率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℃时精度为±
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所示:
时钟电路模块
图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)
(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初始化
DS18B20进行温度采集
LCD显示实时温度
等待
图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
电解电容
22UF/16V
CPU
双列直插
STC89C52RC
HD
CPU座
DIP-40
4.7K
温度传感器
DS18B20
电位器
3296W-103
液晶显示器
LCD1602
1P杜邦线彩色
母对母两头插好杜邦头
孔对孔40根一排
单根长度20cm
30针
排针
脚距2.54高11
1X40单排插针
30线
最小系统板
洞洞板
9X7CM
单面
表二温度检测单片机元器件明细表
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<
reg52.h>
intrins.h>
#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>
y--);
}
voidwrite_com(ucharcom)//1602写命令子程序
rs=0;
//RS是数据命令选择短,高电平写数据,低电平写命令
//rd=1;
lcden=0;
//1602选通端,高电平选通,低电平禁止
P2=com;
delay(5);
lcden=1;
voidwrite_date(uchardate)//1602写数据子程序
rs=1;
//RS是数据命令选择短,高电平写数据,低电平写命令
//?
?
P2=date;
voidinit()//1602初始化程序
ucharnum;
write_com(0x38);
//00111000B,功能模式设置,设置为8为数据口,两行显示,5*7点阵
write_com(0x0c);
//00001011B,显示开及光标设置,关显示,显示光标,光标闪烁
write_com(0x06);
//00000110B,显示光标移动设置,读或写一个字符,地址指针减一且光标减一,写一个字符屏幕显示不移动
write_com(0x01);
//00000001B,显示清屏,数据指针和所有显示清屏
write_com(0x80);
//1000000B,关闭显示
//1000000B,设置为2行显示,写入第一行字符的地址,第一行地址是00-2F
for(num=0;
num<
16;
num++)
{
write_date(table[num]);
//写入第一行数据
delay(5);
}
write_com(0x80+0x40);
//11000000B,设置为2行显示,写入第二行字符的地址,第而行地址是40-67
num++)//写入第二行数据
write_date(table1[num]);
//写入第二行数据
}
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
//拉高
delay_18B20(40);
}
uchards1820rd()/*读数据*/
{
unsignedchari=0;
unsignedchardat=0;
for(i=8;
i>
i--)
//给脉冲信号
dat>
>
=1;
if(DQ)
dat|=0x80;
delay_18B20(10);
return(dat);
voidds1820wr(ucharwdata)/*写数据*/
i>
i--)
{
DQ=wdata&
0x01;
w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 检测 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)