数字式温度计总结报告

合集下载

数字温度计学习心得

数字温度计学习心得
3、该温度计采用常见的+5v供电,通电后打开开关即可显示当前温度,在某种情况下死机时,只要按下复位键,即可重新启动,显示当前温度。该温度计的上下限温度由AT89S52控制,如想改变报警上下温度,则取下AT89S52对其软件代码进行修改即可。
4、测试方法及过程:使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,键盘电路,显示电路,温度测试电路等)。采用温度传感器和温度计同时测量同样室温不同环境下变化情况(取温度值不同的多点),目测显示电8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,1个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
数字温度计学习心得
1、这个温度计是采用同DS18B20来采集温度并卷入单片机AT89S52进行处理,然后同单片机控制LED数码管显示温度值。此外,还增加了报警电路,通过单片机P1.4品输送报警信号,当温度达到报警范围时蜂鸣器报警。
2、主控制芯片采用单片机AT8S52.AT89S52提供内部时钟信号并同其P0,P2吕输出在LED数码管显示出来,并同内部中断来和键盘电路组成时间,AT89S52具有以下功能:

数字温度计开发总结报告

数字温度计开发总结报告

数字温度计开发总结报告1引言1.1编写目的总结制作数字温度计的过程方法以及对于各器件的说明,需要预读的资料包括STC89C52RC的使用说明和DS18B20中文资料。

1.2背景说明:项目名称:数字温度计。

系统的任务提出者:刘继光。

系统的任务开发者:李丽华,刘烨(硬件)。

王殿棋,王帅(软件)。

1.3参考资料STC89C52RC单片机器件手册。

DS18B20中文资料及原版资料。

温度计驱动程序。

2实际开发结果2.1数字温度计共两部分组成,硬件部分以及软件部分。

硬件部分:1)DS18B20温度传感器部分,通过该传感器传递外界温度信息给单片机。

2)STC89C52RC单片机,是该数字温度计的核心部分,通过程序驱动实现特定功能,并控制数码管显示。

3)七段LED数码管,最终显示温度值。

软件部分:4)KeilnVision2,通过该软件建立项目调用单片机信息写入程序,最终生成后缀名为.hex格式文件。

5)STC_ISP_V480,将生成的.hex文件下载到单片机中产生最终效果。

2.2主要功能和性能可以实时的显示数字温度计当前所在位置的温度示值。

2.3基本流程2.4进度总体进度提前完成。

3开发工作评价3.1对生产效率的评价程序方面由于对知识掌握不足导致编写有所拖沓。

硬件电路方面每次都提前完成任务。

3.2对产品质量的评价开发过程中遇到些小麻烦,首先软件方面程序的编写修改不是很熟练,硬件方面数码管一个地方显示亮度不够,但整体过程还算顺利,电路焊接牢固,软件驱动正常。

3.3对技术方法的评价虽然焊接手法不够熟练准确,焊接电路时的错误基本全部都可以通过万用表检测出来。

3.4出错原因的分析对于基础知识掌握不够导致程序编写受阻,以后应加强基础知识的掌握。

4经验与教训通过这款产品的制作,总结出经验与教训如下:1.着手制作产品前应对产品所涉及的器件使用说明认真学习掌握。

2.焊接电路时焊枪头不易与器件管脚接触时间过长,否则有个能导致器件过热损坏。

数字体温计总结报告

数字体温计总结报告

HT7500型高精度微型化医用数字体温计摘要:HT7500是一种可广泛用于医院和家庭中的新型高精度多功能医用数字体温计集成电路。

文中介绍了HT7500的主要功能和工作原理,给出了采用HT7500设计的数字体温计的实际电路和工作流程。

在医院和家庭中普遍使用酒精(或水银)温度计来测量体温,不仅测量时间长,而且读数也不方便。

市场上销售的数字体温计不仅精度较低、体积大、耗电多,而且功能单一,难于推广应用。

HOLTEK公司推出的HT7500型医用数字体温计集成电路,可满足医院及家庭的急需,特别适合构成高精度(±0.1℃)、多功能、微型化的临床体温计,可满足医院及家庭的急需。

1HT7500的性能特点HT7500是一种单片低电压CMOS电路,可配合503ET型高精度热敏电阻构成体温计。

503ET在+25℃时的标称值为50.00Ω,热敏指数B为4.055K(江苏兴顺电子有限公司生产),它的外围电路非常简单,仅需3只电阻、4只电容、1只压电陶瓷蜂鸣器和3位半液晶(LCD)显示器即可。

HT7500的测量精度很高,它既可测量摄氏温度,又可测量华氏温度范围为+32.0℃~+42.0℃(或+90.0°F~+108.0°F)。

在+35℃~+39℃(或+95°F~+102°F)范围内,其测温精度高达±0.1℃(或±0.2°F),这是其它数字温度计所难以达到的技术指标。

此外,HT7500还具有多种温度报警及自动关机功能。

当体温超过+37.5℃时,蜂鸣器会发出持续时间为4s的报警声,而当体温低于+32℃或超过+42℃时,该体温计将分别显示出下限温度、上限温度。

若等待时间超过8分钟40秒,它将自动关机以节省电能。

下次通电后能自动显示断电前最后一次测量的体温值。

由HT7500设计的这种数字体温计具有最大读数保持功能,能测量人体最高温度。

同时还具有LCD显示器自检及电池低电压指示功能。

数字温度计实验报告

数字温度计实验报告

题 目:DS18B20数字温度计的设计 姓 名: 学 号:专 业:电气工程及其自动化 指导老师:设计时间:2010年 6 月课程设计报告书电子与信息工程学院目录1.引言 (3)1.1.设计意义 (3)1.2.系统功能要求 (3)1.3.本组成员所做的工作 (3)2.方案设计 (3)3.硬件设计 (4)3.1.主控制器 (5)3.2.显示电路 (5)3.3.数字温度传感器DS18B20 (5)4.软件设计 (8)4.1.主程序 (8)4.2.读出温度子程序 (9)4.3.温度转换命令子程序 (10)4.4.计算温度子程序 (10)4.5.显示数据刷新子程序 (11)5.系统调试 (12)6.设计总结 (12)7.附录A;源程序 (13)8.附录B;作品实物图片 (17)9.参考文献 (17)DS18B20数字温度计的设计1.引言1.1.设计意义单片机原理及应用是自动化专业的专业实践课程。

本课程的任务是使学生通过“简易数字电压表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼自己的动手能力和分析解决问题的能力;积累经验,培养一丝不苟的学习精神和对所学知识的综合应用能力。

1.2.系统功能要求采用数字式温度传感器为检测器件,进行单点温度检测。

用数码管直接显示温度值,微机系统作为数字温度计的控制系统。

1.基本要求:(1)检测的温度范围:0℃~100℃,检测分辨率 0.5℃。

(2)用4位数码管来显示温度值。

(3)超过警戒值(自己定义)要报警提示。

2.提高要求(1)扩展温度范围。

(2)增加检测点的个数,实现多点温度检测。

1.3.本组成员所做的工作XX :焊接实验总体电路板以及修改错误;XX :实验线路布局以及撰写实验报告;XX :调试与排除故障。

2.方案设计在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

数字温度计实验报告_hcs_2007011218

数字温度计实验报告_hcs_2007011218

实验日期:2009年7月6日~8日实验室:3—228 座位号:10 清华大学电子工程系数模混合硬件系统设计——数字温度计实验报告班级:无七九班姓名:胡聪世学号:2007011218实验日期:2009年7月6日~8日交报告日期: 2009年7月11日一、实验目的:1.解决实际问题的能力。

(方案→结果)2.电路系统的设计能力。

(模块化,EDA)3.电路系统的调试能力。

(系统调试)4.实验研究,表达能力。

(报告,结果数据处理分析,创新性见解和改进措施)二、实验题目:用热敏电阻作为温度传感器,设计一个数字温度温度计。

热敏电阻的典型特性如下表所示。

具体数据要求如下:实验的要求1. 按照上表接入所列的电阻,电路应显示相应的温度值,温度范围不得小于20~50℃,误差不的大于±2℃2.按照上表接入所列的电阻,电路应显示相应的温度值,温度范围不得小于20~50℃,误差不的大于±1℃3. 按照上表接入所列的电阻,电路应显示相应的温度值,温度范围不得小于5~70℃,误差不的大于±1℃4.* 温度范围不得小于-10~+80℃,误差不的大于±1℃,电路应能显示一昼夜的最高温度与最低的温度值。

三、实验设计:(1)总体思路:将表示温度的自然量与电阻关系,通过合理的拟合曲线,得到函数关系F1,通过构造相应的电路,得到电压与电阻的函数关系F2,F2与F1满足正比关系。

这样就可以得到将温度线性表示的电压值——容易进行相关操作。

此为电路的电阻电压线性化部分。

为了将温度通过数码管表示出来,需要通过计数器进行计数,使得数码管可以显示0~99℃的温度值。

此为温度显示计数部分。

由于数码管计数为数字量,为了能够通过比较,使得计数在何时的情况下停止,需要引进数模转换部分,将数字量变为模拟量,方便与电阻电压进行比较,此为DA 转换部分。

将上面得到的两部分比较,并在电阻电压低于数码管电压时计数,否则停止计数。

数字温度计实验报告

数字温度计实验报告

课程授课教案一、实验目的和要求1.掌握集成运算放大器的工作原理及其应用。

2.掌握温度传感器工作原理及其应用电路。

3. 了解双积分式A/D转换器的工作原理。

4. 熟悉213位A/D转换器MC14433的性能及其引脚功能。

5. 熟悉模拟信号采集和输出数据显示的综合设计与调试方法。

6. 进一步练习较复杂电路系统的综合布线和读图能力。

设计要求如下:1. 设计一个数字式温度计,即用数字显示被测温度。

数字式温度计具体要求为:①测量范围为0~100℃②用4位LED数码管显示。

二、主要仪器和设备1.数字示波器2.数字万用表3.电路元器件:温度传感器 LM35 1片集成运算放大器LM741 1片集成稳压器 MC1403 1片A/D转换器 MC14433 1片七路达林顿晶体管列阵 MC1413 1片BCD七段译码/驱动器 CC4511 1片电阻、电容、电位器若干三、实验内容、原理及步骤1.总体方案设计图1为数字温度计的原理框图。

其工作原理是将被测的温度信号通过传感器转换成随温度变化的电压信号,此电压信号经过放大电路后,通过模数转换器把模拟量转变成数字量,最后将数字量送显示电路,用4位LED数码管显示。

图1 数字温度计原理框图2. 温度传感器及其应用电路温度传感器LM35将温度变化转换为电信号,温度每升高一度,大约输出电压升高10mV。

在25摄氏度时,输出约250mV。

图2(a)、(b)图为LM35测温电路。

(a)基本的测温电路(+2°C to +150°C) (b)全量程的测温电路(−55°C to +150°C)图2(a)、(b)图为LM35测温电路LM35系列封装及引脚参见下图 3。

图 3 LM35系列封装及引脚图3.放大电路放大器使用LM 741普通运放,作为实验用数字温度计,可以满足要求;如果作为长期使用的定型产品,可以选用性能更好、温度漂移更小的OP07等型号的产品,引脚与LM741兼容,可以直接替换使用。

数字温度计实训报告总结

数字温度计实训报告总结

一、实训目的本次实训的主要目的是让我们了解数字温度计的工作原理,掌握数字温度计的组成和基本工作流程,学会使用数字温度计进行温度测量,并了解数字温度计在实际应用中的意义。

二、实训环境实训地点:XX实验室实训设备:数字温度计、温湿度传感器、示波器、电源、计算机等三、实训原理数字温度计是一种利用温度传感器将温度信号转换为数字信号的测量仪器。

它主要由温度传感器、模数转换器、微处理器、显示模块和外围电路组成。

1. 温度传感器:将温度信号转换为电信号,如热敏电阻、热电偶等。

2. 模数转换器:将温度传感器的模拟信号转换为数字信号。

3. 微处理器:对数字信号进行处理,计算出温度值。

4. 显示模块:将温度值以数字形式显示出来。

5. 外围电路:为数字温度计提供电源、时钟信号等。

四、实训过程1. 观察数字温度计的结构和组成,了解各个模块的功能。

2. 使用数字温度计进行温度测量,观察测量结果。

3. 通过示波器观察温度传感器的输出信号,分析信号特点。

4. 利用计算机软件对温度信号进行处理,分析信号变化规律。

5. 分析数字温度计在实际应用中的优缺点。

五、实训结果1. 通过观察数字温度计的结构和组成,了解了数字温度计的工作原理。

2. 使用数字温度计进行温度测量,得到了准确的测量结果。

3. 通过示波器观察温度传感器的输出信号,分析了信号特点。

4. 利用计算机软件对温度信号进行处理,得出了信号变化规律。

5. 分析了数字温度计在实际应用中的优缺点。

六、实训总结1. 通过本次实训,我们掌握了数字温度计的工作原理和组成。

2. 学会了使用数字温度计进行温度测量,提高了实际操作能力。

3. 通过示波器和计算机软件,加深了对信号处理的理解。

4. 了解了数字温度计在实际应用中的意义,为今后从事相关工作打下了基础。

5. 提出了以下几点建议:(1)在实训过程中,要注重理论学习,提高对数字温度计的理解。

(2)多动手操作,提高实际操作能力。

(3)关注数字温度计的发展动态,了解新技术、新应用。

数字体温计实验报告

数字体温计实验报告

数字体温计实验报告数字体温计实验报告引言:数字体温计是一种现代化的温度测量设备,它通过使用传感器和数字显示屏来准确测量人体温度。

本实验旨在探究数字体温计的工作原理、准确性以及与传统温度计的比较。

实验步骤:1. 准备工作:确保实验环境安静、温度适宜,并准备好传统温度计和数字体温计。

2. 实验组织:将实验参与者分为两组,每组使用一种温度计进行测量。

3. 测量方法:首先,使用传统温度计在参与者的腋下测量体温,并记录结果。

然后,使用数字体温计在同一位置测量体温,并记录结果。

4. 重复测量:为了确保准确性,每个参与者的体温都应重复测量两次。

5. 数据分析:将所有测量结果进行整理和比较,并计算平均值和标准差。

实验结果:通过对多个参与者进行测量,我们得出了以下结果:1. 数字体温计的测量结果与传统温度计的结果非常接近,差异较小。

2. 数字体温计的测量速度较快,几乎可以即时显示温度值。

3. 数字体温计的使用更加方便,无需摇晃或等待温度计稳定。

4. 数字体温计的数字显示屏清晰可见,易于读取。

讨论:数字体温计在准确性和便携性方面表现出色。

由于其使用数字显示屏,读取温度更加方便,尤其适用于老年人和儿童。

此外,数字体温计还具有防水功能,可以更好地保护设备免受污染。

然而,仍有一些问题需要解决。

数字体温计需要电池供电,如果电池电量不足,可能会影响准确性。

此外,数字体温计的价格相对较高,有些人可能无法承担。

结论:通过本次实验,我们发现数字体温计是一种准确、方便且易于使用的温度测量设备。

它在测量速度和读取方面具有明显优势,并且与传统温度计的测量结果相当接近。

然而,由于其依赖电池供电和较高的价格,我们仍需权衡其优势和不足,选择适合自己的温度测量设备。

展望:随着科技的不断发展,数字体温计可能会进一步改进和创新。

例如,可以加入智能功能,如与手机连接,记录和跟踪体温变化。

此外,还可以研究更环保的电池替代方案,以减少对电池的依赖。

我们期待数字体温计在未来的发展中能够更好地满足人们的需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delay();
if(b=0)
break;
while(1)
{
if(BitS1_GetVal()==0)
{
delay();
if(BitS1_GetVal()==0)
display_num(++num1);
}Leabharlann if(BitS2_GetVal()==0)
{
delay();
if(BitS2_GetVal()==0)
//RT=10*EXP(3270*(1/T1-1/(273.15+25)))
T = 1/(log(r/10)/3270+1/(273.15+25))-273.15;//电阻转换温度
display_num(T);//数码管显示温度值
display(T);//用浮点数显示温度值
for(i=0;i<200000;i++);
int b=1;//设置跳跃点,用于退出设置模式
int c=0;//进入下限报警值设置初始化值
for(;;)
{
AD1_Measure(TRUE);
AD1_GetValue16(&val);//AD转换温度电压值
v = val;
r = 10/(v/65536)-10;//电压转换电阻
//R25=10K, T2=273.15+25,B=3270,
{
delay();
if(BitS1_GetVal()==0 && BitS2_GetVal()==0)
b=0;
break;
}
}
}
if(T>d)//温度上限报警判断
{
BitDS1_PutVal(0);
delay();
BitDS1_PutVal(1);
}
if(T<e)//温度下限报警判断
{
BitDS1_PutVal(0);
main()
{
word val; //AD测热敏电阻温度
float v,r,T;//定义浮点数v,r,T
int i,d,e;//定义整型变量i,上,下限变量d,e
int num = 0;//上限计数变量初始化值
int num1 = 0;//下限计数变量初始化值
int a=0;//进入上限报警值设置初始化值
{
Bit164Data_PutVal(ch1 & 0x80);
Bit164Clk_PutVal(1);
Bit164Clk_PutVal(0);
ch1 <<= 1;
}
}
课程设计心得体会:
通过这一次的课程设计程序的编写让我体会良多,温度测试和灯光报警部分难度不大,经过几次试验、修改,程序就顺利地编写完成。但按键设置上下限报警值部分却让我遇到了巨大阻力。按键的按下与弹起的判断,在程序编写完成试验后,总是会出现互相干扰的情况,我不得不尝试各种判断语句的组合,花费了大量时间后,还是通过建立一个跳跃点的方式才让程序可以顺利地进入、退出报警值设置模式。这让我意识到,程序的编写并不是简单的想要怎样的结果,写完之后就是怎样的结果。一段正确的程序总是需要不断的试验,修改,直到最后的实际效果与预期相同时才算真正的完成了。
display_num(--num1);
}
if(num1<0)
{
num1 = 0;
display_num(num1);
}
if(num1>99)
{
num1 = 99;
display_num(num1);
}
e=num1;
if(BitS1_GetVal()==0 && BitS2_GetVal()==0)
工作原理:
根据热敏电阻随温度变化阻值会相应变化的特性,通过与普通电阻串联实用AD芯片测量其中点的电压,得出电压与温度的对应关系,运用单片机编程,讲温度显示到数码管上。
原理框图:
单片机KL25Z128LV
芯片KL25Z128LV是整个电路的核心器件。实现巡回监视温度信号。当温度超过给定的限值时出现报警信号(液晶显示器显示当前温度值,LED灯闪烁报警)。其电路图如下
设计任务与要求:用程序实现:
1、测温范围0—99.9℃,,分辨率0.1℃
2、3位数码管显示,实时显示当前温度
3、键盘设置温度上、下限报警值,当温度达到设定值,LED灯闪烁报警
方案选择:
本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,而所用飞思卡尔ARM正好有所需A/D转换电路和热敏电阻,多以采用热敏电阻测温。
delay();
BitDS1_PutVal(1);
}
}
}
子函数:
void disp(int d) //数码管显示
{
char segments[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char ch =segments[d%10];
ch2 = seg[val/10%10] & 0x7f;
ch1 = seg[val%10];
}
else
{
val = f;
ch3 = seg[val/100%10];
ch2 = seg[val/10%10];
ch1 = seg[val%10];
}
for(i=0;i<8;i++)
{
Bit164Data_PutVal(ch3 & 0x80);
if(BitS1_GetVal()==0 && BitS2_GetVal()==0)
{
delay();
if(BitS1_GetVal()==0 && BitS2_GetVal()==0)
b=0;
break;
}
}
}
while(BitS2_GetVal()==0)//按键S2设置下限报警值
{
display_num(c);
{
disp(n/100%10);
disp(n/10%10);
disp(n%10);
}
void delay()//延时
{
int i;
for(i=0;i<500000;i++);
}
void display(float f) //浮点数
{
char seg[10] = {0xc0,0xf9, 0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
热敏电阻
热敏电阻实现温度信号的采集及A/D转换,可以将检测到的温度直接显示在数码管上。其电路图如下:
按键设置:
按键用于设置温度的报警上下限。键盘模块采用独立按键方式。分别由单片机的两个接口驱动。两个按键分别代表不同作用。按键S1按第一下进入温度上限设置模式,然后按键S1用于上下限设定时的增,按键S2用于上下限设定时的减。同时按下S1,S2温度报警值设定完成,退出设置模式。同理按键S2可用于温度下限设置。考虑到系统要求并不高,所以采用独立键盘,简单实用,降低了软件的要求,并且硬件电路复杂度也降低。其电路图如下:
int i;
for(i=0;i<8;i++)
{
if((ch & 0x80)==0)
Bit164Data_PutVal(0);
else
Bit164Data_PutVal(1);
Bit164Clk_PutVal(1);
Bit164Clk_PutVal(0);
ch <<= 1;
}
}
void display_num(int n) //取百,十,个位
程序流程图及说明:
主函数完成常量的初始化,读取温度转换值,调用数据处理的子函数然后生成显示温度值,然后通过按键设置温度报警值,根据显示的温度值判断温度是否超出了预设范围,如果超出,则LED灯会闪烁报警。
主函数流程图:
源代码:
主程序:在程序中完成对温度的测量,并显示在数码管上,按键设置上下限报警值,温度超过预设则LED闪烁报警。
}
if(BitS2_GetVal()==0)
{
delay();
if(BitS2_GetVal()==0)
display_num(--num);
}
if(num<0)
{
num = 0;
display_num(num);
}
if(num>99)
{
num = 99;
display_num(num);
}
d=num;
while(BitS1_GetVal()==0)//按键S1设置上限报警值
{
display_num(a);
delay();
if(b=0)
break;
while(1)
{
if(BitS1_GetVal()==0)
{
delay();
if(BitS1_GetVal()==0)
display_num(++num);
Bit164Clk_PutVal(1);
Bit164Clk_PutVal(0);
ch3 <<= 1;
}
for(i=0;i<8;i++)
{
Bit164Data_PutVal(ch2 & 0x80);
Bit164Clk_PutVal(1);
相关文档
最新文档