#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 t) //延时函数
{
u16 x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--); //延时1ms
}
void main() //主函数
{
u8 temp,i;
while(1)
{
temp=0x01; //8盏灯单个亮向右移
for(i=0;i<8;i++)
{
P2=~temp;
delay(50);
temp<<=1;// temp << 1; 计算 temp 左移一位的值,语句结束后temp没有变化
temp <<= 1; 相当于temp=temp << 1
}
temp=0x80; //8盏灯单个亮反向左移
for(i=0;i<8;i++)
{
P2=~temp;
delay(50);
temp>>=1;
}
temp=0xfe; //8盏灯逐个向右亮
for(i=0;i<8;i++)
{
P2=temp;
delay(50);
temp<<=1;
}
temp=0xfe; //8盏灯逐个灭向右
for(i=0;i<8;i++)
{
P2=~temp;
delay(50);
temp<<=1;
}
temp=0x7f; //8盏灯逐个亮向左
for(i=0;i<8;i++)
{
P2=temp;
delay(50);
temp>>=1;
}
temp=0x7f; //8盏灯逐个灭向左
for(i=0;i<8;i++)
{
P2=~temp;
delay(50);
temp>>=1;
}
delay(100);
P2=0x55; //隔一个亮(单数)
delay(100);
P2=0xaa; //隔一个亮(偶数)
delay(100);
P2=0x00; //全亮
delay(100);
P2=0xff; //全灭
}
}
51单片机LED花样流水灯实验
最新推荐文章于 2023-07-08 15:36:21 发布