📄 flashled.c
字号:
#include <reg52.h>
#define BYTE unsigned char
#define WORD unsigned int
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
sbit LED5=P1^4;
sbit LED6=P1^5;
sbit LED7=P1^6;
sbit LED8=P1^7;
sbit DLEDcs1=P2^1;
sbit DLEDcs2=P2^0;
sbit DLEDcs3=P2^2;
sbit DLEDcs4=P2^3;
void Delay()
{
WORD i;
i=0x1000;
while(i--);
}
main()
{
BYTE i,j,x,y;
//关闭数码管显示
DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=0;
//流水灯实验
while(1)
{
Delay();
P1=0xff;//熄掉所有灯
//单灯流水
x=1;
for(i=0;i<8;i++)
{
Delay();
P1=x^0xff;
x*=2;//if(x==0) x=1;
}
//反向流水
y=128;
for(i=0;i<8;i++)
{
Delay();
if (y==0) y=1;
P1=y^0xff;
y=y/2;
}
Delay();
P1=0xff;//熄掉所有灯
//双灯流水
x=3;
for(i=0;i<7;i++)
{
Delay();
P1=x^0xff;
x*=2;//if(x==0) x=1;
}
//双反流水
y=192;
for(i=0;i<7;i++)
{
Delay();
if (y==0) y=1;
P1=y^0xff;
y=y/2;
}
//交替显示1
for(i=0;i<4;i++)
{
Delay();
P1=0x55;
Delay();
P1=0xaa;
}
Delay();P1=0xff;//熄掉所有灯
//交替显示2
for(i=0;i<4;i++)
{
Delay();
P1=0x33;
Delay();
P1=0xcc;
}
Delay();P1=0xff;//熄掉所有灯
//另一个花样
for(i=0;i<8;i++)
{
y=P1;x=1;
for(j=0;j<8-i;j++)
{
Delay();
P1=y&(x^0xff);
x*=2;
}
}
x=128;
y=128;
for(j=0;j<8;j++)
{
Delay();
P1=x;
y=y/2;
x=y+x;
}
x=0xff;
y=1;
for (j=0;j<9;j++)
{
Delay();
P1=x;
x=x-y;
y=y*2;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -