📄 counter.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -