




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的心率计设计 软件部分 基于单片机的心率计设计 软件部分 Heart rate meter based on Microprocessor design software 总计 毕业设计 论文 43 页 表 格 5 个 插 图 13 幅 1 目目 录录 摘摘 要要 I ABSTRACT II 第一章第一章 引引 言言 1 1 1 选题的依据及课题的意义和目的 1 1 2 研究概况及发展趋势综述 3 第二章第二章 方案设计与论证方案设计与论证 5 2 1 方案一 用压电陶瓷采集心电信号和用模拟温度传感器 AD590J 采集温度 号的心率计 5 2 1 1 设计思路 5 2 1 2 硬件设计方框图 5 2 1 3 AD574 芯片简介 6 2 2 方案二 采用数字温度传感器 DS18B20 采集温度信号和用红外对管采集 心电信号 7 2 2 1 设计思路 7 2 2 2 硬件设计方框图 8 2 3 方案比较论证 8 第三章第三章 硬件电路的简单硬件电路的简单概述概述 9 3 1 心率计设计的原理 9 3 2 硬件电路图 10 第四章第四章 程序设计程序设计 11 4 1 主程序设计 11 4 1 1 主程序流程图 11 4 1 2 语音模块 ZY1420A 功能简介 12 4 2 体温测量程序的设计 13 2 4 2 1 DS18B20 的简述 13 4 2 2 体温测量程序设计 15 4 2 3 温度测量子程序 16 4 2 4 温度转换子程序 18 4 2 5 显示子程序和语音播报子程序 19 4 3 心率测量的程序设计 24 4 3 1 心率测量的主程序设计 24 4 3 2 中断服务子程序设计 25 总总 结结 28 参考文献参考文献 29 致致 谢谢 30 源程序清单源程序清单 31 摘 要 I 摘摘 要要 测量心率计是用于测量心率值的的医疗设备 它的应用在心血管疾病的研 究和诊断方面也发挥出显著的作用 它们所记录的心脏活动时的生物电信号 已成为临床诊断的重要依据 同时 在临床监护和治疗中 医护人员常常还要 关注某些特殊患者的体温随时间变化的情况 因此 该设计设计了一个基于 MCS 51 单片机的心率计 采用红外线来进行检测采集人体的脉搏 利用单片 机的定时 计数器 实现心率的测量 用智能温度传感器 DS18B20 采集温度信号 通过单片机控制进行数字显示和语音播报 以实现快速准确的心率和体温的 关键词 心率计关键词 心率计 MCS 51MCS 51 单片机单片机 体温计体温计 数字显示数字显示 语音播报语音播报 Abstract II Abstract Heart rate meter is a medical equipment that is used to measure the value of heart rate and its applications play an important role on study and diagnosis of cardiovascular disease The organisms signal that they recorded has become a significant foundation of clinical diagnosis Meanwhile health care workers are often concerned about the patient s body temperature in certain special circumstances over time in clinical care and treatment Therefore we designe a heart rate meter which based on MCS 51 microcontroller we use infrared ray to capture the heart rate pulse using of microcontroller timer counter to achieve the measurement of heart rate We use thet temperature sensor DS18B20 to capture temperature signal and use microcontroller to contral to achieve digital display and voice broadcast In order to achieve fast and accurate measurement of heart rate and body temperature Key words heart rate meter MCS 51 microcontroller Thermometer digital display voice broadcast 南昌工程学院本科毕业设计 1 第一章第一章 引引 言言 1 11 1 选题的依据及课题的意义和目的选题的依据及课题的意义和目的 心率是指人体心脏每分钟搏动的次数 它是反映心脏是否正常工作的一个 重要参数 同时心率值也是衡量体力劳动强度和脑力劳动强度的重要指标 因 此心率的测量是一种评价病人生理状况很好的方法 心率计是用于测量心率值的的医疗设备 它的应用在心血管疾病的研究和 诊断方面也发挥出显著的作用 它们所记录的心脏活动时的生物电信号 已成 为临床诊断的重要依据 随着现代医学的不断发展和进步 人们对各种测量仪 器的要求必然越来越高 因此在前人研究的基础上我们开发并设计了一款性价比 较高的电子心率计 它有利于解决了传统测量方法的不准确性和随机性 而且 能够准确的测量出人体的心率 并以数字的方式显示测量结果 这样可以使人 体心率值直观化 临床监护和治疗中 医护人员常常要关注某些特殊患者 例如对重症病人 或婴幼儿 的体温随时间变化的情况 我们通常看到在许多小型医院 测量体 温只是应用最简单的水银体温计 在听取和读取两方面中多少会有点偏差 不 能准确无误的摄取数据且不能以数字的方式直接读取出来 其测量时间还比较 长 若看病的人比较多 则可能导致病情不能及时的得到正确的控制和治疗 而造成不必要的死亡 此外 如果水银体温计使用时间过长 很容易引起破裂 还会给病房带来 一定程度的环境污染 因此 设计一款能将人的体温直接以数字的形式显示出 来的数字体温计非常必要 随着人们生活水平的提高 心脏疾病的发病率呈上升趋势 已成为威胁人 类身体的杀手之一 因为心脏发病的发作具有突发性和随机性 为患者实时监 测心率的变化成为必然趋势 随着电子科技的不断发展 生命科学和信息科学 的结合越来越紧密 许多研究人员都投身于人类健康事业发展中 Holter 动态 心电图 的出现 使心电图机进入家庭变成了可能 但基于心电工作站的模式 第一章 引 言 2 使个别地区的患者因医院分析诊断系统的不健全 变得不适用 基于嵌入式及 DSP 的心电监护仪功能强大 但有因芯片的价格昂贵而有悖于我国基本国情 不利于家庭的普及 水银温度计的使用让我们能更便捷监测我们身体的温度变 化 然而 当我们使用不当时 它不紧不能帮我们观察自身的身体温度变化 还能造成危害我们身体的一员 例如 当我们在测量温度时不小心把温度计打 坏了 这时水银中毒成了我们最关心的一个问题了 这么不方便而又对人体能 产生危害却又必不可少的工具对我们来说确实是个然人苦恼的事 于是 一种 性能优良 带有自动检测和显示心率数据功能 还兼有测温度功能 而又符合 我国人均收入水平不高这一国情的心率和体温合为一体的检测仪的研制显得尤 其重要 基于这一目的 我的课题是设计一台基于单片机的心率计何体温计于 一体的检测仪 本文所介绍的可语音播报和显示被测者心率和体温多功能仪器运用 51 单片 机技术 与采用一般的数字电路制作的心率计相比 其体积更小 抗干扰能力 更强 而且单片机的可编程性使得其适应性 灵活性大大增强 它使用方便 只需将手指或额头轻轻放在传感器上 即可实时显示出你的每分钟脉搏次数和 你当时的体温温度 特别适合体育训练和外出旅游等场合使用 采用红外光学 检测法测心率 摒弃了不便于运动状态下测量脉搏的听诊器和吸附在人体上的 电极等老式侧量方法 测量的原理是 随着心脏的搏动 人体的组织半透明度 随之改变 当血液送到人体组织时 组织则半透明度减小 当血液流回心脏 组织则半透明度增大 这种现象在人体组织较薄的手指尖 耳垂等部位最为明 显 采用温度传感器 DS18B20 解决水银温度计的不能在运动下测温的问题 同时还解决了在传统的模拟信号远距离温度测量系统中 需要很好的解决引线 误差补偿问题 多点测量切换误差和放大电路零点漂移误差问题等技术问题 才能达到较高的测量温度的缺点 另外 DS18B20 的还具有体积小 精度更高 适用电压更宽 采用一线总线 可组网等优点 DS18B20 的测温原理为 内部 计数器对一个受温度影响的振荡器的脉冲计数 低温时振荡器的脉冲可以通过 门电路 而当到达某一设置高温时 振荡器的脉冲无法通过门电路 计数器设 置为 55 时的值 如果计数器到达 0 之前门电路未关闭 则温度寄存器的值 将增加 这表示当前温度高于 55 同时 计数器复位在当前温度值上 电 南昌工程学院本科毕业设计 3 路对振荡器的温度系数进行补偿 计数器重新开始计数直到回零 如果门电路 仍然未关闭 则重复以上过程 温度转换所需时间不超过 750ms 得到的温度 值的位数因分辨率不同而不同 因此 本心率计将红外发光二极管产生的红外 线照射到手指尖上 并用装在该部位的另一侧的红外光管来检测机体组织的透 明程度并把它转换成电信号 将 DS18B20 来检测机体的温度信号 由于红外对 管检测的信号频率与人体每分钟的脉搏次数成正比 DS18B20 温度传感器测出 来的温度信号是经过转换后的人体温度值 故只要把脉搏信号转换成脉冲并整 形 计数和显示 温度信号进行显示 即可实时的进行心率和体温的测量 1 21 2 研究概况及发展趋势综述研究概况及发展趋势综述 以往专门测量心率值的仪器较少 因为心率仪通常 作为心电机的一部分且 以前人们对心率测量的认识还不够 目前全国正在推行新的工资制度 岗位技能工资制 岗位技能工资制包 括劳动技能 工作责任 劳动强度和劳动条件四项指标 其中评定某个岗位劳 动强度大小最有效的方法就是测定该岗位工人作业时的心率值 但国内一直投 有有效的专用心率仪 所以劳动强度测定成了当前推行岗位技能工资制的阻力 因此 心率计的设计是十分必要的 而且具有相当大的实用价值 心率计也是常用的医学检查设备 实时准确的心率测量在病人监控 临床 治疗及体育竞赛等方面都有着广泛的应用 随着医疗设备的发展及人民生活水平的提高 心率计将朝着精度高 轻型 化 一体化 可视化 可控化等适合在家庭和社区条件下使用的方向发展 体温测量的历史 可以追溯到 l6 世纪 当时 Saatorio 用空气热膨胀的原理 制 出了第一支测量口腔温度的体温计 本世纪初 开始用水银来制作体温计 由 于水银体温计使用方便 精度高 因而应用很广 但用水银体温计进行体温监 测很不方便 水银的污染也很严重等 为了正确测量局部温度 最近促使人们 开发了各种不同的测温仪器和测温方法 近年普及的电子体温计又不能获得更 多的其他生理信息 精度也无多大提高 相比之下 水银体温计仍不愧是一个 精度高 便宜 使用方便的测温仪器 尽管这样 已有许多医院采用了电子体 温计 用其它电子仪器测量体温也日益普及 由于采用电子仪器 出现了新的 第一章 引 言 4 测温方法 然而就目前的情况来看 能与水银体温计相媲美的比较完善的体温 测量仪器尚未问世 因此 与水银体温计的历史相对照 可以说以电子体温计 为首的近代体温测量仪器还停留在 19 世纪的水平上 鉴于传统的水银体温计汞 的污染及其携带不方便 易破碎 尤其是测量时间过长等缺点 本设计就此问题 设计出一种新型的智能电子体温计 它在稳定性及响应时间上比传统的水银体 温计有着显著的优势 精度要求也能和传统的水银体温计相媲美 南昌工程学院本科毕业设计 5 第二章第二章 方案设计与论证方案设计与论证 2 12 1 方案一方案一 用压电陶瓷采集心电信号和用模拟温度传感器用压电陶瓷采集心电信号和用模拟温度传感器 AD590JAD590J 采集温度信号的心率计采集温度信号的心率计 2 1 1 设计思路 1 根据设计要求 选择 80C51 单片机为核心器件 2 心率值和温度值的显示采用三位一体的 LED 数码管 3 采用 12 位 A D 转换器 AD574 对采集到的信号进行 A D 转换成数字信号 经过 P0 口送入单片机处理 4 通过调用显示子程序和语音播报子程序来实现显示和语音播报 2 1 2 硬件设计方框图 根据设计要求与设计思路 方案一的硬件电路设计框图如图 2 1 所示 硬件 电路结构由六部分组成 即单片机 数据采集电路 时钟与复位电路 LED 显示器 及驱动电路 A D 转换器和语音播报电路 将采集的数 据进行 A D 转 换 数据采集 电 路 80C51 单片机 语 音 播 报 电 路 时 钟 与 复 位 电 路 显 示 器 及 驱 动 电 路 图 2 1 方案一的硬件电路图 第二章 方案设计与论证 6 2 1 3 AD574 芯片简介 AD574 是一种快速的 12 位 A D 转换芯片 片内有两片双极型电路组成的 28 脚双插直列式芯片 具备内部时钟电路 无需外接元器件就可独立完成 A D 转换功能 即可实现 12 位变换 也可作快速的 8 位转换 转换后的数据可 12 位一次输出 也可按 8 位 4 位分两次输出 内部设有三态数据输出锁存器 一次转换时间为 25 s 芯片引脚如图 2 2 所示 图2 2 芯片引脚 AD574 的引脚定义如下 REF OUT 内部参考电源输出 10 V REF IN 参考电压输入 BIP 补偿调整 调整 ADC 输出的零点 10VIN 5 V 或 0 10 V 模拟输入 20VIN 10 V 或 0 20 V 模拟输入 DB0 DB11 数字量输出 高半字节为 B8 DB11 低字节为 DB0 DB7 STS 工作状态指示端 STS 1 时表示转换器正处于转换状态 STS 返回到低 电平时 表示转换完毕 该信号可处理器作为中断或查询信号用 12 8 变换输出字长选择控制端 在输入为高电平时 变换字长输出为 12 位 在低电平时 按 8 位输出 CS CE 片选信号 当 CS 0 CE 1 同时满足时 AD574 才能处于工作状态 南昌工程学院本科毕业设计 7 R C 数据读出和数据转换启动控制 A0 字节地址控制 它有两个作用 在启动 AD574 R C 0 时 用来控制转 换 长度 A 0 时 按完整的 12 位 A D 转换方式工作 A 1 时 则按 8 位 A D 转换 方式工作 在 AD574 处于数据读出工作状态 R C 1 时 A0 和 12 8 成为输出 数据格式控制 DGND 数字公共端 数字地 AGND 模拟公共端 模拟地 表 1 1 为 AD574 控制信号状态表 表 2 1 AD574 控制信号状态表 2 22 2 方案二 采用数字温度传感器方案二 采用数字温度传感器 DS18B20DS18B20 采集温度信号和用红外采集温度信号和用红外 对管采集心电信号对管采集心电信号 2 2 1 设计思路 1 在该方案中我们同样选择 80C51 单片机为核心器件 2 用温度传感器 DS18B20 采集的温度信号和用红外对管采集的心电信号直 接 送入单片机处理 3 通过调用显示子程序和语音播报子程序来实现显示和语音播报 CECSR C 12 8A0功能说明功能说明 100 012位转换位转换 100 18位转换位转换 101 5V 12位输出位输出 101地地0高高8位输出位输出 101地地1低低4位输出位输出 第二章 方案设计与论证 8 2 2 2 硬件设计方框图 方案二的硬件设计方框图如图 2 2 所示 图 2 2 方案二的硬件方框图 2 32 3 方案比较论证方案比较论证 方案一采用的是模拟数据采集传感器 由于单片机只能处理数字信号 因 此必须有 A D 转换器将模拟信号转换成数字信号才能送入单片机精选出理 机 的另外方案一的软件设计较复杂 增加了 A D 转换这部分程序 显然方案二比方案一简单得多 由于采集到的信号经传感器后 信号本身 成了数字信号 可直接送入单片机进行处理 省去了 A D 电路 既简化了硬件 电路也省下了 A D 转换部分的编程 综上所叙 本设计将采用方案二 80C51 单片 机 数 据 采 集 电 路 时 钟 与 复 位 电 路 语 音 播 报 电 路 显 示 器 及 驱 动 电 路 南昌工程学院本科毕业设计 9 第三章第三章 硬件电路的简单概述硬件电路的简单概述 3 13 1 心率计设计的原理心率计设计的原理 本心率计摒弃了不便于在运动状态下测量脉搏的听诊器和吸附在人体上电 极等老式测量方法 采用红外光学检测法 其基本检测原理为 人体组织半透明度 随着心脏的搏动而改变 当心脏通过动脉将血液送到人体组织时 该部分组织的半 透明度减小 当心脏将血液压出该部分组织时则半透明度增大 这种现象在人体组 织较薄的手指尖 耳垂等部位最为明显 因此 本心率计用红外发光二极管产生 的红外线照射上述部位 并用装在该部位另一侧或旁边的红外光电管来检测机体 组织的透明度并转换成电信号 由于此信号的频率与人体每分钟的脉搏次数成 正比 故只要将它转换成脉冲信号并进行整形 计数和显示 即可实时地测出人体 每分钟的脉搏次数 根据设计要求 该设计采用 80C51 作为控制 CPU 外围器件包括数字温度 传感器 DS18820 光电对管 ZY1420A 语音模块 译码器 锁存器 放大器等等 本作品采用总线控制方式 显示采用三位静态数码显示 用数字温度传感器 DS18820 来采集温度信号 采集到的心电信号从 P1 0 口 送入单片机处理 用光电对管来采集心电信号 采集到的信号还需经过放大 滤波 倍频的一系列处理 处理后的信号最后经 P3 5 口送入单片机进行控制 在该设计中 我们对心电信号进行了 100 倍频处理 原因是心电信号的频 率很低 如果不经过倍频处理 测量就需较长的时间 效率很低 根据心率的 定义 心率值 N 60f 因此经过 100 倍频后 心率值的表示就可表示成 N 0 6f 采用广州志远电子有限公司出品的优质微型语音录放模块 ZY1420 ZY1420 内部使用 ISD1420 作为主控芯片 且具备 ISD1420D 的全部优良性能 ZY1420 使用有专利技术的模拟处理存储方式 使录放音质极佳 没有常见的背景噪音 且电路断电后语音内容仍不会丢失 作品经测试 使用此语音模块 完全可以 清晰播报当前温度值 第三章 硬件电路的简单概述 10 3 23 2 硬件电路图硬件电路图 经过反复构思 研究 论证和修改 最后的硬件电路图如图 3 1 所示 GND DQ VDD U3 DS18B20 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 u6 80C51 NC NC NC R E L E D ANA IN MIC MIC VCC SP SP VSS P L A Y L P L A Y E R E C NC NC NC NC NC NC A0 A1 A2 A3 A4 A5 A6 A7 u7 ZY1420A片片片片 CLR 1 CLK 11 1D 3 1Q 2 2D 4 2Q 5 3D 7 3Q 6 4D 8 4Q 9 5D 13 5Q 12 6D 14 6Q 15 7D 17 7Q 16 8D 18 8Q 19 U8 74LS273 A 1 B 2 C 3 G2A 4 G2B 5 G1 6 Y7 7 Y6 9 Y5 10 Y4 11 Y3 12 Y2 13 Y1 14 Y0 15 U9 74LS138 1 2 3 U5 74LS08 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U10 74LS164 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U11 74LS164 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U12 74LS164 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS1 DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS2 DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp DS3 DPY 7 SEG DP R2 200 R5 4K D3 LED D5 LED Q1 NPN PHOTO C2 2 2U C3 2 2U C1 220 R6 1M R15 1M R9 1M C447U C6 47U R7 10K IC1a IC IC1b IC IC1d IC IC1c IC C5 1U R16 51 D4 DIODE R14 680 R13 47K R12 47K C7 1U R1122K R8 220K R10 10K VCC R3 56K R4 56K C14 0 1uF LS1 SPEAKER R24 510 R25 10K S1 SW PB 5 R20 10K R21 10K U4 BELL R22 100 5 5 C11 30P C1030P Y1 12MHZ R26 300 5 5 VCC 5 C8 0 1uF 4 8 13 10 9 9 11 3 5 1 16 4 6 5 7 6 3 7 8 2 u1 CD4046 9 3 15 4 7 1 14 8 16 7 6 6 10 5 8 2 u2 CD4018 C9 0 047U R18 22M R17 1K R19 4K7 Y2 E S2 SW PB R23 10K VCC D0 Y1 P3 5 5 C12 10uF 5 RST RST C13 10uF 5 P1 1 5 5 P2 4 P2 5 P2 6 Y1 P3 6 P3 7 16 VCCGND 8 D0 D1 D2 D3 D4 D5 D7 D6 A1 A0 A2 A3 A4 A5 A6 A7 20 10 VCCGND P3 2 P3 2 D0 D1 D2 D3 D4 D5 D6 D7 P2 4 P2 5 P2 6 P1 0 P1 1 P1 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 15 16 17 18 19 20 21 22 23 24 25 26 27 28 A0 A1 A2 A3 A4 A5 A6 A7 P3 5 5 40 20 VCC GND P2 7 P2 7 Y3 Y3 图 3 1 硬件电路图 南昌工程学院本科毕业设计 11 第四章第四章 程序设计程序设计 4 14 1 主程序设计主程序设计 程序的功能 可以通过对 P1 1 口的检测其高低电平实现温度数据和心电信 号的采集 转换和处理 最后用数码管显示心率值和温度值 同时还可以调用 语音播报子程序对温度值和心率值进行语音播报 主程序流程图的设计是整个设计的关键一步 它是我们设计思路的具体体 现 有了主程序流程图 我们就可以根据把一个复杂的软件设计分解为若干个 功能模块 然后逐一设计各个模块的功能 在主程序设计中我们先初始化 包括显示模块初始化等 然后通过判断 P1 1 是高电平还是低电平来实现是测量体温还是测量人体的心率值 4 1 1 主程序流程图 图 4 1 主程序流程图 开 始 初 始 化 P1 1是 高 电 平 还 是低电平 测量温度 测量心率值 调 用 显 示 程 序 调 用 语 音 播 报子 程 序 低电平 高电平 12 主程序的功能主要是通过对 P1 1 的判断 选择调用测温程序还是测心率程 序 在调用显示子程序和语音播报子程序以实现数字显示和语音播报 org 0000h ljmp main org 0030h main lcall pr0 清屏 lcall pctc 定时器 计数器初化 lcall pram ram 区初始化 mov sp 80h mov r1 03h mov r2 00h steb p3 2 lcall loop lcall dis int 调用子显示子程序 lcall p lay1 调用语音播报子程序 4 1 2 语音模块 ZY1420A 功能简介 ZY1420A 主要有三个功能 录音 电平控制放音和脉冲触发放音 1 录音子程序 控制录音主要有两个数据 1 录音的开始地址 2 录音的时间 把这两个 数据都控制了就可以控制录音时把声音录到哪几段里头 注意 REC 信号将被 延迟50ms 防止开关抖动引起重复触发 在调用录音子程序时只要给出录音的 开始地址和需要录音的时间就可以了 2 电平控制放音子程序 电平控制放音中 开始地址和播放时间也是必不可少的 只要控制了这两个参 数就可以确定播出内容 不过需要注意的是播放的时候总是从一段的开头开始 南昌工程学院本科毕业设计 13 播放的 当需要分段播放控制时 录音时每一个内容的开头必须从一个段的开 头开始 在调用电平控制放音子程序时只要给出放音的开始地址和放音的时间 就可以了 3 脉冲触发放音子程序 脉冲触发放音与电平控制放音有些不同 脉冲触发放音不能够由单片机来控制 放音的时间 只能够控制放音的开始地址 脉冲触发放音开始后就一直播放到 遇到结束符或语音芯片的尽头 所以一般在分段语音控制里头不常用脉冲触发 在调用脉冲触发放音子程序时只要给出放音的开始地址就可以了 4 24 2 体温测量程序的设计体温测量程序的设计 单片机数字显示体温测量的软件设计程序主要由主程序 温度测量子程序 温度转换子程序 温度值显示和语音播报 4 2 1 DS18B20 的简述 在本设计中 用 DS18B20 采集温度信号 可以直接将模拟信号转换为数字 信号 简化了硬件电路 但所有的 DS18B20 器件要求采用严格的通信协议 以 保证数据的完整性 因此掌握 DS18B20 的通信协议是使用该器件的关键 4 2 1 1 DS18B20 的命令集 1 ROM 操作命令如下表 4 1 所示 指 令说 明 读 ROM 命令 33H 读 18B20 的序列数 搜索 ROM 命令 F0H 识别总线上各器件的编码 匹配 ROM 命令 55H 用于多个 DS18B20 的定位 跳过 ROM 命令 CCH 此命令执行后 存储器操作将针对总 线上的所有器件 报警搜索 ROM 命令 ECH 仅温度超限的器件对此命令做出响应 2 RAM 操作命令如下表所示 14 指 令说 明 温度转换 44H 启动温度转换 读暂存器 BEH 读全部暂存器内容 包括 CRC 字节 写暂存器 4EH 写暂存器第 2 3 4 个字节的数据 复制暂存器 48EH 将暂存器中的 TH TL 和配器内容复 制到 EEPROM 中 读 EEPROM B8H 将 TH TL 和配置寄存器内容从 EEPROM 中回读至暂存器 4 2 1 2 DS18B20 的通信协议 DS18B20 的通信协议定义了几种信号类型 复位脉冲 应答脉冲时隙 写 0 写 1 时隙 读 0 时隙 读 1 时隙 与 DS18B20 的通信 是通过操作时隙完 成单总线上的数据传输 发送所有的命令和数据时 都是字节的低位在前 最 高位在后 1 复位和应答脉冲时隙 每个通信周期起始于微控制器发出的复位脉冲 其后紧跟 DS18B20 发出的 应答脉冲 在写时隙期间 主机向 DS18B20 器件写入数据 而在读时隙期间 主机读入来自 DS18B20 的数据 在每一个时隙 总线只能传输一位数据 2 写时隙 当主机将单总线 DQ 从逻辑高 空闲状态 拉为逻辑低时 即启动一个写 时隙 所有的写时隙必须在 60 120us 完成 且在每个循环之间至少需要 1us 的恢复时间 在写 0 时隙期间 微控制器在整个时隙中将总线拉低 而写 1 时 隙期间 微控制器将总线拉低 然后在时隙起始后 15us 之内释放总线 3 读时隙 DS18B20 器件仅在主机发出读时隙时 才向主机传输数据 所以在主机发 出读数据命令后 必须马上产生读时隙 以便 DS18B20 能够传输数据 所有读 时隙至少需要 60us 且在两次独立的读时隙之间 至少需要 1us 的恢复时间 每个读时隙都由主机发起 至少拉低 1us 在主机发起读时隙之后 DS18B20 器件才开始在总线上发送 0 或 1 若 DS18B20 发送 1 则保持总线为高电平 若 发送 0 则拉低总线当发送 0 时 DS18B20 在该时隙结束后 释放总线 由上 南昌工程学院本科毕业设计 15 拉电阻将总线拉回至空闲高电平状态 DS18B20 发出的数据 在起始时隙之后 保持有效时间 15us 因而主机在读时隙期间 必须释放总线 并且在时隙起始后 的 15 us 之内采样总线状态 4 2 2 体温测量程序设计 在程序中首先初始化 检测 DS18B20 是否存在 然后通过调用读温度子 程序读出 DS18B20 的当前值 调用温度转换主程序把从 DS18B20 中读出的值 转换成对应的温度 调用显示子程序把温度值在数码管的相应位置进行显示 然后调用语音播报主程序实现温度的播报 体温测量程序如程序流程图 4 2 所 示 图 4 2 体温测量程序流程图 开 始 初 始 化 调用测温子程序 调用温度转换 子程序 调用温度显示 子程序 调用语音播报 子程序 返 回 16 在体温测量程序中 初始化后 通过调用测温子程序 温度转换子程序 显示 子程序 语音播报子程序以获得 BCD 码的体温数据 temper l euq 36h temper h euq 35h temper num euq 33h flag euq 0d5h dq euq p1 0 skipds18b20 euq 0cch start ds18b20 euq 44h readds euq 0beh mov sp 60h clr ea lcall re config 重写 ds18b20 暂存存储器设定值 lcall writebyteds18b20 lcall readbyteds18b20 lcall temper cov 调用温度转换程序 lcall dis int 调用子显示子程序 lcall play1 调用语音播报子程序 4 2 3 温度测量子程序 温度测量子程序的功能是读出并处理 DS18B20 测量的当前温度值 读出的 温度以 BCD 码的形式存放在缓存区 值得注意的是 DS18B20 每一次读写之 前都要进行复位 复位成功后发送一条 ROM 指令 最后发送 RAM 指令 这样 才能对 DS18B20 进行预定的操作 温度测量子程序流程图 4 3 所示 开 始 初 始 化 调用测温子程序 返 回 南昌工程学院本科毕业设计 17 图 4 3 温度测量子程序流程图 读 ds18b20 的程序 从 ds18b20 中读出一个字节的数据 readbyteds18b20 mov r4 08h re1 clr c steb dq nop nop clr dq nop nop nop steb dq mov r5 7h djnz r5 mov c dq mov r5 23h djnz r5 rrc a dnjz r4 re1 ret 将从 ds18b20 中读出的温度数据转换成 bcd 码 并存在缓冲区中 lcall temper cov 18 mov a temper num anl a 0fh mov 50h a mov a temper num mov a 0f0h swap a mov 51h a mov 52h 10h 4 2 4 温度转换子程序 温度转换子程序实现把从 DS18B20 中读出的值转换成对应的温度值 以 BCD 码的形式存放在缓存区 温度转换子程序流程图 4 4 所示 图 4 4 温度转换子程序流程图 温度转换子程序实现将从 ds18b20 中读出的温度数据转换成 bcd 码 lcall temper cov mov a temper num anl a 0fh 开 始 初 始 化 调用温度转换 子程序 返 回 南昌工程学院本科毕业设计 19 mov 50h a mov a temper num mov a 0f0h swap a mov 51h a mov 52h 10h 4 2 5 显示子程序和语音播报子程序 显示子程序首先把温度转换主程序得到的值变换后放入显示缓存区 然后 调用显示子程序显示人体的体温 显示子程序流程图图 4 5 所示 图 4 5 显示子程序流程图 显示子程序 dis int mov r1 30h lcall pr0 开 始 初 始 化 温 度值 放 入 缓 冲 区 调 用 显 示 子 程 序 返 回 20 lcall time mov r1 30h lcall pr0 lcall time mov r1 30h lcall pr0 mov r1 38h lcall pr0 清屏 mov r1 08h lcall pr0 mov r1 01h lcall pr0 mov r1 0ch lcall pr0 ret lcall pr0 mov r1 06h pr0 mov dptr 9e00h movx a dptr jb acc 7 pr0 mov dptr 9c00h mov a r1 movx dptr a ret pr1 mov dptr 9e00h movx a dptr jb acc 7 pr1 mov dptr 9d00h 南昌工程学院本科毕业设计 21 mov a r1 movx dptr a ret 语音播报子程序就是将温度值用语音的形式播报出来 其流程图如图 4 6 所示 图 4 6 语音播报子程序流程图 要实现语音播报 首先要进行录音 录音中要设定录音开始地址 录音的时间 根据录音时字所存放的地址 调用放音子程序实现语音播报 录音模块 record mov a r7 mov p1 a 设定开始录音地址 clr rec 控制开始录音 record2 mov r7 50 控制延时 50ms record1 lcall delay1ms djnz r7 record1 开始 初始化 调用语音播报子程序 返 回 22 mov r5 30h record4 lcall delay1ms 延时 1ms jb recled record3 录音模块录满结束判断 djnz r5 record4 录音时间控制 djnz r6 record2 record3 setb rec 释放录音按键 ret 放音模块 playl mov a r7 mov p1 a 设定开始播放地址 clr pll 控制播放 playl1 mov r5 30h playl4 lcall delay1ms 延时 1ms jnb recled playl2 检测语音模块是否播放完毕 djnz r5 playl4 播放时间控制 djnz r6 playl1 playl2 setb pll 释放播放按键 ret talk mov a 7ah anl a 0fh mov 40h a mov a 7bh anl a 0f0h swap a 南昌工程学院本科毕业设计 23 mov 41h a mov 42h 0ah mov a 7bh anl a 0fh mov 43h a mov 44h 0bh mov r0 40h mov r3 5 talk1 mov dptr sayddr mov a r0 movc a a dptr mov r7 a mov 30h 225 mov r6 4 lcall playl inc r0 djnz r3 talk1 ret sayddr 0 1 2 3 4 5 6 7 8 9 点 度 次 db 00h 04h 08h 0ch 10h 14h 18h 1ch 20h 24h 28h 2ch 2FH xs40 mov a r1 cjne a 30h xs41 mov r1 20h inc r1 djnz r7 xs40 ret xs41 time mov r6 0ah time0 mov r7 0f9h 24 djnz r7 djnz r6 time0 ret 4 34 3 心率测量的程序设计心率测量的程序设计 4 3 1 心率测量程序设计 心率测量程序设计由两部分构成 前半段实现初始化 包括定时器 计数 器的初始化 设置堆栈指针以及开中断等 程序的后半段则是启动两个定时器 计数器以及调用显示子程序和语音播报子程序来完成心率值的显示和语音播报 心率测量的程序设计流程图如图 4 7 所示 开 始 定时器 计数器初始化 显 示 缓 冲 区 清 零 设 置 堆 栈 指 针 开 中 断 启动CTCO CTC1 显示 心率值 语音播报心率值 结束 南昌工程学院本科毕业设计 25 图 4 7 心率测量的程序设计流程图 心率测量的程序 rate steb et0 允许中断 steb ea steb tr0 steb tr1 pctc mov th0 15h 定时器 计数器 0 定时 60ms mov tl0 0a0h mov th1 00h mov tl1 00h mov tmod 51h 定时器 计数器 0 定时 工作方式 1 定时器 计数器 1 计数 工作方式 1 mov 7fh 0ah oah 10 10 60ms 0 6s lcall dis int 调用显示子程序 lcall playl 调用语音播报子程序 ret 4 3 2 中断服务子程序设计 中断服务子程序主要有以下三大功能 1 实现 0 6S 定时 初始化中设定定时器 计数器 0 用作定时 定时时间为 60ms 同时用内存单元 7EH 7FH 配合做计数器 设 7EH 7FH 单元的初始值 为 0AH 相当于十进制数 10 每进入一次中断 将 7EH 7FH 单元内容减 1 减为 0 时为 0 6s 到 60ms 乘以 10 0 6 2 满 0 6s 后 读定时器 计数器 1 中 TL1 的值 每分钟脉搏跳动的次数一 般不会超过 255 次 即为每分钟脉搏跳动值 为了提高测量的准确性 本设计 中采用测三次求平均的方法来获取心率值 这就需要我们定义一个寄存器 R1 26 的值为 3 每过一个 0 6s R1 的值减 1 并将 TL1 中的值与上一次测量值 A 中 的值相加 当 R1 的值为 0 时 A 中的值就是三次的测量总值 将其值除以 3 就得到了心率值 初始化时将定时器 计数器 1 设置为计数器工作方式 3 将 A 计得的二进制数转换成十进制数 并将之送至显示缓冲区 其中百 位数置 60H 单元 十位数和个位数置 61H 单元 以使显示子程序实现每 0 6s 脉 搏跳动次数显示 其中单字节二进制数转换成十进制数的设计思路是 将该二 进制数先除以 100 64H 后在将余数除以 10 0AH 即可依次得十进制数 的百位 十位和个位 中断服务子程序的程序流程图如图 4 8 所示 图 4 8 中断服务子程序的程序流程图 CTC0重装初值 7FH 单元内容值0AH 7FH单元构成的计数器 内容减1 判断 7FH的内容是否为0 判断R1的内容是否为0 读TL1的内容 TL1中的值与A中 的值相加 数据转换 将十进制 数数字显示 调用语音播报子程序 返回主程序 是 是 否 否 R1的内容减1 南昌工程学院本科毕业设计 27 中断服务子程序 ctco push dph push dpl push acc mov th0 15h mov tl0 0a0h dec 7fh mov a 7fh cjne a 0ffh ctco1 ctco1 mov a tl1 addc a r2 mon r2 a dec r1 mov a r1 jnz ctco2 mov b 03h mov a r2 div ab lcall chan mov tl1 00h pop acc pop dpl pop dph ctco2 reti chan mov b 64h div ab mov 60h a mov a 0ah xch ab div ab swap a add a b mov 61h a ret 南昌工程学院本科毕业设计 28 总总 结结 在这将近三个月的实践和创作 经过无数次讨论和探索 不断的请教和修 改 终于把成品制作成功 作品完全满足设计数字显示和语音播报的要求 在 这漫长的时间里 这个作品凝聚了我的智慧和汗水 也融入了所有坚定不移的 信念 在这创作的三个月里 在指导老师的指导和关怀下 我们小组进行了一个 明确的分工和设计规划 通过不断的修改和讨论制定了一套详细的设计方案 在此之间 我们遇到问题即刻相互讨论 相互汇报设计进展情况 并结合总体 进展进行相应的改善和布局 使得我们每次都有进一步的拓展 更加完善我们 的毕业设计 在遇到困难时 我们相互讨论 同时不断的请教身边的同学和指 导老师 进行指导 使我们的设计更加顺利 在这期间我们也遇到过很多困难 我们懊恼过 沮丧过甚至灰心 想到放弃 可是每一次困难都被我们征服 因 为抱着一种执着的信念 对知识的渴求和设计的热爱 经过这次创作 让我们 充分的体验到团队精神的可贵 协作精神的伟大 让我们体会到理论和实践结 合的困难和快乐 体会到用双手打造成果的艰辛 体会到创作的伟大 科技的 伟大 也让我们充分感受到追求知识的坎坷 寻求真理的艰难 同时更加坚定 了我们对知识的孜孜追求 南昌工程学院本科毕业设计 29 南昌工程学院本科毕业设计 30 参考文献参考文献 1 Data Sheet DS18B20 Programmable Resolution 1 Wire Digital Thermometer 2 Data Sheet 8 bit Microcontroller With 4K Bytes Flash AT89C51 3 Data Sheet TLC0834 8 BIT ANALOG TO DIGITAL CONVER
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度跨境电商授权独家代理合同
- 化工专业毕业论文提纲
- 员工聘用合同范本模板-多篇
- 2024年安全知识竞赛培训题题库及答案
- 高中统编教材必修上册第四单元“家乡文化生活”选题指导教案
- 高铁专业本科毕业论文
- 护理系成人高考毕业论文
- 护理外科试题及答案
- 2025年手工制作相关室内娱乐服务合作协议书
- 2024年公务员考试题库附答案(a卷)
- 动力网站-艾默生netsure801电源系统用户手册
- DB3302T 1079-2018 管线探测技术规程
- 大唐集团公司工作票、操作票使用和管理标准(版)
- 医学皮肤部年度业务报告课件
- 21年一消防工程师继续教育题
- 中国政治思想史完整版课件
- 太阳能热水系统问题与解决方案
- (完整版)物理化学上教案
- D型便梁工法(二)
- 氟化物与牙健康
- 疑难路段处理能力及室项目分析
评论
0/150
提交评论