基于单片机的心率计的设计

专科毕业设计说明书(论文)第I页 共 I页

图 3-9 显示电路

4 系统软件设计

基于单片机心率计的软件设计主要由主程序流程图、中断程序流程图及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而心率计的程序既有较复杂的计算(时间t内的平均值),又要求精细计算程序运行时间(动脉搏动时间)。但是由于本专业只学习了汇编语言,所以采用汇编语言编写软件。

4.1 测量计算原理

本电路把心跳脉冲输入给计数器之前,作了100倍频处理,组成方框图。假设心跳每分钟为n次,相当频率n/60Hz,这时,只要计数闸门设置为0.6秒,则

专科毕业设计说明书(论文)第I页 共 I页

能准确显示出心率来。如n=76,100倍频后频率为127Hz,通过脉冲为127×0.6=76,正好与实际心率相符。

设K个连续的动脉搏动所用时间为t(秒),在时间 t 内心率的平均值为n(次/分),则:

n = 60K/t (1)

为了能够控制用单片机计算机测定t值,我们利用脉动信号控制(在K个连续的脉搏周期内)单片机的定时/计数器T0定时(定时1ms中断一次),工作寄存器对中断次数进行计数,然后读取计数值。设该计数值为N,于是有:

t = 0.001N (2) 把(2)带入(1)得到:

n = 60k/0.001N =60000K/N (3)

式(3)就是利用单片计算机测定心率值的数学模型(误差小于0.4%)。在该单片机系统中,K = 1~~9(用户可通过按键自行设置)。可测心率范围20次/分~~200次/分(N的范围:300~~30000).

4.2 主程序流程图

程序流程图如图5-1所示。程序初始化是每个单片机程序所必备的,它的主要任务是确定程序人口和中断人口地址。接下来是显示为全零,主要目的是为了区分是否有信号送人,当没有信号送人时,显示为全零,则说明心率计没有工作,反之,则正常工作。定时lOOms是设计中比较重要的一部分,它主要是为采样6s打下基础。设计中运用定时器T1的定时功能来实现100s的定时,等待中断占用了程序执行的大部分时间,它主要是一个死循环语句,只有当中断条件满足时,才执行中断服务子程序,对计数的结果进行累加,累加之后,判断采样的次数,如果采样未满60次,说明不到6 s,返回继续采样、等待中断,直到采样60次为止,之后把6s内采样得到的次数由二进制数转化为十进制数,送到数码管进行动态显示。

STEB ETO STEB EA STEB TR0 STEB TR1

专科毕业设计说明书(论文)第I页 共 I页

PCTC: MOV TH0,#15H MOV Tl0,#0A0H MOV TH1 ,#00H MOV T11, #00H MOV TMOD,#51H

MOV 7FH,#0AH ;OAH=10 10*60ms=0.6s CTCO: CTCO1: CTCO2:

RET

PUSH DPH PUSH DP1 PUSH ACC

MOV TH0,#15H ;

MOV Tl0,#0A0H DEC 7FH MOV A,7FH

CJNE A, #0FFH, CTCO1 MOV A, TL1

ADDC A, R2 MOV R2, A DEC R1

MOV A, R1 JNZ CTCO2 MOV B, #03H MOV A, R2 DIV AB LCALL CHAN MOV TL1, #00H POP ACC POP DP l POP DPH RETI

专科毕业设计说明书(论文)第I页 共 I页

CHAN: MOV B, #64H DIV AB MOV 60H, A MOV A, #0AH XCH AB DIV AB SWAP A ADD A, B MOV 61H, A

RET

联系客服:779662525#qq.com(#替换为@)