#include <STC_12.h>
#define uchar unsigned char
#define uint unsigned int
void delay(int num) {
uint k = 0;
uint j = 0;
for (k = 0; k < 1000; k ++) {
for (j = 0; j < num; j ++) ;
}
}
main() {
uint i = 0;
while (1) {
for (i = 0; i < 5; i ++) {
P4 <<= 1;
p4 = p4 +1;
delay(1000);
}
}
}
我写的是在STC12C5A60S2上的一个4LED灯的流水灯程序,但是调试的时候灯并不是按流水灯的形式变化,请大神们看看到底是什么错误导致的啊?是不是左移那里出了问题啊?
不同的LED灯以及不同的连线不同。
你应该先调试下每个相位亮灯是否正确。然后再组合成完整的程序。
恩,我试试,谢谢你的建议。。。
看硬件连得对不对,然后再来分析程序
不要用P4直接操作,你用一个变量移位然后再赋值给P4,P4如果由于外部电路补拉高或拉低,你读的P4的值就会有影响的