#include <reg51.h>
#include <intrins.h>
unsigned char leds;
unsigned char lorr;
void Delay200ms(void) //@11.0592MHz延时函数可用烧录软件生成
{
unsigned char data i, j, k;
_nop_();
_nop_();
i = 9;
j = 104;
k = 139;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
int main() {
leds = 0xFE;
lorr=0;//判断向左还是向右边移动
while (1) {
P2 = leds;
if(lorr==0){
Delay200ms();
leds = (leds << 1) | 0x01;//向左移动1位与0x01操作就是补0改成补1
if (leds == 0xFF) { //
leds = 0x7F; //复位操作
lorr=1;//流水灯方向改为右移动
}
}else{
Delay200ms();
leds = (leds >> 1) | 0x80;//向右移动1位与0x80操作就是补0改成补1
if (leds == 0xff) { //
leds = 0xFE; //复位操作
lorr=0;//流水灯方向改为左移动
}
}
}
}
板子就是普中科技51的实验板,我是初学者按照b站的课程看完自己修改了一下流水灯的逻辑。接下来一步一个脚印学单片机,加油!!!
【我亦非鱼】Up主探索中,欢迎收看求三连!