我学习51单片机用的是清翔的51板,这个板集成度非常高,基本不用自己接线。
这个板是基于STC89C51的。
我们知道这个板上一共有8个LED,而一个字节有8位。
而LED对应得管脚是P1,
所以P1 = 0x00可以表示所有LED都亮。
P1 = 0x01表示除第一个灯外都亮。
...
以此类推,P1 = 0xFE表示除第一个亮都灭,也可以表示为~(0x01)。
在c语言中, << 表示左移一位,
那么,我们可以用P1 = 0x01 << 1表示第二个灭,
P1 = 0x01 << 2表示第三个灭,......
所以代码如下:
1 #include<reg51.h> 2 3 void main() 4 { 5 unsigned int i = 0; 6 unsigned int cnt = 0; 7 while(1) 8 { 9 P1 = ~(0x01 << cnt); 10 for(i = 0 ; i < 20000 ; i ++); 11 cnt ++; 12 if(cnt >= 8) 13 { 14 cnt = 0; 15 } 16 } 17 }