51单片机学习记录(10) “外部中断”
用外部中断0控制按键点亮led灯
由上一章的内容可以知道寄存器TCON中的IT0和IT1为外部中断的触控制位,从图中也可以看到这两个控制位位于P3^2 和 P3^3口,同时也是K3,K4控制口,因此我们可以通过K3或K4来触发外部中断
现在来编写程序
#include <reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit led = P2^0;
sbit k3 = P3^2;
void delay(u16);
void Init0(); //声明外部中断0的初始化函数
void main()
{
Init0();
while(1);
}
void delay(u16 i)
{
while(i--);
}
void Init0()
{
EA = 1; //打开总中断
EX0 = 1; //打开外部中断0
IT0 = 0; //设置外部中断0的触发方式
}
/*配置外部中断0的服务函数*/
void Start0() interrupt 0
{
delay(1000);
if(k3 == 0)
{
{
led = ~led;
}
}
}