所谓“中断”是处理事件的一个“过程”,这一过程一般是由计算机内部或外部某件紧急事件引起并向主机发出请求处理的信号,主机在允许的情况下响应请求,暂停正在执行的程序,保存好“断点”处的现场,转去执行中断处理程序,处理完中断服务程序后自动返回原断点处,继续执行原程序,这一处理过程称为“中断”。以AT89S52为例,中断系统含有8个中断源,共有6个中断矢量:定时/计数器0、1、2,INT0、INT1和UART。两级中断优先级,可实现两级中断嵌套。用户可以很方便的通过软件实现对中断的控制。既然系统含有8个中断源,就有可能出现数个中断源同时提出中断请求的情况,这样,设计人员必须事先根据它们的轻重缓急来为每个中断源确定CPU对其的响应顺序。然而,对于中断优先级寄存器IP来说,只可能设定两级优先,即控制位为1时对应的中断源为高级中断,反之,控制位为0时对应的为低级中断。
LinkedIn下图为一声光报警电路,当按下S1时,蜂鸣器发音;当按下S2时,停止发音,但LED发光。
1、利用中断工作方式编写完整的单片机汇编语言程序。
2、 按键S1和S2触发的先后顺序对此声光报警电路有什么影响?为什么?
1、完整程序:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP EXINT0
ORG 0013H
AJMP EXINT1
ORG 0030H;不能用0000H
MAIN: SETB EA
SETB EX0
SETB EX1
SETB IT0
SETB IT1
AJMP $
EXINT0: CLR P1.2
RETI
EXINT1: SETB P1.2
CLR P2.0
RETI
END
2、若先按下S1则蜂鸣器发音;再按S2蜂鸣器停止发音,LED发光。
若先按下S2LED发光,再按S1蜂鸣器发音的同时LED发光。
能实现中断嵌套因为外部中断0、1在执行完后都会返回主程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)