📄 fmq.c
字号:
#include "reg52.h"
#include "intrins.h"
unsigned char f=0;
sbit beep=P3^4;
sbit key=P3^2;
unsigned int timer=0;
void delay(unsigned int dly)
{
while(dly--)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
void int0(void) interrupt 2//外部1中断处理程序
{
EX1=1; //关外部中断
TR0=0;
delay(0x1ff);//延时去抖动
while(key==0);
f+=1;//如果有按键按下,定时初值自动加1
TH0=f;
TL0=f;//TL0
TR0=1;
EX1=1;
}
void timer0() interrupt 1
{ ET0=0;//开总中断
timer++;
ET0=1;//开总中断
}
void initport(void) //初始化外部中断1
{
IT1=1;//下降沿触发
EA=1;//开总中断
EX1=1;//开外部中断1
}
void main(void)
{
TMOD=0X02;//定时器0,工作方式2自动重装初值
initport();//初始化外部中断1
TH0=f;
TL0=f;//TL0
TR0=1; //启动定时器0
EA=1;//开总中断
ET0=1;//开定时器0中断
while(1)
{ if(timer==1)
{
timer=0;
beep=~beep; //如果定时时间到,将P3^4端口取反
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -