#include <iom16v.h>
#include <macros.h>
unsigned char const NUM[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay_ms(unsigned int k)
{
unsigned int i,j;
for (i=0;i<k;i++)
for (j=0;j<1140;j++);
}
unsigned long power(unsigned char times)
{
unsigned long num=10;
unsigned char i;
if (times==0)
return 1;
else
{
for (i=1;i<times;i++)
num*=10;
return num;
}
}
void main()
{
unsigned char i;
unsigned long num=0; //数码管上显示的数字
DDRA=0xff;
PORTA=0xff;
DDRC=0xff;
PORTC=0xff;
while (1)
{
for (i=0;i<8;i++) //i+1为从右数的位数
{
PORTC=~BIT(7-i);
PORTA=NUM[num%power(i+1)/power(i)];
delay_ms(1);
PORTC=0xff;
PORTA=0xff;
}
num++;
if (num>99999999)
num=0;
}
}