请问用光敏二极管测试LED灯的闪烁频率该怎么测试

2019-07-21 08:38发布

这是我写的频率计代码,我用LCD屏幕显示就只显示了一个1就没有了,下图是我的光敏二极管模块
搜狗截图18年10月27日1821_1.png


#include "speed.h"

uint dat=0,r=0,time,pulse;
bit flag=0;


void INT0_ISR() interrupt 2 //检测到一个低电平,一个低电平代表闪烁一次
{
        
  dat++;//测得的脉冲数
        if(flag)//定时到了一秒
        {
        pulse=dat;
        dat=0;
        }
        EX1=1;          //允许外部中断1
}




void timer1_ISR() interrupt 3
{
        TR1=0;
        TH1=0x3C;
  TL1=0xAF;
  time++;
  if(time>=19)//定时到了1秒
  {
                flag=1;
                time=0;
        }
        TR1=1;
}


int countspeed()
{
                r=pulse;
                return pulse;
}


void speedinit()
{
        EA=0;
  TMOD=0x10;//T1做定时器 16位
  TH1=0X3C;
  TL1=0XAF; //初值15535 定时50 000us
        TR1=1;//启动T1计数
        IT1=0;//外部中断电平触发
        EX1=1;//允许外部中断
        ET1=1;//开放T1中断请求
        EA=1;//开总中断
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。