#include "reg52.h" #include "intrins.h" typedef unsigned int u16; typedef unsigned char u8; #define led P2 u16 ret; void delay(u16 i) { while(i--) {}; } void main(void) { while(1) { led=0xfe; //D1亮 ,其它灯不亮 delay(60000); _crol_(led,1); //0xFD D2亮,其它不亮 delay(60000); } }
我最开始的代码大概是上面这个样子的,我的预期是先是D1亮,然后是D1灭,D2亮,结果是始终是D1亮。百思不得其解,于是开始了漫长的调试。
感觉问题应该出在_crol_这个函数的前后,F9下了两个断点
ctrl+F5开启调试
在watch中添加P2这个寄存器,led是P2的别名,因为我们想看