• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单片机的单步执行方式是怎么回事啊

大头 2016-11-22 浏览量:1099
书上说通过中断中实现单步执行方式 
说通过编程规定INT0低电平有效,然后程序
JNB P3.2  S
JB p3.2  S
RETI
望各位单片机高手指教下 谢谢了
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  •             JNB P3.2,$                                                

                JB   P3.2,  $

                RETI

    這是利用中斷INT0觸發後,進入這段中斷處理函式(ISR),偵測P32腳位的值,各Instruction詳細如下




    所以在ISR裡,當偵測Bit(P32)=0時,PC不變跳到自己當前的Address,offset=0,PC=PC+0=PC,就是不ˋˊ執行下一行,但偵測到Bit(P32)=1時,執行下一行,同理也可知Bit(P32)=1時,PC不變,Bit(P32)=0時,執行下一行,執行RETI,Restore PC值並跳回執行ISR前的Address下一行,繼續ˊ執行

    • 发布于 2016-11-22
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • MCS-51单片机单步工作方式

         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请求有效,单片机就再一次中断响应,并进入中断服务程序去踏步。从而实现了主程序的单步执行。

    • 发布于2016-11-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机的单步执行方式是怎么回事啊