#include <io.h>
#include <delay.h> 

void main(void)
{      
    unsigned char delayCnt = 0;
    unsigned char digitSelect = 0;
    unsigned char i = 0;
    unsigned int num = 1234;   
    unsigned int temp;
    unsigned char sevenSegDigit[8];
    unsigned char sevenSegNum[10] = {
        0xC0,0xF9,0xA4,0xB0,0x99,
        0x92,0x82,0xF8,0x80,0x90
    };        

    DDRC = 0xFF;
    DDRD = 0xFF;               
                       
    while(1)
    {      
        PORTC = 0xFF;               
        PORTD = 1 << digitSelect;  
        PORTC = sevenSegDigit[digitSelect];
        digitSelect++;
        if(digitSelect >= 8)
        {                  
            digitSelect = 0;
        }   
                    
        if(++delayCnt >= 100)
        {                 
            delayCnt = 0;  
            if(++num > 9999)
            {            
                num = 0;
            }
        }     
               
        temp = num;
        for(i = 0; i < 8; i++)
        {
            sevenSegDigit[i] = sevenSegNum[temp % 10];
            temp /= 10;
        }   
                   
        delay_ms(5);    
        
    }
}
   