Zakłócenia w wyświetlaczach LED z AT89CX051 przy zbyt wysokiej częstotliwości przełączania?
Odp: AT89CX051 i wyświetlacze LED
From: "Karas Arkadiusz" <karas_at_nospam_hbury.com>
Subject: Odp: AT89CX051 i wyświetlacze LED
Date: Sun, 01 Aug 1999 22:44:52 GMT
Sprubuj dac mniejsza czestotliwosc przelaczania, 60-70 Hz wystarczy
Pozdrawiam
Arek
Użytkownik Mihas <polikom_at_nospam_bigfoot.com> w wiadomości do grup dyskusyjnych
napisał:hwPl3.3247$D4.52061_at_nospam_news.tpnet.pl...
Napisałem programik, który poprzez demultiplekser przełącza 6 kolejnych
wyświetlaczy 7-segmentowych (wspólna anoda) z częstotliwością 650 Hz każdy
(a więc DMUX jest przełączany z częst. 6-krotnie większą - ok. 4kHz) .
Katody wyświetlaczy są sterowane bezpośrednio z procka (wyeliminowałem w
ten
sposób dekoder BCD z układu). Katody sterowane z P1, natomiast bity do
DMUX
to P3.0...3.2. Zanim zostanie zmieniona wartość bitów portu P3, najpierw
ustawiam #255 na P1 (zgaszenie segmentów). Wyglądało to mniej więcej tak:
mov a,wysw1
mov b,#000b
call na_wysw
mov a,wys2
mov b,#001b
call na_wysw
...
mov a,wys6
mov b,#101b
call na_wysw
reti (wyjście z przerwania)
na_wysw
mov p1,#255
mov p3,b (tu jeszcze nic nie wyświetla, bo w P1 jest #255)
mov p1,a
ret
Pomimo tego, że wartości P1 są zerowane przed zmianą bitów z P3 to jednak
wartość np. z 4 wyświetlacza będzie deliakatnie widoczna na wyświetlaczu 3
i
jeszcze delikatniej na 2 (obsłużonych już wcześniej!!!) - o co tu chodzi?
Po załączeniu ukłądu efekt ten pojawia się po ok. 0,25 sek. (nie występuje
od razu).
Dodatkowo pojawił się syf (mogę podłączyć głośnik i posłuchać) na pinie
zasilającym oraz P3.7 (na którym program cały czas trzyma "0"). Po
odłączeniu zasilania od DMUX syf znika.
Piotr