找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2030|回复: 0
收起左侧

求大神帮我看一个测量脉搏一分钟跳动次数的程序 这个程序有问题 求大神指出问题所在

[复制链接]
ID:125010 发表于 2016-6-4 07:54 | 显示全部楼层 |阅读模式
#include <reg51.h>
unsigned char i,j,t,m,DelayTime,DispBuf[3];
unsigned int n,mb;
unsigned char code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管编码
unsigned char Disp_Buffer[]={0,0,0};
unsigned char code DSY_BIT[]={0x01,0x02,0x04};//位选
sbit K1=P1^0;
void Delay(unsigned char x) //延时函数
{
unsigned char i;
while(x--)for(i=0;i<100;i++);
}

main()  
{   unsigned char i;
TMOD=0x01;  定时器0工作方式一
IE=0X83;   
TH0=0xec; 定时器0定时5ms
TL0=0x78;
IT0=1; //下降沿出发
        while(1)
{
        if(K1==0) //按键按下后开始进行测试
        {Delay(10);
                if(K1==0)
                {
                          
       TR0=1;   //按键按下后定时器0开始

                }
        }
else
{for(i=0;i<3;i++)
        {
P2=DSY_BIT[i];
        P0=DSY_CODE[Disp_Buffer[i]];
                Delay(2);
  }
}
}

}
external0() interrupt 0
{
if(n==0)
mb=0;
else
mb=12000/n;  //计算每分钟脉搏数
Disp_Buffer[0]=mb%10;
mb=mb/10;
Disp_Buffer[1]=mb%10;
Disp_Buffer[2]=mb/10;
n=0;
}
Timer0() interrupt 1
{   TH0=0xec;  TL0=0x78; 定时5ms
  n++;
if(n==2000)  // 10s测不到,n复位
  n=0;         
}
通过测量两个脉搏的下降沿间隔时间 取倒数来计算一分钟的脉搏跳动次数,求大神帮我看看这个程序问题出在哪里了 帮我改改


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表