#include<reg51.h>
unsigned char code Digits[10][8]=
{
{0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00}, //0
{0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00}, //1
{0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00}, //2
{0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00}, //3
{0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00}, //4
{0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00}, //5
{0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00}, //6
{0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00}, //7
{0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00}, //8
{0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00} //9
};
//SELECT= //?????????
//10000000,01000000,00100000,00010000
//00001000,00000100,00000010,00000001
unsigned char code SELECT[8] = {
0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};void delay(unsigned int m)
{
while(--m);
}void main()
{
//?????????????????
unsigned char i;
unsigned char n=0;
unsigned char t=0;
while(1)
{
for(i = 0; i < 8; i++)
{
P2 = SELECT;
P0 = ~Digits[n]; //??????????????????????????
//n???????????n??n=0~9
delay(300);
}
t++;
if(t==20)
{
n++;
t=0;
}
if(n==10)
{
n=0;
}
}
} |