基于51单片机的脉搏测量仪

用单片机测量脉搏(即心率),并加以显示,是很容易做到的事情。
这和测量频率是同一个原理,只是显示的时候,要按照每分钟的脉冲个数来显示。

硬件可采用51单片机,像 AT89C2051 这样的 20 引脚的单片机芯片也已足够用。
外接三位数码显示,脉搏脉冲输入端放在 P3.2(INT0),一旦输入下降沿,即引起一次中断。

在单片机内部,用 T0 定时 5ms。
在 T0 定时中断函数里面,动态显示一位数码,并将变量 T0count 加一。
如果 T0count 加到了 2000,说明有 10 秒钟没有输入来自脉搏的脉冲,那么就把显示清零。

变量 T0count,实际上是两次脉冲的之间的 5ms 的个数,即以 5ms 为单位的脉搏周期的时间。利用 T0count,即可换算出每分钟的脉搏次数。

当有脉搏输入时,即进入了 INT0 中断函数,在这里,把 T0count 变换成每分钟的脉搏次数,送到显示缓冲区。
然后把 T0count 清零。

程序采用了流行的 C 语言编制,用 Proteus 仿真效果如下图所示。



图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/bfbfc7a96d4613f8ca130ca0.html

图中的按键,可以代表脉搏脉冲输入,每按下一次,数码管都会显示出每分钟的频率数值,如果 10 秒钟没有按键,数码管将显示0。

为了精确的测试,在图中加入了一个信号发生器,输出 5V 的方波。
图中的方波频率是 4Hz,即每分钟有 240 个脉冲,故此单片机测量仪显示出来 240;
当把方波频率调到 2Hz,即每分钟有 120 个脉冲,单片机测量仪显示出来就是 120;
当把方波频率调到 1Hz,即每分钟有 60 个脉冲,单片机测量仪显示出来就是 60;
输入其它的频率,对应的显示,都很准确,就不必细说了,可见下图。


http://zhidao.baidu.com/question/193818160.html?push=core

你可能感兴趣的:(非同一般)