Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define F_CPU 1000000UL // 1 MHz
- #include <avr/io.h>
- #include <util/delay.h>
- // segment A1 connected to port D, bit 2 (PD2)
- #define SEG_A1_ON PORTD &= ~(1 << 2)
- #define SEG_A1_OFF PORTD |= (1 << 2)
- #define SEG_A2_ON PORTD &= ~(1 << 3)
- #define SEG_A2_OFF PORTD |= (1 << 3)
- #define SEG_B_ON PORTD &= ~(1 << 4)
- #define SEG_B_OFF PORTD |= (1 << 4)
- #define SEG_C_ON PORTD &= ~(1 << 5)
- #define SEG_C_OFF PORTD |= (1 << 5)
- #define SEG_D1_ON PORTD &= ~(1 << 7)
- #define SEG_D1_OFF PORTD |= (1 << 7)
- #define SEG_D2_ON PORTD &= ~(1 << 6)
- #define SEG_D2_OFF PORTD |= (1 << 6)
- #define SEG_E_ON PORTB &= ~(1 << 0)
- #define SEG_E_OFF PORTB |= (1 << 0)
- #define SEG_F_ON PORTB &= ~(1 << 1)
- #define SEG_F_OFF PORTB |= (1 << 1)
- #define SEG_G1_ON PORTB &= ~(1 << 2)
- #define SEG_G1_OFF PORTB |= (1 << 2)
- #define SEG_G2_ON PORTB &= ~(1 << 3)
- #define SEG_G2_OFF PORTB |= (1 << 3)
- #define SEG_H_ON PORTB &= ~(1 << 4)
- #define SEG_H_OFF PORTB |= (1 << 4)
- #define SEG_J_ON PORTD &= ~(1 << 5)
- #define SEG_J_OFF PORTD |= (1 << 5)
- #define SEG_K_ON PORTC &= ~(1 << 0)
- #define SEG_K_OFF PORTC |= (1 << 0)
- #define SEG_L_ON PORTC &= ~(1 << 1)
- #define SEG_L_OFF PORTC |= (1 << 1)
- #define SEG_M_ON PORTC &= ~(1 << 2)
- #define SEG_M_OFF PORTC |= (1 << 2)
- #define SEG_N_ON PORTC &= ~(1 << 3)
- #define SEG_N_OFF PORTC |= (1 << 3)
- #define SEG_DP_ON PORTC &= ~(1 << 4)
- #define SEG_DP_OFF PORTC |= (1 << 4)
- void delay_ms(int count)
- {
- _delay_ms(count);
- }
- void ioinit()
- {
- DDRB = 0b11111111;
- DDRC = 0b11111111;
- DDRD = 0b11111110;
- PORTB = 0xff;
- PORTC = 0xff;
- PORTD = 0xff;
- }
- int main()
- {
- ioinit();
- while(1) {
- #define BLINK 500
- SEG_A1_ON; delay_ms(BLINK);
- SEG_A1_OFF;
- SEG_A2_ON; delay_ms(BLINK);
- SEG_A2_OFF;
- SEG_B_ON; delay_ms(BLINK);
- SEG_B_OFF;
- SEG_C_ON; delay_ms(BLINK);
- SEG_C_OFF;
- SEG_D2_ON; delay_ms(BLINK);
- SEG_D2_OFF;
- SEG_D1_ON; delay_ms(BLINK);
- SEG_D1_OFF;
- SEG_E_ON; delay_ms(BLINK);
- SEG_E_OFF;
- SEG_F_ON; delay_ms(BLINK);
- SEG_F_OFF;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement