كود:
/*
: Seven segment display
*/
// Define seven segment connections
sbit seg_a at RB0_bit;
sbit seg_b at RB1_bit;
sbit seg_c at RB2_bit;
sbit seg_d at RB3_bit;
sbit seg_e at RB4_bit;
sbit seg_f at RB5_bit;
sbit seg_g at RB6_bit;
unsigned short count=0;
void main() {
TRISB = 0b00000000; // PORTC All Outputs
TRISA = 0b00100000; // PORTA All Outputs, Except RA5 = MCLR
do {
switch (count) {
case 0 : seg_a=1; seg_b=1; seg_c=1;
seg_d=1; seg_e=1; seg_f=1; seg_g=0;
break;
case 1 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=0; seg_g=0;
break;
case 2 : seg_a=1; seg_b=1; seg_c=0; seg_d=1;
seg_e=1; seg_f=0; seg_g=1;
break;
case 3 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;
seg_e=0; seg_f=0; seg_g=1;
break;
case 4 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=1; seg_g=1;
break;
case 5 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;
seg_e=0; seg_f=1; seg_g=1;
break;
case 6 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 7 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=0; seg_g=0;
break;
case 8 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 9 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=1; seg_g=1;
break;
case 10 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=1; seg_f=1; seg_g=1;
break;
case 11 : seg_a=0; seg_b=0; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 12 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;
seg_e=1; seg_f=1; seg_g=0;
break;
case 13 : seg_a=0; seg_b=1; seg_c=1; seg_d=1;
seg_e=1; seg_f=0; seg_g=1;
break;
case 14 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 15 : seg_a=1; seg_b=0; seg_c=0; seg_d=0;
seg_e=1; seg_f=1; seg_g=1;
break;
} //case end
count ++;
if(count ==16) count =0;
Delay_ms(1000); // Wait for 1 sec before updating the display
} while(1); // Infinite Loop
}