| 
            
            
             
              #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;  } }              
                       |