单片机中重要概念—中断,中断是放下当前事件取执行其他事件,其他事件执行完毕在回到当前事件。举例说明,老师正在忘我的讲课,下课铃声突然响起,讲课被打断,休息完成后,上课时间到,又继续的讲课。讲课是当前事件,休息是其他事件,最后又回到讲课。
以下是外部中断,51单片机开发板使用普中A2板。
//文件名是main.c 编译器sdcc
// sdcc main.c
//packihx main.c.ihx >main.c.hex
//使用stcgal烧录
#include<8052.h>
void intr__Init(){
IT0=0;//中断触发方式,IT0=0,低电平触发,IT0=1,下降沿触发
EX0=1;//外部中断0的中断允许位,EX0=1,允许,EX0=0;禁止
}
void delay_100ms()
{
unsigned char i, j;
i = 195;
j = 138;
do
{
while (--j)
;
} while (--i);
}
void LED_intr() __interrupt 0{//__interrupt中断关键字 0为中断号。
//LED_intr()中断函数,无返回值
delay_100ms();//防止按键抖动,时间大概10ms,这里是100ms。
P2_0=!P2_0;
}
int main(){
intr__Init();
EA=1;//中断总开关
while (1){
P2_5=0;
}
return 0;
}
实验结果:按下k3,P2_0闪烁, P2_5=0,常亮。