首先让8路LED灯闪烁3遍后熄灭,接着依次点亮LED灯,最后依次熄灭LED灯,程序循环实现上述功能
#include<reg52.h>
sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7; //定义引脚
void delay(unsigned int t) //延时函数
{
while(t--);
while(t--);
}
void LEDRunning()
{ unsigned char i;
HC138_C=1;
HC138_B=0;
HC138_A=0; //让Y4口输出低电平,让锁存器选通P0口
for(i=3;i>0;i--)
{
P0=0X00;
delay(60000);
delay(60000);
P0=0xff;
delay(60000);
delay(60000);
}
for(i=1;i<=8;i++) //i=1,初值不为0,立刻点亮要往后移1位
{
P0=0xff<<i ;
delay(60000);
delay(60000);
}
for(i=1;i<=8;i++)
{
P0=~(0xff<<i) ;
delay(60000);
delay(60000);
}
}
void main()
{
while(1)
{
LEDRunning();
}
}