logo资料库

51单片机脉搏测量仪电路图和源程序.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
51单片机脉搏测量仪电路图和源程序 单片机脉搏测量仪电路图和源程序 本文主要讲了51单片机脉搏测量仪电路图和源程序,下面一起来学习一下 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 ; } }
分享到:
收藏