Witam,
zrobilem sobie matryce led z kilku segmentow 5x7 LED i mam maly problemik z wysterowaniem tego.
Do wysterowania kolumn i rzedow wykorzystalem uklad 4094 (wejscie szeregowe wyjscie rownolegle).
Problem tkwi w tym ze:
wszystkie znaki mam zapisane w postaci zero-jedynkowej tj. pokoleji wpisuje stan poszczegolnych diod. czyli jesli w pierwszej kolumnie maja się palic wszystkie diody to mam same jedynki itd.
I stan poszczegolnej diodki 'wyciagam' za pomaca funkcji mid();
I jesli ma się palic jakas dioda to ustawiam jakis port ( set'em) na 1 a jesli nie to na 0.
Problem w tym ze to za dlug trwa.
Jak mozna inaczej (szybciej) to zrobic ?
Zeby mozna bylo jakos szybciej wyslac cos przez port, nie korzystajac ani z funkcji mid ani z set'a, ktore dzialaja wolno
Uzywam procka 4051 i programuje w Bascom'ie.
Za wszelkie sugestie wielkie dzieki
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięBascom + 4051 + matryca led
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
nie mam dostępu do dokumentacji w tej chwili i nie wiem co to za scalak 4094.
Ja bym zrobił na multiplekserze piony a poziomy dołączył do procka. po za tym zdefiniował bym już na stałe w jaki sposób ma mi wyświetlać daną litere, jeżeli wyciąganie z bajtu i wyświetlanie jest zbyt wolne i jeżeli mają to być litery a nie obrazki dynamiczne.
po za tym spróbuj większą część odpowiedzialną za wyświetlanie wykonać w ASM może to przyspieszy prace.
Ja bym zrobił na multiplekserze piony a poziomy dołączył do procka. po za tym zdefiniował bym już na stałe w jaki sposób ma mi wyświetlać daną litere, jeżeli wyciąganie z bajtu i wyświetlanie jest zbyt wolne i jeżeli mają to być litery a nie obrazki dynamiczne.
po za tym spróbuj większą część odpowiedzialną za wyświetlanie wykonać w ASM może to przyspieszy prace.
A ja proponuje wykorzystac rejestr 74xx164 do zapalania kolumn, oczywiscie przez jakies tranzystorki, a wiersze prosto z portu przez ULN2803 lub podobny. Dane wczytywac np. w taki sposob(tylko nie wiem czy to jest poprawnie napisane bo nie mam zadnego programiku z przykladem) w kazdym badz razie to idzie jakos tak:
dim stan_portu as byte
RESTORE dane_do_wyswietlenia
stan_portu=lookup(dane_do_wyswietlenia,NR_WYSWIETLANEJ_KOMBINACJI)
PORT.X=stan_portu
i to wszystko w jakiejs petli. Jesli chcesz wiedziec cos wiecej to zerknij do EDW i tam w jednej z Mikroprocesorowej oslej laczki bylo takie wyswietlanie opisane(na wyswietlacz 7segmentowy ale idea jest ta sama)
Zobacz rowniez ktorys numer EDW z tego roku, w ktoryms z nich byl opisany "Wieczny kalendarz" autorstwa Marcina Wiązani, tam rowniez sa wykorzystane rejestry 74xx164.
Troszke to przydlugawe, ale mam nadzieje, ze pomoglem szanownemu koledze
pozdrowienia dla grupowiczow.
dim stan_portu as byte
RESTORE dane_do_wyswietlenia
stan_portu=lookup(dane_do_wyswietlenia,NR_WYSWIETLANEJ_KOMBINACJI)
PORT.X=stan_portu
i to wszystko w jakiejs petli. Jesli chcesz wiedziec cos wiecej to zerknij do EDW i tam w jednej z Mikroprocesorowej oslej laczki bylo takie wyswietlanie opisane(na wyswietlacz 7segmentowy ale idea jest ta sama)
Zobacz rowniez ktorys numer EDW z tego roku, w ktoryms z nich byl opisany "Wieczny kalendarz" autorstwa Marcina Wiązani, tam rowniez sa wykorzystane rejestry 74xx164.
Troszke to przydlugawe, ale mam nadzieje, ze pomoglem szanownemu koledze
pozdrowienia dla grupowiczow.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 92 gości