74163, LED'y i 8051

Witajcie !

Próbuję oprogramować 4 wyświetlacze siedmiosegmentowe za pomocą at89c2051 i dwóch układów 74164.

Oba rejestry są połączone tak, aby tworzyły jeden rejestr 16-bit. Jeden układ steruje segmentami w wyświetlaczu, drugi - tym, który wyświetlacz dostaje zasilanie. Chyba jest to dość standardowy układ.

Problem mam z uniknięciem smużenia, podświetlania segmentów, które nie powinny być podświetlane. Urządzenie konstruuję na bazie timera produkcji Nord Elektronik - oryginalne oprogramowanie bardzo ładnie obsługuje LED'y, stąd wiem, że da się to zrobić lepiej niż ja to robię.

W uproszczeniu program działa tak:

wysyłam do rejestrów bajt opisujący zapalone segmenty wysyłam bajt opisujący, który LED ma dostawać zasilanie czekam

i powtarzam w kółko dla wszystkich 4 cyfr.

W celach testowych zrobiłem sobie nawet płynną regulację opóźnienia między cyframi - niestety, nadal nie jestem w stanie uzyskać tak dobrej jakości jak oryginalne oprogramowanie.

Co mogę jeszcze próbować poprawić w programie ?

Reply to
voices
Loading thread data ...

[...]

Zastosuj rejestr z dodatkowym zatrzaskiem (wtedy poczas "wsuwania" dane nie pojawiają się razu na wyjściach), np. 74HC594 / 74HC595.

Reply to
Adam Dybkowski

Niestety, nie mogę. Muszę bazować na obecnym układzie. Poza tym zżera mnie ciekawość, jak to było oprogramowane za pomocą oryginalnego programu. Narazie nie widzę innej metody nić wysłanie dwóch bajtów, zaczekanie, wysłanie następnych .. może zastosowano jakieś sprytne wypełnianie zerami/jedynkami aby zmniejszyć "poświatę" ... Do procesora podłączone są: do jednej nóżki połączone in1 i in2 rejestru, do drugiej clk .. nawet nie jest używany reset rejestru ...

A co do zaproponowanych przez Ciebie układów - chętnie o nich poczytam kiedy będę budował własny układ, dzięki !

Reply to
voices

zasadniczo widze dwa sposoby: a) zoptymalizowac program zeby jak najkrocej wysylac dane,

b) podlaczyc pod RX/TX, port szeregowy wysyla bajt w 8 cykli kwarcu. Tracimy seriala jednak

A moze jednak podlacz reset pod jakas wolna nozke procka ? Albo moze jest tam jakis sposob wylaczenia calosci wyswietlacza ? Mozna by sie podpiac z oscyloskopem i zobaczyc co sie dzieje ..

J.

Reply to
J.F.

W układzie nóżka procesora 3.1 (TX) jest podłączona do CLK, a 3.0 (RX) do danych, więc raczej nie jest wykorzystany w oryginalnym oprogramowaniu UART .. no nic, będę dalej eksperymentował.

Reply to
voices

Poczytaj o trybie 0 pracy uarta. Dane to właśnie linia P3.0, a zegar P3.1. Czyli cały myk polega na szybkim wysyłaniu danych (zegar=fclk/12).

Reply to
Zbych

Dzięki, to musi być to. Zaraz zabieram się za czytanie.

Reply to
voices

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.