内容发布更新时间 : 2024/11/15 6:58:09星期一 下面是文章的全部内容请认真阅读。
51单片机脉搏心电测量仪设计(含程序 原理图)
实物图电路图脉搏测量仪的源程序#include unsigned char i,j,t,m,DelayTime,DispBuf[3];//单片机脉搏测量仪源程序//作者:吴汉清unsigned int n,mb;unsigned char codeBitTab[3]={0xf7,0xef,0xdf};//位驱动码unsigned char codeDispTab[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};//字形码sbit P3_0=P3^0;void
delay(DelayTime);main() //主程序{TMOD=0x01; //定时器T0工作于方式1TH0=0xec;TL0=0x78; //T0定时时间为5msIE=0X83; //开中断IT0=1; //外部中断0为边沿触发方式TR0=1; //开定时器T0for(;;) //脉搏指示灯控制
{if(P3_0==0){delay(200);P3_0=1;}}}external0() interrupt 0//外部中断服务程序{P3_0=0; //点亮指示灯
if(n==0)mb=0;elsemb=12000/n; //计算每分钟脉搏数DispBuf[2]=mb;//取个位数
mb=mb/10;DispBuf[1]=mb;//取十位数
DispBuf[0]=mb/10;//取百位数n=0;}Timer0() interrupt 1//定时中断服务程序{TH0=0xec;TL0=0x78;t=BitTab[j];//取位值P3=P3|0x38;//P3.3-P3.5送1P3=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;}}本文素材来自“51黑电子论坛”,下载资料请前往该论坛!