Witam, chcę zbudować urządzenie, którego zadaniem będzie zliczanie impulsów z trzech źródeł, do dalszej obróbki będę wykorzystywał różnicę ilości impulsów z pierwszego i drugiego źródła (gdzie i1 zawsze będzie większe od i2) i ilość impulsów z trzeciego źródła. Rzecz chcę zrealizować na AT x0C51, i tu pytanie, czy funkcję i1-i2 trzeba zrealizować sprzętowo? Procek ma tylko dwa liczniki. Częstoliwości impulsów <100Hz. Problemem jest także ilość portów - wyniki będą wyświetlane na LCD z HD44780 (7 portów). Do sterowania potrzebuję czterech przycisków.
AT x0C51 projekt urządzenia
Dec 06, 2007
13 Replies
Przy tak małej częstotliwości można liczyć te impulsy programowo, bez TIMER-ów procka. Wykrywasz impulsy (zbocza) metodą cyklicznego, szybkiego "przeglądania" stanu wejść gdzie wchodzą te impulsy.
A do LCD nie będzie potrzeba 10 pinów? Dla wejść impulsów 3, zostaną 2 piny AT x0C51 dla 4 przycisków :-( trzeba coś z tym zrobić !
Roman
[CIACH]
Dwa piny dla 4 przycisków, proszę:
1 przycisk pin0-przycisk-masa 2 przycisk pin1-przycisk-masa 3 przycisk pin0->>dioda>>-przycisk-pin1 4 przycisk pin0-<<dioda<<<-przycisk-pin1
sprytnie, a jak zakodujesz brak wcisniecia?:) do 4 przyciskow potrzebujesz 3 piny ale do 7 tez 3 piny za to do 3 przyciskow 2 wystarcza:)
Greg(G.Kasprowicz) pisze:
Brak wcisniecia to 11b na obu pinach (wewnętrzny pull-up) Procedura sprawdzania:
1)testuj pin0 i pin1 (00b, 01b, 10b = wcisniecie któregoś przycisku) 2)pin 0 jako wyjście (wpisz 0) 3) testuj pin 1 , jeśli 0 tzn że 4 przycisk wciśnięty 4) pin1 jako wyście (wpisz 0) 5) testuj pin 0 , jeśli 0 tzn że 3 przycisk wciśniętyMożna zrobić dowolną liczbę przycisków na 1 pinie: Dowolny generatorek np 4060 i przyciski łączące wyjścia dzielników z tym pinem. Zliczając długość impulsów wejściowych mamy nr wcisniętego klawisza :)
[ciach] Rzecz chcę zrealizować na AT x0C51,
Na 20c51,30c51 .... 90c51 ? Chyba nie ma takich procków. Masz na myśli
89Cx051 ?Użytkownik "Irek_K" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:fj9cg6$bq8$ snipped-for-privacy@news.onet.pl...
! Chitre ! A gdy klawisze dać przez diody ("suma na drucie"), to nawet będzie można naciskać kilka klawiszy jednocześnie! Skomplikuje się tylko algorytm demodulacji takiej "sieczki".
Roman
... z zewnetrznym ukladem to nie problem - mozna dac rezystory zwierane przyciskami i robic pomair dlugosci czasu trwania impulsu generowanego w
555 itd, albo rejestr przesuwny 74597 i mamy mozliwosc rozbudowy do wlasciwie dowolnej dlugosci.Irek_K pisze: Wariant 3-ci:
Wykorzystać linie DATA do wyswietlacza. Poszczególne linie połączyć przez diody i przyciski z kolektorem z jednym pinem portu procesora. Jeśli ten dodatkowy pin jest na H to przyciski są nieaktywne (naciskanie nic nie daje) i mozna wysyłać dane. Gdy pin jest na L to testujemy przyciski ale nie wysyłamy wtedy danych do wyswietlacza.
Irek_K pisze: Wariant 3-ci:
Wykorzystać linie DATA do wyswietlacza. Poszczególne linie połączyć przez diody i przyciski z jednym pinem portu procesora. Jeśli ten dodatkowy pin jest na H to przyciski są nieaktywne (naciskanie nic nie daje) i mozna wysyłać dane. Gdy pin jest na L to testujemy przyciski ale nie wysyłamy wtedy danych do wyswietlacza.
Irek_K pisze:
To już prościej przyciskami zwierać rezystory (podobnie jak robią np. joysticki do sterowania radiem w niektórych samochodach) - wystarczy napięcie zmierzyć przetwornikiem A/C procesora. No ale to już nie w starej dobrej '51.
JohnyR2 pisze:
to ja proponuję dać wyświetlacz przez zwykły port szeregowo równoległy w zatrzaskiem, bodajże 74x595, ale z pamięci piszę. Zajmuje 3 piny portu. Robiłem tak multipleksowany wyświetlacz 7-seg. więc z LCD powinno być jeszcze prościej.
Użytkownik "Roman" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:fj9862$voq$ snipped-for-privacy@news.onet.pl...
Mozna przesyłać dane 4-ma bitami, anie 8-mioma. pzdr, Andrzej
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required