📄 双向流动.c
字号:
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void del(uint);
void JO();
void cyc();
void cyc2();
void ful();
void main()
{
JO();
//P1=0xff;
cyc();
//P1=0xff;
cyc2();
//P1=0xff;
ful();
//P1=0xff;
}
void JO()//先奇数亮再偶数亮,循环三次
{
uint n1,sum1=0x55;
for(n1=0;n1<3;n1++)
{
P1=sum1;
del(10);//延时,但这种无法精确定时,要精确定时可用定时器
P1=~sum1;
del(10);
}
}
void cyc()//一个灯上下循环三次
{
uint n2,n3,sum2=0xfe;
for(n2=0;n2<3;n2++)
for(n3=0;n3<8;n3++)
{
P1=sum2;
del(1);
sum2=_crol_(sum2,1);
del(1);
}
}
void cyc2()//两个分别从两边往中间流动三次,再从中间往两边流动三次;
{
uint sum3,sum4,sum5,n4,n5;
for(n4=0;n4<3;n4++)
{
sum3=0xfe;
sum4=0x7f;
for(n5=0;n5<4;n5++)
{
sum5=sum3&sum4;
P1=sum5;
del(1);
sum3=_crol_(sum3,1);
sum4=_cror_(sum4,1);
}
}
for(n4=0;n4<3;n4++)
{
sum3=0xf7;
sum4=0xef;
for(n5=0;n5<4;n5++)
{
P1=sum5;
del(1);
sum3=_crol_(sum3,1);
sum4=_cror_(sum4,1);
sum5=sum3&sum4;
}
}
}
void ful()//8个全部闪烁3次
{
uint sum6=0x00,n6;
for(n6=0;n6<3;n6++)
{
P1=sum6;
del(2);
P1=0xff;
del(2);
}
}
void del(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=12500;y>0;y--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -