#define DG1_ON PORTJ |= (1 << PJ1)
#define DG1_OFF PORTJ &= ~(1 << PJ1)
#define DG2_ON PORTJ |= (1 << PJ0)
#define DG2_OFF PORTJ &= ~(1 << PJ0)
#define DG3_ON PORTH |= (1 << PH1)
#define DG3_OFF PORTH &= ~(1 << PH1)
#define DG4_ON PORTH |= (1 << PH0)
#define DG4_OFF PORTH &= ~(1 << PH0)
uint8_t LED_7[] = {0x01, 0x4F, 0x12, 0x06, 0x4C, 0x24, 0x20, 0x0F, 0x00, 0x04};
int delayTime = 10;
void display(int number){
int dg1, dg2, dg3, dg4;
int tem;
dg4 = number%10;
number /= 10;
dg3 = number%10;
number /=10;
dg2 = number%10;
dg1 = number /10;
PORTF = LED_7[dg1];
if (tem > 999) DG1_ON;
_delay_ms(delayTime);
DG1_OFF;
PORTF = LED_7[dg2];
if (tem > 99) DG2_ON;
_delay_ms(delayTime);
DG2_OFF;
PORTF = LED_7[dg3];
if (tem > 9) DG3_ON;
_delay_ms(delayTime);
DG3_OFF;
PORTF = LED_7[dg4];
DG4_ON;
_delay_ms(delayTime);
DG4_OFF;
}
void init () {
DDRF = 0xFF;
DDRJ |=(1<<PJ1)|(1 << PJ0);
DDRJ |=(1<<PH1)|(1 << PJ0);
}
int main () {
static int n = 0, i = 0;
init();
while(1){
display(n);
if (++i == 5) {
i = 0;
if (++n == 101) n = 0;
}
}
return 0;
}