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的断点设置来实现执行后面两条指令!
法一:
WAITASKW: MOV C,SDA
在这句设断点,然后从内存里找到SDA,把写改成0
法二:
不知道你的仿真器支持改PC否?要不直接改程序指针也OK...
我不用仿真器
另外我不理解楼上的法一,怎么从内存里找到SDA?
可否告诉我在设置好断点后,能不能在我单步执行完
JC WAITASKW
后马上可以单步执行
CLR SCL
这段点如何设置,可否详细解释下,不胜感激!
呵呵,可能是我不太理解
我是在DEBUG状态下单步执行程序的
当执行到
JC WAITASKW
后无法执行下去
我也不知道什么是仿真状态下,也不知道Keil算不算仿真器
不是有watch吗?
向里面加上SDA,读它之前,把它改成0,或在你的JC之前把C改成0.