智能仪器 温度测量..
温度计的使用方法和注意事项

温度计是一种常见的测量温度的仪器,它在医疗、科研、工业等领域都有着广泛的应用。
正确的使用方法和注意事项对于准确测量温度、保护仪器以及人身安全都至关重要。
以下将介绍温度计的使用方法和注意事项。
一、温度计的使用方法1.选择适当的温度计:根据需要测量的温度范围和精度要求选择合适的温度计,常见的温度计有普通温度计、红外线温度计、数字温度计等。
2.校准温度计:使用前要确保温度计已经校准,确保准确度和精度。
3.正确放置温度计:使用时要确保温度计的探头完全接触被测物体表面,避免空气的影响。
4.等待稳定:在测量过程中,要等待温度计显示的数值稳定后再进行记录。
二、温度计的注意事项1.避免受潮:温度计是一种精密仪器,应该避免受潮,使用后应该及时擦干,存放在干燥通风的地方。
2.防止震动和跌落:温度计是一种精密仪器,应该避免受震动和跌落,以免损坏。
3.使用过程中保持清洁:使用温度计前后要保持探头的干净,避免污染影响测量准确性。
4.谨慎处理:使用温度计时要轻拿轻放,避免摔碰或者撞击。
文章中提到的使用方法和注意事项是使用温度计时需要特别注意的问题,只有正确的使用和注意才能保证温度计的准确度和使用寿命。
希望本文对您在使用温度计时有所帮助。
三、温度计的维护和保养1.定期校准:为了确保温度计的准确性,在使用一段时间后应该定期对温度计进行校准,校准频率根据使用频率和精度要求而定。
2.存放温度计:在存放温度计时,应该将其放置在干燥通风的地方,并且避免高温、潮湿以及日光直射的地方,以免影响仪器的性能和准确度。
3.清洁温度计:定期清洁温度计的外部表面和探头,避免灰尘、油脂和其他杂质的堆积影响测量的准确性。
4.注意电池电量:如果是电子温度计,则要定期检查电池电量,保持电池的电量充足,以免影响仪器的使用。
四、不同类型温度计的使用方法和注意事项1.普通温度计:使用时应该确保温度计的水银或酒精能够完全接触被测物体表面,避免出现气泡或者不良接触导致的不准确测量;在测量结束后,应该将温度计轻轻拿起,避免摔碰或者打翻。
智能仪器设计温度传感器的完整设计

指导老师: 班级:姓名:学号:目录1系统方案 (1)1.1 测温模块的论证与选择 (1)1.2 电源电路切换模块的论证与选择 (1)1.3 控制系统的论证与选择 (1)1.4 显示模块的论证与选择 (2)1.5键盘模块 (2)2系统理论分析与计算 (3)3电路与程序设计 (4)3.1电路的设计 (4)3.1.1系统总体框图 (4)3.1.2 电源转换电路子系统的设计 (4)3.1.3 STC89C52单片机子系统的设计 (5)3.1.4电源的设计 (6)3.1.5温度采集电路子系统电路的设计 (7)3.1.6键盘模块 (7)3.2程序的设计 (8)3.2.1程序功能描述 (8)3.2.2程序流程图 (8)4测试方案与测试结果 (9)4.1测试方案 (9)4.2 测试条件与仪器 (9)4.3 测试结果及结论 (9)1系统方案本系统主要由测温模块、电源电路切换模块、控制系统模块、显示模块、键盘模块及电源模块组成,下面分别论证这几个模块的选择。
1.1 测温模块的论证与选择方案一:PT100温度传感器采用铂金属,它的阻值随温度上升而匀速增长,但是外接硬件电路复杂,需AD转换,测量范围小,精度一般。
方案二:采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。
数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。
由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。
鉴于DS18B20以上优点,故采用方案1.2 电源电路切换模块的论证与选择方案一:使用开关型手动切换电路不能受单片机控制,耗费人力,切换不及时,精度不准确,易受人为干扰等。
方案二:使用继电器使用两个继电器在电路初始状态下是输出端全部接地使电路在初始状态时处于不工作状态,而且它能实现单电源的正负实时切换,简单易行,元器件选择容易,焊接简单且控制效果很不错。
智能仪器在温度测控系统中的应用

() 盘 扫 描 任 务 5键 该 任 务 的功 能 是 识 别 按 下 的键 值 并 向 消 息处 理 任 务 发 送 消 息 。 盘扫 键
描过程就是让处理器按有规律地时间间隔查看键 盘矩阵, 以确定是否有键 被按下 。 2 4数 据 采 集 程 序 设 计 . 为了及时对 A D转换进 行响应,软件采用 中断方式处理采集到 的数 / 据 。数据采集程序可 分为两部分 :/ A D转换主程序和外部中断 0服务程序。 A D转换主程序 主要是实现 LC 24硬件初 始化、外部 中断 0初始化 , / P 29 完 成对 L C 6 6的启动 。外部 中断 0服务程序主要是及 时读 出 A D转换 结 T嵌入 的高速 F a h存储器。18位宽度的存储器接 IS P , 5K ls 2 口和独特的加速结构使 3 2位代码能够在最大 时钟速 率下运 行。对代码 规 模有严格控制, 使用 1 6位 T u b模式可将代码规模 降低 , hm 而性能的损失却 很小 。 2 温度测控系统软件设计 、 智能仪表的许多功能是在硬件设计 的基础上用软件 来实现 的, 其主要 任务包括 : 设 置 、 改 、 示 仪表 的 参数 : 修 显 检 测 、 算 、 示 温度 等 工况 参 数 ; 计 显 温度状态指示及报警输出; 定 时 存 储 各 种 检 测及 运 算参 数 。 2 1 动 代 码 (o t la e ) .启 Bo o d r 由于 A M系统的是复杂 的片上系统 (O ) 这种复杂 系统里 的多数 硬 R SC, 件 模 块 都 是 可 以配 置 的 , 需要 由 软件 来 确 定 其 工作 状 态 。 由于 这类 代 码 直 接 面 对 处 理 器 内 核 和 硬 件 控 制 器 进 行 编 程 , 般 使用 汇 编 语 言 编 写 , 动 一 启 代码就是完成各种初始化工作, 并到 引导进入 C语言程序 。 2 2嵌 入 式 软 件 设 计 . 针 对 每 一 部 分 所 需 要 完 成 的任 务 , 操 作 系统 的 各个 部 分 可 划 分 为 如 对 下模块 : () 统 外 围设 备 的硬 件 模 块 , 括 : 晶 显 示 屏 (C )G IU B通 信 1系 包 液 L D / U ,S 模 块 , 盘 , 储 器 、 统 的 时钟 日历 等 。 键 存 系 () 动 程 序 模 块 , 动 程 序 模 块 是 连 接 底 层 的 硬 件 和 上 层 的 A I函 2驱 驱 P 数 的纽带, 了驱动程序模 块, 有 就可 以把操 作系统的 A I函数和底层 的硬 P
电子温度计

电子温度计电子温度计一、引言电子温度计是一种使用电子元器件进行温度测量的仪器,具有快速、准确和便携等优点,被广泛应用于工业、医疗、农业、科研等领域。
本文将详细介绍电子温度计的工作原理、分类、应用以及发展趋势等方面,旨在帮助读者更好地了解和使用电子温度计。
二、工作原理电子温度计通过测量物体的温度与电子元器件之间的关系,间接地得出温度值。
其中最常用的原理是热敏电阻、热电偶和红外测温。
1. 热敏电阻热敏电阻是一种电阻随温度变化的元件,它的电阻值与物体的温度成正比关系。
电子温度计中的热敏电阻会随着温度的变化而产生电压,通过测量这个电压值可以得到物体的温度。
热敏电阻广泛应用于家用电器、汽车以及医疗设备等领域。
2. 热电偶热电偶是由两种不同金属引线焊接而成的元件,它利用两种金属在温度变化下产生的电动势来测量温度。
根据热电偶的材料不同,其温度范围可以达到较高的温度。
热电偶常被用于高温环境下的测温,如航天、冶金和化工等领域。
3. 红外测温红外测温利用物体自身辐射的红外辐射能量与温度之间的关系来测量温度。
通过红外传感器捕捉物体发出的红外辐射,转化为电信号后,经过数学处理即可得到温度值。
红外测温广泛应用于生产线的自动化控制、医院的体温测量以及消防领域。
三、分类按照使用场景和测量范围的不同,电子温度计可分为接触式和非接触式温度计。
1. 接触式温度计接触式温度计需要与被测物体接触,通过物体传导热量的方式进行温度测量。
常见的接触式温度计有电阻温度计、热电偶温度计和温度计枪等。
- 电阻温度计:电阻温度计利用热敏电阻的原理进行温度测量,适用于较为精确的实验和工业领域。
- 热电偶温度计:热电偶温度计利用热电偶的温度特性进行温度测量,适用于高温环境和特殊工况。
- 温度计枪:温度计枪利用红外测温原理进行温度测量,适用于远距离、快速测温。
2. 非接触式温度计非接触式温度计不需要与被测物体接触,通过测量物体发出的红外辐射来得出温度值。
温度测量技术的发展与应用

温度测量技术的发展与应用温度是指物体内部分子振动的程度,是描述物体热能状态的物理量。
在工业、农业、医疗等领域中,温度一直都是一个非常重要的参考值。
因此,测温技术的发展一直备受瞩目。
一、温度的测量方式1. 接触式温度计接触式温度计是最普遍的温度测量方法之一。
它需要将温度计的测量头与物体接触,通过测量头将真实温度传到显示仪器上。
接触式温度计包括普通的水银温度计、铂电阻温度计、热敏电阻温度计等。
这些温度计的精度和使用条件各不相同。
2. 非接触式测温技术近年来,随着红外线技术的发展,非接触式温度测量技术得到了广泛应用。
这种技术通过测量物体表面辐射出的红外线,来推断物体的温度。
它们可以测量高温物体如炉子、发动机等处于400℃-2000℃范围的表面温度。
而且,由于无需接触测量,非接触式温度计可以在危险、不适合人工接触的环境中使用,使用非常广泛。
3. 光学式测温技术光学式测温技术使用的物理原理同非接触式温度计,也是通过物体表面的光谱特性,并结合对物体表面热辐射的观察,精确测量物体的温度值。
这种技术应用范围在1000℃-2000℃之间。
二、温度测量技术的进展1. 新型的传感器新型的温度传感器在内部电路的设计、外观结构等方面得到了优化。
包括热敏电阻、铂电阻、热电偶,以及新兴的MEMS (基于微机电系统)技术制造出来的微型温度传感器。
这些新型传感器具有更高的精度和更持久的稳定性,而且更加灵活。
2. 智能温度计随着微电子技术、通信技术的发展,新一代的智能温度计问世了。
智能温度计不仅可以实现数据采集、处理和记录,还可以与计算机、网络等互连,实现远程数据传输及其它更先进的功能。
这使得温度管理变得更加便捷高效,大大提高了工作效率。
三、温度测量技术的应用情况1. 工业领域温度的测量在工业控制中十分重要。
例如,钢铁、化学工业等行业中,需要测量高温物体的温度。
而非接触式温度计因其速度快、精度高、适用于危险场合等特点,因此广泛应用于工业生产的各个方面。
温度测控仪设计-毕业设计

温度测控仪设计学生:XXX 指导教师:XXX内容摘要:本文主要介绍了智能温度测量仪的设计,包括硬件和软件的设计。
先对该测量仪进行概括性介绍,然后介绍该测量仪在硬件设计上的主要器件:“Pt100热电阻”、AT89C51单片机和LCD显示器以及描述测量仪的总体结构原理。
在本设计中,是以铂电阻PT100作为温度传感器,采用恒流测温的方法,通过单片机进行控制,用放大器、A/D 转换器进行温度信号的采集。
总体来说,该设计是切实可行的。
关键词:温度 Pt100热电阻 AT89C51单片机 LCD显示器Design of and control instrumentAbstract: This paper describes the design of the intelligent temperature measuring instrument, including hardware and software design. Be the first general description of the measuring instrument, and then describes the hardware design of the measuring instrument's main device: "Pt100 thermal resistance", AT89C51 microcontroller and LCD display, and describe the principle of measuring the overall structure. In this design, as is the PT100 platinum resistance temperature sensor, temperature measurement using constant current method, through the microcontroller to control, amplifier, A/D converter for temperature signal acquisition. Overall, the design is feasible.Keywords:temperature Pt100 thermal resistance AT89C51 microcontroller LCD monitor.目录前言 (1)1 总体硬件方案设计 (1)1.1温度传感器的放大电路设计 (2)1.2TLC549模数转化电路设计 (4)1.3显示电路设计 (5)1.4无线发送与接收模块的选择与设计 (5)1.5键盘设计 (6)2 总体的软件程序的设计 (6)2.1温度数据采集和数据处理子程序的设计 (6)2.2温度显示、保存处理的子程序设计 (7)2.3无线发送与接受的子程序的设计 (7)2.4十组温度查询的子程序设计 (9)3 调试与结果分析 (10)3.1调试仪器及方法 (10)3.3软、硬件调试与故障原因分析 (10)4 结束语 (10)附录1:硬件原理图及PCB板 (12)附录2:软件程序代码 (13)参考文献 (34)温度测控仪的设计前言随着工业生产效率的不断提高,自动化水平与范围也不断扩大,因而对温度检测技术的要求也愈来愈高,现在工业上通用的温度检测范围为200 ~3000℃,而今后要求能测量超高温度与超低温度。
基于单片机的热敏电阻温度计的设计

基于单片机的热敏电阻温度计的设计
随着科技的不断发展,各种电子设备应用也越来越广泛。
热敏电
阻温度计便是其中之一,它是一种利用物质温度对电阻值的变化来实
现温度测量的智能仪器。
本篇文章将介绍热敏电阻温度计的设计及其
原理。
首先,我们需要准备的材料有单片机、热敏电阻、电阻、显示屏、连接线以及电源。
将这些材料准备齐全后,便可以开始进行热敏电阻
温度计的设计。
我们需要将热敏电阻、电阻、单片机连接成电路。
电路连接后,
需要进行编程,以使得单片机能够读取热敏电阻和电压值,并将其转
换成温度值。
通过显示屏将温度值显示出来,实现对温度的实时监测。
在热敏电阻温度计设计的过程中,需要注意以下几点:
1. 选用合适的热敏电阻:热敏电阻的温度系数决定了它在不同温
度下的电阻值,因此需要选择合适的热敏电阻。
2. 电路的稳定性:电路中各部分的连接不可松动,否则会影响温
度测量的准确性。
3. 编程的准确性:需要通过合理的代码编写来实现对热敏电阻和
电压值的正确读取和转换,确保温度测量的准确性。
总之,热敏电阻温度计因其简单易用、准确度高等优点被广泛应
用于各种领域中,例如工业制冷、医疗设备等。
希望通过本篇文章的
介绍,能够帮助读者更好地了解热敏电阻温度计的设计及其原理,以便于更好地应用于实际生活生产中。
PT1000温度测量

图 7 显示电路
根据要求,显示最高位为百位,最低位为小数点后两位。 2、软件设计 软件部分分为延时子程序, 显示子程序,数据处理子程序以及主程序四个部 分。程序主流程图如下:
开始 系统初始化
PT1000 温度数据采集
处理读到数据
LED 显示
结束
图 8 系统总流程图
(1)主程序 用于控制单片机开关中断和调用子程序以实现数据的处理和显示, 流程图如 下:
图 5 A/D 转换电路
ADC0808 是采样分辨率为 8 位的、以逐次逼近原理进行模/数转换的器件。 其内部有一个 8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通 8 路模拟输入信号中的一个进行 A/D 转换。 (4)数据处理电路 通过 AT89C51 单片机对 ADC0808 处理后的数据进行分析计算以用作输出。 具体电路图如图 6 数据处理电路:
Design of temperature measuring instrument based on PT1000
Abstract: This paper mainly introduces the design of temperature measuring instrument, including the hardware design and software design. This paper introduces the overall structure of the system, then the system design process were introduced ( including the hardware part and software ), the last of this design were summarized in this paper. In this design chose PT1000 as a temperature sensor, adopts a constant-current source method for temperature measurement, through the microcontroller to control, amplifier, A / D converter temperature signal acquisition. In general, the design is feasible. Key words: AT89C51 microcontroller; Pt1000 thermal resistance; temperature;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《智能仪器》实验报告实验项目温度测量实验时间同组同学班级11111学号1111111姓名111112014年4月实验二温度测量一、实验目的了解常用的集成温度传感器(AD590)基本原理、性能;掌握测温方法以及数据采集和线性标度变换程序的编程方法。
二、实验仪器智能调节仪、PT100、AD590、温度源、温度传感器模块,传感器实验箱(一);“SMP-201 8051模块”、“SMP-204 块块模块”、“SMP-101 8位A/D模块”、“SMP-401 块块块示模块”。
三、实验原理集成温度传感器AD590是把温敏器件、偏置电路、放大电路及线性化电路集成在同一芯片上的温度传感器。
其特点是使用方便、外围电路简单、性能稳定可靠;不足的是测温范围较小、使用环境有一定的限制。
AD590能直接给出正比于绝对温度的理想线性输出,在一定温度下,相当于一个恒流源,一般用于-50℃-+150℃之间温度测量。
温敏晶体管的集电极电流恒定时,晶体管的基极-发射极电压与温度成线性关系。
为克服温敏晶体管U b电压生产时的离散性、均采用了特殊的差分电路。
本实验仪采用电流输出型集成温度传感器AD590,在一定温度下,相当于一个恒流源。
因此不易受接触电阻、引线电阻、电压噪声的干扰,具有很好的线性特性。
AD590的灵敏度(标定系数)为1 A/K,只需要一种+4V~+30V电源(本实验仪用+5V),即可实现温度到电流的线性变换,然后在终端使用一只取样电阻(本实验中为传感器调理电路单元中R2=100Ω)即可实现电流到电压的转换,使用十分方便。
电流输出型比电压输出型的测量精度更高。
在实验一的基础上进行电压测量、标定、线性变换,最后显示出对应温度。
图2-1 温度传感器模块原理图四、实验内容与步骤1.参考“附录实验PT100温度控制实验”,将温度控制在500C,在另一个温度传感器插孔中插入集成温度传感器AD590。
2.将±15V直流稳压电源接至实验箱(一)上,温度传感器实验模块的输出Uo2接实验台上直流电压表。
3.按图2-1接线,并将AD590引线的红色端接“温度传感器模块”的a1,蓝色端接“温度传感器模块”的b1,并从实验台上接+5V 电源到a1端。
调节RW2大约在中间位置,用实验台上“直流电压表”的20V 档测量“温度传感器模块”的“Uo2”端,再调节电位器Rw1使直流电压表显示为零。
5.按照图将信号引到差动放大器的输入Ui ,记下模块输出Uo2的电压值。
6.升高温度源的温度每隔50C 记下Uo2的输出值。
直到温度升至1200C 。
并将实验结果填入表2-1。
7.按照实验1的1-5步骤搭建单片机AD 转换电路,将模块输出电压Uo2接入到“SMP-101 8位AD 块块模块”的CH0;8.编写数据采集程序及标度变换程序,并进行调试,检验程序的测量结果是否与温度源给定的温度一致。
(数据采集程序及硬件电路参考“实验一”的结果,线性标度变换公式参考教材中的“标度变换”一节)五、实验报告1.由记录的数据数据计算在此范围内整个测温系统的灵敏度,并画出标定出的拟合直线。
(端基法)表2-1 温度与输出电压关系T Uo2V (℃())384552596673801.387 1.419 1.45 1.483 1.515 1.548 1.581T (℃) 384552596673808794101108115Uo2(V )1.387 1.419 1.450 1.483 1.515 1.548 1.581 1.612 1.645 1.678 1.710 1.7422.由表2-1记录的数据计算在此范围内集成温度传感器的非线性误差。
K=(1.742-1.387)/(115-38)=0.0046所以y=0.0046*x+1.2122V1=0V2=0.0002V3=0.0014V4=0.0006V5=0.0008V6=0V7=0.0080V8=0.0004V9=0.0016V10=0.0012V11=0.0010V12=0所以最大误差为:0.0016非线性误差=0.0016/1.742*100%=0.09% 3.画出程序流程图。
开始初始化AD转换器结束4.用c语言编制实验程序。
主程序:#include <c8051f020.h> // SFR declarations#include <stdio.h>#include "Delay.h"#include "AD774.h"//-----------------------------------------------------------------------------// 16-bit SFR Definitions for 'F02x//-----------------------------------------------------------------------------sfr16 DP = 0x82; // data pointersfr16 TMR3RL = 0x92; // Timer3 reload valuesfr16 TMR3 = 0x94; // Timer3 countersfr16 ADC0 = 0xbe; // ADC0 datasfr16 ADC0GT = 0xc4; // ADC0 greater than windowsfr16 ADC0LT = 0xc6; // ADC0 less than windowsfr16 RCAP2 = 0xca; // Timer2 capture/reloadsfr16 T2 = 0xcc; // Timer2sfr16 RCAP4 = 0xe4; / Timer4 capture/reloadsfr16 T4 = 0xf4; // Timer4sfr16 DAC0 = 0xd2; // DAC0 datasfr16 DAC1 = 0xd5; // DAC1 data//-----------------------------------------------------------------------------// Global CONSTANTS//-----------------------------------------------------------------------------#define BAUDRATE 115200 // Baud rate of UART in bps#define SYSCLK 22118400//11059200 // SYSCLK frequency in Hz#define SAMPLE_RATE 50000 // Sample frequency in Hz #define INT_DEC 256 // integrate and decimate ratio//sbit AD_BUSY = P3^5;sbit AD_BUSY = P1^6;//-----------------------------------------------------------------------------// Function PROTOTYPES//-----------------------------------------------------------------------------void SYSCLK_Init (void);void PORT_Init (void);//-----------------------------------------------------------------------------// Global V ARIABLES//-----------------------------------------------------------------------------long result; // ADC0 decimated value//-----------------------------------------------------------------------------// MAIN Routine//-----------------------------------------------------------------------------void main (void){unsigned char high8,low4;unsigned char HIGH4,LOW8;unsigned char i=0;unsigned char add=0;unsigned char j=0; // temperature WDTCN = 0xde; // disable watchdog timer WDTCN = 0xad;SYSCLK_Init (); // initialize oscillatorPORT_Init (); // initialize crossbar and GPIO// sample rateHIGH4 = 0x00;LOW8 = 0x00;AD_BUSY = 1;//选择并设置多路开关的通道为第1 号通道SET_PGA(0x00); //选择并设置程控放大器的放大倍数为1while(1){SET_PLUS(0x00+2*0x20);AD_START(); //启动AD转换while(AD_BUSY); //等AD转换完if(!AD_BUSY) //若转换完,则读转换后的数字量{high8 = RD_ADDA TA_H8(); //读高8位(D7~D4D11~D8)low4 = RD_ADDATA_L4(); //读低4位(D3~D0)}HIGH4 = high8 & 0x0f; // (0000D11~D8)-> HIGH4LOW8 = (high8 & 0xf0)|(low4 & 0x0f);//(D7~D4D3~D0)-> LOW8//P2 = HIGH4;//P3 = LOW8;result=HIGH4*256+LOW8;result=HIGH4*256+LOW8;Delay_ms(255);}}}//-----------------------------------------------------------------------------// Initialization Subroutines//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------// SYSCLK_Init//-----------------------------------------------------------------------------//// This routine initializes the system clock to use an 22.1184MHz crystal// as its clock source.void SYSCLK_Init (void){int i; // delay counterOSCXCN = 0x67; // start external oscillator with// 22.1184MHz crystalfor (i=0; i < 256; i++) ; // XTLVLD blanking interval (>1ms)while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settleOSCICN = 0x88; // select external oscillator as SYSCLK// source and enable missing clock// detector}//-----------------------------------------------------------------------------// PORT_Init//-----------------------------------------------------------------------------//// Configure the Crossbar and GPIO ports//void PORT_Init (void){XBR0 = 0x04; // Enable UART0XBR1 = 0x00;XBR2 = 0x40; // Enable crossbar and weak pull-upsP1MDOUT = 0xff; // enable P1.6 (LED) as push-pull output P2MDOUT = 0xff; // enable P1.6 (LED) as push-pull output P3MDOUT = 0xff; // enable P1.6 (LED) as push-pull output P74OUT = 0xff; //设置P4-P7口输出EMI0CF=0x2f; //外部存储器接口EMI0TC=0x9e; //外部存储器时序控制延时程序:#include "c8051F020.h"#include <intrins.h>#include "delay.h"/****************************************************************************** ******//****************************************************************************** ****** 函数名称:Delay_us;** 函数功能描述:延时n微秒子函数;** 输入参数:延时时间(单位微秒);** 返回数据:none;** 注意:none;******************************************************************************* *****/void Delay_us(unsigned char Times){unsigned char i;for (i=0; i<Times; i++){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}}/****************************************************************************** ****** 函数名称:Delay_us;** 函数功能描述:延时n毫秒子函数;** 输入参数:延时时间(单位毫秒);** 返回数据:none;** 注意:none;******************************************************************************* *****/void Delay_ms(unsigned char Times){unsigned char i;for (i=0; i<Times; i++){Delay_us(250);Delay_us(250);Delay_us(250);Delay_us(250);}}/****************************************************************************** ****** 函数名称:Delay_us;** 函数功能描述:延时n秒子函数;** 输入参数:延时时间(单位秒);** 返回数据:none;** 注意:none;******************************************************************************* *****/void Delay_s(unsigned char Times){unsigned char i;for (i=0; i<Times; i++){ Delay_ms(250);Delay_ms(250);Delay_ms(250);Delay_ms(250);}}附加程序:#include <c8051f020.h> // SFR declarations//=========================================================//========================================================= #define PLUS_ADDR 0x8c00#define PGA_ADDR 0x8b00#define AD_START_ADDR 0x8d00#define RD_H8_DATA_ADDR 0x8e00#define RD_L4_DA TA_ADDR 0x8f00unsigned char xdata *PLUS_POINT = (unsigned char *)PLUS_ADDR; unsigned char xdata *PGA_POINT = (unsigned char *)PGA_ADDR;unsigned char xdata *AD_POINT = (unsigned char *)AD_START_ADDR; unsigned char xdata *RD_H8_POINT = (unsigned char *)RD_H8_DATA_ADDR; unsigned char xdata *RD_L4_POINT = (unsigned char *)RD_L4_DATA_ADDR;//=========================================================//========================================================= //入口参数:一个多路开关参数//出口参数:无//功能:根据所给的开关参数打开相应的开关void SET_PLUS(unsigned char i){*PLUS_POINT = i;}//=========================================================//========================================================= //入口参数:一个增益参数//出口参数:无//功能:根据所给的增益参数设置相应的放大倍数void SET_PGA(unsigned char i){*PGA_POINT = i;}//=========================================================//========================================================= //入口参数:无//出口参数:无//功能:启动AD转换void AD_START(void){*AD_POINT = 0x00;}//=========================================================//========================================================= //入口参数:无//出口参数:AD转换结果的高8位数//功能:读AD转换结果的高8位数unsigned char RD_ADDA TA_H8(void){unsigned char i;i = *RD_H8_POINT;return(i);}//=========================================================//========================================================= //入口参数:无//出口参数:AD转换结果的低4位数//功能:读AD转换结果的低4位数unsigned char RD_ADDA TA_L4(void){unsigned char i;i = *RD_L4_POINT;return(i);}5.调试结果分析硬件连接图:当显示的温度为115度时,此时电压表上显示的数值为1.742V ,而通过AD转换后受输出的result为3024.根据上次实验可以算出3042所对应的电压值为2.42V,远远大于了电压表上显示的1.742V,所以说明误差特别大。