counter.c

来自「一种多功能频率计」· C语言 代码 · 共 52 行

C
52
字号
#include<reg52.h>
#include<counter.h>
unsigned long INT0_count=0;
 uchar Cflag;
 uchar Kflag=1;
unsigned long counter(uchar gate_time)
{ unsigned long  count=0;
  uint stop;
   Kflag=1;
  
  
  stop=gate_time*20;
  TH1=0x46; /*定时器1装处初值*/
  TL1=0x00;
	EX1=1; 
	ET1=1; /*开定时器中断*/
	EX0=1;/*开外部中断*/
	TR1=1; /*开定时器1*/
	EA=1;  /*开总中断*/

	while(Kflag&&(Cflag<=stop));
    EX0=0;    /*关外部中断*/
	TR1=0;
    EA=0;
    Cflag=0;
	count=INT0_count;    /*闸门时间内中断次数*/
	INT0_count=0;
    return count;
}
void time1() interrupt 3 using 1
{ 
  TR1=0;
  Cflag++; 
  TH1=0x46;
  TL1=0x00;                      
  TR1=1;
}

void int0() interrupt 0 using 0
{
	EX0=0;
	INT0_count++;
	EX0=1;
}

void int1() interrupt 2 using 2
{
	Kflag=0;
	INT0_count=0;//若产生中断则返回值为0,在measure_F函数中检测出有键按下
	EX1=0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?