(五)中断代码仿真
举个例子
沿着按键检测的那段来,来个例子,使用外部中断来进行按键检测,每按一次实现LED灯反转,也就是按一次亮,再按一次灭。
代码
#include "reg52.h"
sbit P20 = P2^0;
//-----------------------------------------
//中断服务程序
//INT0中断入口
void exint0() interrupt 0
{
//将LED接的端口取反
P20 = !P20;
}
//-----------------------------------------------
void main()
{
//INT0即P3^2口,定义在reg52.h头文件中
INT0 = 1;
设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
//这里采用仅下降沿
IT0 = 1;
//使能外部中断0
EX0 = 1;
//使能所有中断
//这里一定要使能所有中断,如果不使能,其他中断即使使能了也没用
EA = 1;
//死循环,不多说
while (1);
}
仿真
用Proteus绘制对应的电路,进行测试