资源描述
摘 要
本课题是人体脉搏测量仪的设计。由于脉搏信号的特殊性,在设计时必须要注意实现测量的准确。该系统的重点就在于规定实现测量的简便化和精确化。系统要在小于十秒的时间内,测量出人体一分钟的脉搏,并且保证误差在2次以内。本系统以89S51单片机作为中心,通过使用单片机来实现系统最核心的计算脉搏功能。在信号的前端解决上,使用压电陶瓷片采集人体脉搏信号,然后通过AD620放大,施密特触发器整形,低通滤波器滤波等一系列操作,将脉搏信号转换为同频率的脉冲信号输入到单片机内,并运用单片机对其进行计数。计数的方法是运用单片机的计时器,计算一次心跳的时间,然后由该周期计算出频率,继而就可以求出一分钟的脉搏数。按照理论来说,只要有一次心跳信号就可以。但是要考虑到计算的精确性,可以设定为测量五次心跳信号,然后再求脉搏就可以使结果比较精确。计数结果将最终送至液晶屏1602来进行显示。虽然压电陶瓷片的性能并非很好,在信号的采集上不能实现非常精确的采集,但是它的价格低廉,并且在通过系统的信号调理电路后,也能比较满意的实现我们所要实现的目的。整个系统耗电低,体积小,具有便携性与精确性。通过多次调试和实验,本系统基本实现了设计所规定的指标。
关键词:脉搏测量;压电陶瓷片;液晶显示屏;单片机
目 录
引言………………………………………………………………………1
1 设计任务及规定……………………………………………………3
1.1 设计任务………………………………………………………………3
1.2 设计规定………………………………………………………………3
1.3 设计时所碰到的问题………………………………………………… 3
2 系统总体设计……………………………………………………… 3
2.1 方案论证…………………………………………………………… 3
2.2 总体设计框图…………………………………………………………4
3 系统硬件设计……………………………………………………… 5
3.1 脉搏信号采集…………………………………………………………5
3.1.1传感器的选择…………………………………………………………………5
3.1.2三种方案的优缺陷比较…………………………………………………… 6
3.1.3压电陶瓷片介绍………………………………………………………………7
3.2 信号调理单元…………………………………………………………7
3.2.1一级放大电路…………………………………………………………………8
3.2.2二阶滤波器电路…………………………………………………………… 10
3.2.3二级放大电路……………………………………………………………… 12
3.3 整形电路…………………………………………………………… 14
3.4 电源滤波电路……………………………………………………… 16
3.5 单片机电路………………………………………………………… 16
3.6 显示系统…………………………………………………………… 18
4 系统软件设计…………………………………………………… 19
4.1 软件部分设计……………………………………………………… 19
4.1.1主程序模块………………………………………………………………… 20
4.1.2液晶驱动模块……………………………………………………………… 21
4.2 软件开发环境……………………………………………………… 21
5 测试方案及结果………………………………………………… 21
5.1 测试方案……………………………………………………………21
5.2 模拟测试结果……………………………………………………… 21
5.2 实际测试结果……………………………………………………… 22
6 结束语………………………………………………………………22
谢辞……………………………………………………………………24
参考文献………………………………………………………………25
附录……………………………………………………………………26
引言
在我国传统中医学的诊断中,“望、闻、问、切”是最基本的四个方面。而在其中,切,也就是脉诊,占有非常重要的地位。通过脉诊,医生可以对患者的身体状况有一个大约的了解,进而对症下药。脉搏信号可以直接反映出患者心脏的部分状况,我国传统中医学认为,通过脉诊可以了解到患者脏腑气血的盛衰,可以探测到病因,病位,预测疗效等。
从近代医学的角度来看,人体循环系统承担着协调全身各组织的能量代谢,输送氧气、营养物质,运走代谢废物等重要的工作,还承担运送抗体、激素等物质以协调整体的动态平衡。从整体的角度对疾病进行综合分析,显然循环系统的信息将占很重要的比重;从整个循环系统来看桡动脉介于大动脉与小动脉之间,由于心脏的舒缩、内脏血容量的变化、血管端点阻抗、管道内脉波的反射、血液的粘滞性、血管壁的粘弹性等因素使脉象携带着有关心脏运动、内脏循环、外周循环等丰富的心血管系统及整体的动态信息。因此脉诊的临床意义很大,它的机理是急待于我们进行研究的。
鉴于脉诊的重要性,人们对于脉搏测量一直非常关注,早在1860年Vierordt 创建了第一台杠杆式脉搏描记仪,国内20世纪50年代初朱颜将脉搏仪引用到中医脉诊的客观化研究方面。此后随着机械及电子技术的发展,国内外在研制中医脉象仪方面进展不久,特别是70年代中期,国内天津、上海、广州、江西等地相继成立了跨学科的脉象研究协作组,多学科共同合作促使中医脉象研究工作进入了一个新的境界。
脉搏测量仪的发展重要向以下几个趋势发展:
(1) 自动测量脉搏并且对所得到的脉搏进行自动分析。
目前很多脉搏测量仪都具有检测血氧等其他的功能,但是对这些信号的分析和诊断还需要一些有经验的医生观测,进行分析后才干确认结果,浪费大量的人力,且由人为引入的误差较大。因此,未来脉搏自动检测的内容将更加具体,自动分析诊断功能也更强大。
(2) 数字化技术等先进技术的应用。
随着数字科学技术的发展,脉搏测量仪集成度将更高,更便于携带。数字信号解决的运用将使干扰更小,测量更为准确。
(3)多功能化越来越明显
目前的脉搏测量仪,一般都具有测试血氧,心电图等等功能,单纯的脉搏测量仪已经很少见。随着电子技术的发展,脉搏测量仪必然可以实现更多的功能。
本设计所使用的系统运用压电陶瓷片将脉博转换为电压信号,通过信号调理后运用AT89S51单片机进行信号采集和解决,在短时间内,测量出人体一分钟的脉搏数,并将心率进行实时显示,便于携带。达成了方便、快速、准确地测量心率的目的。这样的脉搏测量系统性能良好,结构简朴,性价比高,输出显示稳定,比较适应大众化,适合家庭进行自我检查以及医院护士进行每日的临床记录。
1 设计任务及规定
1.1 设计任务
本课题规定运用传感器对人体脉搏信号进行采集,设计相应的信号调理电路,然后运用通过对脉搏信号进行测量,来进行实时显示测量结果。
1.2 设计规定
(1) 、完毕一次测量时间:<10s;
(2) 、脉搏测量精度:≤±2次/分钟;
(3) 、可以实时显示测量结果。
1.3 设计时要考虑的问题
由于人体的脉搏信号具有频率低、幅度小干扰大,不稳定度低,随机性强等特点,使得对脉搏信号的采集放大电路的设计提出了很严格的规定,特别是抗干扰变为十分重要,需要设计低通滤波器进行滤波。选择放大器时需要从增益、频率响应,输入阻抗,共模克制比,噪声,漂移等几个方面加以综合考虑。
(1)抗干扰
工频50HZ干扰及其各次谐波
使用频率为50HZ的市电的电子仪器设备会对检测系统会产生较大的干扰,其幅值大约是脉搏信号峰峰值的50%,是重要的干扰源
肌电干扰
肌肉的收缩会产生微伏级的电势,其幅值大约是脉搏信号峰峰值的10%,维持时间大约是50ms,频带范围可以在0HZ~10000HZ。
由于呼吸引起的基线漂移和ECG幅度变化
呼吸引起的基线漂移可以当作是一个以呼吸的频率加入ECG信号的窦性成分(正弦曲线),这个正弦成分的幅度和频率是变化的。呼吸所引起的ECG信号的幅度的变化可以达成15%。基线漂移的频率是从0.15~0.3HZ。
(2) 低噪声、低漂移
在脉搏信号放大器中,由于增益较高,噪声和漂移是两个较重要的参数。脉搏信号放大器运营过程中的噪声重要表现为电子线路的固有热噪声和散粒噪声,这些都属于白噪声,其幅值为正态分布。为了获得一定信噪比的输出信号,对放大器的低噪声性能有严格规定。此外,温度变化会导致零点漂移,漂移现象限制了放大器的输入范围,使得薄弱的缓变信号无法被放大。而脉搏信号具有很低的频率成分,为了能正常测量,必须采用措施来限制放大器的漂移。所以放大器应选用低漂移,高输入阻抗并且具有高共模克制比的集成运放电路。
2 系统总体设计
2.1 方案论证
脉搏测量仪要实现对脉搏信号的检测,并且可以对脉搏信号进行解决,并进而求得脉搏数来显示。考虑到系统的实现,有两种方案可以实现。
方案一:使用纯硬件电路来实现。整个系统的框图如下图图2.1所示
标准时标(分)发生器
LED显示(3位)
计数器
译码器
放大整形
脉膊检测
人体
图2.1 纯硬件脉搏测量仪框图
方案二:使用单片机电路来实现。通过信号调理电路,将脉搏信号转换为数字信号,然后运用单片机来实现脉搏测量功能。使用该方案其框图如下图图2.2所示。
信号调理
脉膊检测
人体
显示
单片机电路
图2.2 单片机脉搏测量仪框图
通过比较以上两种方案。方案一由于使用纯硬件方式,系统稳定度比较高。但是功能有限,灵活度较低,也不能很好的实现锻炼自己的目的。而单片机方案有较大的活动空间,不仅能实现所规定的功能并且能在很大的限度上扩展功能,并且还可以方便的对系统进行升级,所以我们采用后一种方案。
2.2 总体设计框图
脉搏测量仪系统总框图,如图2.3所示。系统由五个部分组成:信号采集单元,信号调理单元,信号整形单元,单片机单元,显示单元。其中信号采集单元重要是选用合适的传感器将脉搏的压力信号转换为电信号,一般传感器输出的电压都在几毫伏左右。信号调理单元重要涉及信号的低通滤波,以及实现信号的放大,通过信号调理单元,几毫伏的脉搏信号的电压被放大为4V-5V左右。信号整形单元则将模拟信号转化成数字信号,将脉搏信号转换为同频率的脉冲。单片机单元通过计时器求出一次脉搏的时间,并进而得出脉搏数,然后将该数据送到显示单元进行显示。显示单元选择数码管或者液晶屏,对数据进行实时显示。
脉搏采集单元
信号调理单元
信号整形单元
单片机单元
显示单元
图2.3 系统总体框图
3 系统硬件设计
系统的硬件框图如图2.3所示,涉及五个部分组成。下面将分别介绍该五个单元。
3.1 脉搏信号的采集
该单元要将脉搏跳动的压力信号转换为电信号,因此需要使用传感器来实现。
3.1.1传感器的选择
①压电式传感器
目前常用的是一次性心电电极,它是用印刷方法制得的Ag/ Agcl传感器。这种传感器采用接扣与敏感区分离的方法,能明显的减少由于人体运动产生的干扰。电极的好坏对采集到的心电信号质量起着至关重要的作用,采用的电极应有贴力强,能紧附在人体表面,柔软、吸汗、极化电压低、导电性良好等特点。当选用电极传感器时,需要3个电极分别置于左右手和左腿,构成标准导联。临床上为了统一和便于比较所获得的脉搏信号,在检测脉搏信号时,对电极的位置,引线与放大器的连接方式都有严格的统一规定。
目前市场上有一种采用新型高分子压电材料聚偏氟乙烯研制的压电传感器,其灵敏度高,频带范围好,结构简朴,便于使用。当手指前端受到轻微的压力时,可以感觉到手指前端在血压的作用下有一张一弛的感觉,将这个信号用传感器提取出来,转变为电信号,通过指脉的波形检测,就可以获得人体的脉搏信号。
光电式传感器
血液是高度不透明的液体,光照在一般组织中的穿透性要比血液中大几十倍,据此特点,采用光电效应手指脉搏传感器来拾取脉搏信号。反向偏压的光敏二极管,它的反向电流具有随光照强度增长而增长的光电效应特性,在一定光强范围内,光敏二极管的反向电流与光强呈线性关系。指端血管的容积和透光度随心搏改变时,将使光电三极管极管收到不同的光强,并由此产生的光电流均随之作相应变化。常用检测脉搏的光电传感器分为红外对管和红外放射管。
采用红外对管。将对管夹于手指端部,通过手指的血液浓度会随着心脏的跳动发生变化,红外对管相应的信号便会发生相应的变化,采集此信号通过放大,滤波,比较等解决便可以得到抱负的信号。。
采用反射式的红外管。现在市场上的心率计普遍采用这种传感器来采集信号,由于此红外管接受和发射都在手指的同一侧,因此便不用考虑每个人手指情况不同所导致的麻烦。接受的是血液漫反射回来的光,此信号可以精确地测得血管内容积变化。
集成传感器
当前,市面上有很多类型的集成心电传感器,其灵敏度高,集成度高,直接就可以反映出心率的变化,且已包含了滤波等抗干扰电路,波形通过放大可以直接解决使用。缺陷是价格非常昂贵,一般均在五百元以上,就本次设计来说,考虑到经费以及锻炼自己的目的,不选择使用该型传感器。
3.1.2三种方案的优缺陷比较
光电式:
优点:灵敏度高,易于操作,响应速度快,结构简朴。
缺陷:1、外部光源的变化对测量结果的影响较大;
2、需要购买专门的医用光电传感器,价格较贵且不易购买;
3、对这样的器件接触很少,对其进行调试时也许会出现较大困难。
压电式:
优点:结构简朴,实时性好,工作频带宽,应用电路简朴,且价格低廉。
缺陷:直接与人体相接触,容易由于人体肌肉的颤动等而产生干扰。并且容易受到外界其他信号的干扰。
集成式:
优点:集成度高,包含了滤波,放大电路,可以直接输出信号,便于操作,有效的减少了各种干扰。
缺陷:减少了本任务的难度,假如采用该传感器,只需将其直接接上单片机即可实现功能,且价格非常昂贵。
考虑到种种情况,结合本系统的设计规定以及经费的考虑,最终选择压电式陶瓷片。该传感器价格较低,并且输出电压变化较为明显,可以实现我们的实验目的。
3.1.3压电陶瓷片介绍
压电陶瓷片的外观和电路符号如下图3.2所示。压电片涉及三个部分,镀银层,压电陶瓷,以及铜片。外部压力作用于铜片时,压电陶瓷就可以感受压力而产生电信号,并最终通过镀银层将该信号输出。在使用时,压电陶瓷片要通过导线与电路板连接,注旨在焊接压电陶瓷片时,时间不能太长以免烫坏压电陶瓷片的镀银层。
图3.1 压电陶瓷片的符号及外观
由于压电陶瓷片的资料比较少,为了拟定使用该传感器可以实现本次设计的目的,先要对其进行实验,来拟定它的输出电压是否符合规定。
使用实验室砝码来测试,其结果如下表表3.1所示。
表3.1 压电陶瓷片输出电压测试表
压力(N)
输出电压(mV)
0.196
4.41
0.392
4.55
0.588
4.77
0.784
4.80
0.98
4.85
1.176
5.05
1.372
5.35
1.568
5.54
由于只需要4mv-5mv左右的电压输出,就可以实现设计规定。由本次实验,可以得知压电陶瓷片可以实现我们所要达成的目的。
3.2 信号调理单元
信号调理电路涉及对信号的放大和滤波两个部分。由于传感器输出的电压比较小,在几毫伏左右,且频率较低,需要低噪声,低漂移,高输入阻抗的放大器,所以选择使用仪表放大器。肌电干扰也许会导致放大器的静态工作点偏移,甚至使放大器达成饱和,所以第一级放大器的放大倍数不能太高。因此还需要另一个放大器。此外,为了滤去高频信号和市电的干扰,还需要设计一个低通滤波器。这部分电路的框图如下图图3.2所示。
图3.2 信号调理单元框图
下面,将分别介绍三个部分。
3.2.1一级放大电路
一级放大电路是整个系统设计的重点,脉搏测量仪规定在脉搏信号频率范围内,不失真的放大所采集的薄弱信号,这规定所用的放大器必须具有低噪声,低漂移,低失调参数,高共模克制比,高输入阻抗,线形度小等特点。
为了达成上述规定,并联型双运放放大电路能满足其规定
图3.3 并联型双运放放大电路
前两个运放为同向比例放大器,输入阻抗很高,它对共模信号有很高的克制比。由于Rx连接于这两个放大器的求和点之间,当一个差分电压加到医用放大器的输入端时,整个输入的电压都呈现在Rx两端。由于Rx两端的电压等于V2-V1,所以流过Rx的电流等于(V2-V1)/Rx,因此输入信号将通过放大器获得增益并且得到放大。
这种电路的优点在于:
a,高共模克制比;
b,通常只需改变电阻Rx大小可改变增益。
以上电路需要三个运放,在调试的时候会比较复杂。现在的很多仪表放大器的内部电路与这个电路相同,并且仪表放大器都有成品可以买到,只需调整外界电阻就可以调整放大器的放大倍数,准确并且方便。
以下是几种常用的集成仪表放大器,其重要参数如表3.2
表3.2 三种集成医用放大器参数
器件
输入失调电压
输入偏置电流
输入失调电流
输入噪声
AD620
50uV
1.0nA
0.5nA
13
INA128
125nV
5.0nA
5.0nA
10
OPA131
1mV
50pA
50pA
21
脉搏信号是在强噪声下的薄弱信号,它对前置放大器的共模克制比,输入阻抗,输入噪声,输入失调电压有较严格的规定,由表3.2知AD620是最为抱负的。 AD620参数如下表表3.3所示。
表3.3 AD620参数表
项目
规格
备注
增益范围
1~1000
只需一个电阻就可以设定
电源供应范围
2.3V ~ 18V
低耗电量
最大供应电流 =1.3mA
可用电池供电,方便运用于便携式器材
精确度高
40ppm的最大非线性度;
最大偏置电压为 50µV ;
最大漂移电压0.6µV/℃
低讯号
1khz时低输入噪声9nV/Hz
使用场合
ECG 量测量与用以器材、压力测量,V/I 转换
资料拾取系统等
AD620的芯片引脚如下图图3.4所示
图3.4 AD620芯片引脚图
其中增益为
由于肌电干扰也许导致前置放大器静态工作点的偏移,甚至截至饱和,所以前置放大器的增益不能太大。所以设计时考虑两级放大,第一级采用AD620,外接一个4.7K的电阻,放大倍数由公式大约放大十倍左右。
实际的一级放大电路原理图如图3.5所示。
图3.5 一级放大电路
3.2.2二阶滤波器电路
由于脉搏信号的频率在1.33HZ左右,正常情况下不会出现高于2HZ的信号,因此需要设计一个低通滤波器,用来滤去高频信号。在这个系统中最大的干扰就是来自市电的50HZ干扰信号,考虑到有些病人在患病时也许会出现较高的脉搏,因此在设计滤波器的截止频率在4HZ左右,这样不仅能保证不滤去脉搏信号,并且能很好的将干扰滤去。
(1)方案选择:
①无源滤波器
采用RC低通滤波器。其电路如图3.6所示,特点是电路简朴,阻带衰减太慢,选择性较差。其幅频特性如图3.7所示。
图3.6 一阶无源滤波
图3.7 一阶无源滤波器幅频特性
②二阶低通滤波器
采用二阶有源滤波器,通带内幅频特性曲线比较平坦,并且二阶也可以达成较陡的衰减的特性。由于重要的干扰出现在50HZ左右,所以在截止频率较低时,采用二阶滤波器即可达成很好的滤波效果。二阶有源滤波器的电路图如下图3.8所示。其幅频特性如图3.9所示。
图3.8 二阶有源滤波器
图3.9 有源滤波器幅频特性
(2)参数拟定
电容C的容量宜在微法数量级以下,电阻器的阻值一般应在几百千欧以内。我们现在设定C1=C2=0.33uF,R1=R2=100K。
根据
可以计算出,该滤波器的截止频率为4.8HZ。符合所要达成的指标。同时,为了更好的实现效果,也可以使用一些稍大的电阻,如110K等。
(3)方案拟定
由于使用二阶有源滤波器可以很好的实现系统的滤波目的,所以选择使用方案②,即二阶有源滤波器。其电路原理图如图3.10所示。
图3.10 二阶滤波器
3.2.3第二级放大电路
第二级放大采用同相放大器,其电路图为
图3.11 同相放大器电路
其闭环电压增益
AVF=1+
输入电阻 Ri=ric
输出电阻 R0=0
平衡电阻 RP=R1//RF
其中,ric为运放自身同相端对地的共模输入电阻,一般为108欧姆。
同相放大器具有输入阻抗高,输出阻抗很低的特点,广泛用于前置放大级。若RF≈0,R1=∞(开路),则为电压跟随器,与晶体管电压跟随器(射极输出器)相比,集成运放的电压跟随器的输入阻抗更高,几乎不从信号源吸取电流;输出阻抗更小,可视作电压源,是较抱负的阻抗变换器。
在设计时,选用的运放为TL082,该运放具有较小的输入偏置电压和偏移电流,输出设有短路保护,输入级有较高的输入阻抗,完全可以达成设计规定。同时,设定RF=100K,R1=1K,
由AVF=1+
可以得到第二级的放大倍数为101倍,可以实现系统所要达成的放大参数。
二级放大电路的电路图如图3.12所示。
图3.12 二级放大器电路
3.3 整形电路
由于单片机只能检测到数字信号,因此,通过信号调理电路后得到的模拟信号必须转换为数字信号。这里有两个方案可以选择。
方案一: 使用三极管进行整形.
图3.13 三极管整形电路
方案二:使用施密特触发器来实现整形。
只要使用一个施密特触发器,就可以实现对于信号的整流作用。
由于三极管的调试较为复杂,且工作性能不如施密特触发器稳定,所以我们选用施密特触发器。现在的施密特触发器一般分为由555芯片构成和用TTL电路构成两种。使用由555芯片构成的施密特触发器,结构简朴,使用方便,因此选用555芯片来完毕该项任务。
由555芯片构成的施密特触发器如下图图3.14所示。
图3.14 555施密特触发器电路图
使用施密特触发器后,其输入输出波形的变化如下图图3.15所示。
图3.15 施密特触发器工作波形
由于VCC=5V,所以,当输入电压大于2/3VCC,也就是3.33V时,电路就可以输出高电平,然后一直连续到1/3VCC,也就是1.67V时,电路开始输出低电平。在前面的电路中,脉搏信号被转化为5V左右的信号,通过实验验证,脉搏信号在本级可以被转化为能被单片机辨认的数字信号。
图3.16 整形电路
3.4 电源滤波电路
由于脉搏信号非常小,很容易收到外部干扰,因此设计电源滤波电路。使用该滤波电路,可以将电源中的高低频杂波滤去。电路如下图图3.17所示。
图3.17 电源滤波电路
3.5 单片机电路
在这里,单片机要实现对脉搏信号的解决。为了可以在不到10s的时间内,测量出一分钟的脉搏,可以使用单片机的定期器来实现。在检测到第一个脉冲到达时,启动定期器,然后在下一个脉冲到达时,关闭计时器,如此就可以求得一次心跳所需要的时间,然后由该周期就可以得到一分钟的脉搏数。
考虑到单片机要实现以上功能,选择使用AT89S51来构成电路。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央解决器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定期计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设立省电模式。空闲模式下,CPU暂停工作,而RAM定期计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
该单片机重要特性:
• 8031 CPU与MCS-51 兼容
• 4K字节可编程FLASH存储器(寿命:1000写/擦循环)
• 全静态工作:0Hz-24KHz
• 三级程序存储器保密锁定
• 128*8位内部RAM
• 32条可编程I/O线
• 两个16位定期器/计数器
• 6个中断源
• 可编程串行通道
• 低功耗的闲置和掉电模式
• 片内振荡器和时钟电路
通过整形的信号由单片机的INT0口输入,使用单片机的外部中断0。单片机的P0口作为数据口,与显示屏相接,来输出单片机所计算的脉搏值。单片机的P2.5,P2.6,P2.7口接到液晶屏的控制端,来控制单片机工作。设立定期/计数器1屏蔽,定期/计数器0工作方式为16位计数器,并对中断做出定义。
当低频信号的下降沿到来时,中断触发。记录这个周期内计数器记录的时钟周期数。当系统时钟为12M时,周期T与时钟周期数S的关系是
当T>0.065535s时,计数器记录的时钟周期数会溢出,这时,需要记录计数器溢出次数C,然后再将计数器清零,重新记录。
设定单片机在检测到5次心跳信号后再计算时间,然后求5次的平均数来计算一次心跳的周期,那么可以得知,一次心跳的周期T为
这时的T即是以秒为单位的。求出T之后,一分钟的脉搏数F就可以很容易的得到
单片机电路如下图图3.18所示。
图3.18 单片机电路
3.6 显示系统
显示系统既可以选择使用LED,也可以选择使用LCD。就本系统的功能来说,使用LED已经可以实现功能,但是考虑到使用LCD,可以输出英文字符,从而使得显示系统可以更加美观,同时也能更好的达成提高自己的目的,所以最后选择使用液晶屏LCD。
由于本次设计所要显示的内容不多,并不需要太大的液晶屏来显示。所以选择使用1602来进行显示。1602液晶每次可以显示2行16个字符,总共32个字符,并且可以显示所有的ASCII码,涉及标点,数字,英文大小写等,因此,使用该液晶屏可以很好的实现显示功能。
1602显示屏的重要技术指标如表3.4所示。
表3.4 1602液晶显示屏的重要技术指标
LCD1620显示容量:
16X2个字符
芯片工作电压:
4.5-5.5V
工作电流:
2.0mA(5V)
最佳工作电压:
5V
字符尺寸:
2.95X4.35(WXH)mm
1602液晶显示屏共有16个引脚,其各个引脚的功能如下表,表3.5中所示。
表3.5 1602液晶显示屏的各个引脚功能
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DATAI/O
2
VDD
电源正极
10
D3
DATAI/O
3
VL
液晶显示偏压信号
11
D4
DATAI/O
4
RS
数据命令选择端(H/L)
12
D5
DATAI/O
5
R/W
读写数据端(H/L)
13
D6
DATAI/O
6
E
使能信号
14
D7
DATAI/O
7
D0
DATAI/O
15
BLA
背光源正极
8
D1
DATAI/O
16
BLK
背光源负极
使用1602,所设计的显示电路部分如下图图3.19所示。
图3.19 液晶显示电路
4 系统软件设计
4.1软件设计
软件部分涉及两个模块,一个是主程序模块,而另一个则是液晶屏的驱动模块。下面将分别介绍这两个模块。
4.1.1主程序模块
本程序的重要思绪是,运用单片机的计数器,记录两次脉冲之间的时间,即可得出心跳一次的时间,然后便可以得出一分钟的脉搏数。由于单片机的精确度非常高,所以该方法精度较高,本程序的流程图如下图图4.1所示。
Y
N
Y
N
Y
N
初始化
是否有外部中断
启动计数器
开始
变量加1
计数器清零
等待
计数器是否溢出
检测到外部中断
关闭计数器
计算结果
结束
图4.1主程序流程图
4.1.2液晶驱动模块
选用1602液晶屏,在液晶屏的第一行将显示出字符“your pulse is:”,在第二行显示出脉搏数。其数据口为P0口。
sbit RS = P2^5; //H数据,L指令
sbit RW = P2^6; //H读,L写
sbit E = P2^7; //片使能信号,控制其工作。
#define LCD_Data P0 //数据口
其驱动程序见附录。
4.2 软件开发环境
单片机应用系统设计与一般电子系统设计的差别在于,它既要构成硬件逻辑电路,也要设计相应的支持软件。Keil C51是美国Keil Software 公司出品的51系列兼容单片机C语言软件开发系统,该系统全WINDOWS界面且库函数丰富,调试功能强大、生成代码率很高。因此,本课题软件的软件调试选用该开环境来完毕。
5 测试方案和测试结果。
5.1 测试方案
系统整体功能实现后,就要对其进行测试。设计使用一个夹子,将传感器夹在人的手腕处,这样可以减少因此身体抖动而产生的干扰。
5.2 模拟测试结果
一方面,使用信号源输入与脉搏信号相仿的信号,来测试整个系统的工作情况。我们设定输入信号幅度为5mv,偏置为2.5mv,则模拟测试结果如下表所示。
表5.1 模拟测试结果表
频率(HZ)
理论值
实际值
误差
0.5
30
30
0%
1
60
60
0%
1.5
90
90
0%
1.8
108
108
0%
2
120
120
0%
3
180
180
0%
3.2
192
192
0%
4
240
-
-
可见,在3HZ以前,系统的测试结果非常准确,但是在之后,由于滤波器的作用,结果无法显示。由此可以得知,系统的测频和滤波作用都实现了预期的效果。
5.3 实际测试结果。
单片机上电后会一方面对液晶进行初始化,然后直到检测完脉搏,才会出现显示内容。因此需要大约几秒的时间。我们选择了三位同学来测试本系统,其结果记录在下面的表中。其实际值由记录一分钟脉搏数得出。其测试结果如下表所示。
表5.2 实际测试结果登记表
项目
次数
测试结果
实际值
误差
测试者一
第一次
72
78
7.7%
第二次
71
9.0%
第三次
82
5.1%
第四次
77
1.3%
测试者二
第一次
75
68
10.3%
第二次
73
7.4%
第三次
66
3.0%
第四次
65
4.4%
测试者三
第一次
78
72
8.3%
第二次
76
5.6%
第三次
75
4.2%
第四次
72
0%
由上表可以看出,由于传感器的粗糙,在测量时,仍然存在着较大的误差,个别值的误差还比较大,但是结合模拟测试结果,可以看出,本设计基本上实现了对脉搏的测量。同时也知道,该设计仍有很多的局限性之处,需要进行改善设计。
附图1 原理图
附录3 主程序
#include <reg52.h>
#include "LCD_1602.c"
//定义周期测频法测式的周期数,这个值越大,结果越精确,但也需
//要更多的时间。
#define TF_TIMES 3
//频率暂存字
unsigned long g_Ftmp;
unsigned long g_Ftmp_All;
//单周期信号结束标志 0未测试完毕 1初始化 2测试完毕
unsigned int g_flag;
//定期器T0溢出次数记录
unsigned long g_T0count;
//每分钟心跳次数
unsigned int g_CountMinu;
unsigned char code string1[]="Your Pulse Is:";
void INT0ISR( void ) interrupt 0 // 外部中断0中断服务函数
{
//IE0 = 0; //外部中断0标志位清0 在边沿触发模式下
//会由硬件清零
TR0 = 0; //停止计数
if(1 != g_flag)
{
g_Ftmp = g_T0count * 65535;
g_Ftmp += (unsigned int)(TH0<<8
展开阅读全文