MCS-51单片机单步工作方式

2012年6月2日10:10:42 评论

MCS-51有一种单步工作方式,所谓单步执行就是由外来脉冲控制程序的执行,使之达到来一个脉冲就执行一行指令的目的。而外来脉冲是通过按键产生的,因此实际上单片机执行是按一次键执行一条指令。单步执行是借助单片机的外部中断功能来实现的。

假定利用外部中断0来实现程序的单步执行,为此应事先作好两项准备工作:

〈1〉建立单步执行的外部控制电路,以按键产生脉冲作为外部中断0的中断请求信号,经INT0端输入,并把电路设计成不按键为低电平,按一次键产生一个正脉冲。此外还需要初始化程序中定义INT0低电平有效。

〈2〉编写外部中断0的中断服务程序:

JNB P3.2,$

JB P3.2, $

RETI

MCS-51单片机单步工作方式

这样在没有按键的时候,INT=0,中断请求有效,单片机响应中断,但转入中断服务程序后,只能在它的第一条指令上“原地踏步”。只有按一次单步按键,产生下脉冲使INT0=1,才能通过第一指令而到第二条指令上去“原地踏步”。当正脉冲结束后,再结束第二条指令通过第三条指令返回主程序。而MCS-51的中断机制有这样一个特点,即从中断服务程序返回主程序后,至少要执行一条指令,然后才能再响应新的中断。为此单片机从上述中断0的中断服务程序返回主程序后,能且只能执行一条指令。国为这时INT0已为低电平,外部中断0请求有效,单片机就再一次中断响应,并进入中断服务程序去踏步。从而实现了主程序的单步执行。