MCS-51有一种单步工作方式,所谓单步履行便是由外来脉冲控制程序的履行,使之达到来一个脉冲就履行一行指令的意图。而外来脉冲是经过按键发生的,因而实际上单片机履行是按一次键履行一条指令。单步履行是凭借单片机的外部中止功能来完成的。
假定使用外部中止0来完成程序的单步履行,为此应事前作好两项准备工作:
〈1〉树立单步履行的外部控制电路,以按键发生脉冲作为外部中止0的中止恳求信号,经INT0端输入,并把电路设计成不按键为低电平,按一次键发生一个正脉冲。此外还需要初始化程序中界说INT0低电平有用。
〈2〉编写外部中止0的中止服务程序:
JNB P3.2,$
JB P3.2,$
RETI
这样在没有按键的时分,INT=0,中止恳求有用,单片机呼应中止,但转入中止服务程序后,只能在它的榜首条指令上“原地踏步”。只要按一次单步按键,发生下脉冲使INT0=1,才干经过榜首指令而到第二条指令上去“原地踏步”。当正脉冲完毕后,再完毕第二条指令经过第三条指令回来主程序。而MCS-51的中止机制有这样一个特色,即从中止服务程序回来主程序后,至少要履行一条指令,然后才干再呼应新的中止。为此单片机从上述中止0的中止服务程序回来主程序后,能且只能履行一条指令。国为这时INT0已为低电平,外部中止0恳求有用,单片机就再一次中止呼应,并进入中止服务程序去踏步。然后完成了主程序的单步履行。