Dzień dobry,
po podłączeniu i zaprogramowaniu podwójnego 7 segmentowego wyświetlacza LED ze wspólną anodą, cyfry na drugim wyświetlaczu nie wyświetlają się poprawnie , tzn. przy wyświetlaniu cyfr od 0-5 nie świecą poprawnie wszystkie diody, od cyfr 6-9 wszystko wyświetla się poprawnie.
Odliczanie przebiega prawidłowo od 0-99, problem tkwi w słabym podświetleniu niektórych diod drugiego wyświetlacza lub braku ich podświetlenia.
Porty które używam to cały PORT D i cały PORT B. Podobno MISO,MOSI i SCK można używać jako wyjście więc postanowiłem spróbować i w kodzie programu PORT B i D jest ustawiony jako wyjście.
Działające wszystkie diody (kropek nie podłączałem, gdyż nie potrzebuję aktualnie):
Wadliwe wyświetlenie na dwóch wyświetlaczach cyfry 2:
--------------------------------------
Informacje na temat używanych komponentów:
-Programator USBasp, zasilanie układu z programatora 5V.
Programator USB podpięty jest pod laptop.
- Atmel Studio 6 (Dodałem swój programator do urządzeń, aby przesyłać kod)
- ATMEGA 8A
- Wyświetlacz 7 segmentowy podwójny (Prąd pracy: 5-10mA, max.20mA). Podłączony wg. schematu:
Do każdej diody podłączony jest rezystor 470R.
----------------------------------
Przesyłam również kod Programu:
// ATMega ustawiona jest we właściwościach projektu na F_CPU=1000000L
#include <avr/io.h>
#include <util/delay.h>
#define t 500
int main(void)
{
DDRD = 0xFF; // Wyświetlacz nr 1. 0xFF = 1111 1111 kierunek -> wyjście
DDRB = 0xFF; // Wyświetlacz nr 2. 0xFF = 1111 1111 kierunek -> wyjście
int i;
int j;
char liczby[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x02,0xF8,0x00,0x10};
while(1)
{
for (j=0; j<=9; j++)
{
PORTD = liczby[j];
for (i=0; i<=9; i++)
{
PORTB = liczby[i];
_delay_ms(t);
}
}
}
}[/syntax]