基于单片机和语音模块的-便携式心率计设计(共29页)_第1页
基于单片机和语音模块的-便携式心率计设计(共29页)_第2页
基于单片机和语音模块的-便携式心率计设计(共29页)_第3页
基于单片机和语音模块的-便携式心率计设计(共29页)_第4页
基于单片机和语音模块的-便携式心率计设计(共29页)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上题 目 基于单片机和语音模块的 便携式心率计设计 上海大学 东方贱人摘 要现代生活,人们的生活节奏加快,越来越多的人有了无需去医院在家里面就能测量脉搏的需求,而随着智能化产品的迅速发展,脉搏计渐渐应用于人们的日常生活。本心率计系统主要基于51单片机与语音模块,其主要实现的功能是现场脉搏数据的采集和读取,具体包括心跳显示和语音播报。硬件设计主要包括:研究STC89C52单片机核心系统的构建;研究语音模块和传感器模块的应用,并完成其与STC89C52的关联设计;以及研究液晶屏、串口等外围接口的详细设计。软件设计主要包括:首先利用AD画出原理图,构建硬件以后,利用编程软件即

2、keil软件编写程序完成各个模块的连接与运行。经过软硬件调试,整个系统基本可以通过传感器实现对脉搏的数据采集,然后通过显示屏读取数据并语音播报。关键词:语音模块;STC89C52处理器;脉搏检测 ABSTRACTIn modern life, people's rhythm of life speeds up, more and more people dont want to measure the pulse only when they go to the hospital.Instead,they prefer to measure it at home. Then with

3、the rapid development of intelligent products, pulse meters are gradually applied in people's daily life.This system of rate meters is mainly based on 51 processor and voice module. Its functions are pulse data acquisition and reading, including displaying the heartbeat and voice broadcast. The

4、hardware design mainly includes: Research of the construction of STC89C52 micro controller core system ; Research of the application of the voice module and the sensor module, and their connection with the STC89C52 processor; study of the detailed design of the liquid crystal screen, serial port per

5、ipheral interface and . The software design mainly includes: firstly, use AD to draw the schematic diagram.Then use the programming software called keil software programming to complete the connection and operation of each module.After hardware and software debugging, the whole system can realize th

6、e pulse data acquisition through the sensor, and then read the data through the display screen.Keywords:voice module;STC89C52 processor;Pulse detection专心-专注-专业目 录第一章 绪 论11.1 课题研究的背景及意义11.2 课题研究的内容和工作2第二章 系统总体方案设计32.1 系统概述32.2 系统主要功能描述3第三章 系统硬件设计43.1 系统硬件功能与结构43.2 系统硬件对比与选择6第四章 系统软件设计84.1 系统开发工具简介84.

7、2 系统软件流程图9第五章 系统调试125.1软件调试125.2硬件调试125.3调试结果12结束语14致 谢15参考文献16附录A17第一章 绪 论1.1 课题研究的背景及意义 现今生活,人民经济水平逐步上升,生活节奏也越来越快,不健康的饮食和锻炼的的缺乏导致越来越多的人死于心血管疾病。心血管疾病,顾名思义,与人体心脏息息相关,事实上,调查显示,心血管疾病是心肌梗塞、猝死等突发疾病的很大一部分起因,所以人们也越来越意识到提前预防的重要性,响应WHO曾经表示的一句话:“只要采取预防措施,最少有一半人的死亡是可以避免的。”那么接下来,我们要怎么预防呢?要想预防,首先要获取人体活动信息,而在人体活

8、动中,心率即人体心脏每分钟搏动的次数是人体活动最直接、最重要的信息源头。通过心率我们能简单的了解我们的身体素质和身体健康,做有效的防护措施。医学领域上,脉搏是获取身体基本信息的重要途径,在中医中最为明显,中国几千年的历史上,通过把脉诊断屡见不鲜。脉搏反应的是心脏跳动,所以用脉搏获取心率心率信息最为直接。通过人手把脉包括用听诊器听心跳都是比较常见的估算心率的方法,这样做虽然简便、无痛,但是缺点也是比较明显的,费时,而且精度也不高。于是,在人们意识到这个缺陷的时候,人们便积极地谋求方法。随着单片机的普遍,心率计渐渐出现在人们的视线中,各种类型的心率计被国内外研究出来。起初国内外研究比较多的是接触式

9、传感器,应用比较多的,比较耳熟能详的有指脉、耳脉等。接触式的传感器优点有很多,但是久而久之,缺点也是比较显而易见的。指脉测量比较方便、简单,但随着时间的推移,测量次数的增多,手指上面的汗腺渐渐污染了测量环境,导致测量不准确。耳脉测量弥补了手指测量的缺陷,比较干净,测量环境不会被污染,但是耳脉上面的脉搏信息较微弱,不易测量。医院医生使用的听诊器就是一个简易的脉搏测量仪,且是接触式的,直接听人心脏的跳动,测量时跳动明显,但是也有缺陷,首先是人为测量有误差,再来,如果遇到比较紧急的情况,如地震,医生拿着听诊器一个一个测量比较麻烦,很多时候,测量的几秒钟就丧失了一个人的生命,因此必须采用更简单、更有效

10、的测量方法。接触式传感器方法简单,需要检测脉搏的时候也是立刻能实现,但是缺点也是非常明显的,于是随着科技的发展,光电式传感器的优点也开始明朗。光电式传感器的原理主要是应用光电容积法。人体心脏的跳动,血液的流动会造成脉搏波,脉搏波的传播会导致人体动脉里面的血流浓度产生周期性的变化,光电传感器就是根据这种血液浓度的变化来检测出人体脉搏的变化次数,从而检测出心率。而人体的手指和耳朵皮肤较薄,所以测量的时候也会以耳朵和手指为主要位置。1.2 课题研究的内容和工作本课题的研究内容主要是基于51单片机和语音模块的便携式心率计设计,通过学习该系统的工作原理和工作方法,设计硬件电路将其实现。该系统的核心处理器

11、采用STC89C52,传感器选用光电传感器,显示模块采用LCD1602显示屏实现相应需要实现的功能。最后实现的功能是:首先,将手指放在光电传感器 以达到实时显示测量的结果,同时,语音模块会通过喇叭语音及时播报采集到的数据。具体研究的主要内容如下:(1)搜集并整理与课题有关的数据,并对红外传感器、语音模块等应用进行基本的了解。学习STC89C52最小单片机系统的设计,学会使用STC89C52的内部资源及外围I/O的设计,从而实现数据的传输;(2)系统的概述,通过对已经搜集到的资料的学习和研究,了解便携式心旅级系统的发展现状及应用状况。在这个基础上,完成系统的总体方案设计;(3)系统硬件的设计,在

12、对理论知识进行详细地学习和确定总体设计方案后,我们开始对系统所需要的硬件进行删选。首先我们选定主控芯片,在这里我们当然选用性价比较高的STC89C52处理器。随后我们对所需的语音模块,显示模块以及各传感器进行选择。然后在熟悉了各个模块的工作原理后,进行模块与微处理器的连接电路设计;(4)系统软件的设计,在完成系统硬件设计后,以流程图的方式介绍语音模块、显示模块、红外传感器等主要模块的应用软件的编写;(5)系统的测试,主要是论述STC89C52如何对传感器模块采集到的数据进行处理然后传送给给显示模块,并且对语音模块的功能进行相关的测试;(6)最后对本课题做综述性的总结。第二章 系统总体方案设计2

13、.1 系统概述本课题的设计任务是完成基于51单片机和语音模块的便携式心率计设计。随着人们生活节奏的加快,渐渐意识到身体健康的重要性,但是因为各种原因,往往我们没有办法时时去医院健康检查,特别是遇到突发情况时,所以在自己的家庭里面就可以实现对身体的简单体检越来越受到人们的青睐,智能产品的普及填补了这一片空白,心率计渐渐得到普及,人们随时都能够检查自己的身体。但是,随着智能产品的的普及以及科学技术的发展,人们对智能产品的要求也越来越高,心率计开始以各种形式出现在人们的生活中,且越来越小巧方便,目前市面上最常见的是手环,表带等。心率计测量显示方法有多种多样的,其中将测量到的心率信息通过手机APP显示

14、是比较常见的方法。心率计的品牌,目前发展比较好的有博能、佳明,他们的产品主要是有胸带产品,另外迈欧品牌也是比较受年轻人喜爱的,他的主要产品是无胸带心率表。心率计产品现在市面上已经非常成熟,本次的心率计产品主要是通过51单片机实现,主要实现的方法分为几个模块,分别是51单片机核心处理器,光电传感器模块,显示模块和语音模块。通过这几个模块和运放电路及滤波电路的配合实现心率的测量与显示,同时语音模块实现语音播报的功能。2.2 系统主要功能描述本课题主要设计一个基于51单片机和语音模块的便携式心率计设计系统,其系统总体框图如图2-1所示。主要实现的功能如下:(1) 首先利用光电传感器通过感受人体手指上

15、因为血液的流动而引起的血液透明度的变化来检测出人体心脏的跳动次数即心率,将心率信号进行AD转换,成为数字信号以后传送给单片机;(2) 单片机接收从传感器模块传送而来的数字信号,进行简单处理;(3) 单片机通过I/O接口将数据传送给显示屏模块和语音模块,显示屏显示数据,同时语音模块通过扬声器播报来自单片机的信号即心率。图2-1 系统总体框图第三章 系统硬件设计3.1 系统硬件功能与结构基于单片机的心率计设计实现的功能是通过传感器的监测实现脉搏计数,通过51单片机实现语音的播报和显示屏的显示。检测方法简单易行,将手指放在光电传感器上,光电传感器对光的变化比较敏感,能对脉搏的变化实现有效的监测,单片

16、机再将从传感器传送来的数据处理好后传送给显示屏和语音模块,显示屏会显示传感器采集到的脉搏,并且通过语音模块中的喇叭播报。本心率计系统硬件设计主要包括以下几个方面:STC89C52最小系统、语音模块的设计、显示模块的设计、传感器模块的设计。硬件结构图如图3-1所示。3-1 硬件结构图3.1.1 STC89C52最小系统STC89C52最小系统主要包括:复位电路、时钟电路、单片机芯片以及各引脚的引线接出情况,系统供电采用5V供电,并通过KEIL下载程序。其中复位电路实现的功能是用一个按键实现手动复位,当按键按下,单片机恢复到还没有检测时的初始状态。时钟电路采用12M晶振,给单片机提供一个时钟基准。

17、另外将各个引脚与各个模块一一连接,就搭成了整个硬件结构。最小系统设计图如图3-2所示。图3-1-1 STC89C52最小系统电路图3.1.2 语音模块电路设计语音模块采用WT588D语音模块,I/O接口多,可重复擦除烧写,还可以结合按键实现声音的各种组合与调整。语音模块设计图如图3-3所示。图3-3 语音模块电路设计图3.1.3 显示模块电路设计显示模块采用3.3V供电电压,主要采用数字量输出,结构相对简单,但模块的精度相对高,响应的时间比较短,可靠性高且低功耗,使用起来比较方便。显示模块设计图如图3-4所示。图3-4 显示模块电路设计图3.1.4 传感器模块电路设计传感器模块采用光电传感器,

18、光电传感器稳定易得,测量方法简单,主要通过光电二极管实现。传感器模块接口设计图如图3-5所示。图3-5 传感器模块电路设计图3.2 系统硬件对比与选择3.2.1 传感器选择 传感器有多种型号,目前市面上应用比较广泛的有压电式传感器、声电式传感器、光电式传感器等。每种类型各有利弊,对比如下: 方案一:压电式   压电式传感器的检测方法是利用压力传感器或振动传感器将人体脉搏振动转换成电信号。压力型电器元件,它的内阻非常高,通常由两块相同且极性相反的元件反向重叠,夹在中间的金属作为电极。此种方法的优点是传感器种类多,一般的传感器输出信号也比较大,对后面的放大电路要求不高

19、。    方案二:声电式    它的作用是将气体、液体、固体中的机械振动的能量信号转换成电信号。因此,它也属于力学量传感器。如上所说,这种传感器就是通过传感器来检测人体的振动,再把这种信号转换成电信号。这种方法的优点是可以利用驻极体或者电容式话筒将信号进行转换,但是必须要加上录播的电路。    方案三:光电式    光电传感器对于位移的变化非常的敏感,但光电传感器,控制电路的搭建和光电管性能要求较高。利用光电传感器检测人体脉搏信号,手指

20、部分可分为皮肤、肌肉、骨骼等非血液组织液和血液,其中非血液对于光的吸收量是恒定的,在血液中静脉血相对于动脉血的搏动十分的小,使光通过手指的动脉血充盈,然后在一个恒定波长的光源照射下,人体脉搏信号可以通过检测透过手指的光强度得到。  综上所述,我采用光电式传感器,选择的原因是传感器的精度、使用比较方便、受外界干扰比较小,价格比较便宜。 3.2.2心率测量方法选择 方案一:电子电路来实现,包括脉冲信号取样电路、放大电路、整形电路、定时电路、计数译码驱动电路和显示电路六个部分。 方案二:以单片机为核心的硬件电路来实现。 方案一采用的是电子电路即模拟数字电路来实现,在过程中会出现很

21、多不稳定的因素,所以功能的实现比较困难,不推荐。相反,以单片机为核心,配合适当的电子电路,电路稳定,操作较方便,所以采用方案二更适合。3.2.3显示模块选择 方案一:采用LCD液晶显示屏,优点能够实现多功能显示,显示内容多,也形式多样,文字图案都能够清晰显示。目前比较用的多的是LCD12864显示屏和LCD1602显示屏,相较LCD1602显示屏,12864显示内容更多,但是对于本设计而言,使用LCD1602液晶显示即可。当然,它也有缺点,接口线较多,但是相对的就是调试较简单。 方案二:采用带有背光的led显示,能够满足所有的显示条件,但是价格相对较贵,且调试比较复杂,没有带中文字库需要自己取

22、模来实现汉字与数值的显示,所以比选用此方案。  方案三:采用数码管显示,数码管可以显示数字但是无法显示汉子,这样效果就不会太直观,而如果采用点阵式数码管,虽然可以显示汉子但是成本太高,所以不用此种作为显示。  经过比较,本设计只要求显示内容简单,既需要文字也需要数字,所以选择方案一就能够满足要求。 3.2.4单片机控制电路选择  方案一:采用32位处理器进行数据处理,例如STM32,优点是IO口比较多,可以处理多个外接模块。缺点STM32价格高,且入门比较困难,想要短时间内熟练掌握比较困难,本设计处理的数据量并不是很大,过多的I/O口反而会造成资源浪费且

23、不利于控制。   方案二:选用51单片机,51单片机比较普及,种类较多,价格低廉,学习资料比较多,在短时间内易于自主的学习与掌握,且有很多的视频与源码资料,学习资料易于获取。   方案三:采用MSP430系列单片机,该单片机是TI公司1996年开始推向市场的一种16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处理器,能够提供强大的处理功能。缺点是这种芯片价格较高。    综合考虑,方案二更利于实现,且更符合要求,故采用第二套方案。 第四章 系统软件设计4.1 系统开发工具简介4.1.

24、1 Altium Designer简介 Altium Designer 是Altium公司推出的一款一体化的电子产品开发系统,主要的运行环境是Windows操作系统。Altium Designer是设计师设计的过程中,集成电路板设计,处理器集成的可编程器件设计和嵌入式软件开发能力的产品,一种能同时进行PCB和FPGA设计以及嵌入式设计的解决方案,具有将设计方案从概念转变成为最终成品所需的全部功能。Altium Designer是Protel的更高级的版本,在PCB部分增加了多通道复用,实时阻抗布线功能和SitusTM自动布线等新功能。除了PCB文件片,PCB设备多集体操作,复杂的BGA器件的多

25、层自动去除,提供交互式布线功能的高密度封装,器件的精确移动,快速铺设铜和其他功能。对Altium Designer的熟练使用对于我们PCB的制作,软件的仿真都有极大的帮助。如图4-1、图4-2是Altium Designer的设计界面。图4-1 Altium Designer原理图界面图4-2 Altium Designer PCB界面4.2 系统软件流程图4.2.1 系统软件总体流程图 系统首先上电复位,随后连接在接口上的各个传感器就会自动完成初始化并开始进行相应的功能。下面是详细介绍了工作流的主要模块。总体流程图如图4-3所示。图4-3系统流程图系统主程序流程图如图4-3所示,图4-3(a

26、)是液晶显示流程图,单片机首先初始化,当按下计量脉搏数的按键的时候,单片机会采取15s的时间来检测脉搏数,如图4-3(b)所示,然后将计到的脉搏数传送给液晶显示屏显示。图4-3(c)是按键子模块流程图,当用户按下按键的时候,单片机会判断具体是什么功能,并且进行相应的功能,当按下计量脉搏数的按键的时候,单片机便进入图4-3(b)流程图,然后通过液晶显示屏显示。图4-4是显示屏初始化子函数流程图,依次顺序大概是先调用,再设置,然后循环。调用什么呢?调用液晶显示屏自定义的字库。调用结束以后,再设置地址在液晶显示屏上面显示,最后就是不断的循环取字符代码的操作直到结束。具体流程图如图4-4所示。图4-4

27、 显示屏初始化子函数流程图4.2.2程序设计原理在拿到任务书之后,经过一番资料收集,本设计的大体思路就能够确定下来了,硬件电路由哪几块模块组成,软件设计主要需要实现的功能,在脑海中就差不多定型了,软件和硬件各司其职,共同完成设计。软件设计大体的过程是先设计,再编码,最后测试。因此,软件设计首先需要确定目标和任务,具体的就是解决“做什么?”、“怎么做?”这两个问题。根据对信息、功能和行为的描述,完成总体结构的设计,数据结构的设计,如测量数据、数据计算、显示数据等,还要完成过程的设计。软件设计结束以后,开始编码。编码之前首先要将整个设计模块化,什么是模块?模块拥有相对独立性,有自己独立的数据说明、

28、程序语句等。模块化指的是将整个程序划分为若干个模块,每个模块实现各自规定好的功能呢,如语音模块实现语音播报的功能,显示模块实现显示数据的功能。模块的划分,相当于是将一块很难啃的面包划分成一小块一小块的解决,这样能大大降低问题的难度。当然模块的划分也不是越多越好,因为随着模块的划分,单片机的接口工作量也会相应的增大,所以,模块划分也要适量。编码结束以后,接下来就是测试阶段,测试完如果还有问题就需要重新再编码。这个时候模块化就开始有优势了,模块化使结构清晰,具有易修改性,哪个模块有问题就改哪个模块。第五章 系统调试5.1软件调试 基于单片机和语音模块的心率计系统设计能够实现多功能的心率测量,由多个

29、模块组成,所以编程也比较复杂,各个模块的编写和调试也会出现相对较多的问题。但是经过各个问题的一一解决,最后一步一步的完成,最终一一解决了问题。在调试过程中的软件运行主要遇到的问题如下: 问题1:液晶屏幕闪烁现象明显。 解决方案:首先对硬件电路进行了检查,观察是否有接口虚焊,或者元器件焊错,然后发现硬件没有什么问题,所以便可以确定是程序上面除了问题。在调试程序时先把延时的被逐渐修改,可以解决显示闪烁的问题。其次,由于这个设计的动态扫描显示数字,动态扫描是非常快速的,人眼无法看到,但调用显示程序,如果不在后面屏蔽附值,则液晶会显得非常亮,所以为了能够正常显示,在程序中加入了屏蔽子令的指令,终于解决

30、了问题。 问题2:发现显示的数值跟设定的数值不对应。 解决方案:首先还是检查硬件电路,发现是在接矩阵键盘的时候,矩阵的键值搞错,导致相对应的显示也搞错,经过重新纠正,问题得到解决。5.2硬件调试系统基于单片机的脉冲计电路比较大,焊接同样是不可轻视的,在电路系统,只要出一个错误,造成很大的不便和交叉检测电路,对于较多的引脚和紧凑的间距要非常的注意,否则会不小心将两个引脚连到一起引起电路短路现象。 在本设计的调试过程中遇到了相对较多的问题,其实细想一下有些问题其实是可以避免的,一下总结了一些这样的问题: 问题1:关于蜂鸣器的发声问题,一开始以为蜂鸣器只要通上电就能发出声音,后来发现并不是这样,它也

31、需要添加驱动。 解决方案:因为知道了要添加驱动,所以查找了网上的资料,对于这个资料网上还是挺多的,最后采用了通过三极管来驱动蜂鸣器这样的简单策略。 问题2:刚开始时,因为没有想到脉冲信号是很微弱的,一直检测不到信号,原以为是模块出了问题,后来发现是因为放大倍数不够,单片机无法检测到信号,所以无法处理。 解决方案:经过对其他实验者方案的参考,以及模块的数据手册,确定了信号的放大,采用了更高的放大倍数,问题就得到了解决。5.3调试结果5.3.1 放大倍数的增加示波器观察传感器的输出端,观察到一个非常小的振幅的正弦波,而且通过整形输出脉冲的脉冲还是非常薄弱的,在确保电路没有任何问题的情况下,加强信号

32、的放大和调整电阻的阻值。5.3.2 时钟的调试 首先利用晶体振荡频率可以计算出内部定时器的基本参数,然后可以通过运行一段时间利用钟表计时的方法进行校准,根据误差量和体积的变化时的参数改变内部定时器程序的基本参数,以保证时钟的精度。5.3.3 开机后无显示首先检查交流电源,看交流是否有,如果没有可能是保险管或变压器已经被烧毁了,如果有的话就继续检查直流是否有,如果没有可能是电源已烧毁,那么接下来就改变方案。5.3.4 显示正常但经适当运动后测量,脉搏次数没有增加硬件:可能是前置放大级有问题,可采用万用表检测的方法一步步排除问题。软件:程序驱动有问题,重新测试。5.3.5 进人测量状态, 但测量值

33、不稳定 主要原因是光电传感器受到电磁波等干扰,其次还有硬件损坏或有虚焊的原因。5.3.6 开机后显示不正常或按键失灵 检查手指的位置是否正确,如果正确,检查关键线路,如果都没有问题就是硬件损坏。 最终,系统一系列的问题都被一一解决,系统实现了正常运行,完成了所有的功能。 结束语本课题在心率计应用基础上,通过对硬件的搭建和传感器的调试以及整体代码的测试,最终实现了心率的测量。经过几个月的努力,本设计的硬件搭建和软件设计都基本完成了。在制作的过程中也遇到了很多困难,不断的坚持以及保持细心和耐心的心态,最终使我完成了整个设计,而且基本能实现相应的功能。在制作的过程中我也产生了许多更深的感悟,对系统的

34、进一步改进也有新的想法。本系统采用的传感器是红外传感器,通过将人手指放在传感器上面测量15s的方法测量出脉搏跳动数,测量方法简单,无痛且易行,并且最后通过显示屏显示数据,同步语音模块播报。最后通过这次课题对心率计系统的深入研究,我对嵌入式系统和光电传感器有了更深一步的理解。希望以后能够更深层次的了解单片机以及传感器的使用。当然,目前本设计还不够完美,还存在技术的缺陷,也希望各位老师能够给予建议与意见。谢谢!致 谢经过3个月的制作,本次的毕业设计就要基本完成了,很高兴能完成这次的毕业设计,当然由于经验的缺乏,作业还有很多缺陷,如果没有老师的指导与监督,这件设计肯定完成不了。所以在这里我首先要感谢

35、我的指导老师张燕老师,如果没有他的耐心指导和支持,我很难想象我能完成这个毕业设计。其次,我要感谢实验室的老师们,他们在我设计中提供了良好的设计环境也给与了我很多宝贵的意见。然后,我要感谢实验室的小伙伴们,在我设计中遇到困难的时候他们都会很热心的帮助我。他们让我感受到了团队的温暖,使我不断坚持往前走。最后,我要感谢所有电子信息工程的老师们,在大学的四年里他们传授了我很多知识,教会了我如何去处理问题,给了我很多宝贵的建议。为我以后的人生道路的选择提供了很多参考。参考文献 1 Mak S, A Model of Information Management for Construction Usin

36、g Information TechnologyJ. Automation in Construction, 2001 2Hermann Kaindl.  Combining Requirements and Interaction Design through Usage ScenariosM.Human-Computer Interaction-INTERACT 2009.Springer Berlin/Heidelberg,2009 3H.Elmer, H.Schweinzerl. High resolution Supersonic distances measurement

37、 for long distancesJ.Technisches Messen.2003 4 王东云.便携式自动心率检测仪的设计J.郑州纺织工学院学报,1997.07 5 王煜东. 传感器应用电路400例M.北京:中国电力出版社,2008.08 6 侯玉宝等.基于Proteus 的51系列单片机设计与仿真M.北京:电子工业出版社,2008.09 7 田立, 田清, 代方震. 51单片机C语言程序设计快速入门M. 北京:人民邮电出版社,2007 8 许晓华. Multisim 10计算机仿真及应用 M.北京:清华大学出版社,2011.08 9 刘娟. 单片机C语言与PROTUES仿真技能实训 M

38、 .北京:中国电力出版社,2010.08 10王晋. 血管硬度测量仪的研制 D.重庆:重庆大学,2003.5 11康华光.电子技术基础(模拟部分)M.第四版,武汉:高等教育出版社,1999 12李光地等.单片机基础M.北京:北京航空航天大学出版社.2001 13姚鸣放,高磊.快速心率检测仪的研制J.医疗设备信息,2004,19 14梁妍超.电桥传感式数字心率计J.现代医学仪器与应用.2000,7 15廉小亲,金亮.基于脉搏传感器的家用智能心率监控系统J.东南大学学报(自然科学版),2005,3附录A#include <reg52.h> /调用单片机头文件#define uchar

39、unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include <intrins.h>sbit dq = P15;/18b20 IO口的定义sbit beep = P14; /蜂鸣器IO口定义bit flag_300ms ;uchar flag_en;/*语音模块控制IO口的定义*/sbit VRST = P24; sbit VBUSY= P20;sbit VSDA = P21; sbit VCS = P22; sbit VSCL = P23;uchar yujing3;

40、uchar code table_num="abcdefg"sbit rs=P10; /寄存器选择信号 H:数据寄存器 L:指令寄存器sbit rw=P11; /寄存器选择信号 H:数据寄存器 L:指令寄存器sbit e =P12; /片选信号 下降沿触发unsigned char i=0,timecount=0,displayOK=0,aa=0;float time6=0;uint rate;/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;i<q;i+)for(j=0;j<110;j+);/* 名称 : de

41、lay_uint()* 功能 : 小延时。* 输入 : 无* 输出 : 无*/void delay_uint(uint q)while(q-);/* 名称 : write_com(uchar com)* 功能 : 1602命令函数* 输入 : 输入的命令值* 输出 : 无*/void write_com(uchar com)e=0;rs=0;rw=0;P0=com;delay_uint(25);e=1;delay_uint(100);e=0;/* 名称 : write_data(uchar dat)* 功能 : 1602写数据函数* 输入 : 需要写入1602的数据* 输出 : 无*/void

42、 write_data(uchar dat)e=0;rs=1;rw=0;P0=dat;delay_uint(25);e=1;delay_uint(100);e=0;/* 名称 : write_string(uchar hang,uchar add,uchar *p)* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下 write_string(1,5,"ab cd ef;")* 输入 : 行,列,需要输入1602的数据* 输出 : 无*/void write_string(uchar hang,uch

43、ar add,uchar *p)if(hang=1) write_com(0x80+add);elsewrite_com(0x80+0x40+add);while(1)if(*p = '0') break;write_data(*p);p+;/*lcd1602上显示两位十进制数*/void write_sfm3(uchar hang,uchar add,uint date)if(hang=1) write_com(0x80+add);elsewrite_com(0x80+0x40+add);write_data(0x30+date/100%10);write_data(0x30

44、+date/10%10);write_data(0x30+date%10);/*lcd1602初始化设置*/void init_1602()write_com(0x38);/write_com(0x0c);write_com(0x06);delay_uint(1000);write_string(1,0," Heart Rate ");write_string(2,0," 000/min ");/*定时器0初始化程序*/void time_init() EA = 1; /开总中断TMOD = 0X01; /定时器0、定时器1工作方式1ET0 = 1; /开定时器0中断 TR0 = 1; /允许定时器0定时/*外部中断0初始化程序*/void init_int0() /外部中断0初始化程序EX0=1; /允许外部中断0中断EA=1; /开总中断IT0 = 1; /外部中断0负跳变中断/*小延时函数*/void delay_us (unsigned int us)while(us-)_nop_();/*三线发码子程序*/void Send_threelines(unsigned char addr,uchar dat) unsigned char i;VRST=0;delay_1ms(5);VRST=1;delay_1ms(20); /* 复位

温馨提示

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

评论

0/150

提交评论