基于数字温度传感器的数字温度计应用研究.docx
- 文档编号:20149852
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:13
- 大小:120.60KB
基于数字温度传感器的数字温度计应用研究.docx
《基于数字温度传感器的数字温度计应用研究.docx》由会员分享,可在线阅读,更多相关《基于数字温度传感器的数字温度计应用研究.docx(13页珍藏版)》请在冰豆网上搜索。
基于数字温度传感器的数字温度计应用研究
1.绪论1
1.1基本要求1
1.2课程设计内容1
1.3课程设计的要求与指标1
2.硬件设计2
2.1框图设计分析2
3.软件设计3
3.1电路图单片机连线设计3
3.2显示部分电路4
4.程序调试6
4.1程序调试6
致谢8
参考文献9
附录Ⅰ10
1.绪论
1.1基本要求
该课程设计基本思路是基于单片机STC90C51和数码管与DS18B20,使得期间可以测得周围环境的温度并在数码管上显示出该温度值,在自主设计的系统中,如果该温度超出设定的范围,就会引起蜂鸣器的发声来通知工作人员。
1.2课程设计内容
(1)主要采用STC90C51芯片来制造一个用来测试环境温度的仪器。
(2)编写程序并调试好的程序下载到单片机中。
(3)设计并绘制硬件电路图。
(4)连接好并检查,使其能实现预定的功能。
1.3课程设计的要求与指标
(1)控制模块为STC90C51,完成设计要简单。
(2)利用数字温度传感器DS18B20测量温度信号,计算后在数码管上显示相应的温度值。
(3)其温度测量范围为−55℃~125℃,精确到0.1℃。
2.硬件设计
2.1框图设计分析
时钟振荡
单片机复位
如图一所示,设计的数字温度计主要由五部分组成:
单片机、晶振电路、复位电路、温度传感器以及LED显示模块。
设计中主要模块:
单片机最小系统,包括单片机、复位电路、晶振电路。
工作原理非常简单:
温度传感器DS18B20实现实时温度检测,然后通过单片机来根据传感器特性计算出温度,通过控制LED显示出来。
3.软件设计
3.1电路图单片机连线设计
图二单片机连线
如图二所示,将单片机各管脚用引线引出,P0、P1和P3口均接上拉电阻。
VCC接接复位电路。
3.2显示部分电路
如图三所示,为数码管的显示电路,P2.0、P2.1、P2.2口分别接译码器的A、B、C口,译码器G2A、G2B接地。
译码器12到15管脚接数码管的位选。
数码管的段选由P0口控制。
图三显示部分电路
图四温度传感器
如图四所示,为温度传感器,共三个引脚,最右侧为输入端接高电平,中间引脚接数据端,左侧引脚接地。
4.程序调试
4.1程序调试
图五调试前效果图
如图五所示,为温度测试结果。
程序调试之前,只有两个数码管显示数字,精度不高,误差大,灵敏度低。
不能很好地反应温度的变化,效果不好。
图六调试后效果图
如图六所示为调试后的效果图,选择三位数码管显示数字温度,精确到小数点后一位。
此时效果显著,温度变化快,精度高。
致谢
经过将近三周的单片机课程设计,终于完成了我的数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把实物都做了出来,高兴之余不得不深思!
在本次设计的过程中,我发现很多的问题,在此我感谢我的老师卢纪丽和王鹏超同学,在制作期间他们给我了很多意见和帮助。
在此对大家的帮助深表感谢。
如果没事老师的严格要求,根本学不到东西。
希望以后的学习中,可以得到老师的帮助。
参考文献
[1]徐爱钧.《智能化测量控制仪表原理与设计》(第二版)[M].北京:
北京航空航天大学出版社,2004.
[2]吴金戌,沈庆阳,郭庭吉.《8051单片机实践与应用》[M].北京:
清华大学出版社,2002.
[3]张国勋,《缩短ICL7135A/D采样程序时间的一种方法》[J].《电子技术应用》,1993,第一期.
[4]高峰,《单片微型计算机与接口技术》[M].北京:
科学出版社,2003.
[5]张俊谟,单片机中级教程—原理与应用[J].北京航空航天大学出版社.2007,45-12
[6]滕志军.今日电子[J].基于超声波检测的倒车雷达设计.2006,(9):
15-17.
[7]徐科军.传感器与检测技术[M].北京:
电子工业出版社,2007:
110-113,160-161.
[8]张世生,科技情报开发与经济[J].怎样分析单片机程序.2006,(3):
25-27.
[9]刘湘涛,江世明.单片机原理与应用[M].北京:
电子工业出版社,2006:
1-4.
[10]何立民.单片机初级教程[M].北京:
北京航空航天大学出版社,1999:
25-32.
附录Ⅰ
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitDQ=P2^3;//数据口defineinterface
uinttemp;//温度值variableoftemperature
//带小数点
unsignedcharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
voiddelay(unsignedchari)
{
While(--i);
}
delay(0):
延时518us误差:
518-2*256=6
delay
(1):
延时7us
delay(10):
延时25us误差:
25-20=5
delay(20):
延时45us误差:
45-40=5
delay(100):
延时205us误差:
205-200=5
delay(200):
延时405us误差:
405-400=5
voidInit_Ds18b20(void)//DS18B20初始化sendresetandinitializationcommand
{
DQ=1;//DQ复位,不要也可行。
delay
(1);//稍做延时
DQ=0;//单片机拉低总线
delay(250);//精确延时,维持480us~960us
DQ=1;//释放总线,即拉高了总线
delay(100);//此处延时有足够,确保能让DS18B20发出存在脉冲。
}
UcharRead_One_Byte()//读取一个字节的数据readabytedate
//读数据时,数据以字节的最低有效位先从总线移出
{
uchari=0;
uchardat=0;
for(i=8;i>0;i--)
{
DQ=0;//将总线拉低,要在1us之后释放总线
//单片机要在此下降沿后的15us内读数据才会有效。
_nop_();//至少维持了1us,表示读时序开始
dat>>=1;//让从总线上读到的位数据,依次从高位移动到低位。
DQ=1;//释放总线,此后DS18B20会控制总线,把数据传输到总线上
delay
(1);//延时7us,此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分
if(DQ)//控制器进行采样
{
dat|=0x80;//若总线为1,即DQ为1,那就把dat的最高位置1;若为0,则不进行处理,保持为0
}
delay(10);//此延时不能少,确保读时序的长度60us。
}
return(dat);
}
voidWrite_One_Byte(uchardat)
{
uchari=0;
for(i=8;i>0;i--)
{
DQ=0;//拉低总线
_nop_();//至少维持了1us,表示写时序(包括写0时序或写1时序)开始
DQ=dat&0x01;//从字节的最低位开始传输
//指令dat的最低位赋予给总线,必须在拉低总线后的15us内,
//因为15us后DS18B20会对总线采样。
delay(10);//必须让写时序持续至少60us
DQ=1;//写完后,必须释放总线,
dat>>=1;
delay
(1);
}
}
uintGet_Tmp()//获取温度getthetemperature
{
floattt;
uchara,b;
Init_Ds18b20();//初始化
Write_One_Byte(0xcc);//忽略ROM指令
Write_One_Byte(0x44);//温度转换指令
Init_Ds18b20();//初始化
Write_One_Byte(0xcc);//忽略ROM指令
Write_One_Byte(0xbe);//读暂存器指令
a=Read_One_Byte();//读取到的第一个字节为温度LSB
b=Read_One_Byte();//读取到的第一个字节为温度MSB
temp=b;//先把高八位有效数据赋于temp
temp<<=8;//把以上8位数据从temp低八位移到高八位
temp=temp|a;//两字节合成一个整型变量
tt=temp*0.0625;//得到真实十进制温度值
//因为DS18B20可以精确到0.0625度
//所以读回数据的最低位代表的是0.0625度
temp=tt*10+0.5;//放大十倍
//这样做的目的将小数点后第一位也转换为可显示数字
//同时进行一个四舍五入操作。
returntemp;
}
voidDisplay(uinttemp)//显示程序
{
ucharA1,A2,A3;
A1=temp/100;//百位
A2=temp%100/10;//十位
A3=temp%10;//个位
P2=5;
P0=table[A1];//显示百位
delay(0);
P0=0;
P2=6;
P0=table1[A2];//显示十位,使用的是有小数点的数组(因为temp值扩大了10倍,虽然是十位,实际为个位)
delay(0);
P0=0;
P2=7;
P0=table[A3];//显示个位
delay(0);
P0=0;
}
voidmain()
{
while
(1)
{
Display(GetTmp());
}
}........忽略此处.......
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 数字 温度传感器 温度计 应用 研究
![提示](https://static.bdocx.com/images/bang_tan.gif)