分析条件的先后顺序,先实现一个数码管从0到F的递增,然后到第二个数码管 ,然后第三个,依次实现。 这里的大条件是数码管依次从左向右亮灭,小条件是每个数码管的从0到F的变化,要用循环里套循环来实现。
代码如下
#include <reg52.h>
sbit LED = P0^0;
sbit A0 = P2^0;
sbit A1 = P2^1;
sbit A2 = P2^2;
sbit ENLED = P1^1;
void main()
{ unsigned int sec = 0;
unsigned char n = 0;
unsigned long i = 0;
unsigned long m = 0;
unsigned char cnt = 0;
unsigned char code LED[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
};
unsigned char LEDbuff[6]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
ENLED=0;
for(n=0;n<=6;n++)
{ switch(n)
{
case 0 : A2=0; A1=0; A0=0; break;
case 1 : A2=0; A1=0; A0=1; break;
case 2 : A2=0; A1=1; A0=0; break;
case 3 : A2=0; A1=1; A0=1; break;
case 4 : A2=1; A1=0; A0=0; break;
case 5 : A2=1; A1=0; A0=1; break;
}
for(m=0;m<=16;m++)
{ P0=LED[m];
for(i=0; i<300000; i++);
}
}
}
|