《本科毕业设计---基于单片机的心率计设计.doc》由会员分享,可在线阅读,更多相关《本科毕业设计---基于单片机的心率计设计.doc(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、河南科技大学毕业设计(论文)基于单片机的心率计设计摘 要心率是指单位时间内心脏搏动的次数,包含了许多重要的生理、病理信息,特别是与心脑血管相关的信息,是生物医学检测中一个重要的生理指标,也是临床常规诊断的生理指标;因此迅速准确地测量心率便显得尤为重要。随着医疗水平和人们生活水平的提高,快速、准确、便携式心率计便成为一种新的发展趋势,同时伴随着单片机技术的发展,基于单片机的便携式心率计便不失为一个好的选择。本心率计共有三大部分,分别为:传感器部分、信号处理部分、单片机控制部分。传感器部分采用光电式传感器实现对信号采集;信号处理部分则采用放大、滤波、波形变换等方法实现信号的有效处理;而单片机部分则
2、实现对心率的计数和显示功能。通过这三部分的有效组合初步实现对人体心率的一个有效计数。信号采集采用光电式传感器通过对手指末端透光度的监测,实现信号的采集;信号放大则采用四运放运算放大器LM324,波形变换采用555定时器构成反向施密特触发器;单片机控制模块则采用AT89C51微处理器和相关元器件通过C语言编程实现计数和显示功能。关键词:心率,光电式传感器,信号处理,AT89C51DESIGN OF HEART RATE METER BASED ON MCUABSTRACT Heart rate is refering to the number in unit time of the heart
3、 beating, contains many important physiological and pathological information, especially information associated with cardiovascular, biomedical detection an important physiological indexes, and routine clinical diagnosis of physiological indexes; so quickly and accurately measuring heart rate appear
4、s to be particularly important. With the improvement of medical level and peoples living standards, rapid, accurate and portable heart rate meter has become a new trend, accompanied by the development of SCM technology, will not be regarded as a good choice of meter based on microcontroller portable
5、 heart rate. Heart rate meter consists of three parts, respectively: sensor part, signal processing part, MCU control part. Part of the sensor using photoelectric sensor achieved the signal of the signal acquisition; signal processing part uses the amplification, filtering, waveform transform method
6、 to effectively deal with; and part of SCM is to achieve counting on heart rate and display function. Through the effective combination of these three parts, an effective count of human heart rate is realized. Signals were collected using photoelectric sensor through the monitoring of the degree of
7、light at the end of a finger, to realize the signal acquisition; signal amplification four operational amplifier LM324 operational amplifier is used, the waveform transform the 555 timer constitute reverse Schmitt trigger; MCU control module is used AT89C51 microprocessor and related components by C
8、 language programming counting and display function.KEY WORDS: heart rate, sensor photoelectric, signal processing, AT89C51目 录前 言1第一章 系统设计的整体构思3第二章 各元器件介绍42.1 LM32442.1.1 LM324简述42.1.2 LM324主要特点42.1.3 LM324引脚图52.2 555定时器52.3 单片机型号介绍62.3.1 单片机简介62.3.2 51子系列的主要功能72.3.3 AT89C51引脚72.4 74HC24592.4.1 74HC
9、245简述92.4.2 74HC245的特点92.4.3 74HC245引脚102.5 74LS138102.5.1 74LS138简述102.5.2 74LS138主要特性102.5.3 74LS138引脚图11第三章 软件介绍123.1 KeilC51高级语言集成开发环境uVision4 IDE123.1.1 KeilC51简介123.1.2 uVision4 IDE集成开发环境123.1.3 uVision4 IDE仿真过程133.2 Proteus143.2.1 Proteus简述143.2.2 Proteus主界面153.2.3 电路图仿真15第四章 电路原理及仿真电路174.1 光
10、电式传感器174.2 前置放大器194.3 滤波电路194.4 后置放大电路204.5 波形变换21第五章 软件的设计235.1 设计原理235.1.1 定时原理235.1.2 计数原理245.2 软件设计的流程图245.3 LED显示电路26第六章 系统的检测28第七章 误差分析29结 论30参考文献32致 谢34附 录35IV前 言心率是指单位时间内心脏搏动的次数,与脉搏跳动频率基本是一致的。由于受年龄、性别及其它生理因素的影响,心率也有不同的衡量标准:3岁以下的小孩常在100次/分以上,初生儿的心率更快,可达130次/分以上;在成年人中正常的心率为60100次/分,大多数为6080次/分
11、,而且这一年龄段女性的心率一般比男性稍快;老年人的心率偏慢。即使是同一个人,在安静或睡眠状态下心率较慢,而在运动或情绪激动时心率则会加快,另外在某些药物或神经体液因素的影响下,心率会出现短暂的加快或减慢的症状;而对于经常进行体力劳动和体育锻炼的人来说,平时心率则比较缓慢。婴幼儿超过 150次/分或成年人心率超过100次/分称为窦性心律过速。婴儿常出现症状为发热、休克、贫血、甲亢、心力衰竭等;而成年人除此之外还常见于运动、兴奋、激动、饮酒等。心率低于60次/分称为窦性心动过缓,常出现胸闷、气短等症状。心率过快超过160次/分或过慢低于40次/分,则多表现为心脏病病人,常有心悸、胸闷、心前区不适等
12、症状。因此说心率作为临床测量的重要生理参数,其主要意义在于:1、心率的变化直接反应人体的健康状况。对于老年人和病危的患者来说尤为重要,一单发生意外可以第一时间发现从而及时的进行救治,挽救病人的生命;特别对于心脑血管疾病的病人来说相当重要。由于心率包含着与人体心脑血管系统密切相关的信息,因此利用心率计及时的发现相关的病情状况,做到及时救治从而降低心脑血管疾病的发病率和死亡率,有效的减轻心脑血管疾病带来的社会和家庭负担1。近年来,伴随着快节奏、高压力的生活氛围,心脑血管疾病的发病率呈上升趋势,这对心率计的发展既是一个要求也是一个机遇。2、心率与运动强度密切相关,通过心率监测及时的调整运动强度和运动
13、方式,使运动更加系统化和科学化,从而达到运动的最佳效果。目前市场上比较流行的测心率的仪器是心率手环和心率手表,它们的出现,让我们远离了传统心率带产生的束缚、划伤、勒痕等诸多不适感,以及信号不稳造成的监测数据不准确等烦恼。例如MIO FUSE手环,它采用超级光电感应技术持续测量心率,内置加速传感器监测,可以精准测量步数,它卓越的数字滤波技术和精准的监测技术,使其能够按照真实的心率及时的反应心率变化。随着科学技术的发展,通过对脉搏波的检测来评价动脉壁的扩张性和软硬度已经得到广泛应用。凭借操作简单、无创伤等优势广泛应用于流行病学等方面的研究中,也正是由于这些原因,使得此法非常适合于向家庭和社区医疗服
14、务机构推广。利用此法生产的仪器尽管在欧美等国得到普及,国内也引进并在此基础上不断发展,但是,由于这些仪器价格昂贵、功能局限,并不适合普通患者,因此这类产品在市场上并未普及,只存在于一些大型的医疗机构中。基于单片机的心率计既能发挥单片机快速处理数据的能力,同时伴随着集成化技术的逐步提升,便携、快速准确、方便实用的心率计将不失为一个更好的选择,真正做到走入家庭、方便个人。第一章 系统设计的整体构思人体的各种生理参数如心电、脑电等生物电信号都属于强噪声背景下微弱的低频信号,是由复杂的生命体发出的不稳定的自然信号2。心率是指单位时间内心脏搏动的次数,与脉搏跳动频率基本是一致的,另外脉搏信号比较容易测得
15、,因此本设计利用脉搏信号进行心率计数。与其他生物电信号相比,脉搏信号比较容易检测同时具有直观的规律性。经过光电式传感器后输出的幅值都在几毫伏左右。 心率计设计的步骤如下: 1、心率计设计的第一步就是要获得原始的脉搏信号,本设计采用光电式传感器3通过对手指末端透光度的监测,检测出脉搏信号进行心率计数。 2、由于信号是在强噪声背景下微弱的低频信号,在进行滤波处理前,先要进行信号的前置放大,由于夹杂着干扰信号和噪声,前置放大倍数一般较小4。3、滤波处理。4、进行滤波处理后的信号仍然比较微弱,需要进行后置放大处理,由于这时的信号是已经经过滤波处理得到的理想信号,去除了干扰信息,因此可以进行较大的信号放
16、大。5、进行波形变换将脉搏信号(近似正弦波)变换成方波信号。光电式传感器,信号采集前置放大电路滤波电路后置放大电路波形变换电路单片机定时计数6、由于单片机的中断分为低电平和下降沿两种触发方式5,因此在进行波形变换后,要进行关键的定时计数处理以及计数显示。图1-1 总体流程图第二章 各元器件介绍2.1 LM3242.1.1 LM324简述脉搏信号是强噪声下微弱的低频信号,往往具有很大的共模干扰电压,需要用到仪表放大器,来对传感器信号进行精密的电压放大,同时,对共模干扰信号进行抑制,以提高信号质量。AD620是一款低成本、高精度仪表放大器,仅需要一个外部电阻来设置增益,增益范围为1至1000,功耗
17、较低(最大电源电流仅1.3 mA)。由于AD620具有高精度(最大非线性度40 ppm)、低失调电压(最大50 V)和低失调漂移(最大0.6 V/C)特性,使其具有低噪声、低输入偏置电流和低功耗等特性,非常适ECG的前置放大6。但由于AD620不常用在市场上买不到,网店中虽有卖的但由于元器件便宜,并且数量较少,整体上费用过高不划算,于是最终选择了四运放运算放大器LM324。LM324系列器件属于四运算放大器,真正的差分输入,与单电源的运算放大器相比,它的优势在于:工作电压范围比较大,3.0V-32V均可;共模输入范围包括负电源,避免了采用外部偏置元件的繁琐。另外,此元件也可工作在单电源下,电压
18、的范围为3.0V-32V或16V。2.1.2 LM324主要特点表2-1 LM324的特性表序号功能1短路保护输出2真正的差分输入级3单电源供电:3.0V-32V4低输入偏置电流:最大值100nA5每个封装有4个放大器6高增益,内部补偿2.1.3 LM324引脚图图2-1 LM324引脚图 LM324共有4组运算放大器,每一组运算放大器如下图表示,它有5个引出脚,分别为:、。其中、为信号的输入的正极和负极,、为电源的正负极,为输出端。图2-2 运算放大器2.2 555定时器555定时器是一种集模拟、数字于一体的中规模集成电路,内部电路由分压器、电压比较器和,简单SR锁存器、放电三极管T以及缓冲
19、器G组成,其内部结构如下:图2-3 555定时器电路结构为控制电压,5号引脚;是比较器的信号输入端,称为阈值输入端,6号引脚;是比较器的信号输入端,称为触发输入端,2号引脚;为放电端,7号引脚;为电源,8号引脚;为直接复位输入端,4号引脚;为输出端,3号引脚。当为低电平时,不管其他输入端的状态如何,输出端即为低电平。当为高电平时: 1、当,时,=0,=1,放电三极管T导通,输出为低电平。2、当,时=1,=0,放电三极管T截止,输出为高电平。3、当时,=1,=1,锁存器状态不变,放电三极管T状态不变,输出保持不变。2.3 单片机型号介绍2.3.1 单片机简介单片机又称MCU7是计算机的微型集成电
20、路芯片,采用了超大规模集成电路技术,片内含有CPU、ROM、RAM、多种I/O口、中断系统、定时器/计数器等,是一个嵌入式系统。80C51系列单片机属于第三代单片机,包括Intel公司和其他公司的51和52系列,本设计采用的是51系列。2.3.2 51子系列的主要功能表2-2 51子系列单片机序号功能18位CPU2片内带振荡器及时钟电路3256B片内数据存储器48KB的片内程序存储器5程序存储器的寻址范围64KB6片外数据存储器的寻址范围为64KB726B的特殊功能寄存器83个16位定时器/计数器96个中断源1048根I/O线11111条指令,含乘法指令和除法指令12布尔处理器13使用单+5V
21、电源2.3.3 AT89C51引脚图2-4 AT89C51引脚图 1、RST 复位引脚。用于电路的初始化操作。有自动上电复位和人工按键复位两种。 2、XTAL1和XTAL2片内振荡电路引脚。这两个端口外接石英晶体和电容,用来连接8051片内OSC的定时反馈回路。 3、 电源引脚。对于不同的单片机型号需接入对应的电源电压,一般为+5V,最低为为+3.3V8。 4、GND 接地引脚。5、P0.0P0.7这组引脚共有8条,每个口可以单独控制使用,由于P0口内部没有上拉电阻,因此在使用时,需要外接上拉电阻9。常作为通用I/O口使用,用于传送用户的输入/输出数据;当P0口带外部存储器时,P0.0P0.7
22、在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。 6、P1.0P1.7这组引脚共有8条,每个口可以单独控制使用。与P0口的第一功能相同,常作为通用I/O口使用时,用于传送用户的输入/输出数据,该口内部有上拉电阻,使用时无需外接上拉电阻。7、P2.0P2.7 这组引脚共有两个功能:第一功能作为通用的I/O口使用,第二功能与P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像P0口那样传送存储器的读/写数据。每个口同样可以单独控制使用,使用时无需外接上拉电阻。 8、P3.0P3.7这组引脚的第一功能作为通用的I
23、/O口使用,每个口可以单独控制使用,使用时无需外接上拉电阻。第二功能为控制功能,每个引脚并不完全相同,如下表所示:表2-3 P3口的第二功能引脚号功能P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器/计数器0的外部输入)P3.5T1(定时器/计数器1的外部输入)P3.6(片外数据存储器写允许)P3.7(片外数据存储器读允许)2.4 74HC2452.4.1 74HC245简述74HC245为总线收发器(bus transceiver)。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载过重,一般应加驱
24、动器,从而增强I/O口的驱动能力。2.4.2 74HC245的特点表2-4 74HC245特性表序号功能1采用CMOS工艺2宽电压工作范围:3V-5V3同相三态门输出48位双向收发器5封装形式:SOP202.4.3 74HC245引脚图2-5 74HC245引脚图表2-5 74HC245特性表符号引脚名称引脚号说明A0-A7数据输入/输出2-9B0-B7数据输入/输出18-11输出使能19DIR方向控制1DIR=1,;DIR=0,。GND逻辑地20逻辑地VCC逻辑电源10电源端2.5 74LS1382.5.1 74LS138简述 74LS138是3线-8线译码器,作为位驱动器与74HC245配
25、合使用实现对LED数码管的控制。2.5.2 74LS138主要特性表2-6 74LS138特性表序号功能1电压:4.755.25V2驱动电流:-0.4/8mA3最大传输延迟:41ns4封装形式:SOP162.5.3 74LS138引脚图图2-6 74LS138引脚图表2-7 74LS138引脚名称引脚名称引脚号说明数据输出15-9,7A0,A1,A2数据输入1,2,3,使能控制6,4,5=0,=0,=1时,使能控制有效VCC逻辑电源16电源端GND逻辑地8逻辑地第三章 软件介绍3.1 KeilC51高级语言集成开发环境uVision4 IDE3.1.1 KeilC51简介单片机的编程语言共有三
26、种,分别为:BASIC语言、PL/M语言和C语言。BASIC语言和PL/M语言在单片机的发展过程中,由于自身存在的劣势并未得到广泛的应用,相比之下,C语言凭借其很强的数据处理能力、开发效率高、可移植性强等优点得到了广泛的应用。KeilC51是单片机程序常用的编译软件,该软件提供了包括C语言编辑器、连接器、库管理和一个功能强大的仿真调试器等,通过一个集成开发环境(uVision4 IDE)将这些部分组合在一起。uVision4 IDE基于Windows系统,内嵌多种符合当前工业标准的开发工具,可以完成工程建立、管理、软件仿真、硬件仿真等开发流程10。3.1.2 uVision4 IDE集成开发环
27、境 安装完成后,双击桌面上的“ uVision4”图标进入IDE环境,uVision4 IDE软件有菜单栏、可以快速选择命令按钮的工具栏、一些源代码文件窗口、对话框、信息显示窗口。uVision4 IDE界面如下图所示:图3-1 uVision4 IDE主界面3.1.3 uVision4 IDE仿真过程 1、在Project工具栏中选中New Project,在弹出的Create New Project对话框中选择保存路径,在“文件名”文本框中输入项目名称,并保存。完成新建工程的步骤。 2、接着会弹出一个对话框如下图所示,选择所需要的单片机型号,选定型号后单击“OK”,在新弹出的对话框中点击“
28、是”即完成相关的操作。图3-2 单片机的型号选择 3、在File工具栏中选择New建立源程序文件,在弹出的程序文本框中,输入目标程序,然后在File工具栏中选择Save As选项进行保存。在弹出的对话框中保存为:如果是C语言程序文件,扩展名为“”;如果是汇编文件,扩展名为“”或“”。并单击保存。如下图所示:图3-3 Save As对话框 4、将源程序文件添加到项目中。方法:选中左边项目窗口中的Source Group1,然后单击鼠标右键,在弹出的菜单中选择Add Files To Group“ Source Group1”,选择刚才保存的后缀名为“”(此处以C源程序文件为例),点击“Add”按
29、钮完成文件的添加。 5、接下来对目标进行一些设置。选择Project Options for Target “Target 1”弹出的对话框如下图所示:图3-4 Target选项卡 在“Output”选项卡中选择“Create HEX File”,在Debug选项卡中的“Use”选项中选择“Proteus VSM Simulator”单击“OK”。然后对目标程序进行“Translate(组建)Bulid(编译)Rebulid(执行)”(这个过程需要不断的修改程序,直到源程序完全正确),生成可执行的源文件(后缀名为)。3.2 Proteus3.2.1 Proteus简述 Proteus可以对基于
30、微控制器的设计连同所有的周围电子器件一起进行仿真调试11,可以与uVision4 IDE工具软件结合进行编程仿真调试。Proteus VSM包含了大量的虚拟仪器,可以为仿真调试提供强有力的支持。3.2.2 Proteus主界面 安装完Proteus后,运行ISIS 7Professional,出现如下的界面:图3-5 Proteus ISIS 7的编辑环境3.2.3 电路图仿真 1、添加元器件。单击对象选择器按钮,在弹出的Pick Devices窗口中,使用搜索引擎,在Keywords栏中输入所要寻找的元器件,找到元器件,并将其添加到对象选择器窗口,然后在原理图编辑窗口添加该元器件。如下图所示
31、:图3-6 添加元器件窗口 2、进行元器件的连接。当线路出现交叉点时,若出现实心小黑圆点,表明导线连同。利用主界面左侧的模型选择元器件栏完成线路的连接和标注。 3、添加程序文件到所选择的单片机型号中。此处以AT89C52为例,双击AT89C52打开Edit Component对话框,如下图所示,在Program File中选择uVision4 IDE所生成的后缀为的文件,单击“OK”。然后单击仿真运行开始按钮,进行调试运行。图3-7 加载程序文件第四章 电路原理及仿真电路4.1 光电式传感器 本设计采用的光电式传感器通过对手指末端透光度的监测,检测出脉搏信号。所采用的主要元器件有光电三极管11
32、和光敏二极管12。整个装置具有结构简单、无创、可重复等优点。当恒定波长的光照射到人体组织上时,通过人体组织吸收、反射衰减后测量到的光强将在一定程度上反映被照射部位组织的结构特征13。因此,利用光电传感器检测人体内血液流动时对光的透过率或反射率的不同而将其转换成电信号。此种方法有两种方式:一种是对射式,另一种是反射式14。由于人体内的血流发生变化时其对光的反射率也随之变化,反射式便是利用此方法:当光照射在手指上时,通过手指的反射在同一侧接收信号。此法外界干扰信号小,但传感器输出信号小,对后面的放大电路要求较高。而对射式是光通过手指时在另一侧接收通过手指的光信号,由于手指中的血流量的变化而使光电接
33、收管的光电流也随之变化。通过比较,最终本设计采用对射式光电传感器。心率主要由人体动脉舒张和收缩产生的,在人体指尖,组织中的动脉成分含量高,而且指尖厚度相对其他人体组织而言比较薄,透过手指后检测到的光强相对较大,因此光电式传感器的测量部位通常在人体指尖15。为有利于指端信号的检测,应当保证肢体末端的血液循环良好;为提高检测的灵敏度,应当注意让手指与光电三极管和光敏二极管紧密接触,但不要有压迫感,以免妨碍血液循环。同时要注意尽可能选择背景较暗的环境,在测试中要注意保持手指的位置稳定,以便尽可能获得稳定的人体信号。仿真图如下: 图4-1 信号采集系统 实物图如下:图4-2 实物图4.2 前置放大器
34、由于脉搏信号属于强噪声下微弱的低频信号,所以要求前置放大器应具有高输入阻抗、高共模抑制比、低噪声、低漂移、具有一定的电压放大能力等特点,结合这些因素采用仪表放大器AD620便能满足要求,但由于种种原因,在实际的电路连接中采用LM324四运放运算当大器。电路图如下:图4-3 前置放大电路 电路采用同相比例放大器:,。 前置放大电路的放大倍数: (4-1)4.3 滤波电路 脉搏信号属于强噪声背景下微弱的低频信号,在对信号进行前置放大后需要对信号进行滤波处理,滤波处理主要滤除的是基线漂移、工频干扰等等。理论上当脉搏为60次/分钟为1Hz,90次/分钟为1.5Hz,100次/分为1.66Hz,120次
35、/分为2.0Hz,因此,滤波电路采用二阶压控有源低通滤波器16,同时滤除50Hz工频干扰。滤波电路如下:图4-4 二阶压控有源低通滤波器 传递函数为: (4-2) 放大倍数: (4-3) ,。, 满足滤波器稳定工作的条件。 低通滤波器的截止频率: (4-4) 设定的截止频率,可以满足大多数人的心率检测。同时由于该低通滤波器的截止频率较低,可以滤除50Hz的工频干扰以及其他的电磁波。4.4 后置放大电路滤波处理后的信号尽管已经去除了噪声等外部干扰,但是信号仍旧比较微弱,需要进行后置放大处理。后置放大电路如下图所示:图4-5 后置放大电路后置放大电路仍然采用同相比例放大器,。 后置放大倍数: (4
36、-5) 则总的放大倍数为: (4-6)则信号的最大值在4V-5V左右,以便利用555定时器实现波形变换。4.5 波形变换放大后的信号近似于正弦波,需要将其变换为脉冲波形才能进行定时计数的运算处理。本设计采用555定时器组成反相施密特触发器实现波形变换17。将555定时器的2号引脚和6号引脚连在一起作为触发端;4号引脚和8号引脚连在一起接在电源端;1号引脚接地;5号引脚连接一个电容然后接地;3号引脚仍作为输出端。如下图所示:图4-6 555定时器组成的施密特触发器当输入端电压由0V开始逐渐增加,当时,根据555定时器功能表可知,输出为高电平;继续增加,如果,就将由高电平跳变为低电平;之后再增加,
37、仍是,电路输出端保持低电平不变。如果输入的波形三角波,其波形变化如下:图4-7 施密特触发器的工作波形及电压传输特性曲线第五章 软件的设计5.1 设计原理5.1.1 定时原理 本设计利用单片机的外部中断和内部定时功能实现对心率的计数功能。单片机的外部中断由外部中断0和1,分别由引脚(P3.2)和(P3.3),;定时器/计数器由定时器/计数器0和1,工作方式有以下四种:1、方式0:方式0共有13位计数位数,由TH0的8位和TL0寄存器的低5位组成,而TL0的低3位处于闲置状态。最大计数。2、方式1:16位的定时器/计数器,由TH0的8位和TL0的8位组成。作为计数器使用时,最大计数;作为定时器使
38、用时,定时时间为: (5-1) 为定时时长,count为定时器的初值设置。为时钟周期也称为机器周期,为时钟脉冲频率()的倒数,是计算机中最基本、最小的时间单位。 3、方式2:8位可自动装载的定时器/计数器。此方式下16位计数器被分为两个8位寄存器TH0和TL0;TL0为计数器,TH0作为计数器TL0的初值预置寄存器,并始终保持为初值常数。作为计数器时,最大计数值=256;作为定时器使用时,定时时间为: (5-2) 为定时时长,count为定时器的初值设置,为时钟周期。 4、方式3:在该工作方式下,TH0和TL0作为两个独立的8位计数器,分别构成了一个定时器/计数器和一个定时器。这种工作方式比较
39、复杂,一般不用。 本设计采用的外部中断0,定时器/计数器0,工作方式1。5.1.2 计数原理 设检测到K个连续的脉冲所用时间为t(秒),则在时间t内平均值为(N次/分),则: (5-3) 本设计利用单片机的定时器/计数器实现定时50ms记一次数,当检测到1个脉冲时关闭所有中断,记录下50ms的定时次数M计算出一个周期的所用的时间,则一分钟内心率值为:K=1, (5-4)5.2 软件设计的流程图开始初始化设置 N到1?N定时器初值设置定时开始,开外部中断利用公式,得出1分钟心率LED显示屏显示结束计数NY图5-1 主程序流程图 用C语言编程18实现定时器/计数器0定时50ms,然后中断计数,当检
40、测到第一个脉冲式,说明产生了一个心率周期,由于人的心率是有规律的跳动,因此。可以利用公式很容易的算出一分钟的心率次数。软件设计的重点便是中断定时计数,因此先要了解中断以及定时计数。开中断关中断回复现场开中断返回断点中断服务关中断保护现场和断点图5-2 中断服务流程图 中断系统由中断源、中断标识、中断允许控制、中断优先级控制、中断查询硬件及相应的特殊寄存器组成,相应的特殊功能寄存器TCON和SCON用来存储来自中断源的中断请求标识,IE为中断允许控制寄存器,IP为中断优先级控制寄存器。该系统有5个中断源、2个中断优先级,能够实现2级中断嵌套,通过IP控制中断响应的先后顺序,每个中断响应都有各自的
41、中断入口地址(向量地址)。中断的相关数据如下:表5-1 80C51中断号、中断源、中断向量中断号N中断源中断向量0外部中断00003H1定时器0000BH2外部中断10013H3定时器1001BH4串行口0023H单片机内集成定时电路,被称为定时器/计数器,定时器通过对系统的时钟脉冲进行计数实现定时功能,计数器对单片机外部引脚输入的脉冲进行计数。单片机的定时类别有三种:软件定时、硬件定时、可编程定时器定时。其中最常用的就是软件定时,在计算机高级语言编程中经常应用,这种方式是通过循环程序19实现延时,无需添加任何硬件,但该方式长期占用CPU。5.3 LED显示电路 LED显示屏分为共阴极和共阳极
42、,本设的采用的是共阴极数码管,74HC245和74LS138作为段驱动和位驱动来驱动LED动态显示心率计数结果。图5-3 LED数码显示器 共阴极数码管内部将8个发光的二极管的阴极全部连在一起,称之为“阴极”,而它们的阳极是独立的。当给数码管的任一个阳极添加高电平,对应的发光二极管点亮。例如,对于共阴极LED显示器,公共阴极接地(为零电平),而阳极dpgfedcba各段为00111111时,这样显示器便可实现字符“0”的显示。LED显示器的显示方法有静态显示和动态显示两种方式,其中动态显示应用的较为广泛,本设计采用的便是动态显示。所谓的动态扫描显示,简言之就是轮流的向数码管的段选端和位选端传送
43、指令,通过控制轮流扫描的速度可以实现依次显示每个位上字型码,又可以实现“同时”显示所有位上字形码。本设计采用“同时”显示字形码的方法:利用发光管的余晖效应和人眼视觉暂留作用,使人的感觉好像各位数码管同时显示,而实际上多位数码管是一位一位轮流显示的,只是将轮流扫描的速度设定的足够快,这样给人的印象就是一组稳定的显示数据,不会出现闪烁的感觉。基于单片机的定时计数仿真电路如下:图5-4 定时计数电路第六章 系统的检测 利用Proteus进行电路仿真后,开始进行元器件的购买,由于设计时没考虑过多的因素,在实际的购买过程中,不得不用某些元器件进行代换,之后进行了电路的修改,一切敲定后便进行了电路的焊接,由于经过实习期间的锻炼对锡焊具有一定的了解和对焊接技术的掌握,电路的焊接过程非常顺利。之后便进行电路的整体测试,在测试的过程中一面用设计的心率计进行测量,一面用听诊器进行测量。焊接的实物图如下:图6-1 心率计实物图测量的结果如下:表6-1 测试结果测量序号心率计值听诊器测量值误差163612266660370691475723580755685841第七章 误差分析在系统测试中我们发现,制作的光电式传感器很不稳定,极易受到周围环境的干扰,这给测试带来了极大的干扰,另外在测试中,手指容易发生抖动导致检测到的人体信号很不稳定,于是要
限制150内