#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16;
typedef unsigned char u8;
#define Smg P0
u8 gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;
void Delay10us() //@11.0592MHz
{
unsigned char i;
i = 2;
while (--i);
}
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void Smg_display()
{
u16 i;
for(i = 0;i < 8;i++)
{
switch(i)
{
case 0: LSC = 1;LSB = 1;LSA = 1;break;
case 1: LSC = 1;LSB = 1;LSA = 0;break;
case 2: LSC = 1;LSB = 0;LSA = 1;break;
case 3: LSC = 1;LSB = 0;LSA = 0;break;
case 4: LSC = 0;LSB = 1;LSA = 1;break;
case 5: LSC = 0;LSB = 1;LSA = 0;break;
case 6: LSC = 0;LSB = 0;LSA = 1;break;
case 7: LSC = 0;LSB = 0;LSA = 0;break;
}
Smg = gsmg_code[i];
Delay10us();
Smg = 0x00;
}
Delay10us();
}
void main()
{
while(1)
{
Smg_display();
//Smg = 0x00;
}
}