基于单片机的体温测量系统设计_第1页
基于单片机的体温测量系统设计_第2页
基于单片机的体温测量系统设计_第3页
基于单片机的体温测量系统设计_第4页
基于单片机的体温测量系统设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文毕业论文 设计设计 题题 目目 基于单片机的体温测量系统设计基于单片机的体温测量系统设计 学生姓名 学 号 院 系 专 业 指导教师 二 一一年六月二日二 一一年六月二日 1 1 引言 引言 1 1 1 1 课题研究的目的与意义 1 1 2 国内外发展现状 2 1 3 本文的设计工作 2 2 2 系统总体设计 系统总体设计 3 2 1 设计任务 3 2 2 系统设计 3 3 3 系统硬件设计 系统硬件设计 4 3 1 接口电路设计 4 3 2 传感器接口电路设计 5 3 2 1红外温度传感器的原理 5 3 2 2 ZTP135S R 的工作原理和性能 5 3 3 电压信号放大电路设计 7 3 4 显示模块电路设计 8 3 5 A D 转换模块电路设计 9 3 6 实时时钟模块电路设计 10 3 7 正负电压转换电路设计 11 4 4 系统软件设计 系统软件设计 1212 4 1 整体流程框图 12 4 2 各模块程序设计 12 4 2 1 A D 转换模块程序设计 12 4 2 2 数据处理模块程序设计 13 4 2 3 实时时钟模块程序设计 15 4 2 4 显示部分模块程序设计 16 4 2 5 中断模块程序设计 17 5 5 总结 总结 18 致谢致谢 19 参考文献参考文献 20 AbstractAbstract 21 附录一 原理图 22 附录二 程序设计 23 0 基于单片机的体温测量系统设计基于单片机的体温测量系统设计 洪亮 南京信息工程大学电子信息工程系 南京 210044 摘要 摘要 本文是以 AT89S52 单片机为核心 根据红外线测温仪的原理 设计了一种非接触式人体体温测试 仪 该系统包括硬件设计和软件设计两部分 硬件方面首先进行了系统的总体电路设计 然后分别从红外线传 感器 电压信号放大 A D 转换 实时时钟 正负电压转换 显示部分等功能模块进行了电路设计 软件方面首 先进行了系统的总体程序设计 然后分别从 A D 转换 数据处理 实时时钟 中断部分 显示部分等模块进行 了程序设计 本系统采用模块化设计 系统由各个应用模块组成 所以整个程序的编制和维护都比较方便 结 构清晰 提高了可靠性和修改性 并给出了针对各个应用模块的设计思路和设计框架 从而实现非接触式人体 体温的数字显示 关键词关键词 单片机 红外热释传感器 体温 液晶显示 1 引言 1 11 1 课题研究的目的与意义课题研究的目的与意义 高等动物都有一定的体温 一定的体温是机体不断的新陈代谢的结果 同时体温又是机体 功能活动正常进行的重要条件 人能够在环境温度不同的条件下 通过对体内产热和散热过程 的调节来保持体内温度的相对稳定 并提高对环境温度变化的适应能力 在正常情况下 人的 温度保持在 37 上下 大致介于 36 2 37 3 不受外界环境温度的变化而变化 但是当 人体内的某些机能发生变化或某些部位发生病变时 恒定的体温将会发生变化 在临床医学中 体温是一个重要的生理参数 病人的温度为医生提供了生理状况的重要信息 还可以对某些重 大疾病或隐藏于身体内部的健康问题起着积极的预防和警示作用 在 非典 期间 人体体温便是检测并隔离患者状况的一个重要参数 从而达到了控制 1 非典 大规模扩散的作用 在公共场所进行体温监测时主要考虑以下三个要求 非接触性 测量的快速性和准确性 采用红外非接触测温方法可以满足这些要求 因此对非接触式人体温 度测量是非常有意义的 也是应付突发要求的必要工作 1 21 2 国内外发展现状国内外发展现状 由于近些年 非典 和猪流感的袭击 在我国迅速诞生了一支专门抗击非典的医疗仪器队 伍 特别是在红外体温检测仪的研发方面取得了突出的成就 国家相关部门也在重点强调非接 触式体温计的研发 随着现代科技的发展 新材料 新工艺的运用 各式各样的体温计陆续出现 探测方式不断改 进 国内外体温计的发展大致分为三个阶段 第一阶段是常见的玻璃水银体温计 第二阶段是 电子体温计 如今应用最为广泛的是非接触式红外体温计 水银体温计虽然价格便宜但是有诸多弊端 首先 水银体温计遇热或安置不当 体温计容 易破裂 其次 人体接触水银后会中毒 中毒症状是恶心 头痛 腹泻 脱发等 严重者会造 成血液凝固 因为水银有剧毒 一旦它污染了水源或食物 可以对人的肾脏 肺等造成极大的 伤害 水银也能加速人神经系统退变 最后 采用水银体温计测温需要相当长的时间 5min 10min 使用不便 电子体温计是采用热敏电阻测量温度的 电子体温计能快速准确地测量人体温度 与传统 的水银玻璃体温计相比 具有读数方便 测量精度高 能记忆并有蜂鸣提示的优点 尤其是电 子体温计不含水银 对人体及周围环境无害 特别适合于家庭 医院等场合使用 但采用电子 体温计测温也需要较长的时间 同样使用不便 非接触式红外体温计是根据黑体辐射原理通过测量人体辐射的红外线而测量温度的 它用 的红外传感器只是吸收人体辐射的红外线而不向人体发射任何射线 它采用的是被动式且非接 触式的测量方式 因此红外体温计不会对人体产生辐射伤害且价格低 体积小 实现了体温的 快速准确测量 具有稳定性好 精度高 测量安全 使用方便等特点 目前市场上虽然已经有 这样的产品出现 但由于它们的价格较高 功能较少 精度不高等缺点 3 1 31 3 本文的设计工作本文的设计工作 非接触式人体体温测试仪的设计技术目前已经达到成熟 目前市场上已经有很多这样的产 品出现 但由于它们的价格较高 功能较少 精度不高等缺点 使得它们即不能占据低端市场 也不能占据高端市场 并且从非接触式人体体温测试仪的成本出发 还有很大的利润空间 有 继续研究的价值 本文是以单片机为核心 先通过传感器将光信号转换为电压信号 再通过电压信号放大电 路将电压信号放大成 A D 转换模块能够识别的模拟信号 再通过 A D 转换 将模拟信号转换成 单片机能够识别的数字信号 再将数字信号转换成系统所要显示的温度值 与读入的温度值一 2 起通过液晶显示器进行显示 2 2 系统总体设计 系统总体设计 2 12 1 设计任务设计任务 我们根据红外线测温仪的原理 通过关键器件的选择以及温度补偿的自动调节来提高红外 线测温仪的精确度 设计了一种红外线测温电路 用于对人体温度的快速测量 我们要设计的 红外体温计其测量范围是 35 42 且精度为 0 1 在该设计中 以 AT89S52 单片机 为主体 配有高精度放大器 8 位 ADC 和实时时钟 测量值和时间值用液晶屏进行显示 2 22 2 系统设计系统设计 在硬件方面 一个系统的硬件设计中应选择合适型号的单片机后 进行系统所需的扩展和 配置 按照系统功能要求进行扩展和配置外围设备 要设计合适的接口电路 系统的扩展和配 置应遵循以下原则 1尽可能选择常用单片机 为硬件系统的标准化 模块化打下良好的基础 本次设计选取的是 AT89S52 单片机 2系统扩展与外围设备的配置水平应充分满足应用系统的功能要求 并留有适当余地 以便二 次开发 3系统中的相关器件要尽可能做到性能匹配 4可靠性及干扰设计是硬件设计必不可少的一部分 本次设计首先选择设计所需 AT89S52 芯片 根据实际要求利用 Protel 软件绘制课题的原理 图和 PCB 图 外围设备电路简单 干扰较小 在软件方面 单片机应用系统中软件的设计在很大程度上决定了系统的功能 软件的资源 细分为系统理解部分 软件机构设计部分和程序设计部分 1系统理解是指在开始设计软件前 熟悉硬件留给软件的接口地址 I O 口方式 确定存储空 间的分配 应用系统面板控制开关 按键 显示的设置等 2软件结构设计要结合单片机所完成的功能确定相应的模块程序 比如一般子程序 中断功能 子程序的确定 确定模块程序运行的先后顺序 绘制程序整体流程图 3程序设计和其他软件程序设计一样 首先要建立数学模型 选定数学算法 绘制具体程序流 程图 做好程序接口说明 然后选取 C 语言 汇编语言或 C 语言 本次课题的软件设计采用的是模块化设计 使用 C 语言编写程序 结构清晰简捷 此系统是通过红外热释传感器 ZTP135S R 采集人体体温并以电压信号的形式输出并进行放大 然后将模拟电压信号通过模数转换器转换成与之对应的数字量 经单片机对数据的非线性处理 3 及分析 并显示在 LCD 上 即完成一次体温的测量 若需储存测量值 可储存一段数据到内部 数据存储器中 整体框图如图 2 1 所示 ZTP135S R测 温 电压放大 由ADC0809进 行A D转换 DS12C887产 生时间信号 AT89S52进行 数据转换 用LCD显示时 间和温度值 图 2 1 整体框图 3 3 系统硬件设计 系统硬件设计 本系统硬件由七个应用模块组成 下面便是我对各个模块的电路设计 3 13 1接口电路设计接口电路设计 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 的系统可编程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造 与工业 80C51 产品指令和引脚完全兼容 片 上 Flash 允许程序存储器在系统可编程 亦适于常规编程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 AT89S52 为众多嵌入式控制应用系统提供高灵活 超有效的解 决方案 AT89S52 具有以下标准功能 8k 字节 Flash 256 字节 RAM 32 位 I O 口线 看门狗 定时器 2 个数据指针 三个 16 位定时器 计数器 一个 6 向量 2 级中断结构 全双工串行口 片内晶振及时钟电路 另外 AT89S52 可降至 0Hz 静态逻辑操作 支持 2 种软件可选择节电模 式 空闲模式下 CPU 停止工作 允许 RAM 定时器 计数器 串口 中断继续工作 掉电保护 方式下 RAM 内容被保存 振荡器被冻结 单片机一切工作停止 直到下一个中断或硬件复位为 止 4 本次 DS12C887 通过三总线与 MCS 51 相连 它们通过外部总线与单片机通信 DS12C887 通过 外部总线从单片机中读取时间初值 启动后 再实时的向单片机传输时间数据 它的片选脚 于单片机的 P2 7 相连 所以他的首地址为 0X7F00 CS 由于需要通过单片机给 DS12C887 设置初始值 所以用了 INT0 中断来产生中断 在中断中 改变时间值 对时间值进行修改用到的引脚有 P2 2 P2 3 和 P2 4 它们的功能分别是 P2 2 和 P2 3 对时间进行加减 P2 4 为位选 选中需要修改的时间位 具体设计在软件部分介绍 下面 说明单片机其他引脚的使用状况 P0 作为地址和数据复用口 它分别与 DS12C887 的 AD0 4 AD7 TC1602A 的 DB0 DB7 和 DAC0809 的 D0 D7 相连 它从 ADC0809 中读入数据 向 TC1602A 传 输数据 对 DS12C887 是即读入也输出数据 P1 端口的 P1 4 与 ADC0809 的 EOC 相连 P1 0 P1 2 和 P1 3 分别与 TC1602A 的 RS RW 和 E 相连 P3 口的 P3 6 WR 与 DS18C887 的 R 和 74LS00 的一个输入脚相连 具体的功能说明在下文的各芯片接口设计中会一一介绍 W 3 23 2传感器传感器接口电路设计接口电路设计 3 2 13 2 1 红外温度传感器的原理红外温度传感器的原理 自然界一切温度高于绝对零度 273 15 的物体 由于分子的热运动都在不停地向周围 空间辐射包括红外波段在内的电磁波 其辐射能量密度与物体本身的温度关系符合普朗克 Plank 定律 红外测温的原理是一样的 都是根据普朗克原理 一般理解红外测量的是物体的 温度 其实测的是目标物与传感器或者说是物体与环境温度之间的差值 物体辐射能量的大小 直接与该物体的温度有关 具体地说 是与该物体热力学温度的 4 次方成正比 用公式可表达为 E T4 T04 1 式中 E是辐射出射度 单位是 W m3 是斯蒂芬一波尔兹曼常数 5 67x10 8W m2 K4 是物体的辐射率 T是物体的温度 K To是物体周围的环境温度 K 人体主要辐射波长为 9 m 10 m 的红外线 通过对人体自身辐射红外能量的测量便能准 确地测定人体表面温度 由于该波长范围内的光线不被空气所吸收 因而也可利用人体辐射的红 外能量精确地测量人体表面温度 红外温度传感器利用热电偶原理 测量目标物与传感器或者物体与环境温度之间的差值 热 电偶的原理是二种不同的金属 A 和 B 构成一个闭合回路 当二个接触端温度不同时 T To 回路 中产生热电势 Eab 其中 T 称为热端 工作端或测量端 To 称为冷端 自由端或参比端 A 和 B 称 为热电极 热电势的大小由接触电势 也叫伯尔贴电势 和温差电势 也叫汤姆逊电势 决定 5 3 2 23 2 2 ZTP135S RZTP135S R 的工作原理和性能的工作原理和性能 GE公司生产的ZTP135S R型红外温度传感器 是一种专门用于非接触式测量体温的器件 其主 要参数见表3 1所示 其外形和引脚排列如图3 1和3 2所示 图 3 1 ZTP135S R 的外形 5 图3 2 ZTP135S R的引脚排列 其引脚功能如下 1脚接 5V 2脚为电压输出端 3脚接地 被测物体的辐射能经过窗口和光阑聚焦在接收元件 热电堆 的受热片上 受热片上有60 只串联的热电偶 每只热电偶的热端在受热片的中央部位围成一圈 焊接在一起 从引线就可 以得到所有电偶的热电势之和 这种结构设计具有较小的热惯性和较高的灵敏度 传感器采用 负温度系数电热调节器进行环境温度补偿 6 图3 3 图3 4和图3 5 分别给出了该传感器的灵敏度变化曲线 内阻变化率曲线和传输波 形 图 3 3 ZTP135S R 的灵敏度变化曲线 图 3 4 ZTP135S R 的内阻变化率曲线 6 图 3 5 ZTP135S R 的传输波形 3 33 3 电压信号放大电路设计电压信号放大电路设计 本设计所采用的放大器是低功耗精密运算放大器 OP07 它的特点是超低失调 低漂移 高 精度 电路正比特性好 零点失调电压小 OP07 可以通过在 1 8 管脚之间加上一个电位器进行 输入漂移调零 这对于低输出的信号的放大效果非常好 其低输入偏置电流为 1 8nA 供电范围 为 3V 到 22V 超低失调的最大值为 150mV 它的性能正好解决了红外温度传感器对运放的特殊 要求 由于热电堆的内阻较高 约 60K 而输出电压又非常小 1mV 左右 须使用具有高输入 阻抗 1012 的 CMOS 输入运算放大器 因为测量的人体温度在 35 42 范围内 传感器的输出电压范围为 0 7 1 5mV 采用两极 放大的形式 将电压放大 3000 倍 即放大后电压为 2 1 4 5V 以供单片机 A D 转换 单片机 的 A D 转换参考电压选择 5V 其放大电路图如下图 3 6 所示 图 3 6 OP07 两级放大电路图 7 电压跟随器的输出电压与输入电压的关系为 0 U 1 U 2 10 UU 在上述运放电路图中 用到了三个 OP07 其中第一级是电压跟随器 它的作用是稳定电压 由于这次使用的温度传感器输入的是弱电压信号 极易受到外部因素的干扰 且 ADC0809 进行 模数转换需要一段时间 在这段时间内需要提供稳定的电压信号 因此这第一级是非常重要的 反相比例运算电路的输出电压与输入电压的 关系为 0 U 1 U 3 1 f 0 1 U R R U 后面的两个 OP07 便是起到了放大作用 它使用的是反相比例运算电路 第一级放大了 30 倍 第二级放大了 100 倍 3 43 4 显示模块电路设计显示模块电路设计 TC1602AD 主要由 DDRAM CGROM CGRAM IR DR BF AC 等大规模集成电路组成 DDRAM 为数据显示用的 RAM 用以存放用 LCD 显示的数据 只要将保准的 ASCII 码放入 DDRAM 内部控 制线路就会自动将数据传送到显示器上 并显示出该 ASCII 码对应的字符 CGROM 为字符产生器 ROM 它存储了 192 个 5 7 的点阵字型 但只能读出不能写入 CGRAM 为字型 字符产生器的 RAM 可供使用者存储特殊造型的造型码 CGRAM 最多可存 8 个造型 IR 为指令寄存器 负责存 储单片机要写给 LCD 的指令码 当 RS 及 R Error Error 引脚信号为 0 且 Enable 引脚信号由 1 变为 0 时 D0 D7 引脚上的数据便会存入到 IR 寄存器中 DR 为数字寄存器 它们负责存储微机要写 到 CGRAM 或 DDRAM 的数据 或者存储单片机要从 CGRAM 或 DDRAM 读出的数据 因此 可将 DR 视 为一个数据缓冲区 当 RS 及 R Error Error 引脚信号为 1 且 Enable 引脚信号由 1 变为 0 时 读取数 据 当 RS 引脚信号为 1 R Error Error 引脚信号为 0 且 Enable 引脚信号由 1 变为 0 时 存入数据 BF 为忙碌信号 当 BF 为 1 时 不接受微机送来的数据或指令 当 BF 为 0 时 接受外部数据或 指令 所以 在写数据或指令到 LCD 之前 必须查看 BF 是否为 0 AC 为地址计数器 负责计数 写入 读出 CGRAM 或 DDRAM 的数据地址 AC 依照单片机对 LCD 的设置值而自动修改它本身的内容 TC1602A 可分 2 行共显示 32 个字符 每行显示 16 个字符 2 单片机与液晶的接口如图 3 7 所示 在设计液晶电路时 需注意以下几点 1 注意 判忙 信号 BF 单片机向液晶模块发送数据后 需等待并判断 BF 信号为高 所以 BF 脚为双向口 设计时需注意 在编写液晶控制程序时 也可以不判断 BF 信号 只需要 延时一段时间就可以 这样可以避免双向口操作的麻烦 2 有些单片机的 I 0 口是 3 3V 但很多液晶器件的是 5V 因此单片机与液晶不能直接相 接而需转换电平 8 图 3 7 单片机与液晶的接口 3 53 5 A DA D 转换模块电路设计转换模块电路设计 ADC0809 与 AT89S52 单片机的一种连接方法如图 3 8 所示 AT89S52 与 ADC0809 接口时必须 注意处理好以下问题 在START端送一个100ns宽的启动正脉冲 获取 EOC 端上的状态信息 因为它是 A D 转换的结束标志 ADDA ADDB ADDC 分别接系统的低三位地址 只要把这三位地址写入 ADC0809 的 址锁存器 就实现了模拟通道的选择 START 和 ALE 互连可以使 ADC0809 在接收模拟量路数地址时启动工作 A D 转换后得到的数据为数字量 这些数据传送到单片机中进行处理 给 三态输出锁存器 分配一个端口地址 也就是给 OE 端送一个地址译码器的输出信号 本次设计因为只使用了一个模拟通道 IN0 所以我为了使电路看起来简单易懂 将 ADDA ADDB ADDC 都接地 这样 ADC0809 永远选通 0 通道了 ADC0809 的时钟信号由单片机的 ALE 信 号经过 74LS74 二分频得到 它的时钟信号为 1MZ 又由于 ADC0809 与 DS18C887 同时使用单片机 的 WR 脚 为了防止在使用时相互的干扰 我将 WR 和 RD 都与单片机的 P1 1 通过或非门后再与 ADC0809 相连 这样 当 P1 1 为高电平时 无论 WR 和 RD 产生什么信号 ADC0809 都不启动 当 P1 1 为低电平时 当 WR 信号为低电平时 送到 A D 转换器的 ALE 和 START 引脚为高电平 启动 A D 转换 由于这次我使用的是查询方式为转换结束方式 所以当 EOC 为低电平时 转换 结束 输出数据使能 OE 读取转换数据 9 图 3 8 ADC0809 与 AT89S52 的链接 3 63 6 实时时钟模块电路设计实时时钟模块电路设计 DS12C887 是 Dallas 公司开发的实时时钟芯片 DS12C887 可以提供实时时钟 日历 时间 报警 三个可屏蔽中断 一个可编辑方波输出 113B 电池供电的静态 RAM DS12C887 内部集成 了一个晶体和一个锂电池 采用 DIP 封装方式 DS12C887 能够自动调整 31 天和 30 天的月份 期间可以在 24 小时和 12 小时方式 AM PM 间切换 在芯片内部有一个精确的温度补偿电路 用于检测电源电压的状态 当电源电压的变化超出允许范围时 内部电源切换到备用电池供电 2 DS12C887 主要应用在嵌入式系统 仪表 安全系统 网络交换机 路由器等方面 DS12C887 与 AT89S52 单片机的一种常用连接方法如图 3 9 所示 AT89S52 与 DS12C887 接口时 必须注意处理好以下问题 1 时间值只需一开始设置 以后只需要读取就行了 2 数据传输都是用的 P0 端口 得控制好状态控制信号 防止出现错误 10 图 3 9 DC12C887 与 AT89S52 的链接 3 73 7 正负电压转换电路设计正负电压转换电路设计 在运放环节 我们用到了 5V 的电压 由于这里只有 5V 的电压 因此 我们需要电压转换 将 5V 转换为 5V 这里用到了 ICL7660 产生 5V 的电路图如下图 3 10 所示 3 10 5V 电源的发生电路 11 4 系统软件设计 本系统软件设计包括整体流程框图和各模块程序设计两部分 各模块的设计如下 4 14 1 整体流程框图整体流程框图 本设计采用单片机 AT89S52 编程实现 程序由 C 语言编写 本程序主要分为以下几部分 A D 采集程序 数据处理程序 LCD 显示程序 其中主程序流程图如图 4 1 所示 启动 对单片机及 其它芯片进 行初始化 温度信号采 集 A D转换 AT89S52进行 数据处理 产生时间信 号 LCD显示 图 4 1 主程序流程图 4 24 2 各模块程序设计各模块程序设计 本节就各部分程序模块设计进行了阐述 主要包括 A D 转换模块 数据处理模块 显示模 块 详细介绍了各部分模块的流程并对其设计思想进行了叙述 从而实现了人体体温的软件设 计 4 2 14 2 1 A DA D 转换模块程序设计转换模块程序设计 本次设计 A D 采集程序实现一路数据采集 采用定时传送方式 对于一种 A D 转换器来说 转换时间是一项固定不变的技术指标 ADC0809 的转换时间为 128us 本次设计是通过 EOC 与单 片机的 INTO 相连 当数据转换完成时 EOC 向单片机发送中断请求 单片机响应中断 读取转 换数据 ADC0809 的 D0 D7 与单片机的 P0 口相连 单片机的 ALE 信号经过 74LS74 二分频后 作为 ADC0809 的时钟信号 用 P1 1 和 P1 2 来产生片选和使能信号 首先 片选 ADC0809 启动 ADC0809 开始转换 让程序处于循环中 当转换结束时 程序从 12 循环中跳出 将转换结果输入单片机 其程序流程图如图 4 2 所示 开始 选A D通道 启动A D转换 等待转换结 束 读A D结果 显示读到的 结果 图 4 2 A D 转换流程图 4 2 24 2 2 数据处理模块数据处理模块程序设计程序设计 传感器输出模拟电压信号经 OP07 放大后 转换成 0 5V 的电压 而单片机只能处理数字信 息 就需要进行模数转换 转换完成后的数字量如何处理成与之对应的温度值就变得尤为重要 它直接影响输出温度值的准确性 是整个软件设计中最重要的部分 其数据处理部分的总流程 图如图 4 3 所示 开始 将读入值转换 为长整型 数字量 57 28900 计算出温度值 储存温度值 13 图 4 3 数据处理流程图 根据图 3 4 可知 当人体体温在 35 42 范围内变化时 传感器的输出电压范围为 0 7 1 5mV 采用两极放大的形式 将电压放大 3000 倍 即放大后电压为 2 1 4 5V 从而可 知对应的数字量范围为 107 230 找出数字量与温度的关系即可准确的显示出温度值 转换后 与温度的对应关系如图 4 4 所示 图 4 4 数字量与温度对应关系 根据图 4 2 所示 可以计算出数字量与温度的对应关系 即 温度 1000 数字量 57 28900 4 经数据处理后 其温度值为放大 1000 倍的温度值 而本设计只保留一位有效数字 故前三 位为有效温度值 而且要将双字节温度转换为 BCD 码 才是实际要显示的温度值 在计算机中 用 BCD 码来表示十进制数 通常 BCD 码在计算机中又分为两种形式 一种是 1B 放一位 BCD 码 称为非压缩 BCD 码 适用于显示和输出 一种是 1B 放 2 位 BCD 码 称为压 缩的 BCD 码 适用于运算及存储 十进制数 B 与一个 8 位的二进制数的关系可以表示为 5 02 14 28 316 432 564 6128 7bbbbbbbbB 只要依十进制运算法则 将 bi i 7 6 1 0 按权相加 就可以得到对应的十进制 数 B 当人体体温在 35 42 范围内变化时 传感器的输出电压范围为 0 7 1 5mV ADC0809 的输入电压为 2 1 4 5V 从而可知单片机接受对应的数字量范围为 107 230 在运用公式计算温度时 由于温度值是浮点型 数字量是无符号整型 数字量 57 则 有可能大于 65536 必须使用长整型 因此在计算前得先进行数据类型转换 先将数字量转换为 长整型 这样运算结果 W 为长整型 温度值则为 又因为温度值是小数值 所以定义温 1000 W 度值为浮点型 图 4 5 小数点四舍五入流程图 14 将温度值得到后 还要注意小数点后第二位数字的四舍五入的问题 这样使温度值更接近 于真实温度 更准确 B 中的第四位为小数点后第二位 即要取舍的位 当其值大于 5 时进 1 小于 5 时舍去 将转化后的 3 位温度值分别送入 LCD 显示单元缓冲区 以备显示 其流程图如 图 4 5 所示 获取温度值 取前四位 第四位大于5 第三位加1 将前三位以数 组储存 是 否 图 4 5 小数点四舍五入流程图 4 2 34 2 3 实时时钟模块实时时钟模块程序设计程序设计 本次使用的是 DS12C887 产生时间信号 将它通过 P0 口传输到单片机上 再将它显示到 LCD 上 通过片选选中 DS18C887 由于是通过 P2 7 片选 而且是与单片机通过外部总线通信 所以 DS18C887 的首地址是 0 x7f00 它的控制寄存器 A 和控制寄存器 B 的地址是 0 x7f0a 和 0 x7f0b 首先将初始数据写出 DS12C887 读写时 DS12C887 相当于一个外部存储器 通过外部总线选 中相应的位 写入后 启动芯片 芯片正常运行 然后 每运行一次程序 单片机读入一次时 间值 将读入的每位值存入数组 通过 LCD 显示 其流程图如 4 6 所示 15 开始 对DS12C887设置初 值 让芯片正常运 行 读取时间值 LCD显示 图 4 6 DS12C887 的流程图 4 2 44 2 4 显示部分模块显示部分模块程序设计程序设计 本设计采用 LCD 进行显示 由于此系统显示温度和时间 液晶共有两行 第一行显示年月日 第二行显示日时间和温度 对液晶进行写数据的过程是 通过指令表对其进行初始化 其指令 通过 P0 口存入液晶屏的 IR 寄存器 初始化后 首先写指令 选定液晶的显示位置 液晶第一行 的首地址是 80H 第二行的首地址是 C0H 第一行选在从第二格开始显示 第二行从第三格开始 显示 在第二行的第 8AH 8CH 显示温度 选定显示地址后 写入显示数据 显示数据 其流程图如图 4 7 所示 开始 初始化 忙检测 写指令 写数据 显示 图 4 7 LCD 显示流程图 16 4 2 54 2 5 中断模块中断模块程序设计程序设计 为了能便于修改时间值 我采用了中断的方式来修改时间 通过四个键来修改时间 上面已 经说过 在程序中它们的名字是 OK INC DEC RESET RESET 启动中断 OK 选择修改的位 INC 是加键 DEC 是减键 首先按下 RESET 启动中断 进入中断后 读入目前的时间值 通过液晶显示 显示时 被选 中修改的位会自动闪烁 通过 INC DEC 来修改时间 当按下 OK 键时 修改位向左移一位 当 闪烁位移到最左边时 OK 再按一下 程序跳出中断 正常运行 其流程图如图 4 8 所示 初始化 键盘扫描 读取时间值 取键值OK键按下 INC键按下 中断流程图 进行位选 按 一下 m 2 左 移一位 退出中断 m 2 m 10 是 否 否 是 时间值加1 是 DEC键按下时间值减1 否 是 LCD显示 图 4 8 中断流程图 17 5 5 总结总结 本次实验 测温精度是 0 1 虽然精度并不算高 但也基本达到了设计的要求 本设计采 用额头为测量部位 由于探头对准内额头 测量的影响因素较少 整个系统的设计简洁 准确 快速 方便 设计的核心部分选用 AT89S52 芯片和 ZTP135S R 红外温度传感器 另外 软件程 序的设计包括数据采集程序 A D 转换程序 显示程序等 其突出优点是 控制简单 显示直观 运用 LCD 显示 合理的利用了传感器的特性进行了一次实践 但由于试验条件和个人能力的限 制 本系统还有待进一步的完善 如 测量值的存储 根据时间 年龄 性别等不同来设定发 热温度进行语音提醒 当在一定时间内无测量则自动关闭等功能 使该系统功能更加强大 当然误差的存在有时是不可避免的 而有时却是可以通过一些方法来减少误差的存在 要 使测量准确可靠 必须减少误差 此设计采取了小数点后第二位四舍五入的方法来减小一定的 误差 但并没有完全消除 此系统误差主要来源于以下几个方面 由于实验理论在计算上存在着近似性 方法上难以完善 因此理论温度值并不是真实 值 而只是非常接近于真实温度的值 故存在一定的误差 实验仪器灵敏度和分辨能力有局限性 而且芯片本身存在非线性化误差 驱动电源为 5V 基准电源不稳 会造成输入输出的误差 周围环境不稳定 每次测量时限不统一都会造成测量误差 18 致谢致谢 作为一个本科生的毕业设计 由于经验的匮乏 难免有许多考虑不周全的地方 如果没有 导师的督促指导 以及一起学习的同学们的支持 想要完成这个设计是难以想象的 这次毕业 论文能够得以顺利完成 是所有指导过我的老师 帮助过我的同学和一直关心支持着我的家人 对我的教诲 帮助和鼓励的结果 我要在这里对他们表示深深的谢意 感谢我的指导老师 行鸿彦教授 感谢老师对本论文从选题 构思 资料收集到最后定 稿的各个环节给予细心的指引和教导 使我对本次设计有了深刻的认识 并最终得以完成毕业论 文 同时 在此次毕业设计过程中我也学到了许多关于单片机和传感器方面的知识 实验技能有 了很大的提高 感谢我身边所有的朋友与同学们 谢谢你们四年来的关照与宽容 与你们一起走过的缤纷时 代 将会是我一生最珍贵的回忆 这里 对关心 帮助过我的老师和同学们表示衷心地感谢 最后 我要向在百忙之中抽时间对本文进行审阅 评议和参加本人论文答辩的各位老师表 示感谢 19 参考文献参考文献 1 崔志尚 温度计量与测试 M 北京 中国计量出版社 1998 22 23 2 邹应全 51 系列单片机原理与实验教程 西安电子科技大学出版社 2007 12 3 唐文彦 传感器 M 北京 机械工业出版社 2006 01 06 4 李朝春 PC 机及单片机数据通讯技术 M 北京 北京航空航天大学出版社 2000 89 90 5 杜维 张宏建 乐嘉华 过程检测技术及仪表 M 北京 化学工业出版社 2008 31 33 6 丁镇生 传感及其遥控遥测技术应用 北京 电子工业出版社 2002 56 61 7 张毅刚 新编 MCS 51 单片机应用设计 M 哈尔滨 哈尔滨工业大学出版社 2003 123 128 8 张培仁 基于 C 语言编程 MCS 51 单片机原理与应用 M 北京 清华大学出版社 2002 106 201 9 马忠梅 单片机的 C 语言应用程序设计 M 北京 北京航空航天大学出版社 1999 101 105 10 沈国彦 宋平 红外温度计测量体温方法探讨 J 仪表技术 2003 10 3 21 23 11 John Webster MedicalInstrumentation Aplic ationandDesign M Boston HoughtonMifflin Company 1998 12 WelkwitzW eta1 BiomedicalInstruments Theory andDesing M NewYork AcademicPressInc 1996 13 GeneralElectricCompnay ZTP135S RDataSheet R 14 McClellan J H Parks T W A Unified Approach to the Design of Optimum FIR Linear Phase Digital Filters IEEE Trans S Circuit Theory 1993 15 Steigilitz K Computer Aided Design of Recursive Digital Filters IEEE Trans J Audio Electroacoust June 1990 20 temperaturetemperature measurementmeasurement systemsystem basedbased onon MicroprocessorMicroprocessor hongliang Department of Electronic 转换结束引脚 EOC sbit START P1 1 start为控制信号 sbit RESET P3 2 键盘 sbit OK P2 2 键盘 sbit INC P2 3 键盘 sbit DEC P2 4 键盘 uchar xdata addr 0 x7f00 P2 7片选 低电平有效 sbit FLAG P0 7 忙信号 sbit E P1 2 片选 sbit RW P1 3 读写控制 sbit RS P1 0 指令和数据寄存器 define time a XBYTE 0 x7f0a 控制寄存器A define time b XBYTE 0 x7f0b 控制寄存器B 23 uchar year month day hour minute second uchar time 12 0 声明函数 void get time void void intial void intial lcd void busy void w com uchar com void w dat uchar dat void display void delay unsigned long n void displayD uchar j void convert1 unsigned long n void convert2 void void INT0 ISR 延时函数 void delay unsigned long n 24 for n 0 n unsigned char LCD bit 3 0 0 0 分解温度值函数 void convert1 unsigned long n unsigned int i 0 m 0 s 0 j k i n 100 s 57 i 289 m n 100 57 j m 100 s s j k m 100 10 if k 5 s s 1 LCD bit 0 s 10 0 x30 25 LCD bit 2 s 100 0 x30 LCD bit 1 s 100 10 0 x30 void get time void year addr 9 month addr 8 day addr 7 hour addr 4 minute addr 2 second addr void intial void time a 0 x70 time b 0 x8e 可以设置12 24小时制 addr 2 0 x00 分初值 0 26 addr 4 0 x0c 时初值 12 addr 7 0 x0f 日初值 15 addr 8 0 x05 月初值 05 addr 9 0 x0a 年初值 10 time a 0 x27 time b 0 x1e 设置高位为0 芯片更新 正常运行 液晶显示 intial lcd RS 0 RW 0 E 0 delay 100 w com 0 x38 w com 0 x38 w com 0 x38 显示为8位两行字符 w com 0 x08 27 w com 0 x01 w com 0 x0C 开显示 void busy 忙检测 while 1 P0 0 xff RS 0 RW 1 E 1 if FLAG break E 0 void w com uchar com 写指令 28 busy P0 com RS 0 RW 0 E 1 E 0 void w dat uchar dat 写数据 busy P0 dat RS 1 RW 0 E 1 E 0 return 中断服务程序 29 void INT0 ISR void interrupt 0 uchar k 1 m 0 n 0 j 0 h 0 num 9 while k get time displayD num switch m case 0 x00 num 9 break case 0 x02 num 8 break case 0 x04 num 7 break case 0 x06 num 4 break case 0 x08 num 2 break if INC 0 30 addr num 1 if INC 0 addr num 1 if INC 0 addr num 1 if INC 0 addr num 1 if INC 0 addr num 1 if DEC 0 addr num 1 if OK 0 m m 2 delay 10 if m 0 x0A k 0 32 void displayD uchar j 调整时间子程序 convert2 w com 0 x82 显示数据存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论