优先级低的中断在执行时,如有高优先级中断到达,开始执行高优先级中断。等高优先级结束后,再返回处理低优先级。
如果你一直在不断地触发外部中断,那等于让程序不断地执行外部中断,就没时间去处理显示了。
程序说明:51单片机定时器0工作于方式一,定时50ms中断一次晶振为12M
#include
void
main
{
TOMD
=
0X01;
//配置定时器0工作于方式一
TH1
=
(65536-50000)/256
//高八位装入初值
TL1
=
(65536-50000)%256
//低八位装入初值
ET0
=
1
//开定时器0中断
EA
=
1
//开总中断
TR0
=
1
//启动定时器0
while(1)
{
;
}
}
void
Timer0_int()
interrupt
1
{
//重新装初值
TH1
=
(65536-50000)/256
//高八位装入初值
TL1
=
(65536-50000)%256
//低八位装入初值
}
/***************************************************************************************************************/
上面是比较好理解的。如果实在要求简洁的话,看下面的,跟上面功能一样
#include
void
main
{
TOMD
=
0X01;
//配置定时器0工作于方式一
TH1
=
0x3c
//高八位装入初值
TL1
=
0xb0
//低八位装入初值
IE
=
0x82//开总中断并开定时器0中断
TR0
=
1
//启动定时器0
while(1)
{
;
}
}
void
Timer0_int()
interrupt
1
{
//重新装初值
TH1
=
0x3c
//高八位装入初值
TL1
=
0xb0
//低八位装入初值}