历史上的今天
今天是:2025年02月06日(星期四)
2021年02月06日 | 51单片机脉搏测量仪电路图和源程序
2021-02-06 来源:eefocus
51单片机脉搏测量仪电路图和源程序


脉搏测量仪的源程序
#include
unsigned char i,j,t,m,DelayTime,DispBuf[3];
//单片机脉搏测量仪源程序
//作者:吴汉清
unsigned int n,mb;
unsigned char code
BitTab[3]={0xf7,0xef,0xdf};//位驱动码
unsigned char code
DispTab[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};//字形码
sbit P3_0=P3^0;
void delay(DelayTime);
main() //主程序
{
TMOD=0x01; //定时器T0工作于方式1
TH0=0xec;
TL0=0x78; //T0定时时间为5ms
IE=0X83; //开中断
IT0=1; //外部中断0为边沿触发方式
TR0=1; //开定时器T0
for(;;) //脉搏指示灯控制
{
if(P3_0==0)
{
delay(200);
P3_0=1;
}
}
}
external0() interrupt 0//外部中断服务程序
{
P3_0=0; //点亮指示灯
if(n==0)
mb=0;
else
mb=12000/n; //计算每分钟脉搏数
DispBuf[2]=mb%10;//取个位数
mb=mb/10;
DispBuf[1]=mb%10;//取十位数
DispBuf[0]=mb/10;//取百位数
n=0;
}
Timer0() interrupt 1//定时中断服务程序
{
TH0=0xec;
TL0=0x78;
t=BitTab[j];//取位值
P3=P3|0x38;//P3.3-P3.5送1
P3=P3&t; //P3.3-P3.5输出取出的位值
t=DispBuf[j];//取出待显示的数
t=DispTab[t];//取字形码
P1=t; //字型码由P3输出显示
j++; //j作为数码管的计数器,取值0-2,显示程序通过它确认显示哪个数码管
if(j==3)
j=0;
n++;
if(n==2000)//10秒钟测不到心率,n复位
n=0;
}
void delay(DelayTime)//延时子程序
{
for(;DelayTime>0;DelayTime--)
{
for(i=0;i
;
}
}
史海拾趣
|
这是客户提出的要求:什么产品可以在27层楼上看清楼下停的一辆车, 我亲自测试过一些号称夜间可视100米的红外一体式枪机,结果非常郁闷,试了好几个机器,看楼下都是漆黑一片,而且雪花很重。但是如果把这些机器拿到地面去用效果会好很多,我想大 ...… 查看全部问答> |
|
我要设计一个通过角度传感器检测到被手动摆动了的小木棍的角度,然后通过单片机分析再去驱动一个步进机,转到同样的角度。 请问一下,我该用什么角度传感器呢??我在网上查了很多资料,发觉那些角度传感器都很贵的,对我们学生来说太贵了。那位朋 ...… 查看全部问答> |
|
跪求~~~2008年黑龙江省电子设计大赛赛题A题分析或者设计文档 本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 跪求~~~2008年黑龙江省电子设计大赛赛题A题分析或者设计文档 各位大侠99我吧 … 查看全部问答> |
|
我非常想买一套这个开发板,但价格有点贵。版主能否组织一次团购活动,我看您去年的该板子的团购很成功,不知道现在想买的人多不多。 谢谢。… 查看全部问答> |




