基于单片机和语音模块的 便携式心率计设计.docx
- 文档编号:26825466
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:29
- 大小:198.17KB
基于单片机和语音模块的 便携式心率计设计.docx
《基于单片机和语音模块的 便携式心率计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机和语音模块的 便携式心率计设计.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机和语音模块的便携式心率计设计
题目基于单片机和语音模块的
便携式心率计设计
上海大学东方贱人
摘要
现代生活,人们的生活节奏加快,越来越多的人有了无需去医院在家里面就能测量脉搏的需求,而随着智能化产品的迅速发展,脉搏计渐渐应用于人们的日常生活。
本心率计系统主要基于51单片机与语音模块,其主要实现的功能是现场脉搏数据的采集和读取,具体包括心跳显示和语音播报。
硬件设计主要包括:
研究STC89C52单片机核心系统的构建;研究语音模块和传感器模块的应用,并完成其与STC89C52的关联设计;以及研究液晶屏、串口等外围接口的详细设计。
软件设计主要包括:
首先利用AD画出原理图,构建硬件以后,利用编程软件即keil软件编写程序完成各个模块的连接与运行。
经过软硬件调试,整个系统基本可以通过传感器实现对脉搏的数据采集,然后通过显示屏读取数据并语音播报。
关键词:
语音模块;STC89C52处理器;脉搏检测
ABSTRACT
Inmodernlife,people'srhythmoflifespeedsup,moreandmorepeopledon’twanttomeasurethepulseonlywhentheygotothehospital.Instead,theyprefertomeasureitathome.Thenwiththerapiddevelopmentofintelligentproducts,pulsemetersaregraduallyappliedinpeople'sdailylife.
Thissystemofratemetersismainlybasedon51processorandvoicemodule.Itsfunctionsarepulsedataacquisitionandreading,includingdisplayingtheheartbeatandvoicebroadcast.Thehardwaredesignmainlyincludes:
ResearchoftheconstructionofSTC89C52microcontrollercoresystem;Researchoftheapplicationofthevoicemoduleandthesensormodule,andtheirconnectionwiththeSTC89C52processor;studyofthedetaileddesignoftheliquidcrystalscreen,serialportperipheralinterfaceand.Thesoftwaredesignmainlyincludes:
firstly,useADtodrawtheschematicdiagram.Thenusetheprogrammingsoftwarecalledkeilsoftwareprogrammingtocompletetheconnectionandoperationofeachmodule.
Afterhardwareandsoftwaredebugging,thewholesystemcanrealizethepulsedataacquisitionthroughthesensor,andthenreadthedatathroughthedisplayscreen.
Keywords:
voicemodule;STC89C52processor;Pulsedetection
目录
第一章绪论1
1.1课题研究的背景及意义1
1.2课题研究的内容和工作2
第二章系统总体方案设计3
2.1系统概述3
2.2系统主要功能描述3
第三章系统硬件设计4
3.1系统硬件功能与结构4
3.2系统硬件对比与选择6
第四章系统软件设计8
4.1系统开发工具简介8
4.2系统软件流程图9
第五章系统调试12
5.1软件调试12
5.2硬件调试12
5.3调试结果12
结束语14
致谢15
参考文献16
附录A17
第一章绪论
1.1课题研究的背景及意义
现今生活,人民经济水平逐步上升,生活节奏也越来越快,不健康的饮食和锻炼的的缺乏导致越来越多的人死于心血管疾病。
心血管疾病,顾名思义,与人体心脏息息相关,事实上,调查显示,心血管疾病是心肌梗塞、猝死等突发疾病的很大一部分起因,所以人们也越来越意识到提前预防的重要性,响应WHO曾经表示的一句话:
“只要采取预防措施,最少有一半人的死亡是可以避免的。
”那么接下来,我们要怎么预防呢?
要想预防,首先要获取人体活动信息,而在人体活动中,心率即人体心脏每分钟搏动的次数是人体活动最直接、最重要的信息源头。
通过心率我们能简单的了解我们的身体素质和身体健康,做有效的防护措施。
医学领域上,脉搏是获取身体基本信息的重要途径,在中医中最为明显,中国几千年的历史上,通过把脉诊断屡见不鲜。
脉搏反应的是心脏跳动,所以用脉搏获取心率心率信息最为直接。
通过人手把脉包括用听诊器听心跳都是比较常见的估算心率的方法,这样做虽然简便、无痛,但是缺点也是比较明显的,费时,而且精度也不高。
于是,在人们意识到这个缺陷的时候,人们便积极地谋求方法。
随着单片机的普遍,心率计渐渐出现在人们的视线中,各种类型的心率计被国内外研究出来。
起初国内外研究比较多的是接触式传感器,应用比较多的,比较耳熟能详的有指脉、耳脉等。
接触式的传感器优点有很多,但是久而久之,缺点也是比较显而易见的。
指脉测量比较方便、简单,但随着时间的推移,测量次数的增多,手指上面的汗腺渐渐污染了测量环境,导致测量不准确。
耳脉测量弥补了手指测量的缺陷,比较干净,测量环境不会被污染,但是耳脉上面的脉搏信息较微弱,不易测量。
医院医生使用的听诊器就是一个简易的脉搏测量仪,且是接触式的,直接听人心脏的跳动,测量时跳动明显,但是也有缺陷,首先是人为测量有误差,再来,如果遇到比较紧急的情况,如地震,医生拿着听诊器一个一个测量比较麻烦,很多时候,测量的几秒钟就丧失了一个人的生命,因此必须采用更简单、更有效的测量方法。
接触式传感器方法简单,需要检测脉搏的时候也是立刻能实现,但是缺点也是非常明显的,于是随着科技的发展,光电式传感器的优点也开始明朗。
光电式传感器的原理主要是应用光电容积法。
人体心脏的跳动,血液的流动会造成脉搏波,脉搏波的传播会导致人体动脉里面的血流浓度产生周期性的变化,光电传感器就是根据这种血液浓度的变化来检测出人体脉搏的变化次数,从而检测出心率。
而人体的手指和耳朵皮肤较薄,所以测量的时候也会以耳朵和手指为主要位置。
1.2课题研究的内容和工作
本课题的研究内容主要是基于51单片机和语音模块的便携式心率计设计,通过学习该系统的工作原理和工作方法,设计硬件电路将其实现。
该系统的核心处理器采用STC89C52,传感器选用光电传感器,显示模块采用LCD1602显示屏实现相应需要实现的功能。
最后实现的功能是:
首先,将手指放在光电传感器以达到实时显示测量的结果,同时,语音模块会通过喇叭语音及时播报采集到的数据。
具体研究的主要内容如下:
(1)搜集并整理与课题有关的数据,并对红外传感器、语音模块等应用进行基本的了解。
学习STC89C52最小单片机系统的设计,学会使用STC89C52的内部资源及外围I/O的设计,从而实现数据的传输;
(2)系统的概述,通过对已经搜集到的资料的学习和研究,了解便携式心旅级系统的发展现状及应用状况。
在这个基础上,完成系统的总体方案设计;
(3)系统硬件的设计,在对理论知识进行详细地学习和确定总体设计方案后,我们开始对系统所需要的硬件进行删选。
首先我们选定主控芯片,在这里我们当然选用性价比较高的STC89C52处理器。
随后我们对所需的语音模块,显示模块以及各传感器进行选择。
然后在熟悉了各个模块的工作原理后,进行模块与微处理器的连接电路设计;
(4)系统软件的设计,在完成系统硬件设计后,以流程图的方式介绍语音模块、显示模块、红外传感器等主要模块的应用软件的编写;
(5)系统的测试,主要是论述STC89C52如何对传感器模块采集到的数据进行处理然后传送给给显示模块,并且对语音模块的功能进行相关的测试;
(6)最后对本课题做综述性的总结。
第二章系统总体方案设计
2.1系统概述
本课题的设计任务是完成基于51单片机和语音模块的便携式心率计设计。
随着人们生活节奏的加快,渐渐意识到身体健康的重要性,但是因为各种原因,往往我们没有办法时时去医院健康检查,特别是遇到突发情况时,所以在自己的家庭里面就可以实现对身体的简单体检越来越受到人们的青睐,智能产品的普及填补了这一片空白,心率计渐渐得到普及,人们随时都能够检查自己的身体。
但是,随着智能产品的的普及以及科学技术的发展,人们对智能产品的要求也越来越高,心率计开始以各种形式出现在人们的生活中,且越来越小巧方便,目前市面上最常见的是手环,表带等。
心率计测量显示方法有多种多样的,其中将测量到的心率信息通过手机APP显示是比较常见的方法。
心率计的品牌,目前发展比较好的有博能、佳明,他们的产品主要是有胸带产品,另外迈欧品牌也是比较受年轻人喜爱的,他的主要产品是无胸带心率表。
心率计产品现在市面上已经非常成熟,本次的心率计产品主要是通过51单片机实现,主要实现的方法分为几个模块,分别是51单片机核心处理器,光电传感器模块,显示模块和语音模块。
通过这几个模块和运放电路及滤波电路的配合实现心率的测量与显示,同时语音模块实现语音播报的功能。
2.2系统主要功能描述
本课题主要设计一个基于51单片机和语音模块的便携式心率计设计系统,其系统总体框图如图2-1所示。
主要实现的功能如下:
(1)首先利用光电传感器通过感受人体手指上因为血液的流动而引起的血液透明度的变化来检测出人体心脏的跳动次数即心率,将心率信号进行AD转换,成为数字信号以后传送给单片机;
(2)单片机接收从传感器模块传送而来的数字信号,进行简单处理;
(3)单片机通过I/O接口将数据传送给显示屏模块和语音模块,显示屏显示数据,同时语音模块通过扬声器播报来自单片机的信号即心率。
图2-1系统总体框图
第三章系统硬件设计
3.1系统硬件功能与结构
基于单片机的心率计设计实现的功能是通过传感器的监测实现脉搏计数,通过51单片机实现语音的播报和显示屏的显示。
检测方法简单易行,将手指放在光电传感器上,光电传感器对光的变化比较敏感,能对脉搏的变化实现有效的监测,单片机再将从传感器传送来的数据处理好后传送给显示屏和语音模块,显示屏会显示传感器采集到的脉搏,并且通过语音模块中的喇叭播报。
本心率计系统硬件设计主要包括以下几个方面:
STC89C52最小系统、语音模块的设计、显示模块的设计、传感器模块的设计。
硬件结构图如图3-1所示。
3-1硬件结构图
3.1.1STC89C52最小系统
STC89C52最小系统主要包括:
复位电路、时钟电路、单片机芯片以及各引脚的引线接出情况,系统供电采用5V供电,并通过KEIL下载程序。
其中复位电路实现的功能是用一个按键实现手动复位,当按键按下,单片机恢复到还没有检测时的初始状态。
时钟电路采用12M晶振,给单片机提供一个时钟基准。
另外将各个引脚与各个模块一一连接,就搭成了整个硬件结构。
最小系统设计图如图3-2所示。
图3-1-1STC89C52最小系统电路图
3.1.2语音模块电路设计
语音模块采用WT588D语音模块,I/O接口多,可重复擦除烧写,还可以结合按键实现声音的各种组合与调整。
语音模块设计图如图3-3所示。
图3-3语音模块电路设计图
3.1.3显示模块电路设计
显示模块采用3.3V供电电压,主要采用数字量输出,结构相对简单,但模块的精度相对高,响应的时间比较短,可靠性高且低功耗,使用起来比较方便。
显示模块设计图如图3-4所示。
图3-4显示模块电路设计图
3.1.4传感器模块电路设计
传感器模块采用光电传感器,光电传感器稳定易得,测量方法简单,主要通过光电二极管实现。
传感器模块接口设计图如图3-5所示。
图3-5传感器模块电路设计图
3.2系统硬件对比与选择
3.2.1传感器选择
传感器有多种型号,目前市面上应用比较广泛的有压电式传感器、声电式传感器、光电式传感器等。
每种类型各有利弊,对比如下:
方案一:
压电式
压电式传感器的检测方法是利用压力传感器或振动传感器将人体脉搏振动转换成电信号。
压力型电器元件,它的内阻非常高,通常由两块相同且极性相反的元件反向重叠,夹在中间的金属作为电极。
此种方法的优点是传感器种类多,一般的传感器输出信号也比较大,对后面的放大电路要求不高。
方案二:
声电式
它的作用是将气体、液体、固体中的机械振动的能量信号转换成电信号。
因此,它也属于力学量传感器。
如上所说,这种传感器就是通过传感器来检测人体的振动,再把这种信号转换成电信号。
这种方法的优点是可以利用驻极体或者电容式话筒将信号进行转换,但是必须要加上录播的电路。
方案三:
光电式
光电传感器对于位移的变化非常的敏感,但光电传感器,控制电路的搭建和光电管性能要求较高。
利用光电传感器检测人体脉搏信号,手指部分可分为皮肤、肌肉、骨骼等非血液组织液和血液,其中非血液对于光的吸收量是恒定的,在血液中静脉血相对于动脉血的搏动十分的小,使光通过手指的动脉血充盈,然后在一个恒定波长的光源照射下,人体脉搏信号可以通过检测透过手指的光强度得到。
综上所述,我采用光电式传感器,选择的原因是传感器的精度、使用比较方便、受外界干扰比较小,价格比较便宜。
3.2.2心率测量方法选择
方案一:
电子电路来实现,包括脉冲信号取样电路、放大电路、整形电路、定时电路、计数译码驱动电路和显示电路六个部分。
方案二:
以单片机为核心的硬件电路来实现。
方案一采用的是电子电路即模拟数字电路来实现,在过程中会出现很多不稳定的因素,所以功能的实现比较困难,不推荐。
相反,以单片机为核心,配合适当的电子电路,电路稳定,操作较方便,所以采用方案二更适合。
3.2.3显示模块选择
方案一:
采用LCD液晶显示屏,优点能够实现多功能显示,显示内容多,也形式多样,文字图案都能够清晰显示。
目前比较用的多的是LCD12864显示屏和LCD1602显示屏,相较LCD1602显示屏,12864显示内容更多,但是对于本设计而言,使用LCD1602液晶显示即可。
当然,它也有缺点,接口线较多,但是相对的就是调试较简单。
方案二:
采用带有背光的led显示,能够满足所有的显示条件,但是价格相对较贵,且调试比较复杂,没有带中文字库需要自己取模来实现汉字与数值的显示,所以比选用此方案。
方案三:
采用数码管显示,数码管可以显示数字但是无法显示汉子,这样效果就不会太直观,而如果采用点阵式数码管,虽然可以显示汉子但是成本太高,所以不用此种作为显示。
经过比较,本设计只要求显示内容简单,既需要文字也需要数字,所以选择方案一就能够满足要求。
3.2.4单片机控制电路选择
方案一:
采用32位处理器进行数据处理,例如STM32,优点是IO口比较多,可以处理多个外接模块。
缺点STM32价格高,且入门比较困难,想要短时间内熟练掌握比较困难,本设计处理的数据量并不是很大,过多的I/O口反而会造成资源浪费且不利于控制。
方案二:
选用51单片机,51单片机比较普及,种类较多,价格低廉,学习资料比较多,在短时间内易于自主的学习与掌握,且有很多的视频与源码资料,学习资料易于获取。
方案三:
采用MSP430系列单片机,该单片机是TI公司1996年开始推向市场的一种16位超低功耗的混合信号处理器。
其内部集成了很多模拟电路、数字电路和微处理器,能够提供强大的处理功能。
缺点是这种芯片价格较高。
综合考虑,方案二更利于实现,且更符合要求,故采用第二套方案。
第四章系统软件设计
4.1系统开发工具简介
4.1.1AltiumDesigner简介
AltiumDesigner是Altium公司推出的一款一体化的电子产品开发系统,主要的运行环境是Windows操作系统。
AltiumDesigner是设计师设计的过程中,集成电路板设计,处理器集成的可编程器件设计和嵌入式软件开发能力的产品,一种能同时进行PCB和FPGA设计以及嵌入式设计的解决方案,具有将设计方案从概念转变成为最终成品所需的全部功能。
AltiumDesigner是Protel的更高级的版本,在PCB部分增加了多通道复用,实时阻抗布线功能和SitusTM自动布线等新功能。
除了PCB文件片,PCB设备多集体操作,复杂的BGA器件的多层自动去除,提供交互式布线功能的高密度封装,器件的精确移动,快速铺设铜和其他功能。
对AltiumDesigner的熟练使用对于我们PCB的制作,软件的仿真都有极大的帮助。
如图4-1、图4-2是AltiumDesigner的设计界面。
图4-1AltiumDesigner原理图界面
图4-2AltiumDesignerPCB界面
4.2系统软件流程图
4.2.1系统软件总体流程图
系统首先上电复位,随后连接在接口上的各个传感器就会自动完成初始化并开始进行相应的功能。
下面是详细介绍了工作流的主要模块。
总体流程图如图4-3所示。
图4-3系统流程图
系统主程序流程图如图4-3所示,图4-3(a)是液晶显示流程图,单片机首先初始化,当按下计量脉搏数的按键的时候,单片机会采取15s的时间来检测脉搏数,如图4-3(b)所示,然后将计到的脉搏数传送给液晶显示屏显示。
图4-3(c)是按键子模块流程图,当用户按下按键的时候,单片机会判断具体是什么功能,并且进行相应的功能,当按下计量脉搏数的按键的时候,单片机便进入图4-3(b)流程图,然后通过液晶显示屏显示。
图4-4是显示屏初始化子函数流程图,依次顺序大概是先调用,再设置,然后循环。
调用什么呢?
调用液晶显示屏自定义的字库。
调用结束以后,再设置地址在液晶显示屏上面显示,最后就是不断的循环取字符代码的操作直到结束。
具体流程图如图4-4所示。
图4-4显示屏初始化子函数流程图
4.2.2程序设计原理
在拿到任务书之后,经过一番资料收集,本设计的大体思路就能够确定下来了,硬件电路由哪几块模块组成,软件设计主要需要实现的功能,在脑海中就差不多定型了,软件和硬件各司其职,共同完成设计。
软件设计大体的过程是先设计,再编码,最后测试。
因此,软件设计首先需要确定目标和任务,具体的就是解决“做什么?
”、“怎么做?
”这两个问题。
根据对信息、功能和行为的描述,完成总体结构的设计,数据结构的设计,如测量数据、数据计算、显示数据等,还要完成过程的设计。
软件设计结束以后,开始编码。
编码之前首先要将整个设计模块化,什么是模块?
模块拥有相对独立性,有自己独立的数据说明、程序语句等。
模块化指的是将整个程序划分为若干个模块,每个模块实现各自规定好的功能呢,如语音模块实现语音播报的功能,显示模块实现显示数据的功能。
模块的划分,相当于是将一块很难啃的面包划分成一小块一小块的解决,这样能大大降低问题的难度。
当然模块的划分也不是越多越好,因为随着模块的划分,单片机的接口工作量也会相应的增大,所以,模块划分也要适量。
编码结束以后,接下来就是测试阶段,测试完如果还有问题就需要重新再编码。
这个时候模块化就开始有优势了,模块化使结构清晰,具有易修改性,哪个模块有问题就改哪个模块。
第五章系统调试
5.1软件调试
基于单片机和语音模块的心率计系统设计能够实现多功能的心率测量,由多个模块组成,所以编程也比较复杂,各个模块的编写和调试也会出现相对较多的问题。
但是经过各个问题的一一解决,最后一步一步的完成,最终一一解决了问题。
在调试过程中的软件运行主要遇到的问题如下:
问题1:
液晶屏幕闪烁现象明显。
解决方案:
首先对硬件电路进行了检查,观察是否有接口虚焊,或者元器件焊错,然后发现硬件没有什么问题,所以便可以确定是程序上面除了问题。
在调试程序时先把延时的被逐渐修改,可以解决显示闪烁的问题。
其次,由于这个设计的动态扫描显示数字,动态扫描是非常快速的,人眼无法看到,但调用显示程序,如果不在后面屏蔽附值,则液晶会显得非常亮,所以为了能够正常显示,在程序中加入了屏蔽子令的指令,终于解决了问题。
问题2:
发现显示的数值跟设定的数值不对应。
解决方案:
首先还是检查硬件电路,发现是在接矩阵键盘的时候,矩阵的键值搞错,导致相对应的显示也搞错,经过重新纠正,问题得到解决。
5.2硬件调试
系统基于单片机的脉冲计电路比较大,焊接同样是不可轻视的,在电路系统,只要出一个错误,造成很大的不便和交叉检测电路,对于较多的引脚和紧凑的间距要非常的注意,否则会不小心将两个引脚连到一起引起电路短路现象。
在本设计的调试过程中遇到了相对较多的问题,其实细想一下有些问题其实是可以避免的,一下总结了一些这样的问题:
问题1:
关于蜂鸣器的发声问题,一开始以为蜂鸣器只要通上电就能发出声音,后来发现并不是这样,它也需要添加驱动。
解决方案:
因为知道了要添加驱动,所以查找了网上的资料,对于这个资料网上还是挺多的,最后采用了通过三极管来驱动蜂鸣器这样的简单策略。
问题2:
刚开始时,因为没有想到脉冲信号是很微弱的,一直检测不到信号,原以为是模块出了问题,后来发现是因为放大倍数不够,单片机无法检测到信号,所以无法处理。
解决方案:
经过对其他实验者方案的参考,以及模块的数据手册,确定了信号的放大,采用了更高的放大倍数,问题就得到了解决。
5.3调试结果
5.3.1放大倍数的增加
示波器观察传感器的输出端,观察到一个非常小的振幅的正弦波,而且通过整形输出脉冲的脉冲还是非常薄弱的,在确保电路没有任何问题的情况下,加强信号的放大和调整电阻的阻值。
5.3.2时钟的调试
首先利用晶体振荡频率可以计算出内部定时器的基本参数,然后可以通过运行一段时间利用钟表计时的方法进行校准,根据误差量和体积的变化时的参数改变内部定时器程序的基本参数,以保证时钟的精度。
5.3.3开机后无显示
首先检查交流电源,看交流是否有,如果没有可能是保险管或变压器已经被烧毁了,如果有的话就继续检查直流是否有,如果没有可能是电源已烧毁,那么接下来就改变方案。
5.3.4显示正常但经适当运动后测量,脉搏次数没有增加
硬件:
可能是前置放大级有问题,可采用万用表检测的方法一步步排除问题。
软件:
程序驱动有问题,重新测试。
5.3.5进人测量状态,但测量值不稳定
主要原因是光电传感器受到电磁波等干扰,其次还有硬件损坏或有虚焊的原因。
5.3.6开机后显示不正常或按键失灵
检查手指的位置是否正确,如果正确,检查关键线路,如果都没有问题就是硬件损坏。
最终,系统一系列的问题都被一一解决,系统实现了正常运行,完成了所有的功能。
结束语
本课题在心率计应用基础上,通过对硬件的搭建和传感器的调试以及整体代码的测试,最终实现了心率的测量。
经过几个月的努力,本设计的硬件搭建和软件设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机和语音模块的 便携式心率计设计 基于 单片机 语音 模块 便携式 心率 设计