//***Define the signal pins of all four displays***//
#define s1 RC0
#define s2 RC1
void main()
{
unsigned int e,f,g,h; //just variables
int i = 0; //the 2-digit value that is to be displayed
int flag =0; //for creating delay
unsigned int seg[]={0XC0, //Hex value to display the number 0
0XF9, //Hex value to display the number 1
0XA4, //Hex value to display the number 2
0XB0, //Hex value to display the number 3
0X99, //Hex value to display the number 4
0X92, //Hex value to display the number 5
0X82, //Hex value to display the number 6
0XF8, //Hex value to display the number 7
0X80, //Hex value to display the number 8
0X90 //Hex value to display the number 9
}; // dot not incoporated here
//*****I/O Configuration****//
TRISC=0X00;
TRISD=0x00;
PORTC=0XFF;
#define _XTAL_FREQ 20000000
while(1)
{
//***Splitting "i" into four digits***//
e=d%10; //2nd digit is saved here
f=d/10;
g=f%10; //1st digit is saved here
h=f/10;
PORTD=seg[g];s1=0; //Turn ON display 1 and print 4th digit
__delay_ms(5);s1=1; //Turn OFF display 1 after 5ms delay
PORTD=seg[e];s2=0; //Turn ON display 2 and print 3rd digit
__delay_ms(5);s2=1; //Turn OFF display 2 after 5ms delay
if(flag>=10) //wait
{
i++;flag=0;
}
flag++; //increment flag for each flash
}
}