蓝桥杯单片机组简易问题与代码(4)
今日问题:间隔300ms先奇数亮再偶数亮,循环三次;一个灯左右循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭所有LED灯,程序停止。
程序仅供参考,鼓励大家独立完成
#include <stc15f2k60s2.h>
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;
void allinit();
void delay(uint ms);
void main()
{
uint i,j,k,m,n;
uchar LED;
allinit();
for(i=0;i<3;i++)
{
P0=0xaa;
delay(300);
P0=0x55;
delay(300);
}
for(j=0;j<3;j++)
{
for(LED=0;LED<8;LED++)
{
P0=~(0x01<<LED);
delay(300);
}
for(LED=0;LED<8;LED++)
{
P0=~(0x80>>LED);
delay(300);
}
}
for(k=0;k<3;k++)
{
LED1=LED8=0;
delay(300);
LED1=LED8=1;
LED2=LED7=0;
delay(300);
LED2=LED7=1;
LED3=LED6=0;
delay(300);
LED3=LED6=1;
LED4=LED5=0;
delay(300);
LED4=LED5=1;
}
for(m=0;m<3;m++)
{
LED4=LED5=0;
delay(300);
LED4=LED5=1;
LED3=LED6=0;
delay(300);
LED3=LED6=1;
LED2=LED7=0;
delay(300);
LED2=LED7=1;
LED1=LED8=0;
delay(300);
LED1=LED8=1;
}
for(n=0;n<3;n++)
{
P0=0x00;
delay(300);
P0=0xff;
delay(300);
}
P0=0xff;
while(1);
}
void allinit()
{
P2=0xa0;P0=0x00;P2=0x80;P0=0xff;
}
void delay(uint ms)
{
int i,j;
for(i=ms;i>0;i--)
for(j=845;j>0;j--);
}
感谢您阅读!