51单片机各种中断设置
外部中断系统框图:
这些中断请求源的中断请求标志位分别有特殊功能寄存器TCON和SCON的响应位锁存
1、TCON寄存器
与中断有关的是低四位。
1)IT0和 IT1——外中断请求触发标志位:
0——为低电平触发;
1——为下降沿触发
可由软件置位和清除
2)IE0 和 IE1——外部中断请求标志位
1——表示有中断请求,CPU要响应中断请求,跳向中断服务程序,按优先级处理中断程序,跳入中断服务程序时,由硬件清0;
0——表示没有中断请求。
复位值TCON都为0。
SCON为串口控制寄存器,详见串口。
2、中断允许寄存器IE,可以位寻址,复位为0:
各位为1时允许相应位的中断,为0时禁止响应中断。EA是总中断开关。
注意: 单片机响应外部中断后,会自动将外部中断标志位清0,。但由于外部中断请求触发方式的特点,在使用外部中断中要避免重复请求问题。
外部中断0编程步奏;
1、设置外部中断请求允许位,设置IE寄存器中的EA EX0位;
2、选择合适的外部中断请求方式,即设置TCON中的IT0 (或者IT1);
3、编写中断服务函数。
实例:
main()
{
IT0 = 1; //设置外中断0为下降沿触发
EX0 = 1; //开放外部中断0
EA = 1; //开总中断
while (1)
;
}
void ext_interrupt(void) interrupt 0
{
delay(5);
if (button0 == 0) {
led = !led;
}
}