单片外部中断定时器中断

#include<reg52.h>
typedef unsigned int u16;
sbit k1=P3^2;
sbit led1=P2^0;
void init(){
	IT0=1;//外部中断0 的触发方式控制位 1表示为下降沿触发
	EX0=1;//打开ITO的中断允许
	ET0=1;//打开定时器0中断允许
	EA=1;//打开中断总开关
}
void delay(int i){
	while(i--);
}
void Int0() interrupt 0{//处理外部中断0
	delay(1000);
	if(k1==0){//检测按键
		TH0=0xfc;
		TL0=0x18;
		TR0=1;
	}
	else{
		TR0=0;
		led1=1;
	}
	
}
void ETO() interrupt 1{//处理定时器0中断
	static u16 i;
	TH0=0XFC;	//给定时器赋初值,定时1ms
	TL0=0X18;
	i++;
	if(i==1000){
		i=0;
		led1=~led1;
	}
}
	
void main(){
	init();
	while(1);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值