#include"reg52.h"
sbit YMQ_A=P2^5;
sbit YMQ_B=P2^6;
sbit YMQ_C=P2^7;
unsigned char j=1;
int SMG[18]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};
void InitHC138(unsigned char n)
{
switch(n)
{
case 4:
YMQ_C=1;
YMQ_B=0;
YMQ_A=0;
break;
case 5:
YMQ_C=1;
YMQ_B=0;
YMQ_A=1;
break;
case 6:
YMQ_C=1;
YMQ_B=1;
YMQ_A=0;
break;
case 7:
YMQ_C=1;
YMQ_B=1;
YMQ_A=1;
break;
}
}
void Shuchu(unsigned char i)
{
InitHC138(7);
P0=SMG[i];
}
void Weixuan(unsigned char i)
{
InitHC138(6);
P0=0x01<<i-1;
}
void Delay(unsigned int xms)
{
while(xms--);
}
void Display_Dynamic()
{
Weixuan(1);Shuchu(2);
Delay(500);
Weixuan(2);Shuchu(0);
Delay(500);
Weixuan(3);Shuchu(1);
Delay(500);
Weixuan(4);Shuchu(8);
Delay(500);
Weixuan(5);Shuchu(16);
Delay(500);
Weixuan(6);Shuchu(16);
Delay(500);
Weixuan(7);Shuchu(j/10);
Delay(500);
Weixuan(8);Shuchu(j%10);
Delay(500);
}
void DelayXianShi(unsigned int xms)
{
while(xms--)
{
Display_Dynamic();
}
}
void main()
{
while(1)
{
Display_Dynamic();
j++;
if(j>12)
j=1;
DelayXianShi(100);
}
}