📄 led.c
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit p00=P0^0; //将各个led位操作方便写
sbit p01=P0^1;
sbit p02=P0^2;
sbit p03=P0^3;
sbit p04=P0^4;
sbit p05=P0^5;
sbit p06=P0^6;
sbit p07=P0^7;
sbit k1=P3^2; //向左移动
sbit k2=P3^3; //向右移动
sbit k3=P3^4; //慢速
sbit k4=P3^5; //快速
uchar flag,v=20;
void delay(uint t)
{
uint i;
while(t--)
for(i=10;i>0;i--);
}
void delayms(uchar t)
{
uint i;
while(t--)
{
for(i=500;i>0;i--);
}
}
void main()
{
uint i,j;
EA=1;
TH0=1000/256;
TL0=1000%256;
ET0=1;
TR0=1;
while(1)
{
for(j=0;j<v;j++){
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p00=0;
}
else
{
p00=1;
}
if(i%20==0)
{
p07=0;
}
else
{
p07=1;
}
p01=0;
}
else
{
p00=0;
if(i%3==0)
{
p01=0;
}
else
{
p01=1;
}
if(i%20==0)
{
p02=0;
}
else
{
p02=1;
}
}
}
}
delay(5);
for(j=0;j<v;j++){
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p01=0;
}
else
{
p01=1;
}
if(i%20==0)
{
p00=0;
}
else
{
p00=1;
}
p02=0;
}
else
{
if(i%3==0)
{
p00=0;
}
else
{
p00=1;
}
if(i%20==0)
{
p01=0;
}
else
{
p01=1;
}
p07=0;
}
}
}
delay(5);
for(j=0;j<v;j++){
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p02=0;
}
else
{
p02=1;
}
if(i%20==0)
{
p01=0;
}
else
{
p01=1;
}
p03=0;
}
else
{
p06=0;
if(i%3==0)
{
p07=0;
}
else
{
p07=1;
}
if(i%20==0)
{
p00=0;
}
else
{
p00=1;
}
}
}
}
delay(5);
for(j=0;j<v;j++) {
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p03=0;
}
else
{
p03=1;
}
if(i%20==0)
{
p02=0;
}
else
{
p02=1;
}
p04=0;
}
else
{
p05=0;
if(i%3==0)
{
p06=0;
}
else
{
p06=1;
}
if(i%20==0)
{
p07=0;
}
else
{
p07=1;
}
}
}
}
delay(5);
for(j=0;j<v;j++) {
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p04=0;
}
else
{
p04=1;
}
if(i%20==0)
{
p03=0;
}
else
{
p03=1;
}
p05=0;
}
else
{
p04=0;
if(i%3==0)
{
p05=0;
}
else
{
p05=1;
}
if(i%20==0)
{
p06=0;
}
else
{
p06=1;
}
}
}
}
delay(5);
for(j=0;j<v;j++) {
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p05=0;
}
else
{
p05=1;
}
if(i%20==0)
{
p04=0;
}
else
{
p04=1;
}
p06=0;
}
else
{
p03=0;
if(i%3==0)
{
p04=0;
}
else
{
p04=1;
}
if(i%20==0)
{
p05=0;
}
else
{
p05=1;
}
}
}
}
delay(5);
for(j=0;j<v;j++)
{
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p06=0;
}
else
{
p06=1;
}
if(i%20==0)
{
p05=0;
}
else
{
p05=1;
}
p07=0;
}
else
{
p02=0;
if(i%3==0)
{
p03=0;
}
else
{
p03=1;
}
if(i%20==0)
{
p04=0;
}
else
{
p04=1;
}
}
}
}
delay(5);
P0=0xff;
for(j=0;j<v;j++)
{
for(i=100;i>0;i--)
{
if(flag==0)
{
if(i%3==0)
{
p07=0;
}
else
{
p07=1;
}
if(i%20==0)
{
p06=0;
}
else
{
p06=1;
}
p00=0;
}
else
{
p01=0;
if(i%3==0)
{
p02=0;
}
else
{
p02=1;
}
if(i%20==0)
{
p03=0;
}
else
{
p03=1;
}
}
}
}
delay(5);
}
}
void t() interrupt 1
{
TH0=1000/256;
TL0=1000%256;
if(k1==0)
{
delayms(10);
if(k1==1)
{
flag=0;
}
while(k1==1);
}
if(k2==0)
{
delayms(10);
if(k2==0)
{
flag=1;
}
while(k2==0);
}
if(k3==0)
{
delayms(10);
if(k3==0)
{
v=v+3;
if(v>200||v<0) //限制v不要超过uchar最大值 此处取200 就够了
{v=200;}
}
while(k3==0);
}
if(k4==0)
{
delayms(10);
if(k4==0)
{
v=v-3;
if(v<0||v>200)
{v=3;}
}
while(k4==0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -