关于Keil断点设置的问题

may3450   2007-3-6 14:16 楼主
                SETB        SDA        ;释放SDA总线
                ACALL        DELAY
                SETB        SCL
WAITASKW:        MOV        C,SDA
                JC        WAITASKW
                CLR        SCL
                CLR        SDA
上面我的意图是等待SDA变0然后赋值给进位位C
然后执行
                CLR        SCL
                CLR        SDA
但在利用Keil编译的过程中,无法使SDA变0给C赋值,所以想请教下如何利用Keil的断点设置来实现执行后面两条指令!

回复评论 (6)

法一:
WAITASKW:        MOV        C,SDA
在这句设断点,然后从内存里找到SDA,把写改成0
法二:
不知道你的仿真器支持改PC否?要不直接改程序指针也OK...


点赞  2007-3-6 14:29
我不用仿真器
另外我不理解楼上的法一,怎么从内存里找到SDA?
可否告诉我在设置好断点后,能不能在我单步执行完
                JC        WAITASKW
后马上可以单步执行
                CLR        SCL
这段点如何设置,可否详细解释下,不胜感激!
点赞  2007-3-6 14:46
不在仿真状态下,你的断点有什么意义?

点赞  2007-3-6 14:50
呵呵,可能是我不太理解
我是在DEBUG状态下单步执行程序的
当执行到
JC        WAITASKW
后无法执行下去
我也不知道什么是仿真状态下,也不知道Keil算不算仿真器
点赞  2007-3-6 15:00
软件仿真?

那就用上面我说的法一
点赞  2007-3-6 19:09
不是有watch吗?
向里面加上SDA,读它之前,把它改成0,或在你的JC之前把C改成0.
点赞  2007-3-12 23:55
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复