永发信息网

帮忙解释一下这个基于单片机的脉搏测量仪的源程序,是用c程序编的,有点儿看不懂,谢谢

答案:2  悬赏:60  手机版
解决时间 2021-02-08 00:37
  • 提问者网友:献世佛
  • 2021-02-07 09:04

void int0() interrupt 0
{
static uchar value;
EX0=0;//暂时关外部中断
if(timecount<8) //当连续两次检测时间间隔小于8*50ms=400ms不处理
{
value ++;
if(value >= 4)
{
value = 0;
}
TR0=1;//开定时器
}
else if(timecount <= 18)
{
value = 0;
time[i]=timecount*50+TH0*0.256+TL0/1000;//算出间隔时间

TH0 = 0x3c;
TL0 = 0xb0; // 50ms 12M
timecount=0; //50ms计数清零
i++;
flag_en = 1;
if(i==6)//记录到超过等于6次时间
{
i=1;//计数从1开始
displayOK=1; //测得5次开始显示
}
} else
{
flag_value = 0;
timecount = 0;
}
EX0=1;
}

void time0_int() interrupt 1
{
TH0 = 0x3c;
TL0 = 0xb0; // 50ms 12M
timecount++;//每50ms一次计数
if(timecount>25) //当超过25*50ms=1.5s没有检测到信号停止显示
{
i=0;//数据个数清零
timecount=0;//50ms计数清零
displayOK=0;//显示关
TR0=0;//定时器关
TH0 = 0x3c;
TL0 = 0xb0; // 50ms 12M
}
}

就是不是很清楚它的时间间隔是怎么回事儿,到底是怎么样一个原理在那里的
最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-02-07 09:41
外部电路我不了解,看程序应该是外部中断检测的脉冲,当有外部中断的时候进入处理函数,
定时器是50ms产生时机的,那个当两次检测时间小于400ms应该是滤出干扰的,当大于400ms小于900ms进入<=18的处理函数中,进行显示,先弄懂脉搏测量仪的原理,再看程序,希望对你有帮助,有什么问题还可以问我?
全部回答
  • 1楼网友:野味小生
  • 2021-02-07 10:15
自己写一个呗,也不是很麻烦,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯