利用灌电流法和数组查表法
实现
- 先奇数亮再偶数亮,循环5次,时间间隔250ms;
- 一个灯上下(从1到8再8到1)循环2次,时间间隔150ms;
- 两个灯分别从两边往中间流动,再从中间往两边流动,循环3次,时间间隔300ms;
- 8个灯全部闪烁4次,时间间隔600ms;
- 最后,关闭发光管。上述过程实现三遍之后,程序停止。
unsigned char
Led_Date2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char
Led_Date1[]={0xaa,0x55};
unsigned char
Led_Date3[]={0x7e,0xbd,0xdb,0xe7};
unsigned char
Led_Date4[]={0x00,0xff};
main(void)
{
unsigned int i,j,k;
WDTCTL=WDTPW + WDTHOLD;
P1DIR=0XFF;
P1OUT=0XFF;
for(k=0;k<3;k++)
{
for(i=0;i<5;i++)
for(j=0;j<2;j++)
{
P1OUT=Led_Date1[j];
_delay_cycles(250000);
}
for(i=0;i<2;i++)
{
for(j=0;j<8;j++)
{
P1OUT=Led_Date2[j];
_delay_cycles(150000);
}
for(j=0;j<8;j++)
{
P1OUT=Led_Date2[7-j];
_delay_cycles(150000);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
P1OUT=Led_Date3[j];
_delay_cycles(300000);
}
for(j=0;j<4;j++)
{
P1OUT=Led_Date3[3-j];
_delay_cycles(300000);
}
}
for(i=0;i<4;i++)
for(j=0;j<2;j++)
{
P1OUT=Led_Date4[j];
_delay_cycles(600000);
}
P1OUT=0XFF;
}
}
厉害呀