基于单片机控制的人体健康监测系统(文献综述+流程图+源程序) 第8页

基于单片机控制的人体健康监测系统(文献综述+流程图+源程序) 第8页
3.软件设计
3.1主程序流程图
主程序的设计有上图可以看出,首先对系统和外接芯片进行初始化,然后程序反复对键盘进行读取,如果有键按下,则转入相应的处理程序。按下K1键时,转入对心跳的检测并显示,按下K2键时,转入对人体温度的检测并显示 。按下K3键时,转入对血压的检测并将其值显示出来。按下K4键时,所有程序结束。当心跳,血压,温度检测完了之后,重新返回读键盘程序,读取键盘并执行相应的程序,直到有结束键按下,则主程序结束。重新运行时,要等到下次开机。
3.2 子程序流程图
3.2.1心跳检测流程  中断流程图
心跳程序流程图如上图,检测心跳采用中断完成,每次中断对心跳数进行加1,完成对心跳数的计数。心跳检测子程序,利用单片机中的两个定时计数器进行1分钟延时,检查心跳数为多少,如果超限则报警,提醒医生注意病人的心跳数。没有超限的话,通过单片机内部的处理程序将心跳数转换成BCD码,在通过CD4511译码通过8段LED数码管进行心跳数的显示,并将心跳数清0。这时判断有没有K5键按下,如果有,则结束子程序,返回子程序,如果没有,则继续对心跳数的测量。
3.2.2温度检测流程图
温度检测图如上图,由于单片机与DS18B20采用单总线模式,所以编程时严格按照DS18B20的读写时序,首先是将数据线拉高500微秒左右时间,然后释放数据线,然后单片机等待DS18B20发出60~240微秒的脉冲,一旦DS18B20发出该脉冲,单片机接收到了该脉冲,则发出对DS18B20进行初始化,先发出ROM指令,再发出RAM指令,在发温度 转化指令,再延时750微秒,单片机这时读取温度值,如果超限进行报警提醒医生,如果没有超限则将温度用数码管显示出来。最后判断是否有K5键按下如果有该键按下,则退出该子程序,返回主程序,如果该键没有按下则继续检测温度。
3.2.3血压检测流程图
血压检测程序包括中断程序和血压处理程序。利用传感器BP01检测到的模拟信号通过ADC0809转化成数字量,每当ADC0809转化完成就会发一个中断信号,单片机此时就会读取A/D转化值放入相应的内存地址,通过单片机内部的数据处理程序转化成相应的血压值。判断血压值是否超过人体正常血压值,如果超过正常血压值就报警提醒医生。如果没有则将血压显示出来。最后判断是否有K5 键按下,如果有则退出子程序,返回主程序;如果没有则继续检测血压。
3.3主程序清单
主程序:ORG 0000H
FLAG BIT 00H
LJMP 0030H
ORG 0003H
LJMP INT0;中断服务程序,用于测量心跳
ORG 0013H
   LJMP  INT1
0030:START:NOP
KAISHI:NOP
JNB P1.2,XINTIAO
JNB P1.3,WENDU
JNB P1.4,XUEYA
JNB P1.5,ENDD
SJMP KAISHI
 XINTIAO: SETB   EA
         SETB   EX0
LCALL XIN
        SJMP KAISHI
WENDU:LCALL  WENDU
www.751com.cn
DJNZ R7,LOOP
RET
D547: CLR C                  ;;双字节除法单字节除子程序
MOV   A, R4
SUBB   A,R7
JC  DV50
SETB   OV
RET
DV50:MOV     R6,#8        
DV51:MOV   A,R5
RLC A
MOV   R5,A
MOV   A,R4
RLC   A
MOV    R4,A
MOV   F0,C
CLR  C
SUBB  A,R7
ANL C,/F0
JC  DV52
MOV R4,A
DV52:CPL  C
MOV A ,R3
RLC A
MOV   R3,A
DJNZ   R6, DV51
MOV  A,R4
ADD  A,R4
JC   DV53
SUBB  A,R7
JC   DV54
DV53:INC  R3
DV54:CLR   OV
RET

BAOJING:NOP
KAI:JNB FLAG,NEXT
MOV R2,#200
DV:CPL P1.0
LCALL DELY500
LCALL DELY500

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有