在我的主程序中有个20MS的循环,用定时器T0定时的,其中FLAG最低位为20MS到标志,程序如下:
NOP JNB FLAG,0,$-1 ;20MS时间检测 ANDIM FLAG,1110B ;清20MS到标志
;T0定时中断子程序 T0_ISP: STA AC_BAK ;保护AC ANDIM IRQ,1011B ;清T0中断请求标志 ORIM FLAG,0001B ;置20MS到标志 LDI T0L,0100B ;重装计数初值 LDI T0H,0110B ORIM IE,0101B ;开总中断允许 LDA AC_BAK ;恢复AC RTNI
遇到的问题: 在正常的情况下,此程序没问题,可如果我点停止运行后,会始终停留在 NOP JNB FLAG,0,$-1 ;20MS时间检测 这两条语句上,当我在 ANDIM FLAG,1110B 设定一个断点后,点全速运行,程序无法到达该语句 总而言之:只要我在全速运行程序再STOP后,程序肯定是停留在20MS时间检测 此时的系统寄存器值如下:
此程序是能正常运行的,只是有时调试需要STOP再设定断点进行其他内容的调试,因为这个问题导致我调试很困难,所以请大家帮帮我!我这个项目做得太久了 |