温度传感器实训报告

合集下载

传感器的实训报告

传感器的实训报告

传感器的实训报告尊敬的读者,您好。

以下是关于传感器实训报告的内容,请仔细阅读。

一、引言传感器在现代科技应用中起着至关重要的作用。

为了更好地掌握传感器的原理、使用和维护,我们展开了一系列的实训活动,并在此报告中进行总结和分析。

二、实训目的我们的实训目的是通过实际操作,学习传感器的相关知识和技能,包括但不限于以下方面:1.了解传感器的工作原理和分类;2.学习传感器的实际应用和调试方法;3.熟悉传感器的数据采集和信号处理;4.了解传感器在物联网和智能系统中的应用。

三、实训内容1.传感器的工作原理和分类我们首先学习了传感器的工作原理,包括传感器是如何感知和转换环境物理量为电信号的。

在此基础上,我们进一步了解了常见的传感器分类,如温度传感器、湿度传感器、压力传感器等。

2.传感器的实际应用和调试在实际操作中,我们使用各种传感器来感知和测量实际环境中的物理量。

例如,我们使用温度传感器来测量不同物体的温度,使用光敏传感器来感知光线的强弱等。

通过这些实际应用,我们能更好地理解传感器的工作原理和使用方法。

3.数据采集和信号处理在实训中,我们了解了传感器数据采集的基本过程和方法。

我们学习了如何使用模拟和数字转换器来将传感器采集到的模拟信号转换为数字信号,并进行进一步的处理和分析。

4.传感器在物联网和智能系统中的应用随着物联网和智能系统的发展,传感器在这些领域中的应用越来越广泛。

在实训中,我们了解了传感器在智能家居、智能交通和智能工厂等领域的具体应用案例,并探讨了传感器在未来的发展方向和应用潜力。

四、实训成果与总结通过这次传感器实训活动,我们获得了以下成果:1.深入了解了传感器的工作原理和分类;2.掌握了传感器的实际应用和调试方法;3.熟悉了传感器数据采集和信号处理的基本流程;4.了解了传感器在物联网和智能系统中的应用。

总结而言,我们通过这次实训活动提高了对传感器的理论知识的理解,并且通过实际操作加深了对传感器的实际应用和调试技能的掌握。

传感器的实训报告

传感器的实训报告

传感器的实训报告一、引言传感器是现代工业,信息化,机器人,生物医疗等领域必不可少的一项技术。

传感器的应用范围广泛,从家用电器到工业的生产控制系统,从交通信号灯到机器人,从现代化教育设备到医疗诊断设备,传感器都有着重要的应用。

在大学学习中,对于传感器的理论知识已有所了解,而对于传感器在具体实践中的应用及工作原理,还需要通过实训来深入掌握。

本文将介绍一次传感器的实训报告,对传感器的应用进行了简单地介绍和总结。

二、实训内容本次实训主要是通过利用传感器对环境的监测,这种电子信息技术在现代环境监测中广泛应用。

具体实训包括以下内容:1. 实验一:温度传感器的应用2. 实验二:湿度传感器的应用3. 实验三:气体传感器的应用4. 实验四:光线传感器的应用三、实训结果1. 实验一:温度传感器的应用在第一次实验中,通过使用温度传感器来测量温度。

我们使用的是DS18B20型号的温度传感器。

该传感器的特点是可以使用单个总线,采用了数字信号输出。

实验结果:通过实验表明,DS18B20温度传感器测量的数值与实际温度误差很小,在实际应用中具有很高的精度。

2. 实验二:湿度传感器的应用在第二次实验中,我们使用DHT11型号的湿度传感器,该传感器可以同时测量温度和湿度。

我们将它安装在室内中央位置。

实验结果:实验结果表明,该传感器不只可以测量温度,同时还可以测量湿度。

在测试过程中,不同湿度环境下传感器输出的数字信号的数值具有很大的变化。

而且当环境湿度较高时,传感器的误差也相对较大。

3. 实验三:气体传感器的应用在第三次实验中,我们使用mq-2型号的气体传感器,该传感器可以测量多种气体。

实验结果:实验结果表明,该传感器可以检测多种有毒有害气体,一般用于煤气泄漏和可燃气体(含烟雾)检测,但在使用时需要注意其灵敏度,以免误报。

4. 实验四:光线传感器的应用在第四次实验中,我们使用TSL2561型号的光线传感器。

该传感器主要用于测量光照强度。

温度传感器测试报告

温度传感器测试报告

温度传感器测试报告1. 引言温度传感器是一种检测和测量周围环境温度的设备。

本报告旨在介绍对温度传感器进行的测试,以确保其准确性和可靠性。

2. 测试目标本次测试的主要目标是评估温度传感器的以下性能指标: - 准确性:传感器测量结果与实际温度之间的偏差。

- 稳定性:传感器在长时间使用过程中的测量稳定性。

- 响应时间:传感器对温度变化的快速响应能力。

3. 测试设备和环境为了进行测试,我们使用了以下设备和环境: - 温度传感器:型号XYZ,具有数字输出接口。

- 控制器:用于记录和控制温度传感器的测试环境。

- 温度计:作为参考标准,用于测量真实温度值。

- 温度稳定室:用于提供稳定的温度环境。

4. 测试步骤步骤一:准备工作1.确保所有测试设备和仪器都处于正常工作状态。

2.将温度传感器连接到控制器,并确保连线正确无误。

3.使用温度计校准控制器,以确保其准确测量真实温度。

步骤二:准确性测试1.将温度传感器放置在温度稳定室中,并设置室温为25°C。

2.记录温度传感器的测量结果,并与温度计的读数进行比较。

3.重复步骤1和2,分别将温度稳定室的温度设置为20°C、30°C、35°C等不同温度值。

4.统计并计算传感器测量结果与实际温度之间的偏差。

步骤三:稳定性测试1.将温度传感器放置在温度稳定室中,并设置室温为25°C。

2.持续记录传感器的测量结果,并观察其变化情况。

3.在一段时间内,逐渐增加或减少室温,以模拟实际使用中的温度变化。

4.观察传感器是否能够稳定地测量温度,并记录其响应时间。

步骤四:响应时间测试1.在温度稳定室中,将温度设置为一个已知的目标值。

2.突然改变目标温度值,并记录传感器的测量结果。

3.通过比较目标温度变化和传感器测量结果之间的时间差,计算传感器的响应时间。

5. 测试结果与分析根据我们的测试数据和分析,我们得出以下结论: - 温度传感器在25°C的环境下,准确度达到了±0.5°C。

传感器实训报告

传感器实训报告

传感器实训报告一、实训目的。

本次实训旨在通过传感器的实际操作,加深对传感器工作原理和应用的理解,提高实际操作能力,为日后的工程实践打下坚实的基础。

二、实训内容。

1. 传感器的分类和特点。

在实训开始前,我们首先对传感器进行了分类和特点的学习。

传感器根据测量的物理量可以分为光电传感器、温度传感器、压力传感器等,每种传感器都有其独特的工作原理和特点。

2. 传感器的接线方法。

接着,我们学习了传感器的接线方法,包括模拟传感器和数字传感器的接线方式。

对于不同类型的传感器,其接线方式也有所不同,需要根据具体情况进行正确的接线。

3. 传感器的实际应用。

在掌握了传感器的分类和接线方法后,我们开始进行传感器的实际应用操作。

通过实际操作不同类型的传感器,我们可以更好地理解传感器在工程实践中的应用,比如光电传感器在自动控制系统中的应用,温度传感器在温度监测中的应用等。

4. 传感器的故障排除。

最后,我们学习了传感器的故障排除方法。

在实际应用中,传感器可能会出现各种故障,我们需要掌握相应的排除方法,以保证传感器的正常工作。

三、实训心得。

通过本次传感器实训,我深刻体会到了理论与实践相结合的重要性。

仅仅掌握传感器的理论知识是远远不够的,只有通过实际操作,才能更好地理解和掌握传感器的工作原理和应用技巧。

实训过程中,我遇到了不少问题,但通过不懈的努力和老师同学们的帮助,我逐渐掌握了传感器的操作技巧,对传感器有了更深入的理解。

四、实训收获。

通过本次实训,我不仅掌握了传感器的分类和特点,还学会了传感器的接线方法和实际应用技巧。

同时,通过故障排除的学习,我也提高了对传感器故障的识别和解决能力。

这些知识和技能对我今后的工程实践将大有裨益。

五、总结。

通过本次传感器实训,我深刻认识到了实践是检验理论的重要手段。

只有通过实际操作,我们才能更好地理解和掌握知识,提高实际操作能力。

我会将本次实训所学到的知识和技能牢牢地记在心中,并不断努力,提高自己的专业水平。

传感器实训心得

传感器实训心得
了各种各样的问题和难题,比如传感器连接不稳、数据读取不准确等。通过分析问题的根源并结合老师的指导,我们逐一解决了这些问题,对于传感器的使用和维护也有了更加深入的理解。
五、实训意义
这次传感器实训不仅提高了我们的实际操作能力,还培养了我们对于解决实际问题的能力。在以后的工作和学习中,这些能力和经验将会对我们产生重要的影响。
传感器实训心得
在进行传感器实训的过程中,我收获颇丰,不仅对传感器的原理和应用有了更深入的了解,同时也锻炼了动手能力和解决问题的能力。在这篇文章中,我将分享我的传感器实训心得体会。
一、实训准备
在进行传感器实训之前,我首先进行了相关知识的学习和预习,包括传感器的分类、工作原理、常见故障及排除方法等。同时,我还熟悉了各类传感器的连接方式和使用方法,为实训的顺利进行奠定了坚实的基础。
六、实训展望
通过这次传感器实训,我对传感器的应用有了更加深入的了解,也激发了我进一步学习和探索的兴趣。我希望能够在未来的学习和实践中,不断提升自己的技能和能力,为科技创新和社会发展贡献自己的力量。
二、实训内容
在实训过程中,我们接触了多种类型的传感器,包括温度传感器、压力传感器、光电传感器等。通过对这些传感器的实际操作,我们深入了解了它们的特点和应用场景,并学会了如何根据实际需求选择合适的传感器。
三、实训收获
通过这次传感器实训,我不仅学会了传感器的实际应用技能,还培养了团队合作意识和动手能力。在与同学们共同完成实训任务的过程中,我们相互协作、相互学习,取得了丰硕的成果。

温度湿度传感器实训报告

温度湿度传感器实训报告

一、实训目的本次实训旨在让学生了解温度湿度传感器的基本原理、工作特性、应用领域,并通过实际操作,掌握温度湿度传感器的安装、调试和使用方法,提高学生的实践能力和动手操作技能。

二、实训内容1. 传感器原理学习首先,我们学习了温度湿度传感器的原理。

温度传感器通常采用热敏电阻、热电偶等元件,通过测量物体或环境的温度变化来实现温度监测。

湿度传感器则利用电容式、电阻式等原理,通过测量空气中水蒸气的压强变化来反映湿度变化。

2. 传感器安装与调试接下来,我们进行了温度湿度传感器的安装与调试。

首先,按照说明书的要求,将传感器安装到相应的位置。

然后,连接传感器与数据采集器,打开数据采集器,对传感器进行校准。

最后,调整传感器的工作参数,确保其正常工作。

3. 数据采集与分析安装调试完成后,我们进行了数据采集与分析。

通过数据采集器,实时获取温度湿度传感器的数据,并记录下来。

然后,对采集到的数据进行处理和分析,得出结论。

4. 传感器应用案例学习最后,我们学习了温度湿度传感器的应用案例。

例如,在气象监测、环境监测、工业生产等领域,温度湿度传感器都发挥着重要作用。

三、实训过程1. 理论学习在实训前,我们通过查阅资料、课堂讲解等方式,对温度湿度传感器的基本原理、工作特性、应用领域等进行了全面的学习。

2. 实践操作实训过程中,我们按照实训指导书的要求,进行了温度湿度传感器的安装、调试和数据采集。

在操作过程中,我们遇到了一些问题,如传感器连接不稳定、数据采集不准确等。

通过查阅资料、请教老师,我们成功解决了这些问题。

3. 数据分析与总结实训结束后,我们对采集到的数据进行处理和分析,得出结论。

同时,我们对实训过程进行了总结,总结经验教训,为以后的学习和工作打下基础。

四、实训结果1. 理论知识掌握通过本次实训,我们掌握了温度湿度传感器的基本原理、工作特性、应用领域等理论知识。

2. 实践操作技能提高通过实际操作,我们提高了安装、调试和使用温度湿度传感器的技能。

传感器实训心得

传感器实训心得

传感器实训心得一、引言作为一名电子工程专业的学生,对于传感器的应用非常重要。

为了更好地掌握传感器的原理和实际应用技能,我们学校组织了一次传感器实训。

通过这次实训,我深刻地感受到了传感器在现代科技领域的重要性和广泛应用。

本文将详细介绍我在这次实训中的所见所闻以及自身的收获。

二、传感器的选择在实训中,我们首先需要选择适合我们实验课题的传感器。

传感器的种类繁多,根据实验需要,我们选择了温度传感器和光照传感器。

这两种传感器可以在很多实际应用场景中起到重要的作用,如自动恒温系统、光线控制系统等。

三、温度传感器实践1. 器件原理我们首先开展了温度传感器的实际实验。

温度传感器是一种能够感知周围环境温度变化的传感器。

它常常由一个感温元件和一个信号处理电路组成。

感温元件根据温度的变化来改变电阻、电容等物理量,通过信号处理电路将变化转化为可读的电信号。

2. 实验过程在实验过程中,我们首先连接了温度传感器,并编写了对应的代码。

通过代码的运行,我们能够实时地显示传感器检测到的温度数值。

然后我们放置温度传感器于不同的温度环境中,观察传感器输出的电信号是否准确。

3. 实验结果通过实验,我们发现温度传感器的输出结果与实际环境温度非常接近。

无论是高温环境下,还是低温环境中,温度传感器都能够高度准确地检测到温度变化,并可靠地输出对应的电信号。

这让我对传感器的精准性和可靠性有了更深刻的认识。

四、光照传感器实践1. 器件原理在了解和实践温度传感器后,我们开始进行光照传感器的实验。

光照传感器是一种利用感光元件对光强度进行测量的传感器。

在实验中,我们使用了光敏电阻作为感光元件。

2. 实验过程我们将光照传感器与Arduino开发板连接,并写入了相应的代码。

通过编写的代码,我们能够实时地监测到当前环境的光照强度。

在实验中,我们选择了不同的光照强度下进行测试,观察传感器的响应情况。

3. 实验结果实验结果证实了光照传感器的准确性和可靠性。

无论是在强光照射下,还是暗光环境下,光照传感器都能够准确地感知到光强度的变化,并将其转化为对应的电信号输出。

温度传感器实验报告

温度传感器实验报告

温度传感器实验报告一、实验目的。

本实验旨在通过使用温度传感器,对不同温度下的电压信号进行测量和分析,从而掌握温度传感器的工作原理和特性,提高实验操作和数据处理能力。

二、实验仪器与设备。

1. Arduino开发板。

2. LM35温度传感器。

3. 连接线。

4. 电脑。

5. 串口数据线。

三、实验原理。

LM35是一种精密温度传感器,其输出电压与摄氏温度成线性关系。

在本实验中,我们将使用LM35温度传感器测量不同温度下的输出电压,并通过Arduino开发板将数据传输至电脑进行分析处理。

四、实验步骤。

1. 将LM35温度传感器与Arduino开发板连接,将传感器的输出端(中间脚)连接到Arduino的模拟输入引脚A0,将传感器的VCC端连接到Arduino的5V电源引脚,将传感器的地端连接到Arduino的地引脚。

2. 编写Arduino程序,通过模拟输入引脚A0读取LM35传感器的输出电压,并将其转换为摄氏温度值。

3. 将Arduino开发板通过串口数据线与电脑连接,将温度数据传输至电脑端。

4. 在电脑上使用串口通讯软件监测并记录温度数据。

5. 将LM35传感器分别置于不同温度环境下(如冰水混合物、常温水、温水等),记录并分析传感器输出的电压和对应的温度数值。

五、实验数据与分析。

通过实验测得的数据,我们可以绘制出LM35温度传感器的电压输出与温度之间的线性关系图。

通过分析图表数据,可以得出传感器的灵敏度、稳定性和线性度等特性参数。

六、实验结论。

通过本次实验,我们深入了解了LM35温度传感器的工作原理和特性,掌握了使用Arduino开发板对传感器输出进行数据采集和分析的方法。

同时,我们也了解到了温度传感器在不同温度环境下的表现,为今后的工程应用提供了重要参考。

七、实验总结。

温度传感器是一种常用的传感器元件,具有广泛的应用前景。

通过本次实验,我们不仅学会了对温度传感器进行实验操作,还掌握了数据采集和分析的方法,为今后的实验和工程应用打下了坚实的基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《温度传感器实训报告》实训报告课程:信号检测与技术专业:应用电子技术班级:应电1131班小组成员:欧阳主、王雅志、朱知荣、周玙旋、周合昱指导老师:宋晓虹老师2013年4月23日一、实训目的了解18b20温度传感器的基本原理与应用2、实训过程+c o m1 2 3 4 5 6 7 8D 1D 2 D 3 D 4 D 5 D 6 D 79 10 11 A B C D E F G D P P 1 P 2 P 332 110 97 gc o md p8 3 2 1V C C I /OG N DP 3.712M R1 GND 21 b 23 d 4 e 56 1、电路实现功能:由电脑 USB 接口供电,也可外接 6V —16V 的直流电源。

通过温度传感器 18B20 作为温度传感器件,测出改实际温度,再由芯片为DIP封装 AT89C2051 单片机进行数据处理,通过数码管显示温度值。

温度显示(和控制)的范围为:-55ºC 到 125ºC 之间,精度为 1ºC,也就是 显示整数。

如果你设定报警的温度为 20ºC,则当环境温度达到 21ºC 时,报警 发光二极管发光,同时继电器动作。

如果你不需要对温度控制(报警),可以将报警温度值设置高些。

如果控制的是某局部的温度,可将 18B20 用引线引出, 但距离不宜过大,注意其引脚绝缘。

2.电路的构成该电路有电源、按键控制模块、信号处理、驱动模块、显示模块、检测。

3.电路原理图AN1 vccJ3C1AN2AN3C5 104+ C4 470UF 1 2 3 4 USBJ130P JZ C230PJDQ V11N4148P1 P2 P3 10K 1 2 3 4 5 6 7 8 9 10 C3 10UF I C1 RST P3.0(RXD) P3.1(TXD) XTAL2 XTAL1 P3.2(INT0) P3.3(INT1) P3.4(T0) P3.5(T1) GND AT89C2051VCC 20 P1.7 19 P1.6 18P1.5 17 P1.4 16 P1.3 15P1.2 14 P1.1 13 P1.0 12P3.7 11 VCC R7 R8 R9 R10 R11 R12 R13 220*7 P3.7D7 D6 D5 D4 D3 D2 D1LED2 LED -38.8.8.I C3L7805OUT 3 IN8.LED1 a 1 c fJ2 2 1Q1 8550LED3 R52KI C2 DS18B20 R14 470Q2 Q3Q4VCCR6 4.7KP1P2 R2 4.7K R3855085508550P34.7K R4 4.7KVCC4.电路仿真图五、元件清单及功能介绍6、程序:/*-------------------------------温度控制器V1.5显示为三个共阳极LED温度传感器用单总线DS18B20CPU为2051,四个按键,分别为UP,DOWN,SET温度调节上限为125度,下限为-55度只能用于单只18B20-------------------------------*/#include<AT89X051.H>#include<intrins.h>#define Key_UP P3_0//上调温度#define Key_DOWN P3_1//下调温度#define Key_SET P1_7//设定键(温度设定,长按开电源)#define RelayOutPort P3_5//继电器输出#define LEDPort P1//LED控制口#define LEDOneC P3_2//LED DS1控制(百位)#define LEDTwoC P3_3//LED DS2控制(十位)#define LEDThreeC P3_4//LED DS3控制(个位)#define TMPort P3_7//DS1820DataPortunsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};//0-9的LED 笔划,0xFF为空,0xF7为负号static unsigned char bdata StateREG;//可位寻址的状态寄存器sbit DS1820ON=StateREG^0;//DS1820是否存在sbit SetTF=StateREG^1;//是否是在温度设置状态sbit KeySETDown=StateREG^2;//是否已按过SET键标识sbit PowTF=StateREG^3;//电源电源标识sbit KeyTF=StateREG^4;//键盘是否允许//sbit KeySETDowning=StateREG^5;//SET是否正在按下static unsigned char bdata TLV_at_0x0029;//温度变量高低位static unsigned char bdata THV_at_0x0028;static signed char TMV;//转换后的温度值static unsigned char KeyV,TempKeyV;//键值static signed char TMRomV_at_0x0027;//高温限制static signed char TMSetV_at_0x0026;//温度设定值static unsigned char KSDNum;//SET键连按时的采集次数static unsigned char IntNum,IntNum2,IntNum3;//中断发生次数,IntNum用于SET长按检测,IntNum2用于设定状态时LED闪烁static signed char LED_One,LED_Two,LED_Three;//LED的显示位LED_One为十位,LED_Two为个位static unsigned char Sign;//负号标识void main(void){void InitDS1820(void);//定义函数void ROMDS1820(void);void TMVDS1820(void);void TMRDS1820(void);void TMWDS1820(void);void TMREDS1820(void);void TMERDS1820(void);void ReadDS1820(void);void WriteDS1820(void);void Delay_510(void);void Delay_110(void);void Delay_10ms(void);void Delay_4s(void);void V2ToV(void);StateREG=0;//初始化变量SetTF=1;PowTF=1;//关电源THV=0;TLV=0;TMV=0;KeyV=0;TempKeyV=0;KSDNum=0;IntNum=0;IntNum2=0;IntNum3=0;LED_One=0;LED_Two=0;InitDS1820();//初始化ROMDS1820();//跳过ROMTMERDS1820();//E2PRAM中温度上限值调入RAMInitDS1820();//初始化ROMDS1820();//跳过ROMTMRDS1820();//读出温度指令ReadDS1820();//读出温度值和上限值TMSetV=TMRomV;//拷贝保存在DS18B20ROM里的上限值到TMSetVEA=1;//允许CPU中断ET0=1;//定时器0中断打开TMOD=0x1;//设定时器0为模式1,16位模式TH0=0xB1;TL0=0xDF;//设定时值为20000us(20ms)TR0=1;//开始定时while(1);}//定时器0中断外理中键扫描和显示void KeyAndDis_Time0(void)interrupt1using2{TH0=0xB1;TL0=0xDF;//设定时值为20000us(20ms)LEDPort=0xFF;if(!Key_UP)KeyV=1;if(!Key_DOWN)KeyV=2;if(!Key_SET)KeyV=3;//KeySETDowning=0;//清除if(KeyV!=0)//有键按下{Delay_10ms();//延时防抖按下10ms再测if(!Key_UP)TempKeyV=1;if(!Key_DOWN)TempKeyV=2;if(!Key_SET)TempKeyV=3;if(KeyV==TempKeyV)//两次值相等为确定接下了键{if(KeyV==3)//按下SET键,如在SET状态就退出,否则进入{//KeySETDowning=1;//表明SET正在按下PowTF=0;//电源标识开if(!KeyTF)if(SetTF){SetTF=0;//标识位标识退出设定InitDS1820();//初始化ROMDS1820();//跳过ROMTMWDS1820();//写温度上限指令WriteDS1820();//写温度上限到DS18B20ROMWriteDS1820();//写温度上限到DS18B20ROMWriteDS1820();//写温度上限到DS18B20ROMInitDS1820();//初始化ROMDS1820();//跳过ROMTMREDS1820();//温度上限值COPY回E2PRAM}elseSetTF=1;if(!KeySETDown)//没有第一次按下SET时,KeySETDown标识置1KeySETDown=1;elseKSDNum=KSDNum+1;//前一秒内有按过SET则开始计数}if(SetTF)//在SET状态下{if((KeyV==1)&&(!KeyTF))TMSetV=TMSetV+1;//上调温度if((KeyV==2)&&(!KeyTF))TMSetV=TMSetV-1;//下调温度if(TMSetV<=-55)//限制温度上下限TMSetV=-55;if(TMSetV>=125)TMSetV=125;}if((!KeyTF)&&(IntNum3==0))KeyTF=1;//当键盘处于可用时,锁定}if(KeySETDown)//在2秒内按下了SET则计中断发生次数用于长按SET时计时用IntNum=IntNum+1;if(IntNum>55)//中断发生了55次时(大约1.2秒)75为1.5秒左右{IntNum=0;KeySETDown=0;if(KSDNum==55)//如一直长按了SET1.2秒左右{RelayOutPort=1;//关闭继电器输出PowTF=1;//电源标识关LEDOneC=0;LEDTwoC=0;LEDThreeC=0;LEDPort=0xBF;//显示"--"Delay_4s();//延时LEDOneC=1;LEDTwoC=1;//关显示LEDThreeC=1;Delay_4s();IntNum=0;IntNum2=0;IntNum3=0;}KSDNum=0;}}KeyV=0;TempKeyV=0;//清空变量准备下次键扫描if(!PowTF){InitDS1820();//初始化ROMDS1820();//跳过ROMTMVDS1820();//温度转换指令Delay_510();Delay_510();//延时等待转换完成InitDS1820();//初始化ROMDS1820();//跳过ROMTMRDS1820();//读出温度指令ReadDS1820();//读出温度值V2ToV();//转换显示值if(TMV>TMSetV)//根据采集到的温度值控制继电器{RelayOutPort=0;}else{RelayOutPort=1;}if(SetTF)IntNum2=IntNum2+1;//用于闪烁计数if(IntNum2>50)IntNum2=0;if(KeyTF)IntNum3=IntNum3+1;//用于防止按键连按if(IntNum3>25){IntNum3=0;KeyTF=0;}if((SetTF)&&(IntNum2<25))goto InitEnd;//计数在后半段时显示LEDPort=LED_One;LEDOneC=0;Delay_510();LEDOneC=1;//显示百位数LEDPort=LED_Two;LEDTwoC=0;Delay_510();LEDTwoC=1;//显示十位数LEDPort=LED_Three;LEDThreeC=0;Delay_510();LEDThreeC=1;//显示个位数}InitEnd:;}void V2ToV(void)//数值转换{TLV=TLV>>4;THV=THV<<4;//读出的高低位数值移位TMV=TLV|THV;//合并高低位放入TM为实际温度值Sign=0;if(SetTF||!Key_SET)Sign=TMSetV>>7;//取符号elseSign=TMV>>7;if(Sign){if(SetTF||!Key_SET){LED_One=(~(TMSetV-1))/100;//SET状态下显示设定值LED_Two=((~(TMSetV-1))-LED_One*100)/10;LED_Three=(~(TMSetV-1))-LED_One*100-LED_Two*10;}else{LED_One=(~TMV)/100;//转换百位值LED_Two=((~TMV)-LED_One*100)/10;LED_Three=(~TMV)-LED_One*100-LED_Two*10;}}else{if(SetTF||!Key_SET){LED_One=(TMSetV)/100;//SET状态下显示设定值LED_Two=(TMSetV-LED_One*100)/10;LED_Three=TMSetV-LED_One*100-LED_Two*10;}else{LED_One=(TMV)/100;//转换百位值LED_Two=(TMV-LED_One*100)/10;LED_Three=TMV-LED_One*100-LED_Two*10;}}//转LED字段if(LED_One)//超过百时十位的处理LED_Two=LEDDis[LED_Two];else{if(LED_Two==0)LED_Two=LEDDis[10];elseLED_Two=LEDDis[LED_Two];}if(Sign)LED_One=LEDDis[11];else{if(LED_One==0)LED_One=LEDDis[10];elseLED_One=LEDDis[LED_One];}LED_Three=LEDDis[LED_Three];}void InitDS1820(void)//初始化DS1820{TMPort=1;//拉高TMPort_nop_();//保持一个周期TMPort=0;//拉低TMPortDelay_510();//延时DS1820复位时间要500us的低电平TMPort=1;//拉高TMPort_nop_();//保持_nop_();_nop_();Delay_110();//延时110us等待DS1820回应if(!TMPort)//回应信号为低电平DS1820ON=1;elseDS1820ON=0;Delay_110();//延时Delay_110();TMPort=1;//拉高TMPort}void ROMDS1820(void)//跳过ROM匹配{#pragma asmMOV A,#0CCHMOV R2,#8CLR CWR1:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR1SETB P3_7#pragma endasm}void TMVDS1820(void)//温度转换指令{#pragma asmMOV A,#44HMOV R2,#8CLR CWR2:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR2SETB P3_7#pragma endasm}void TMRDS1820(void)//读出温度指令{#pragma asmMOV A,#0BEHMOV R2,#8CLR CWR3:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR3SETB P3_7#pragma endasm}void TMWDS1820(void)//写入温度限制指令{#pragma asmMOV A,#04EHMOV R2,#8CLR CWR13:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR13SETB P3_7#pragma endasm}void TMREDS1820(void)//COPY RAM to E2PRAM {#pragma asmMOV A,#48HMOV R2,#8CLR CWR33:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR33SETB P3_7#pragma endasm}void TMERDS1820(void)//COPY E2PRAM to RAM {#pragma asmMOV A,#0B8HMOV R2,#8CLR CWR43:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR43SETB P3_7#pragma endasm}void WriteDS1820(void)//写入温度限制值{#pragma asmMOV A,26H//发出4EH写ROM指令后连发两个字节分别为上下限MOV R2,#8CLR CWR23:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR23SETB P3_7#pragma endasm}void ReadDS1820(void)//读出温度值{#pragma asmMOV R4,#3;将温度高位和低位,高温限制位从DS18B20中读出MOV R1,#29H;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV)RE00:MOV R2,#8RE01:CLR CSETB P3_7NOPNOPCLR P3_7NOPNOPNOPSETB P3_7MOV R3,#09RE10:DJNZ R3,RE10MOV C,P3_7MOV R3,#23RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV@R1,ADEC R1DJNZ R4,RE00#pragma endasm}void Delay_510(void)//延时510微秒{#pragma asmMOV R0,#7DHMOV R1,#02HTSR1:DJNZ R0,TSR1MOV R0,#7DHDJNZ R1,TSR1#pragma endasm}void Delay_110(void)//延时110微秒{#pragma asmMOV R0,#19HMOV R1,#02HTSR2:DJNZ R0,TSR2MOV R0,#19HDJNZ R1,TSR2#pragma endasm}void Delay_10ms(void)//延时10ms{#pragma asmMOV R0,#19HMOV R1,#0C8HTSR3:DJNZ R0,TSR3MOV R0,#19HDJNZ R1,TSR3#pragma endasm}void Delay_4s(void)//延时4s{#pragma asmMOV R2,#28HTSR5:MOV R0,#0FAHMOV R1,#0C8HTSR4:DJNZ R0,TSR4MOV R0,#0FAHDJNZ R1,TSR4DJNZ R2,TSR5#pragma endasm}7、心得体会通过在这次的温度传感器的实训。

相关文档
最新文档