单片机C语言,如何使用多个中断。

Python013

单片机C语言,如何使用多个中断。,第1张

优先级高的中断在执行时,如有低优先级中断到达,低优先级被挂起。等高优先级结束后,再处理低优先级。

优先级低的中断在执行时,如有高优先级中断到达,开始执行高优先级中断。等高优先级结束后,再返回处理低优先级。

如果你一直在不断地触发外部中断,那等于让程序不断地执行外部中断,就没时间去处理显示了。

程序说明: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

//低八位装入初值}