|
#include <reg52.h>
#define DIS_DB P0
#define DIS_WE P1
unsigned char flag100ms = 0;
unsigned char flag = 0;
unsigned char code dischar[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char disbuf[6];
void Play();
void ConfigTime0();
void main()
{
unsigned char i;
ConfigTime0();
while(1)
{
switch(flag)
{
case 0: for (i=0;i<6;i++)
disbuf[i] = 0xff;
if (flag100ms < 6)
disbuf[flag100ms] = dischar[1];
else
{
flag100ms = 0;
flag++;
}
break;
case 1: for (i=0;i<5;i++)
disbuf[i] = 0xff;
if (flag100ms < 5)
{
disbuf[flag100ms] = dischar[2];
disbuf[5] = dischar[1];
}
else
{
flag100ms = 0;
flag++;
}
break;
case 2: for (i=0;i<4;i++)
disbuf[i] = 0xff;
if (flag100ms < 4)
{
disbuf[flag100ms] = dischar[3];
disbuf[5] = dischar[1];
disbuf[4] = dischar[2];
}
else
{
flag100ms = 0;
flag++;
}
break;
case 3: for (i=0;i<3;i++)
disbuf[i] = 0xff;
if (flag100ms < 3)
{
disbuf[flag100ms] = dischar[4];
disbuf[5] = dischar[1];
disbuf[4] = dischar[2];
disbuf[3] = dischar[3];
}
else
{
flag100ms = 0;
flag++;
}
break;
case 4: for (i=0;i<2;i++)
disbuf[i] = 0xff;
if (flag100ms < 2)
{
disbuf[flag100ms] = dischar[5];
disbuf[5] = dischar[1];
disbuf[4] = dischar[2];
disbuf[3] = dischar[3];
disbuf[2] = dischar[4];
}
else
{
flag100ms = 0;
flag++;
}
break;
case 5:
if (flag100ms < 1 )
{
disbuf[flag100ms] = dischar[6];
disbuf[5] = dischar[1];
disbuf[4] = dischar[2];
disbuf[3] = dischar[3];
disbuf[2] = dischar[4];
disbuf[1] = dischar[5];
}
else
{
flag100ms = 0;
flag = 0;
}
break;
}
}
}
void Play()
{
static unsigned char i;
DIS_DB = 0xff;
DIS_DB = disbuf[i];
DIS_WE = ~(0x01<<i);
i++;
if (i == 6)
i = 0;
}
void ConfigTime0()
{
TH0 = (65536-1000)/256;
TL0 = (65536-1000)%256;
TMOD = 0x01;
TR0 = 1;
ET0 = 1;
EA = 1;
}
void InterruptTime0() interrupt 1
{
static unsigned char i;
TH0 = (65536-1000)/256;
TL0 = (65536-1000)%256;
Play();
i++;
if (i >= 70)
{
i= 0;
flag100ms++;
}
}
|
-
-
數字移動.zip
2018-4-15 18:00 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
32.59 KB, 下載次數: 3, 下載積分: 黑幣 -5
|