电子体温计.doc
《电子系统
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
》课程设计报告
姓 名:
学 号:
专业班级:
指导教师:
设计
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目: 电子体温计
完成时间:
总功能(20%) 实训(60%) 设计报告(20%) 评
元器件 简易难度 控制方式 原理图 装配图 自控质量 功能实现 质量评估 格式 内容焊接 (10%) (10%) (10%) (10%) (10%) (10%) (10%) (5%) (15%) (10%)
指导教师签名:
摘要
介绍了单总线数字温度传感器DS18B20的特性及工作原理,给出了AT89C51单片机与DS18B20构成温度,测量系统并详细介绍利用C语言编程实现对DS18B20访问。实际测试结果表明这种测温系统转换速度快、精度高,整个系统具有稳定性强等特点。
关键词:DS18B20;数字温度传感器;AT89C5l;
目 录
1. 市场分析 ................................................................................................ 1 2. 方案比较与温度传感器的选择 ............................................................. 1 3.理论分析与计算 ..................................................................................... 1
3.1总系统方案设计描述: ................................................................ 1 4.电路图及有关设计文件 ......................................................................... 2
4.1系统电路原理图及所生成PCB图 ................................................. 2
4.2主要电路设计 ................................................................................ 3
4.2.1.温度检测模块 ..................................................................... 3
4.2.2单片机电路 .......................................................................... 4
4.2.3数码管扫描显示电路 .......................................................... 4
4.2.4.报警电路 ............................................................................. 5
4.3软件系统设计 ................................................................................ 6
4.3.1温度部分软件设计 .............................................................. 6 5.测试方法与仪表 ................................................................................... 12 6.测试数据及结果分析 ........................................................................... 13
6.1测试数据 ...................................................................................... 13
6.2 测试结果分析与测试中的问题.................................................. 13
7.心得体会 ........................................................... 错误~未定义书签。14
参考文献:............................................................................................... 14 附录: ...................................................................................................... 14
1. 市场分析
体温计是人们日常生活中的必备品。传统的水银体温计存在测温时间长、读数不便等缺点。本文介绍的电子体温计采用单片机控制、数字温度传感器测温,使用方便、读数直观。其显示精度为0.1?。当温度处在20?一50?度之间时, 还可在显示的温度值后面加低体温、正常氏热、超高热等友情提示。
2. 方案比较与温度传感器的选择
方案一:采用热敏电阻。热敏电阻价格便宜,对温度灵敏,原理简单,但线性度不好,如不进行线性补偿,对于本设计归一化输出的要求,难于达到设计精度;如要对非线性进行补偿,则电路结构复杂,难于调整。故不采用。
方案二:采用热电偶。热电偶在测温范围内热电性质稳定,不随时间变化而变化,电阻温度系数小,导电率高,比热小,但热电偶一般体积较大,使用不方便,价格相对较高。作为一个智能体温计的温度传感器,要求体积小,使用方便,便于携带,故此方案不合适。
方案三:采用数字温度传感器。集成温度传感器一般且有具有线性好、精度高、灵敏度高、体积小、使用方便等优点。根据实验室现有
材料
关于××同志的政审材料调查表环保先进个人材料国家普通话测试材料农民专业合作社注销四查四问剖析材料
可选取DS18B20。DS18B20的测温范围为-55?,+150?,能满足本设计的0,50度测量要求。根据
,相关技术资料:DS18B20线性电流输出为1A/K,正比于绝对温度;DS18B20的电源电压范围为4V,30V,并可承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。该方案能完全满足此设计的要求,故采用此方案。
3.理论分析与计算
3.1总系统方案设计描述:
根据题目要求,将系统分为若干模块,以单片机为核心,完成项功能。
1
图1 总体设计框架
图1DS18B20集温度测量和A,D转换于一体,直接输出数字量,直接与单片机接口连接不需要外围元件,把数字信号传入单片机,单片机把这些信号处理后通过LED数码管显示出来。同时单片机还处理按键、报警模块。
4.电路图及有关设计文件
4.1系统电路原理图及所生成PCB图
图2 系统电路原理图
2
图2.1系统电路所生成PCB图 如图2所示,该电路主要由温度检测,单片机,报警电路,数码管扫描显示电路组成。
4.2主要电路设计
4.2.1.温度检测模块
图3 温度检测电路
3
图3为温度检测模块主要器件:DS18B20:数字温度传感器,电阻:5.1K。
DS18B20温度传感器简介:
(1)单总线接口方式:与微处理器连接时仅需要一条信号线即可实现双向通讯; (2)使用中无需外部器件,可以利用数据线或外部电源提供电能,供电电压范围(3-5(5V;
(3)直接读出数字量,工作可靠,精度高,且通过编程可实现9,12位分辨率读出温度数据,转换12的温度数据最大仅需要750ms;
(4)温度测量范围一55?,+150? ,一1O?,+85?之间测量精度可达士0(5?; (5)可设定非易失的报警上下限值,一旦测量温度超过此设定值,即可给出报警标志;
(6)每片DS18B20上有唯一的64bit识别码,可轻松组建分布式温度测量测量网络。
4.2.2单片机电路
图4 单片机电路
4.2.3数码管扫描显示电路
4
图5 数码管扫描显示
图5 数码管显示电路:四位共阳数码管,8个220的上拉电阻,9014三极管,4个1K的三极管上拉电阻组成。
数码管显示采用的是动态方式扫描,动态显示的特点:
, 优点:当显示位数较多时,采用动态显示方式比较节省I/O口,硬件电路也
较静态显示简单。
, 缺点:其稳定度不如静态显示方式。而且在显示位数较多时CPU要轮番扫描,
占用CPU较多的时间。
4.2.4.报警电路
图6 报警电路
图6 报警电路:9014三极管,一个10K电阻,一个1K电阻,一个电磁式蜂
5
鸣器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
4.3软件系统设计
图7 软件系统流程图
4.3.1温度部分软件设计
DS1 8B20的一线工作
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
流程是:初始化一ROM操作指令—储器操作指令—数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS1 8B20进行复位,复位成功后发送一条ROM指令(最后发送RAM指令。这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒。然后释放(DS18B20收到信号后等待16--60微
6
秒左右,后发出60~240微秒的存在低脉冲(主CPU收到此信号表示复位成功。程序
主要
函数
excel方差函数excelsd函数已知函数 2 f x m x mx m 2 1 4 2拉格朗日函数pdf函数公式下载
部分如下:
1) 主函数
Main()
{
bep=0;
Disdata=0xff;
discan=0xff;
for(h=0;h<4;h++)
{
display[h]=0;
}
ow_reset();
write_byte(0xCC);
write_byte(0x44);
for(h=0;h<500;h++)
{
scan();
if(sum>33)
{
delay(1);
beep();
}
}
while(1)
{
read_temp();
work_temp();
for(h=0;h<50;h++)
{
scan();
If(sum>33)
7
{
delay(1);
beep();
}
}
}
}
2) 初始化函数
ow_reset(void) {
char presence=1;
while(presence)
{
while(presence)
{
DQ=1;
_nop_();
_nop_();
DQ=0;
delay(50);
DQ=1;
delay(6);
presence=DQ;
}
delay(45);
presence=~DQ;
}
DQ=1;
}
3)18B20写命令函数
void write_byte(uchar val)
{
uchar i;
8
for(i=8;i>0;i--)
{
DQ=1;
_nop_();
_nop_();
DQ=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
DQ=val&0x01;
delay(6);
val=val/2;
}
DQ=1;
delay(1);
}
4)18B20读1字节函数
uchar read_byte(void)
{
uchar i;
uchar value=0;
for(i=8;i>0;i--)
{
DQ=1;
_nop_();
_nop_();
value>>=1;
DQ=0;
_nop_();
_nop_();
_nop_();
9
_nop_();
DQ=1;
_nop_();
_nop_();
_nop_();
_nop_();
if(DQ)
value|=0x80;
delay(6);
}
DQ=1;
return(value); }
5)读出温度函数read_temp() {
ow_reset();
write_byte(0xCC);
write_byte(0xBE);
temp_data[0]=read_byte();
temp_data[1]=read_byte();
temp=temp_data[1];
ow_reset();
write_byte(0xCC);
write_byte(0x44); }
6)温度数据处理函数
work_temp()
{
uchar flag=0;
uint i=0;
temp>>=7;
if(temp==1) //确定最高位是否有效
{
10
temp_data[1]=256-temp_data[1];
temp_data[0]=256-temp_data[0];
temp_data[0]++ ;
flag=1;
display[4]=temp_data[0]&0x0f;
display[0]=ditab[display[4]];
display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x07)<<4)-16;
display[3]=0x0a;
display[2]=display[4]%100/10;
display[1]=display[4]%10;
sum=display[2]*10+display[1]+display[0]*(0.1);
for(i=0;i<6;i++)
{
delay(1000);
LED=1;
delay(1000);
LED=0;
}
}
else
{
display[4]=temp_data[0]&0x0f;
display[0]=ditab[display[4]];
display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x07)<<4);
display[3]=display[4]/100;
display[2]=display[4]%100/10;
display[1]=display[4]%10;
sum=display[2]*10+display[1]+display[0]*(0.1);
for(i=0;i<8;i++)
{
delay(1000);
LED=1;
delay(1000);
11
LED=0;
}
}
if(!display[3])
{ display[3]=0x0a;
if(!display[2])
{ display[2]=0x0a; }
}
if(flag)
{
display[3]=0x0b;
}
}
5.测试方法与仪表
(1)测试电路及温度校正仪器
a.水银温度计
b.数字万用表
(2)测试方法:
a. 硬件测试
以水温代替人的体温,用一根水银温度计与所制作的体温计探头(捆绑)同时接触被测热水的同一点。
(A)准备一杯0摄氏度的冰水混合物和一杯热水。从0度开始记录测试点的电压值与温度计对比较。记完一个数后,往杯中加热水,这样,每测一次,记录一次数据,再加一次热水,这样使水温渐渐升高,一直测到水温为50摄氏度。测试结果如表1所示,说明数码管显示的数值是否与测试点所测值在误差允许范围内是成归一化关系的。
b.软件测试
12
将各功能子程序进行KAIL C系统进行软件仿真,全部通过,再进行硬件仿真,也能全部实现所要求实现的功能。
数码管显示的测试:DS18B20与单片机相连接,观察数码管显示的数值是否与测试点所测值成归一化关系。
c.硬件与软件的联机测试
根据前面的测试,说明系统设计的软、硬件设计基本取得成功。将把程序经编译、下载到相应的AT89C51芯片中,构建电路测试,比较数码管显示的数值与温度计的值和测试点的值。整体测试结果如表1所示。
6.测试数据及结果分析
6.1测试数据
温度值(摄氏度) 数码管显示值
0 00.0
10.0 10.0
19.0 19.0
38.2 38.2
48.0 48.0
如表1 数码显示与测试点电压随温度变化的关系
6.2 测试结果分析与测试中的问题
根据上述测试结果,此系统的设计基本取得成功。电子体温计在测试温度方面有一定的成效,测试误差较小,显示的误差与实际的温度值误差在内,在,:0.1C功能上达到了课设的要求。
测试中遇到的问题:
在测试的过程中,遇到许多的问题,所测试的温度和实际的温度有很大温差,造成这一现象的原因可能有二种:
13
第一,硬件电路电阻不符合标配电阻而导致温度有误差;解决方法:将电路电阻和标配电阻阻值相符。
第二,主要原因在程序中所取的温度采样点过少,而导致在温度测试过程中有较大的误差,解决方法:取更多的采样点采集所测试到的温度,使测试温度和实际温度更加接近。
参考文献:
[1] 第二届全国大学生电子设计竞赛组委会. 全国大学生电子设计竞赛获奖作品选编(1994-1995). 北京:北京理工大学出版社,1997
[2]童诗白 华成英 《模拟电子技术基础》 高等教育出版社,2006 [3]李金平 《电子系统设计》 电子工业出版社,2007
[4]潘永雄 《新编单片机原理及应用》 西安,西安电子科技大学出版社,2007
附录:
附1:元器件清单表
器件名称 型号规格 数量(个)
10K 10 固定电阻
1K 16 固定电阻
470 8 固定电阻
220 10 固定电阻
5.1K 2 固定电阻
30PF 2 电容
47UF 2 电解电容
0.1UF 2 电容
1 发光二极管
11.0592HZ 1 晶振
1 电磁式蜂鸣器
14
1 共阳极四位数码管
DS18B20 1 单总线数字温度传感器
AT89C51 1 总线型单片机型片
20 单排插针
1 单片机插座
15