Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ATmega8, 48, 88, 168, 328
- /Reset PC6|1 28|PC5
- seg_A PD0|2 27|PC4
- seg_B PD1|3 26|PC3
- seg_C PD2|4 25|PC2
- seg_D PD3|5 24|PC1
- seg_E PD4|6 23|PC0
- Vcc|7 22|Gnd
- Gnd|8 21|Aref
- PB6|9 20|AVcc
- PB7|10 19|PB5 SCK Anode_1
- seg_F PD5|11 18|PB4 MISO Anode_2
- seg_G PD6|12 17|PB3 MOSI Anode_3
- dot PD7|13 16|PB2 Anode_4
- PB0|14 15|PB1
- */
- #define F_CPU 1000000UL // 1 MHz standard clock
- #include <avr/io.h> // defines all macros and symbols
- #include <util/delay.h> // defines time delay functions
- uint8_t framebuffer[4] = {0b00111111,0b00000110,0b01011011,0b01001111};
- int main (void)
- {
- uint8_t i;
- DDRD = 0b11111111; // all pins of PORT D as output
- DDRB = 0b00111100; // some pins of PORT B as output
- while (1) // infinite main loop
- {
- for (i=0; i<4; i++)
- {
- PORTB &= 0b11000011; // all digits off
- PORTB |= (0b00000100 << i); // activate digit #i
- PORTD = ~framebuffer[i]; // output bit pattern
- _delay_ms(500); // wait 500 ms
- }
- }
- }
RAW Paste Data