家用智能心率检测仪(13)
时间:2025-04-11
时间:2025-04-11
单片机课设,运用AT89s52,
第四章 软件设计
4.1 软件总体设计
软件的编写对一个系统的控制至关重要,它将教授控制芯片怎么去进行相应的动作。这是数字电子计数的一大提点。
软件的设计主要在于单片机的控制程序编写,本设计涉及到单片机内部模块有:时钟定时、事件计数、内部中断、数码管驱动显示、键盘软件编写等程序的编写。程序的功能是控制整个系统的工作,通过单片机内部的定时/计数来设置定时事件与计数数值,通过时间与数值来进行相应的动作。
图4.1 软件流程图
单片机课设,运用AT89s52,
4.2 部分软件程序设计 4.2.1外部事件计数器程序设计
前端信号(即心率检测处理信号)为0~~5V的数字脉冲信号,单片机可以识别此类信号,AT89S52内部拥有三个16为的定时/计数器,T0、T1与AT89C51完全相同,故选择T0模式2事件计数模式,模式2为八位计数模式,计数上线为256,完全满足使用范围,初始化时设置为边沿触发模式。程序流程图如下。
图4.2 计数过程
4.2.2 定时中断程序设计
心脏跳动的频率称为心率(次/分钟),根据每分钟心脏跳动的次数来判断人体的健康程度,所以需要当时间到达时候,计数器将不再工作,因此,系统需要进行一分钟的定时时间,当一分钟的时间到达后,执行中断,禁止计数器工作,心跳次数显示为恒定值不变。
图4.3 定时中断流程图
单片机课设,运用AT89s52,
4.2.3 数码管驱动软件实现
数码管的驱动方式为动态驱动,程序上的编写实现要按照扫描形式进行,先打开一个,然后关掉,在打开第二个,在关掉,依次进行,每次点亮时间很短,并且需要进行延迟一点时间。
4.2.4心率程序设计流程
测量心率有模拟和数字两种方法。模拟方法是在给定的时间间隔内计算R波(或脉搏波)的脉冲个数,然后将脉冲计数乘以一个适当的常数测量心率的。这种方法的缺点是测量误差较大、元件参数调试困难、可靠性差。数字方法是先测量相邻R波之间的时间,再将这个时间转换为每分钟的心跳数测量心率的。这种方法的优点是测量精度高、可靠性好,并且能同时测量瞬时心率和平均心率。用数字方法测量心率的电路又分为两种类型:一种是使用一个可预置的计数器实现现除法电路;另一种是通过自动下降的时钟频率测量相邻R波之间的时间。
本次设计我们采用数字方法测量瞬时心率(Intantaneous Heart Rate,IHR)时,只要测出两相邻R波之间的时间(即心率周期),再将这个心率周期转换为每分钟的心跳数。如图所示,设心率周期为T秒,则瞬时心率的计算公式为
IHR=60/T (1-1)
如果用频率为f0的时钟脉冲作为测量时间基准,在R波由高电平变成低电平的瞬间触发外部中断INT0,开始对时钟脉冲计数,当R波再由高电平变成低电平的瞬间停止记数。设计数值为N,则T=N/f0秒,故瞬时心率的计算公式为
IHR=60f0/N (1-2)
我们用的单片机的时钟频率f0=12MHz时,IHR=60×12M/N=720M/N。平均心率(Average Heart Rate)的测量是将一定时间内测得的各个瞬时心率求平均值。设测得的瞬时心率为IHR1,IHR2, ,IHRn,则平均心率的计算公式为:
AHR=(IHR1+IHR2+ + IHRn)/n (1-3)
图4.4 心率处理波形
根据瞬时心率计算公式及图4.4,瞬时心率的计算应以12MHz的时钟频率作为时间基准,测量相邻两次心跳之间的时间,然后做除法运算。因此,瞬时心率计算电路应包
上一篇:2014文科复数总结与真题练习
下一篇:计算机串行通信基础串口通信