首先,你要知道中断都有哪些?它们的入口地址是什么
外部中断0,定时器0,外部中断1,定时器1,串口中断。
这些中断定时器都有优先级的,他们的优先级是:0,1,2,3,4(对应上一句)
入口地址分别为:0003H,000BH,0013H,001BH,0023H
其次,你要知道中断是如何产生的?
比如说,外部中断0,它的外部接口就是P3.2,当P3.2口有低电平或者下降沿触发的时候,外部中断0就产生了。具体要用电平触发还是边沿触发,这就要设置TCON。
再次,你要知道中断产生后,跑哪里去了?
当中断产生后,如外部中断0产生了,单片机检测到后,就会跳到相应的外部中断0的处理子函数去处理这个中断,没有这个子函数则表示不处理。C语言写的外部中断0的模式如:ext0_intrupt()interrupt 0 {}
而汇编的模式则如:ORG 0000H
AJMP MAIN ;跳到主程序
ORG 0003H ;定义外部中断0服务程序入口地址
AJMP OUTINT0 ;跳到外部中断0处理函数
...
MAIN: ...
OUTINT0: ... ;外部中断0处理函数
RETI
END |