基于单片机心率检测仪.docx
《基于单片机心率检测仪.docx》由会员分享,可在线阅读,更多相关《基于单片机心率检测仪.docx(17页珍藏版)》请在冰豆网上搜索。
基于单片机心率检测仪
单片机原理与应用说明书
题目:
系部:
专业:
班级:
学生姓名:
学号:
指导教师:
年月日
目录
一引言1
二系统设计要求2
2.1设计要求2
2.2系统组成原理框图2
三系统硬件电路组成3
3.1硬件设计思路3
3.2硬件电路组成3
3.2.1计数开关电路4
3.2.28279(或8255A)芯片电路4
3.2.34位LED显示器电路4
四心率检测仪程序设计5
4.1课题设计思路5
4.2实验原理图5
4.3主程序设计5
4.4中断服务程序设计8
五总结与体会10
六参考文献10
引言
心血管疾病是当今发达国家死亡率占第一位的重要疾病,在我国也是死率最高的一类疾病,世界卫生组织已将其列为2l世纪危害人类健康的头号杀手[1]。
随着人们生活水平的提高,工作方式以及膳食结构的变化,源于心脏与循环系统的不健康而导致的心血管疾病已逐渐成为威胁人类健康的主要疾病。
心血管疾病是一种常见病、多发病,而且有极高的死亡率。
据统计,1990年全球大约有1400万人死于心血管疾病,预计到2020年,死于心血管疾病的患者将达到2500万人[2]。
目前我国城市人口中每5个成年人中就有1个人不同程度的患有心血管面的疾病。
中国每年有100万人死于脑卒中,并且有更多的人致残。
特别是在近,中国、日本和新西兰研究人员发现高血压是东方人脑卒中的主要原因[3]。
近来,心血管疾病的发病率逐年提高,患者的年龄却逐年降低,心血管疾病对人类身体健康产生的威胁也越来越大。
人们希望通过早期采取一些积极的防治手段,使自己拥有健康。
同时,中国已经进入了老龄化社会,越来越多的老年人受到慢性疾病的困扰,如高血压、冠心病、慢性支气管炎等。
老年慢性疾病通常是终身性疾病,疼痛和昂贵的医疗费用不仅严重影响病人的生活质量.而且占用了大量医疗卫生资源,带来不堪重负的社会经济负担。
要避免和减少高血压、心脏病这类心血管疾病给人类健康带来的严重危害,有效的早期预防、早期诊断和早期治疗方法和设备,以及快速的发病后的救治手段都是非常重要的,这些也正是目前广大医学界专家正在共同努力研究的重点,改进对心血管疾病的预防及治疗手段已经成为现代医学界个大难题。
目前,现代的医学电子仪器已不仅仅是单纯的医学电子测量仪器硬件系统,而是基于电子技术、计算机技术、数字信号处理技术的生理量检测和分析系统。
以往专门测量心率值的仪器较少,能提供心率变异指标的仪器更是寥寥无几。
人们为了知道自己的运动或劳动强度是否超负荷,尤其是老年人或运动员等,他们都得赶到医院而不能实时测量和预知。
而心电仪的出现,使心电图机进入家庭变成了可能,但基于心电工作站的模式,使个别地区的患者因医院分析诊断系统的不健全,而变得不适用。
因此,一种性能优良,带有自动监测、报警等功能,适合在家庭和社区条件下使用,同时适用于有隐性疾患的亚健康人群及各种作业环境下的劳动者,在其心率变异时,能及时发出警示的安全监护器,而又符合我国人均收入水平不高这一国情的心率监测系统的研制显得尤其重要。
基于这一目的,我设计的课题就是便携式人体心率监测系统的设计。
2系统设计要求
2.1设计要求
1)采用单片机为核心器件,构成简易心率检测仪。
2)设病人手指中指端的脉跳经过压力传感器检测后已变换成脉冲信号,该脉冲信号经单片机内的定时器∕计数器计数后,用四位数码管显示病人每分钟脉跳数(最高位恒为0),以实现对病人心率进行连续检测。
3)设置一个开关(开机时接低电平),当该开关接高电平,经过1分钟后,数码管开始现实病人每分钟脉跳数,以后每隔1分钟数据更新一次。
当开关再置低电平时,心率检测仪则停止工作(数码管显示全零)。
2.2系统组成原理框图
系统组成如图1所示,本设计以单片机单片机
单片机是单片微型计算机(Single-ChipMicrocomputer)的简称,是一种将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)采用超大规模集成电路技术集成到一块硅片上构成的微型计算机系统。
[全文]为主控信号,外辅少量硬件电路,完成数据处理、记忆、显示、通信等功能。
3系统硬件电路组成
3.1硬件设计思路
根据设计要求,硬件采用实验室的单片机实验系统,设计思路如下:
1)通过按按钮,模拟产生脉跳信号。
为克服按钮的抖动,脉冲经消抖电路输入单片机。
2)脉冲信号计数可采用定时器∕计数器,也可由并行口实现计数。
若采用定时器∕计数器计数,则安排由定时器∕计数器0进行定时,由定时器∕计数器1进行计数。
3)选择8279(或8255A)作为LED显示器的译码驱动电路,实现每分钟脉跳显示。
4)设置一个计数开关,接P1.0引脚,开机时置低电平。
当开关接高电平时,心率检测仪开始计数和显示,当开关由高电平变低电平时,心率检测仪停止工作。
3.2硬件电路组成
3.2.18279(或8255A)芯片电路(如图3.2.1所示)
3.2.1
3.2.1本图片为8279引脚图
[1]
8279采用单±5V电源供电,40脚封装。
DB0~DB7:
双向数据总线,用来传送8279与CPU之间的数据和命令。
CLK:
时钟输入线,用以产生内部定时的时钟脉冲。
RESET:
复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序
时钟前置分频器被置为31,RESET信号为高电平有效。
3.2.24位LED显示器电路(如图3.2.2所示)
LED数码管(LED Segment Displays)是由多个发光二极管封在在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
右图什阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
LED数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
下页将介绍常用LED数码管内部引脚图片
图3.2.2这是一个7段两位带小数点10引脚的LED数码管
4心率检测仪程序设计
4.1课题设计思路
根据课题要求,要计量每分钟的脉跳数(由按动按钮模拟),最简单的方法是单片机内部两个定时器/计数器,其中定时器/计数器0用来产生一分钟的定时,定时器/计数器1用来记外部脉冲数。
按此构思,程序由主程序和中断服务程序两大部分组成。
4.2实验原理图
4.3主程序设计
主程序有两部分组成,前半段实现初始化,包括8279芯片初始化、定时器∕计数器初始化、显示缓冲区初始化、设置堆栈指针以及开中断等。
主程序后半段构成循环,有两个功能:
一是按课题要求判断开关是否接高电平,如接高电平,则计数;如接低电平,则停止计数。
二是显示,有调用显示子程序完成。
1)主程序框图如下
2)参考程序如下:
ORG0000H
LJMPMAIN
ORG000BH
LJMPCTCO
ORG0030H
MAIN:
LCALLP8279;8279初始化
LCALLPCTC;定时器∕计数器初始化
LCALLPRAM;RAM区初始化
MOVSP,#2FH
SETBEA;允许中断
SETBETO
LOOP0:
LCALLDISP
JNBP1.0,LOOP;判断开关是否接低电平,如是,则等待
SETBTRO;如为高电平,则开始定时及计数
SETBTR1
LOOP:
LCALLDISP
JNBP1.0,NEXT;判开关是否恢复低电平,如是,转NEXT
SJMPLOOP;否则,继续工作
NEXT:
CLRTRO;开关恢复为低电平,则关闭定时器∕计数器
CLRTR1
MOV60H,#00H;显示清零
MOV61H,#00H
SJMPLOOP0
P8279:
;8279初始化子程序
PUSHDPH;保护现场
PUSHDPL
PUSHACC
MOVDPTR,#0FF82H
MOVA,#00H;置8279工作方式(8个字符显示,左入口;
;编码扫描键盘,双键锁定)
MOVX@DPTR,A
MOVA,#2FH;置键盘扫描速率
MOVX@DPTR,A
MOVA,#0C1H;清除LED显示
MOVX@DPTR,A
POPACC;恢复现场
POPDPL
POPDPH
RET
PCTC:
MOVTH0,#4CH;定时器∕计数器0定时50ms
MOVTL0,#01H
MOVTH1,#00H
MOVTL1,#00H
MOVTMOD,#51H;定时器∕计数器0定时,工作方式1;
;定时器∕计数器1计数,工作方式1
MOV7EH,#04H;04B0H=120050ms×1200=60s
MOV7FH,#0B0H
RET
PRAM:
MOV60H,#00H;显示缓冲区清零
MOV60H,#00H
RET
DISP:
MOVR0,#61H;显示子程序
MOVR4,#00H
MOVR2,#02H
DIS1:
MOVA,@R0
ANLA,#0FH
MOVR5,A
LCALLDISLED
INCR4
MOVA,#R0
ANLA,#0F0H
SWAPA
MOVR5,A
LCALLDISLED
DECR0
INCR4
DJNZR2,DIS1
RET
DISLED:
;显示字符子程序
PUSHDPH;保护现场
PUSHDPL
PUSHACC
MOVA,#80H;置显示起始地址
ADDA,R4;加位置偏移量
MOVDPTR,#0FF82H
MOVX@DPTR,A;设置显示位置
MOVDPTR,#LEDSEG;置显示常数表起始位置
MOVA,R5
MOVCA,@A+DPTR;查表
MOVDPTR,#0FF80H
MOVX@DPTR,A;显示数据
POPACC
POPDPL
POPDPH
RET
LEDSEG:
DB3FH,06H,5BH,4FH,66H;‘0,1,2,3,4’
DB6DH,7DH,07H,7FH,6FH;‘5,6,7,8,9’
DB77H,7CH,39H,5EH,79H,71H;‘A,B,C,D,E,F'
4.4中断服务程序设计
1)中断服务程序功能:
a)实现一分钟定时,初始化中设定时器∕计数器0用作定时,定时时间为50ms,同时用内存单元7EH、7FH配合做计数器,设7EH、7FH单元的初始值为04B0H(相当于十进制数1200),每进入一次中断,将7EH、7FH单元内容减1,减为0时为一分钟(50ms×1200=60s)。
b)满一分钟后,读定时器∕计数器1中TL0的值(每分钟脉跳数一般不会超过255跳),即为每分钟脉跳数。
初始化时将定时器∕计数器1设置为计数工作方式。
c)将TL0计得的二进制数转换成十进制数,并将之送至显示缓冲区,其中百位数置60H单元,十位数和个位数61H单元,以使显示子程序(在主程序中)实现每分钟脉跳数显示。
其中单字节二进制数转换成十进制数的设计思路较为简单,只要将该二进制数先除以100(64H),后再将余数除以10(0AH),即可依次得十进制数的百位、十位和个位。
2)中断服务程序框图
N
Y
3)每分钟刷新一次显示数据心率检测仪的具体程序如下:
CTCO:
PUSHDPH
PUSHDPL
PUSHACC
MOVTH0,#4CH
MOVTL0,#01H
DEC7FH
MOVA,7FH
CJNEA,#0FFH,CTCO1
DEC7EH
CTCO1:
MOVA,7EH
ORLA,7FH
JNZCTCO2
MOV7EH,#04H
MOV7FH,#0B0H
MOVA,TL1
LCALLCHAN;调数据转换子程序
MOVTH1,#00H;可不用,因每分钟脉跳不会超过255次
MOVTL1,#00H;TH1内容恒为0
POPACC
POPDPL
POPDPH
CTCO2:
RETI
CHAN:
MOVB,#64H;数据转换子程序
DIVAB
MOV60H,A
MOVA,#0AH
XCHA,B
DIVAB
SWAPA
ADDA,B
MOV61H,A
RET
五总结与体会
通过此次课程设计,使我更加扎实的掌握了有关高频电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。
同时,设计让我感触很深。
使我对抽象的理论有了具体的认识。
通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电路的性能等等,掌握了焊接的方法和技术,通过查询资料,也了解了收音机的构造及原理。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。
果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
六参考文献
[1] 李朝青.单片机原理及接口技术(简明修订版).杭州:
北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京:
北京航空航天大学出版社,1994
[3] 阎石.数字电子技术基础(第三版).北京:
高等教育出版社,1989
[4] 廖常初.现场总线概述[J].电工技术,1999
[5]阎石。
数字电子技术基础(第四版)[M].北京高等教育出版社,2002
[6]何立名。
单片机高级应用与设计[M].北京航天航空大学出版社,1999
[7]李泽君.基于心电与脉搏信息的心血管功能检测与监护系统的研究.2004
[8]本王介.红外技术与生物医学[J].中国医疗器械信息2001
[9]赵治栋,唐囱宏,赵知劲。
基予Hilbert-HuangTransform的心音信号谱分析瑟[J]2005
[10]善文,秦树人,汤宝平.Hilbert-Huang变换的滤波特性及其应用[J].2004
[11]程光指动脉搏动波光电传感器的研制[J]2001
[12]彭秀华.KeilCx51V7.1单片机高级语言程序与uVision2应用实践[M]2004
[13]林志琦.基于Proteus的单片机可视化软硬件仿真[M].北京:
北京航空航2006