新手上路 
 
	- 积分
 - 41
 
        - 金钱
 - 41 
 
       - 注册时间
 - 2018-10-10
 
      - 在线时间
 - 4 小时
 
 
 
 | 
 
1金钱 
这是我写的频率计代码,我用LCD屏幕显示就只显示了一个1就没有了,下图是我的光敏二极管模块
 
 
 
 
 
 
 
 
 
 
 
 
 
#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;//开总中断 
} 
 
 
 
 
 |   
 
 
 
 
 
 |