




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科学生毕业设计基于单片机的便携式心率测试仪的设计院部名称:专业班级:学生姓名:指导教师:职称:讲师PortableHeartRateMeasuringInstrumentBasedonMCUMeasurement&controltechnologyandinstruments随着生物医学工程技术的发展,医学信号测量仪器日新月异。生物医学测量与临床医学和保健医疗的联系日益紧密。通过对人体各种生理信号的检测,能更好的认识人体的生命现象。脉象包含丰富的人体健康状况信息,脉诊技术应客观化、定量化。本设计利用光电式传感器,设计脉搏信号获取的方法。本设计主要是基于单片机的便携式脉搏测试仪的具体实现方法,利用光电传感器产生脉冲信号,经过放大整形后,输入单片机内进行相应的控制,从而测量出一分钟内的脉搏跳动次数,快捷方便。通过观测脉搏信号,可以对人体的健康进行检查,通常被用于保健中心和医院。本设计所设计的基于单片机的便携式心率测试仪对推进脉诊技术客观化的实现具有积极的促进作用。ABSTRACT
Keywords:MCU;TOC\o"1-4"\h\z\u摘要 IAbstract……………………II第1章引言 11.1概述 11.2基于单片机的心率测试仪的发展与应用 21.3本设计的主要内容 3第2章整体方案分析 42.1任务 42.2要求 42.3设计时要考虑的问题 42.3.1环境光对脉搏传感器测量的影响 42.3.2电磁干扰对脉搏传感器的影响 42.3.3测量过程中运动噪声的影响 52.4系统基本方案 52.4.1脉搏传感器的选择 52.4.2单片机部分的选择…………72.4.3显示部分的选择 72.5整体方案 72.6本章小结……………………...…..8第3章硬件电路设计分析 93.1控制器 93.1.1AT89S51简介……………..………………93.1.2AT89S51的特点…..……93.1.3AT89S51的结构 103.2脉搏信号采集 123.2.1光电传感器的结构及原理 123.2.2信号采集电路 133.3信号放大电路 133.4波形整形电路 143.5单片机处理电路 153.6显示电路 163.7报警电路 173.8本章小结 17第4章软件系统 184.1主程序流程 184.2定时器中断程序流程 194.3INT中断程序流程 204.4显示程序流程 204.5蜂鸣器报警流程 214.6本章小结 22结束语 23参考文献 25致谢 27附录 28附录A整体硬件电路图 28附录B程序 29附录C外文翻译 34心脑血管疾病是当今全球死亡率最高的疾病,是21世纪人类健康的头号杀手。多年来,心率测试仪在心脑血管疾病的研究和诊断方面发挥出显著的作用,它记录的心脏活动时的生物电信号,已成为临床诊断的重要依据。临床上使用的心电监护仪虽然功能强大,测量精度高,但因为价格高昂,不利于家庭的普及。就算是在医院,护士每天监控病人病情而进行的心率测试也是常用手测。正常人的心率和脉搏跳动的次数是一样的,因此可以用测脉搏的方法来测心率。医院的护士每天都要给住院的病人把脉,并记录病人每分钟脉搏数,从而达到测试心率的目的,他们一般的方法是用手按在病人腕部的动脉上,根据脉搏的跳动进行计数。为了节省时间,一般不会作1分钟的测量,通常是测量10秒钟时间内心跳的数,再把结果乘以6即得到每分钟的心跳数,即使这样做还是比较费时,而且精度也不高。随着科技发展的不断提高,生命科学和信息科学的结合越来越紧密,出现了各种新颖的脉搏测量仪器,特别是电子脉搏仪的出现,使脉搏测量变得非常方便。从脉搏波中提取人体的生理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。几乎世界上所有的民族都用过“摸脉”作为诊断疾病的手段。脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对脉搏波采集和处理具有很高的医学价值和应用前景。本系统采用AT89S51单片机为核心而制作的一种实用型脉搏测量仪。采用光电脉搏传感器作为传感器对人体的脉搏进行数据采集。得到的信号送入AT89S51单片机进行处理。单片机将采集到的脉搏数在数码管上实时显示出来,同时还设置了脉搏测量仪的上下限报警电路。本设计首先描述本设计的整体思路,然后介绍各个部分设计中的细节问题,最后提出一些完善本设计的改进意见。便携式心率测试仪携带方便并且能准确快速地测试心率,这是我们在家中就可以测试心率从而能检测是否患有一些心血管疾病,做到早发现。他还可以供运动员使用以检测身体状态,当能护士使用它可以节省大量的时间并大大的提高了测试心率的准确性。人体心室周期性的收缩和舒张导致主动脉的收缩和舒张,是血流压力以波的形式从主动脉根部开始沿着整个动脉系统传播,这种波成为脉搏波。从脉搏波中提取人体的心理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对脉搏波采集和处理具有很高的医学价值和应用前景。随着科学技术的发展,脉搏测量技术也越来越先进,对脉搏的测量精度也越来越高,国内外先后研制了不同类型的脉搏测量仪,而其中关键是对脉搏传感器的研究。而由于脉搏传感器的不同,现今市场上的脉搏测试仪的脉率采集主要有三种方法:采用一对红色发光二极管实现、采用反射式的红外管实现和采用压电陶瓷芯片实现。近年来国内外致力于开发无创非接触式的传感器,这类传感器的重要特征是测量的探测部分不侵入机体,不造成机体创伤,能够自动消除仪表自身系统的误差,测量精度高,通常在体外,尤其是在体表间接测量人体的生理和生化参数。本设计采用的光电式脉搏传感器是根据光电容积法制成的脉搏传感器。它是采用一对红色发光二极管进行脉率的采集,而它的测量位置一般是耳垂或手指。通过对手指末端透光度的监测,间接检测出脉搏信号。具有结构简单、无损伤、精度高、可重复使用等优点。虽然手指上的汗腺较多,指夹常年使用,污染可能会使测量灵敏度下降,但只要注意清理,测量的准确性还是非常高的;耳脉测量比较干净,传感器使用环境污染少,容易维护。但因耳脉较弱,尤其是当季节变化时,所测信号受环境温度影响明显,造成测量结果不准确。脉搏测量仪的发展主要向以下几个趋势发展:1、自动测量脉搏并且对所得到的脉搏进行自动分析目前很多脉搏测量仪都具有检测血氧等其他的功能,但是对这些信号的分析和诊断还需要一些有经验的医生观察,进行分析后才能确认结果,浪费大量的人力,且由人为引入的误差较大。因此,未来脉搏自动检测的内容将更加详细,自动分析诊断功能也更强大。2、数字化技术等先进技术的应用随着数字科学技术的发展,脉搏测量仪集成度将更高,更便于携带。数字信号处理的运用将使干扰更小,测量更为准确。3、多功能化越来越明显目前的脉搏测量仪,一般都具有测试血氧,心电图等等功能,单纯的脉搏测量仪已经很少见。随着电子技术的发展,脉搏测量仪必然可以实现更多的功能。本设计以单片机为核心,由光电传感器采集脉搏信号。经过前置放大电路、滤波电路、积分和比较电路后得到与脉搏相关的脉冲信号。该脉冲信号作为中断信号交由单片机进行买长周期的计算。然后得到每分钟的脉搏搏动次数(即心率),并在数码管上显示心率。
本设计的工作是围绕着光电传感器检测脉搏波而单片机进行控制进行的。本设计的设计内容安排如下:
第一章为引言。简要介绍了心率测试仪设计的目的和意义,并对基于单机的便携式心率测试仪的现状和应用以及未来的发转走势做了简单的阐述,指出了本设计的主要技术内容,即心率的测试。
第二章为整体方案的分析。顾名思义第二章是对整个方案的详细的对比与选择并确定最终方案。在确定方案之前我必须先明确本设计的任务与要求,之后是各个部分的对比选择。第三章是本设计的核心。在这里给出了整体的硬件电路设计思路,并且对电路的各个部分进行分析与解释。
第四章叙述程序的编程方案,给出程序的框架结构图并对整个设计进行总结,而且对以后的设计工作进行了展望。基于单片机的便携式心率测试仪的设计。本设计以单片机为核心,由光电传感器采集脉搏信号。经过前置放大电路、滤波电路、积分和比较电路后得到与脉搏相关的脉冲信号。该脉冲信号作为中断信号交由单片机进行买长周期的计算。然后得到每分钟的脉搏搏动次数(即心率),并在数码管上显示心率,并且在超出设定的正常脉搏跳动范围时,驱动蜂鸣器报警。(1)通过脉搏传感器采样脉搏信号,设计脉搏波检测电路,通过译码管来显数脉搏次数。(2)将脉冲波送入单片机,采用单片机构成脉搏波检测仪,要求实现脉搏波次数超出设定时限时驱动蜂鸣器报警。设计时要考虑的问题环境光对脉搏传感器测量的影响在光电式脉搏传感器中,光敏器件接收到的光信号不仅包含脉搏信息的透射光的信号,而且包含测量环境下的背景光信号,由于动脉波动引起的光强变化比背景光的变化微弱得多,因此在测量过程当中要保持测量背景光的恒定,减少背景光的干扰。测量环境下的背景光包含环境光和在测量过程中引起的二次反射光。为了减少环境光对脉搏信号测量的影响,同时考虑到传感器使用的方便性,采用密封的指套式包装方式,整个外壳采用不透光的介质和颜色,尽量减小外界环境光的影响,为了避免测量过程中的二次反射光的影响,在指套式传感器的内层表面涂上一层吸光材料,这样能有效减少二次反射光的干扰。加上指套式外壳后的脉搏传感器测量到的脉搏波形比较平滑。这是因为加指套式的脉搏传感器中环境光在测量过程中基本不受外界环境光的影响,而且能够有效减少二次反射光,使照射到手指上的光波长单一,所以得到的脉搏信号较为稳定,没有明显的重叠杂波信号,能够很好的体现出脉搏波形的特征。电磁干扰对脉搏传感器的影响通过光电转换得到的包含脉搏信息的电信号一般比较微弱,容易受到外界电磁信号的干扰,在传统的光电式脉搏传感器电路中,由于光敏器件和放大电路是分离的,那么在信号的传递过程就很容易受到外界电磁干扰,通常在一级放大电路采用电磁屏蔽的方式来消除电磁干扰。本系统采用了新型的光敏器件,在芯片内部集成光敏器和一级放大电路,有效地抑制了外界电磁信号对原始脉搏信号的干扰。工频干扰是电路中最常见的干扰,脉搏信号变化缓慢,特别容易受到工频信号的干扰,因此对工频信号干扰的抑制是保证脉搏信号测量精度的主要措施之一。通常脉搏信号的频率范围在0.3-30Hz之间,小于工频50Hz,因此通过低通滤波器可以有效滤除工频干扰,这在信号调理电路中容易实现;同时可以在控制电路中对光源进行脉冲调制,这样不但能够降低系统的功耗,而且能够在一定程度上减小外界的电磁干扰,在脉搏信号数据采集后,可以通过数据处理法方法进一步滤除工频信号的干扰。2.3.3测量过程中运动噪声的影响测量过程中,通常情况下手指和光电式脉搏传感器可能产生相对的运动,这样会使脉搏的测量产生误差,可以通过两个方面减少运动噪声误差:一是改善指套式传感器的机械运动性,比如说使指套能够更紧的套在手指上,不易松动;二是从脉搏处理的角度,通过算法来减少误差。对于本设计的传感器的设计来说,采用的是第一个途径。根据题目的要求系统模块可以基本划分为:脉搏传感器部分、单片机处理电路部分、显示电路部分和报警电路。为实现各模块的功能,分别做了几种不同的设计方案并进行了论证。脉搏传感器的选择传感器又称为换能器、变换器等。脉搏传感器是脉搏检测系统中重要的组成部分。(1)光电式传感器血液是高度不透明的液体,光照在一般组织中的穿透性要比血液中大几十倍,据此特点,采用光电效应手指脉搏传感器来拾取脉搏信号。反向偏压的光敏二极管,它的反向电流具有随光照强度增加而增加的光电效应特性,在一定光强范围内,光敏二极管的反向电流与光强呈线性关系。指端血管的容积和透光度随心搏改变时,将使光电三极管极管收到不同的光强,并由此产生的光电流均随之作相应变化。常用检测脉搏的光电传感器分为红外对管和红外放射管。采用红外对管。将对管夹于手指端部,通过手指的血液浓度会随着心脏的跳动发生变化,红外对管对应的信号便会发生相应的变化,采集此信号经过放大,滤波,比较等处理便可以得到理想的信号。采用反射式的红外管。现在市场上的心率计普遍采用这种传感器来采集信号,因为此红外管接收和发射都在手指的同一侧,因此便不用考虑每个人手指情况不同所造成的麻烦。接收的是血液漫反射回来的光,此信号可以精确地测得血管内容积变化。光电式传感器具有灵敏度高,易于操作,响应速度快,结构简单等优点。虽然外部光源的变化对测量结果的影响较大,但我们进行测量的地方一般都是在室内,有稳定的光源,所以在正常的操作过程中只要稍微注意下光源的问题就可以了。(2)压电式传感器目前常用的是一次性心电电极,它是用印刷方法制得的Ag/Agcl传感器。这种传感器采用接扣与敏感区分离的方法,能明显的减少由于人体运动产生的干扰。电极的好坏对采集到的心电信号质量起着至关重要的作用,采用的电极应有贴力强,能紧附在人体表面,柔软、吸汗、极化电压低、导电性良好等特点。当选用电极传感器时,需要3个电极分别置于左右手和左腿,构成标准导联。临床上为了统一和便于比较所获得的脉搏信号,在检测脉搏信号时,对电极的位置,引线与放大器的连接方式都有严格的统一规定。目前市场上有一种采用新型高分子压电材料聚偏氟乙烯研制的压电传感器,其灵敏度高,频带范围好,结构简单,便于使用。当手指前端受到轻微的压力时,可以感觉到手指前端在血压的作用下有一张一弛的感觉,将这个信号用传感器提取出来,转变为电信号,通过指脉的波形检测,就可以获得人体的脉搏信号。压电式传感器有着结构简单,实时性好,工作频带宽,应用电路简单等诸多优点,并且价格低廉。但压电式传感器直接与人体相接触,容易因为人体肌肉的颤动等而产生干扰。而肌肉的颤动不是人能主动控制的,所以说这部分的误差很难控制。并且使用压电式传感器测脉搏还容易受到外界其他信号的干扰。(3)集成传感器当前,市面上有很多类型的集成心电传感器,其灵敏度高,集成度高,直接就可以反映出心率的变化,且已包含了滤波等抗干扰电路,波形经过放大可以直接处理使用。缺点是价格非常昂贵,一般均在五百元以上,就本次设计来说,考虑到经费以及锻炼自己的目的,不选择使用该型传感器。综合考虑种种情况,结合本系统的设计要求以及经费的考虑,本设计采用光电式传感器。单片机的选择AT89S51是一种低功耗、高性能的CMOS8位微控制器,具有8K的系统可编程Flash存储器。使用Atmel公司的高密度非易失性存储技术制造,与工业80S51产品指令和引脚完全兼容。片上的Flash允许程序存储在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S51在众多嵌入式控制应用系统中得到广泛应用。显示部分的选择根据题目要求,设计出来的系统是可以设定报警的范围的。在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果、状态等信息,因此显示器也是不可缺少的外部设备之一。显示器的种类很多,从液晶显示、发光二极管显示到CRT显示器,都可以与微机配接。在单片机应用系统中常用的显示器主要有发光二极管数码显示器,简称LED显示器。LED显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点。但与LCD相比显示内容有限,不能显示图形,因而其应用有局限性。LED数码管显示器是由发光的二极管显示字段组成的。在单片机应用系统中使用最多的就是七段LED数码管,有共阴极和共阳极两种。七段LED数码管显示器有8个发光二极管,其中从a~g管脚输入显示代码,可显示不同的数字或字符,Dp显示小数点。共阴极LED数码管显示器的公共端为发光二极管阴极,通常接地,当发光二极管的阳极为高电平时,发光二极管点亮。共阳极的LED数码管显示器的公共端为发光二极管的阳极,通常接+5V电源,当发光二极管的阴极为低电平时,发光二极管点亮。通过比较,我们可以发现LED动态显示更加适合本设计,所以就采用此方法。对脉搏的检测的基本原理:随着心脏的搏动,人体组织半透明度随之改变。当血液送到人体组织时,组织的半透明度减小;当血液流回心脏,组织的半透明度增大。这种现象在人体组织较薄的手指尖、耳垂等部位最为明显。因此,本设计所设计的基于单片机的便携式脉搏测量仪将红外发光二极管产生的红外线照射到人体的上述部位,并用装在该部位另一侧或旁边的红外光电管来检测机体组织的透明程度并把它转换成电信号。由于此信号的频率与人体每分钟的脉搏次数成正比,故只要把它转换成脉冲并进行整形、计数和显示,就能实现实时检测脉搏次数的目的,再通过报警电路可实现报警功能。本设计结构硬件框图如图2.1所示。图2.1硬件框图本章主要介绍了常见的用于脉搏检测的三种传感器,并对这三种感器的优缺点进行了比较。本设计采用的单片机芯片的型号是AT89S51,在本章主要介绍了它的一些特点。最后,给出了最终的设计方案和硬件框图。3.1控制器经过第2章的叙述已经确定了完成本设计所需要的主要元器件,所以本章开始讲述基于单片机的便携式心率测试仪的设计的硬件电路的设计。在这里,单片机要实现对脉搏信号的处理。为了能够在不到10s的时间内,测量出一分钟的脉搏,可以使用单片机的定时器来实现。在检测到第一个脉冲到达时,开启定时器,然后在下一个脉冲到达时,关闭计时器,如此就可以求得一次心跳所需要的时间,然后由该周期就可以得到一分钟的脉搏数。考虑到单片机要实现以上功能,选择使用AT89S51来构成电路。AT89S51AT89S51是一种低功耗、高性能的CMOS8位微控制器,具有8K的系统可编程Flash存储器。使用Atmel公司的高密度非易失性存储技术制造,与工业80S51产品指令和引脚完全兼容。片上的Flash允许程序存储在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S51在众多嵌入式控制应用系统中得到广泛应用。AT89S51的特点:1、兼容标准MCS-51指令系统及80S51引脚结构2、4k字节可重擦写Flash闪速存储器3、128bytes的随机存取数据存储器(RAM)4、32个外部双向输入/输出(I/O)口5、5个中断优先级、2层中断嵌套中断6、2个全双工串行通信口7、片内振荡器和时钟电路8、2个16位定时/计数器9、6个中断源10、看门狗(WDT)电路11、全静态工作:0Hz-33MHz12、三级程序存储器保密锁定13、可编程串行通道14、低功耗空闲和掉电模式AT89S51的结构此次设计所使用的AT89S51的封装形式是PDIP。DIP管脚图如图3.1所示。图3.1DIP管脚图AT89S51与51系列中各种型号芯片的引脚互相兼容。目前多采用40只引脚双列直插,如图3.1所示。引脚按其功能可分为如下3类:1、电源及时钟引脚——VCC、VSS;XTAL1、XTAL2;2、控制引脚——、、、和;3、I/O口引脚——P0、P1、P2、P3,为4个8位I/O口。1、电源及时钟引脚(1)电源引脚VCC:5V电压。GND:接地。(2)外接晶体引脚XTAL1:接外部晶体振荡器的一端。当使用芯片内部时钟时,此脚用于外接石英晶体振荡器和微调电容;当使用外部时钟时,对于HMOS单片机,此引脚接地;对于CMOS单片机,此引脚作为外部振荡信号的输入端。XTAL2:接外部晶体振荡器的另一端,当使用芯片内部时钟时,此脚用于外接石英晶体振荡器和微调电容。当使用外部时钟时,对于HMOS单片机,此引脚接外部振荡源;对于CMOS单片机,此引脚悬空不接。89S51晶体振荡器频率可在6MHZ~40MHZ之间选择,常选6MHz或12MHz的石英晶体。电容的值没有严格要求,但其取值对振荡器的频率输出的稳定性、大小、振荡电路起振速度稍有影响,C1、C2可在20pF~100pF之间选择。当外接晶体振荡器时,电容可选30pF±10pF;外接陶瓷振荡器时,电容可选40pF±10pF。2、控制引脚:复位端。当输入的复位信号持续2个以上机器周期(个晶体振荡周期)高电平即为有效,用于完成单片机的复位初始化操作。正常工作时,此脚电平应≤0.5V。在VCC发生故障、降低到电平规定值掉电期间,此引脚可接备用电源VPD(电源范围5V±0.5V),由VPD向内部RAM供电,以保持内部RAM中的数据。:地址锁存使能。ALE(AddressLatchEnable);PROG(Program)为CPU访问外部程序存储器或外部数据存储器提供地址锁存信号,将低8位地址锁存在片外的地址锁存器中。引脚第二功能,对片内Flash编程,为编程脉冲输入端。:(ProgrammerSavingENable),外部程序存储器读选通信号。在读外部程序存储器时有效(低电平),以实现外部程序存储器单元的读操作。在访问外部数据存储器、访问内部程序存储器时无效。:(EnableAddress/VoltagePulseofProgramming),访问程序存储控制信号。当=“0”时,表示读外部程序存储器。只读取外部的程序存储器中的内容,读取的地址范围为0000H~FFFFH(64KB),片内的4KBFlash程序存储器不起作用。当=“1”时,表示对程序存储器的读操作是从内部程序存储器开始,并可延至外部程序存储器。在PC值不超出0FFFH(即不超出片内4KBFlash存储器的地址范围)时,单片机读片内程序存储器(4KB)中的程序,但当PC值超出0FFFH(即超出片内4KBFlash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。对于EPROM(或FLASH)型单片机,在EPROM编程期间,此引脚需加12.75V或21V的编程电压。3、I/O口引脚P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗转入端用。Pl口:P1是—个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P3口:①可以作为输入/输出口,外接输入/输出设备。②作为第二功能使用,每一位功能定义如表3.1所示。表3.1P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)脉搏信号采集3.2.1光电传感器的结构及原理传感器由发光二级管和光敏二极管组成,其工作原理是:发光二极管发出的光透射过手指,经过手指组织的血液吸收和衰减,由光敏二极管接收。由于手指动脉血在血液循环过程中呈周期性的脉动变化,所以它对光的吸收和衰减也是周期性脉动的,于是光敏二极管输出信号的变化也就反映了动脉血的脉动变化。3.2.2信号采集电路图3.3是脉搏信号的采集电路,U3是红外发射接收装置,C8、C9串联组成的双极性耦合电容把它隔断。C8、C9加到线性放大输入端。图3.3信号采集电路3.3信号放大本设计采用的放大器是LM324。LM324是四运放集成电路,它采用14脚双列直插塑料封装.它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。由于通过光电式脉搏传感器检测到的脉搏波的信号非常微弱,所以在单片机接受处理前需要进行信号的放大处理。按人体截止频率为:按人体的脉搏跳动为200次/分钟时的频率是3.3Hz考虑,低频特性是令人满意的。经过低通放大后输出的信号是叠加有噪声的脉动正弦波。波形整形电路当有输入信号时,U2A在比较器输入信号的每个后沿到来时输出高电平,使C7通过R32充电。大约持续20ms之后,因C7充电电流减小而使U2A同相输入端的电位降低到低于反相输入端的电位(尖脉冲已过去很久),于是U2A改变状态并再次输出低电平。这长的脉冲是与脉搏同步的,并由红色发光二极管DS3的闪亮指示出来。即发光二极管作脉搏测量状态显示,脉搏每跳动一次发光二极管就亮一次。同时,该脉冲电平通过R24送到单片机/INTO脚,进行对心率的计算和显示。图3.5整形电路单片机处理电路本部分运用了ATMEL公司的89S51单片机作为核心元件,在这里运用单片机能更快更准确地对数据进行运算,而且可以根据实际情况进行编程,所用外围元件少,轻巧省电,故障率低。单片机外围电路包括复位电路和振荡电路。本设计采用自激荡方式,使内部振荡器按照石英晶振的频率振荡产生时钟信号。石英晶振选择频率为11.0592MHz,电容选择30pf如图3.6中振荡电路所示。经计算得单片机工作机器周期为:。时钟电路工作后,在REST管脚上加两个机器周期(12个晶振周期)以上的高电平,芯片内部开始进行初始复位。接到P0口的单排电阻是上拉电阻。来自传感和整形输出电路的脉冲电平输入单片机89S51的INTO脚,单片机设为负跳变中断触发模式,故每次脉冲下降沿到达时触发单片机产生中断并进行计时,来一个脉冲脉搏次数就加一;定时器中断主要完成一分钟的定时功能。单片机对一分钟内的脉冲次数进行累加,通过P0、P2口把测量过程和结果送到数码管显示出来。本设计的显示采用LED数码管动态扫描来显示。两个3位的共阳极LED数码管组成8位显示,其中0、1两位显示测量中的时间,3、4两位显示测量中的脉搏次数,6、7两位用来显示上次测量的数据。单片机的P0口控制显示字型,P2控制显示字位。显示电路如图3.7所示。图3.7显示电路根据图3.8报警电路本章是本设计的核心。在这里给出了整体的硬件电路设计思路,并且对电路的各个部分进行分析与解释。主要介绍了AT89S51单片机的结构与引脚功能、光电传感器采集脉搏波原理和LED等的原理。4.1主程序流程YNYNYN初始化是否有外部中断?YNYNYN初始化是否有外部中断?启动计数器开始变量加1计数器清零等待计数器是否溢出?检测到外部中断?关闭计数器计算结果结束图4.1主程序流程图系统主程序控制单片机系统按预定的操作方式运行,它是单片机系统程序的框架。系统上电后,对系统进行初始化。初始化程序主要完成对单片机内专用寄存器、定时器工作方式及各端口的工作状态的设定。系统初始化之后,进行定时器中断、外部中断、显示等工作,不同的外部硬件控制不同的子程序。定时器中断程序流程定时器中断程序流程如图4.2所示。图4.2定时器中断程序流程定时器中断服务程序由一分钟计时、按键检测、有无测试信号判断等部分组成。当定时器中断开始执行后,对一分钟开始计时,1s计时到之后继续检测下1s,直到60s到了再停止并保存测得的脉搏次数。同时可以对按键进行检测,只要复位测试值就可以重新开始测试。主要完成一分钟的定时功能和保存测得的脉搏次数。INT中断程序流程INT中断程序流程如图4.3所示。图4.3INT中断程序流程外部中断服务程序完成对外部信号的测量和计算。外部中断采用边沿触发的方式,当处于测量状态的时候,来一个脉冲脉搏次数就加一,由单片机内部定时器控制一分钟,累加得出一分钟内的脉搏次数。没有处于检测状态时,按下按键检测开始,进行脉搏数的累加。显示程序流程显示程序包括显示上次的脉搏次数、本次测量中的时间和脉搏的次数。从中断程序中取得结果后,先显示上次的脉搏次数,经过10ms的延时后再显示测试中的脉搏次数,再经过10ms的延时显示测试中的时间。本设计的显示采用LED数码管动态扫描来显示。两个4位的共阳极LED数码管组成8位显示,其中0、1两位显示测量中的时间,3、4两位显示测量中的脉搏次数,6、7两位用来显示上次测量的数据。单片机的P0口控制显示字型,P2口控制显示字。显示程序流程如图4.4所示。图4.4显示程序流程图4.5蜂鸣器报警流程根据对报警电路的分析,可通过对P1.6的置位来控制蜂鸣器发出声音和关闭。当P1.6管脚为低电平时,与非门输出高电平,三极管导通,这样蜂鸣器的电路形成回路,发出声音;当P1.6管脚为高电平时,与非门输出低电平,三极管截止,这样蜂鸣器中无法形成电流回路,蜂鸣器不出声。根据医学数据,图4.5蜂鸣器报警流程图4.6本章小结本章节主要是程序的编写,要想系统能正常的工作,除了要有合理的硬件之外还要有一个合理的软件系统。软件程序采用C语言编写,可读性非常好。的误差。本设计主要是51单片机在脉搏测试系统中的应用。重点介绍了单片机的最小系统,通过单片机最小系统实现了脉搏的测量系统,由光电传感器采集到脉冲信号,经过信号的放大、滤波和整形电路将输出的信号通过单片机的外部中断获取并最终在数码管上显示。而且本设计所设计的便携式心率测试仪还有报警功能,在脉搏次数超出设定值时报警电路会驱动蜂鸣器鸣叫。利用单片机自身的定时中断、外部中断、计数等功能,不仅能显示出此次脉搏测量的次数,还能自动储存这个数据。本次所设计的测量仪系统实现简单、功能稳定、使用方便,应用广泛,具有实际意义。由于时间比较短,同时本人掌握的知识有限,本次设计虽已完成,但其中有很多不足,如程序不够简练,论文说明书不够好,光电传感器灵敏度不够高,数码管显示部分不够完美等,同时此次设计的测量仪功能比较单一,没有如语音系统实现自动读出脉搏次数等人性化功能,且在设计过程中使用的运放数量也较多,加大了电源管理的复杂度。然而科技的进步势必会使测量仪的功能日益强大和完善,其应用领域将不断扩大,将会给我们的生活带来更多的方便和精彩。为了更好的进行电脉搏测量仪的设计,在近一个学期的时间里,认真收集有关资料,并做相关的整理和阅读,为这次的设计做好充分的准备。通过此次的设计,使我知道了无论做什么事都应该事先做好充分的准备,不应该盲目的只为了完成任务而被动的学习;通过此次的设计,使我了解了脉搏测量仪在国内外发展之迅速、应用领域之广、市场前景之大;通过此次的设计,使我对硬件设计和各模块的功能有了更深的了解,同时提高了动手能力;通过次次的设计,使我体会到坚持不懈的毅力对完成一件事情起着巨大的作用。李静老师对我李静老师)(美)MarkD.Birnbaum.电子设计自动化基础[M].北京:机械工业出版社.2005:32-39.OzawaYukioKasamakiYuji.Transmissionandnon-transimissionportableECGinhomecaremedicine.RinshoByori[J].Tokyo.2006.Apr.AcceleratedC++.PracticalProgrammingbyExamplePearsonEduction4-1,2006,812-34.本论文是在李静老师的悉心指导下完成的。从开始进入课题到论文的顺利完成,她都始终给予我耐心的指导和不懈的支持。李静老师认真的教学态度,严谨的治学精神,以及对学生无微不至的关爱,都深深地感染和激励着我。在大学期间,有幸得到李静老师的指点,使我受益终生。感谢刘鑫磊和王亮同学,在毕业设计期间,和我共同探讨,提出很多宝贵意见和建议。感谢答辩组的老师在中期答辩以及成果演示的过程中,对我的设计的不足之处给予提醒,对设计的步骤和规范方面给我以正确的引导,使我能够很快进入状态,圆满完成设计任务。在此还要感谢测控08-1班的全体同学,在短暂的大学四年生活中,我们彼此间建立了深厚的友谊,祝愿我们大家庭中的每一位成员事业有成,一帆风顺。最后,还要感谢父母对我多年的教导和养育之恩,他们每天的支持和厚爱是我努力学习的动力,我将以优异的成绩作为献给他们最好的礼物。附录A整体硬件电路图脉搏测量仪的信号采集、处理、显示的程序#include<reg51.h>#defineuint8unsignedchar#defineuint16unsignedint#defineTIMER0_HIGHT0xDC //设置定时器0工作方式1自动装载初值,定时10ms,Fosc=11.059200MHZ#defineTIMER0_LOW0x00sbitkeyin=P3^1; //按键输入bitstarttest; //启动测脉搏标志uint16cnt10ms; //10ms计数器uint8cnt1s; //1秒计数器uint8Pulsecnt; //脉搏次数,计数器uint8Pulsenum; //上次测试脉搏的次数uint8codeDispCode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳数码管段码表voidInit_Extint(void);voidTimerInitProc();voidinitvar();voidInit_System(void);voidDisplay(uint8chose_dat,uint8dat);voidShowDisp(uint8tPulsenum,uint8tPulsecnt,uint8tcnt1s);voidDelayMs(uint8Ms);voidmain(){ Init_System(); //初始化 while(1) { ShowDisp(Pulsenum,Pulsecnt,cnt1s); //显示 }}/*********************************************************************函数名:Exti0_interrupt*函数功能:/INT0引脚下降沿进入中断*入口参数:无*返回:无*******************************************************************************/voidExt0_interrupt(void)interrupt0{ if(starttest==1) //处在测试状态 { Pulsecnt++; //来一次中断脉搏计数器加1 }}/********************************************************************函数功能:定时器/计数器0中断处理入口参数:null返回:null备注:null********************************************************************/voidTimer0IntProc()interrupt1{ TH0=TIMER0_HIGHT; //设置定时器0高字节初值 TL0=TIMER0_LOW; //设置定时器0低字节初值 if(++cnt10ms==100) //1s计时到 { cnt10ms=0; if(starttest==1) //处在测试状态 { if(++cnt1s==60) //一分钟时间到 { starttest=0; //一次检测完毕,等待下一次检测 Pulsenum=Pulsecnt; //保存测得脉搏值 } } } if(keyin==0) //检测按键 { if(starttest==1) //处在测试状态 { cnt10ms=0; //复位测试值,重新开始测试 cnt1s=0; Pulsecnt=0; } else //不在测试状态,开始新的一次测试 { starttest=1; cnt10ms=0; } }}/////////////////////////EndofTimer0IntProc////////////////////////voidInit_Extint(void){IT0=1;//外部中断1设置为下降沿触发IE0=0;//标志位清0EX0=1;//允许外部中断1}/********************************************************************函数功能:定时器/计数器初始化入口参数:null返回:null备注:null********************************************************************/voidTimerInitProc(){ TMOD&=0xF0; TMOD|=0x01; //设置定时器0,方式1:16位定时器 TH0=TIMER0_HIGHT; //设置定时器0高字节初值 TL0=TIMER0_LOW; //设置定时器0低字节初值 TR0=1; //启动定时器0ET0=1; //开定时器0中断 EA=1; //开总中断}/////////////////////////EndofTimerInitProc////////////////////////voidinitvar(){ starttest=0; cnt10ms=0; cnt1s=0; Pulsecnt=0; Pulsenum=0;}voidInit_System(void){Init_Extint();TimerInitProc(); initvar();}/*******************************************************************************函数名:Display(ucharchose_dat,uchardat)*函数功能:数码管显示*入口参数:chose_dat数码管显示字位,dat显示字型*返回:无*******************************************************************************/voidDisplay(uint8chose_dat,uint8dat){P0=dat;//送显示字型 P2=~(0x01<<chose_dat);//送显示字位DelayMs(1);//延时1MS P2=0xFF;//关闭显示}voidShowDisp(uint8tPulsenum,uint8tPulsecnt,uint8tcnt1s){ Display(6,DispCode[tPulsenum%10]);//显示上次测量的脉搏 tPulsenum=tPulsenum/10; Display(7,DispCode[tPulsenum%10]); Display(3,DispCode[tPulsecnt%10]);//显示测试中的脉搏 tPulsecnt=tPulsecnt/10; Display(4,DispCode[tPulsecnt%10]); Display(0,DispCode[tcnt1s%10]);//显示测试中的时间 tcnt1s=tcnt1s/10; Display(1,DispCode[tcnt1s%10]);}/********************************************************************函数功能:延时ms入口参数:MS返回:null备注:null********************************************************************/voidDelayMs(uint8Ms){unsignedchari,j;do{for(i=5;i>0;i--)for(j=98;j>0;j--);}while(--Ms); //Testfor12M}///////////////////////////EndofDelayMs////////////////////////////附录C:外文翻译TheAT89S51isalow-power,high-performanceCMOS8-bitmicrocontrollerwith4KbytesofIn-SystemProgrammableFlashmemory.ThedeviceismanufacturedusingAtmel’shigh-densitynonvolatilememorytechnologyandiscompatiblewiththeindus-try-standard80C51instructionsetandpinout.Theon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalnonvolatilememorypro-grammer.Bycombiningaversatile8-bitCPUwithIn-SystemProgrammableFlashonamonolithicchip,theAtmelAT89S51isapowerfulmicrocontrollerwhichprovidesahighly-flexibleandcost-effectivesolutiontomanyembeddedcontrolapplications.TheAT89S51providesthefollowingstandardfeatures:4KbytesofFlash,128bytesofRAM,32I/Olines,Watchdogtimer,twodatapointers,two16-bittimer/counters,afive-vectortwo-levelinterruptarchitecture,afullduplexserialport,on-chiposcillator,andclockcircuitry.Inaddition,theAT89S51isdesignedwithstaticlogicforoperationdowntozerofrequencyandsupportstwosoftwareselectablepowersavingmodes.TheIdleModestopstheCPUwhileallowingtheRAM,timer/counters,serialport,andinterruptsystemtocontinuefunctioning.ThePower-downmodesavestheRAMcon-tentsbutfreezestheoscillator,disablingallotherchipfunctionsuntilthenextexternalinterruptorhardwarereset.Port0isan8-bitopendrainbi-directionalI/Oport.Asanoutputport,eachpincansinkeightTTLinputs.When1sarewrittentoport0pins,thepinscanbeusedashigh-impedanceinputs.Port0canalsobeconfiguredtobethemultiplexedlow-orderaddress/databusduringaccessestoexternalprogramanddatamemory.Inthismode,P0hasinternalpull-ups.Port0alsoreceivesthecodebytesduringFlashprogrammingandoutputsthecodebytesdur-ingprogramverification.Externalpull-upsarerequiredduringprogramverification.Port1isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort1outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort1pins,theyarepulledhighbytheinter-nalpull-upsandcanbeusedasinputs.Asinputs,Port1pinsthatareexternallybeingpulledlowwillsourcecurrent(IIL)becauseoftheinternalpull-ups.Port1alsoreceivesthelow-orderaddressbytesduringFlashprogrammingandverification.Port2isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort2outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort2pins,theyarepulledhighbytheinter-nalpull-upsandcanbeusedasinputs.Asinputs,Port2pinsthatareexternallybeingpulledlowwillsourcecurrent(IIL)becauseoftheinternalpull-ups.Port2emitsthehigh-orderaddressbyteduringfetchesfromexternalprogrammemoryanddur-ingaccessestoexternaldatamemorythatuse16-bitaddresses(MOVX@DPTR).Inthisapplication,Port2usesstrong
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一建财务试题及答案
- 恶性高血压的护理
- 休克病人的观察要点及护理措施
- 纯点社区工作总结
- 2025年中国排队机行业市场全景分析及前景机遇研判报告
- 急性胸痛护理授课比赛
- 2025年中国牛排刀套装行业市场全景分析及前景机遇研判报告
- 教育孩子经验分享
- 会阴血肿护理查房
- 餐饮店服务员招聘与职业发展规划合同
- 2025年北京市第一次普通高中学业水平合格性考试历史试题(含答案)
- 梦幻西游翰墨之道全
- 执业药师 中药一笔记
- 新科hg5300功放说明书
- 2023-2024学年湖南省常德市小学语文六年级期末评估试卷附参考答案和详细解析
- 华北理工环境监测教案02水和废水监测-4金属化合物-铝、汞、镉、铅、铜、锌、铬、砷等测定
- 气污染源自动监控设施台账记录模版校准记录
- JJF 1169-2007汽车制动操纵力计校准规范
- 新高考高中物理竞赛专题1力学50题竞赛真题强化训练原卷版
- 晒纹资料大全
- 山东省泰安市2021-2022学年高一下学期期末考试数学试题(Word版含答案)
评论
0/150
提交评论