第一范文网 - 专业文章范例文档资料分享平台

基于单片机的心率设计 - 图文

来源:用户分享 时间:2025/8/26 4:54:02 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

附 录

参考程序

心率监控智能系统的信号采集、处理、显示的程序 #include #define uint8 unsigned char #define uint16 unsigned int

#define TIMER0_HIGHT 0xDC //设置定时器0工作方式1自动装载初值,定时10ms,Fosc=11.059200MHZ #define TIMER0_LOW 0x00 sbit keyin = P3^1;

//按键输入

bit starttest; //启动测心率标志 uint16 cnt10ms; //10ms计数器 uint8 cnt1s; //1秒计数器

uint8 Pulsecnt; //心跳次数,计数器 uint8 Pulsenum; //上次测试的心跳次数

uint8 codeDispCode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳数码管段码表 void Init_Extint(void); void TimerInitProc(); void initvar(); void Init_System(void);

void Display(uint8 chose_dat, uint8 dat);

void ShowDisp(uint8 tPulsenum, uint8 tPulsecnt, uint8 tcnt1s); void DelayMs(uint8 Ms); void main() {

Init_System(); //初始化 while(1) {

28

}

}

ShowDisp(Pulsenum, Pulsecnt, cnt1s); //显示

/*******************************************************************************

* 函 数 名: Exti0_interrupt

* 函数功能: /INT0引脚下降沿进入中断 * 入口参数: 无 * 返 回: 无

*******************************************************************************/

void Ext0_interrupt(void) interrupt 0 { }

/******************************************************************** 函数功能:定时器/计数器0中断处理 入口参数:null 返 回:null 备 注:null

********************************************************************/ void Timer0IntProc() interrupt 1 {

TH0 = TIMER0_HIGHT; //设置定时器0高字节初值 TL0 = TIMER0_LOW; //设置定时器0低字节初值 if(++cnt10ms == 100) {

cnt10ms = 0; if(starttest == 1)

//处在测试状态

29

if(starttest == 1) { }

//处在测试状态

Pulsecnt++; //来一次中断心跳计数器加1

//1s计时到

}

}

{ }

//检测按键

if(++cnt1s == 60) { }

starttest = 0; //一次检测完毕,等待下一次检测 Pulsenum = Pulsecnt; //保存测得心跳值

//一分钟时间到

if(keyin == 0) { }

if(starttest == 1) //处在测试状态 { } else { }

starttest = 1; cnt10ms = 0;

//不在测试状态,开始新的一次测试

cnt10ms = 0; cnt1s = 0; Pulsecnt = 0;

//复位测试值,重新开始测试

/////////////////////////End of Timer0IntProc//////////////////////// void Init_Extint(void) {

IT0 = 1; //外部中断1设置为下降沿触发 IE0 = 0; //标志位清0 EX0 = 1; //允许外部中断1 }

/******************************************************************** 函数功能:定时器/计数器初始化

30

入口参数:null 返 回:null 备 注:null

********************************************************************/ void TimerInitProc() {

TMOD &= 0xF0; TMOD |= 0x01;

//设置定时器0,方式1:16位定时器

TH0 = TIMER0_HIGHT; //设置定时器0高字节初值 TL0 = TIMER0_LOW; //设置定时器0低字节初值 TR0 = 1;

//启动定时器0 //开定时器0中断

ET0 = 1; }

EA = 1; //开总中断

/////////////////////////End of TimerInitProc//////////////////////// void initvar() { }

void Init_System(void) {

Init_Extint(); TimerInitProc(); }

/******************************************************************************

* 函 数 名:Display(uchar chose_dat,uchar dat)

initvar(); starttest = 0; cnt10ms = 0; cnt1s = 0; Pulsecnt = 0; Pulsenum = 0;

31

搜索更多关于: 基于单片机的心率设计 - 图文 的文档
基于单片机的心率设计 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0zk941gxmt6zh7s4fk1k_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top