/*
Device: 5161AS digital tube
Email: lijinlei0907@163.com
Author: Jin-Lei Li
Pin: abcdefg -> P2^0~7
*/
#include <STC32G.H>

typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long int u32;

#define MAIN_Fosc 35000000UL // main frequency

void delayms(u16 ms);

//u8 SEG_Code[13] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40,0xFF};//0~9, dark, --, bright //AS digital tube
u8 SEG_Code[13] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf,0x00};//BS digital tube

void main()
{
	u8 i;
	EAXFR = 1;
	CKCON = 0x00;
	WTST = 0x00;
	
	P2M1 = 0x00;P2M0 = 0x00;
	
	while(1)
	{
		P2 = SEG_Code[0];
		P2 = SEG_Code[1];
		P2 = SEG_Code[9];
		
		for(i = 0;i<10;i++)
		{
			P2 = SEG_Code[i];
			delayms(500);
		}
		P2 = 0x00;
		delayms(500);
		for(i = 0;i<10;i++)
		{
			P2 = SEG_Code[9-i];
			delayms(500);
		}
		P2 = 0x00;
		delayms(500);
	}
	
}

void delayms(u16 ms)
{
	u16 i;
	do
	{
		i = MAIN_Fosc / 6000;
		while(--i);
	}
	while(--ms);
}