Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
narzedzia:avr_8seg [2025/05/13 13:34] – administrator | narzedzia:avr_8seg [2025/05/16 18:46] (aktualna) – administrator | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | ====== Programowanie wyswietlacza LED 8 segmentowego AVR ====== | + | ====== |
W tym projekcie wykorzystano modul AVT 3505 ktorego schemat jest poniżej | W tym projekcie wykorzystano modul AVT 3505 ktorego schemat jest poniżej | ||
Linia 18: | Linia 19: | ||
+ | <code c main.c> | ||
+ | #include < | ||
+ | #include < | ||
+ | // Definicje wyprowadzen | ||
+ | |||
+ | #define F_CPU 8000000UL | ||
+ | |||
+ | #define LED_A 4 | ||
+ | #define LED_B 3 | ||
+ | #define LED_C 5 | ||
+ | #define LED_D 2 | ||
+ | #define LED_E 6 | ||
+ | #define LED_F 0 | ||
+ | #define LED_G 7 | ||
+ | #define LED_DP 1 | ||
+ | #define LEDPORT PORTB | ||
+ | #define LEDDDR DDRB | ||
+ | #define COM1 5 | ||
+ | #define COM2 4 | ||
+ | #define COM3 3 | ||
+ | #define COM4 2 | ||
+ | #define COMPORT PORTD | ||
+ | #define COMDDR DDRD | ||
+ | |||
+ | int displayNumber(int num, int com) | ||
+ | { | ||
+ | switch(com) | ||
+ | { | ||
+ | case 1: | ||
+ | COMDDR = 1<< | ||
+ | break; | ||
+ | case 2: | ||
+ | COMDDR = 0<< | ||
+ | break; | ||
+ | case 3: | ||
+ | COMDDR = 0<< | ||
+ | break; | ||
+ | case 4: | ||
+ | COMDDR = 0<< | ||
+ | break; | ||
+ | } | ||
+ | switch(num) | ||
+ | { | ||
+ | case 0: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 1: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 2: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 3: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 4: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 5: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 6: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 7: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 8: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | case 9: | ||
+ | LEDPORT = ~(1<< | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | int displayInteger(int integer) | ||
+ | { | ||
+ | int n1, | ||
+ | n1000 = integer / 1000 % 10; | ||
+ | n100 = integer / 100 % 10; | ||
+ | n10 = integer / 10 % 10; | ||
+ | n1 = integer % 10; | ||
+ | displayNumber(n1000, | ||
+ | _delay_ms(10); | ||
+ | displayNumber(n100, | ||
+ | _delay_ms(10); | ||
+ | displayNumber(n10, | ||
+ | _delay_ms(10); | ||
+ | displayNumber(n1, | ||
+ | _delay_ms(10); | ||
+ | } | ||
+ | int main(void) | ||
+ | { | ||
+ | LEDDDR = 0xff; | ||
+ | |||
+ | while(1) | ||
+ | { | ||
+ | // | ||
+ | // | ||
+ | | ||
+ | { | ||
+ | | ||
+ | { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | // | ||
+ | | ||
+ | | ||
+ | } | ||
+ | // | ||
+ | // } | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | } | ||
+ | </ | ||