⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmq.c

📁 MCS51外部中断1和定时器T0的应用
💻 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 + -