简易温度计项目报告 本文关键词:温度计,简易,报告,项目
简易温度计项目报告 本文简介:简易温度计团队成员:蒋颂刘其聪摘要【关键词】单片机DS18B20LCD1602使用STC89C52控制处理温度传感器DS18B20的信号,并驱动1602显示实时温度。[keyword]single-chipDS18B20LCD1602UsingSTC89C52tocontrolandprocesss
简易温度计项目报告 本文内容:
简易温度计
团队成员:蒋颂
刘其聪
摘要
【关键词】
单片机
DS18B20
LCD1602
使用STC89C52控制处理温度传感器DS18B20的信号,并驱动1602显示实时温度。
[keyword]
single-chip
DS18B20
LCD1602
Using
STC89C52
to
control
and
process
signal
that
DS18B20
generates
,meanwhile
it
drive
LCD1602
display
contemporary
temperature
目录
摘要
………………………………………………………………………………1
前言
………………………………………………………………………………3
设计要求…………………………………………………………………………3
任务分析…………………………………………………………………………3
总体设计…………………………………………………………………………4
硬件设计…………………………………………………………………………5
软件设计…………………………………………………………………………6
检测调试…………………………………………………………………………7
………………………………………………………………………………8
参考文献…………………………………………………………………………8
附录
………………………………………………………………………………9
前言
本作品电源部分采用一块节3.7V
18650锂电池,温度测量范围-55℃~+55℃,电路板及各元件使用厚纸板固定及包装定型。
设计要求
利用单片机软硬件资源控制温度传感器完成温度检测,并将转换结果在液晶显示屏上显示。具体要求如下:
1.
温度测量范围-30℃~
+60℃
2.
测量精度:
#include“lcd.h“#include“temp.h“void
LcdDisplay(int);
void
main()
{
LcdInit();
//初始化LCD1602
LcdWriteCom(0x88);//写地址
80表示初始地址
LcdWriteData(
C
);
while(1)
{
LcdDisplay(Ds18b20ReadTemp());
//Delay1ms(1000);//1s钟刷一次
}
}
void
LcdDisplay(int
temp)
//lcd显示
{
unsigned
char
datas[]
=
{0,0,0,0,0};
//定义数组
float
tp;
if(temp<
0)//当温度值为负数
{
LcdWriteCom(0x80);//写地址
80表示初始地址
LcdWriteData(
-
);
//显示负
//因为读取的温度是实际温度的补码,所以减1,再取反求出原码
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;}
else
{
LcdWriteCom(0x80);//写地址
80表示初始地址
LcdWriteData(
+
);
//显示正
tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量
//如果温度是正的那么,那么正数的原码就是补码它本身
temp=tp*0.0625*100+0.5;}
datas[0]
=
temp
/
10000;
datas[1]
=
temp
%
10000
/
1000;
datas[2]
=
temp
%
1000
/
100;
datas[3]
=
temp
%
100
/
10;
datas[4]
=
temp
%
10;
LcdWriteCom(0x82);
//写地址
80表示初始地址
LcdWriteData(
0
+datas[0]);
//百位
LcdWriteCom(0x83);
//写地址
80表示初始地址
LcdWriteData(
0
+datas[1]);
//十位
LcdWriteCom(0x84);//写地址
80表示初始地址
LcdWriteData(
0
+datas[2]);
//个位
LcdWriteCom(0x85);//写地址
80表示初始地址
LcdWriteData(
.
);
//显示
‘.’
LcdWriteCom(0x86);
//写地址
80表示初始地址
LcdWriteData(
0
+datas[3]);
//显示小数点
LcdWriteCom(0x87);
//写地址
80表示初始地址
LcdWriteData(
0
+datas[4]);
//显示小数点
}