#include <avr/io.h>
#include <util/delay.h>
#include <Arduino.h>
int main(void)
{
// I use PB0, PD7, PD6, PD5, PD4, PD3, PD2 for segment a, b, c, d, e, f, g
DDRB |= (1 << 0); // Set LED connected PORT B, Pin 0 as output
DDRD = 0xff; // Set PORT D to be
for(int i = 0; i <= 13; i++)
{
pinMode(i, OUTPUT);
}
while (1)
{ //7segment pull up with VDD connect to pin 3 of the 7segment
PORTB = 0b00000000;
// for PORTD, the order is as follows: b c d e f g X a
PORTD = 0b00111111; //turns on number 1
_delay_ms(1000); //delay 1s before displaying the next number
PORTD = 0b01001000; //turns on number 2
_delay_ms(1000);
PORTD = 0b00011000; //turns on number 3
_delay_ms(1000);
PORTD = 0b00110001; //turns on number 4
_delay_ms(1000);
PORTD = 0b10010000; //turns on number 5
_delay_ms(1000);
PORTD = 0b10000000; //turns on number 6
_delay_ms(1000);
PORTD = 0b00111100; //turns on number 7
_delay_ms(1000);
PORTD = 0b00000000; //turns on number 8
_delay_ms(1000);
PORTD = 0b00010000; //turns on number 9
_delay_ms(1000);
PORTD = 0b00000100; //turns on number 0
_delay_ms(1000);
}
}