89C51
89C51
Witam chce napisać program do zdalnego sterowania (komunikacji między dwoma mikrokontrolerami 89C51) po przez RXD i TXD jeden ma wysyłać a drugi odbierac bajty planuje to zrobić narazie na podczerwień ale niewiem jak napisac ten program programuje od niedawna ale niebawiłem się jeszcze z przerwaniami.Mój problem polega na tym że nieiewiem jak uaktywnić przerwanie TXD i RXD mało tego nieiwiem jak to wszystko zapisać pisze w Asemblerze potrzebuje jakiś prosty programik do odbierania przez jeden mikrokontorler przez RXD i nadawania przez drugi mikrokontroler przez TXD proszeo krótki programik do tego np: wciskam przycisk na mikrokontrolerze nadawczym a w odbiorczym pojawiają mi się te same piny przypominam że pisze w asemblerze więc jeśli ktos napisze to w np bascomie niebnde w stanie tego przetłumaczyć z góry dzięki
Przede wszystkim należy zainicjować odpowiednie rejestry sterujące:
MOV SCON , # 01010000B ; [SCON] := 01010000B ;
MOV TMOD , # 00100001B ; [TMOD] := 00100001B ;
MOV TCON , # 01010000B ; [TCON] := 01010000B ;
MOV TH1 , # 0FDH ; 9600 bps
Podzielnik 0FDH jest dla kwarca 11.0592MHz.
Oczywiście należy zezwolić na przyjmowanie przerwań (jako takich):
MOV IE , # 10010010B ;
Napisz do mnie, wyślę ci przykład, prezentujący zagadnienie.
Mój e-mail an177@poczta.fm
MOV SCON , # 01010000B ; [SCON] := 01010000B ;
MOV TMOD , # 00100001B ; [TMOD] := 00100001B ;
MOV TCON , # 01010000B ; [TCON] := 01010000B ;
MOV TH1 , # 0FDH ; 9600 bps
Podzielnik 0FDH jest dla kwarca 11.0592MHz.
Oczywiście należy zezwolić na przyjmowanie przerwań (jako takich):
MOV IE , # 10010010B ;
Napisz do mnie, wyślę ci przykład, prezentujący zagadnienie.
Mój e-mail an177@poczta.fm
- Zenon/Dial
- -
- Posty: 18
- Rejestracja: 09 sie 2005, 20:33
- Kontakt:
Wiem jak to zrobić, by dwa procesory 89C2051 dogadały się ze soba. Nie musi to być na przerwaniach, chyba że koniecznie chcesz. Dla prób wystarczy w sposób standardowy napisać program w assemblerze. Można to zrobić na kartce bo jest na tyle krótki. Skontaktuj się ze mną: zenon.dial@op.pl
- Zenon/Dial
- -
- Posty: 18
- Rejestracja: 09 sie 2005, 20:33
- Kontakt:
No, ktoś się odezwał.
To mój pierwszy kontakt i nie będę na daremno strzępił języka jeżeli nikogo to nie interesuje. Więc zamieszczony został tylko tekst sygnalizujący to co mam w głowie.
Krótko o sobie. Nadal na pełnej mocy używam komputerka ATARI Yah,,,,
Niezawodny, Robi co chcę. Odsyłam do stronki o magazynie SERIOUS grupy DIAL.
Tak więc moja Atarynka współpracuje z procesorami 89Cx51 o jakże.
Programuje je, wymienia informacje poprzez łącze RS-232 i robi wiele wiele innych rzeczy o których inni śnią.
Dogadanie się dwóch procesorów 89Cx51 to nic trudnego.
Nawet nie potrzeba interfejsu realizującego standard RSa. Wystarczą trzy przewody i transmisja idzie. Na małe odległości, mam tu na myśli około 2metry to aż za dobre.
Szybkość nawet ponad 57000 bodów.
Jak sięto robi. Jeden i drugi procesor MUSI być zaprogramowany, a więc w nim MUSI być program. Dodatkowo należy wyprowadzić dwa przyciski bo należy jakoś powiadomić procesor czy ma nadawać czy odbierać, to oczywiste.
Trzy przewody to: GND czyli masa. Łączy sie ze sobą przewody minusowe.
Tx jednego procesora łączy się z Rx drugiego i na przemian.
Sygnały wyjściowe i wejściowe będą na poziomie TTL ale to nic. Jak powiedziałem na małe odległości aż za dobre.
A sam program, no cóż, całkiem malusieńki z tym że rozumiem program główny MUSI być rozbudowany bo po odebraniu danych trzba by jakosik podpatrzeć czy to się wykonało. A najlepiej zrobić to dołączają diodę LED. Jeden procesor bada drugiemu program by po jego uruchomieniu migała ta dioda. Proste?
To tyle wstępu. Jak widać lubię pisać i wyczerpująco omówić temat. Dziś mam mało czasu bo jestem po 13godzinach pracy i tak dla relaksu zobaczyłem co słychać na forum. Do tematu powrócę i opiszę dokładnie co i jak + programy w assemblerze.
Ludzie! Czy macie programator do zaprogramowania 89Cx51? Tak?! To O.K. a jak nie to poecam mojej roboty, tyle że współpracuje z ATARI. Czy wiecie co to jest ATARI?
Łałłłłłl...... Kto by nie wiedział
To mój pierwszy kontakt i nie będę na daremno strzępił języka jeżeli nikogo to nie interesuje. Więc zamieszczony został tylko tekst sygnalizujący to co mam w głowie.
Krótko o sobie. Nadal na pełnej mocy używam komputerka ATARI Yah,,,,
Niezawodny, Robi co chcę. Odsyłam do stronki o magazynie SERIOUS grupy DIAL.
Tak więc moja Atarynka współpracuje z procesorami 89Cx51 o jakże.
Programuje je, wymienia informacje poprzez łącze RS-232 i robi wiele wiele innych rzeczy o których inni śnią.
Dogadanie się dwóch procesorów 89Cx51 to nic trudnego.
Nawet nie potrzeba interfejsu realizującego standard RSa. Wystarczą trzy przewody i transmisja idzie. Na małe odległości, mam tu na myśli około 2metry to aż za dobre.
Szybkość nawet ponad 57000 bodów.
Jak sięto robi. Jeden i drugi procesor MUSI być zaprogramowany, a więc w nim MUSI być program. Dodatkowo należy wyprowadzić dwa przyciski bo należy jakoś powiadomić procesor czy ma nadawać czy odbierać, to oczywiste.
Trzy przewody to: GND czyli masa. Łączy sie ze sobą przewody minusowe.
Tx jednego procesora łączy się z Rx drugiego i na przemian.
Sygnały wyjściowe i wejściowe będą na poziomie TTL ale to nic. Jak powiedziałem na małe odległości aż za dobre.
A sam program, no cóż, całkiem malusieńki z tym że rozumiem program główny MUSI być rozbudowany bo po odebraniu danych trzba by jakosik podpatrzeć czy to się wykonało. A najlepiej zrobić to dołączają diodę LED. Jeden procesor bada drugiemu program by po jego uruchomieniu migała ta dioda. Proste?
To tyle wstępu. Jak widać lubię pisać i wyczerpująco omówić temat. Dziś mam mało czasu bo jestem po 13godzinach pracy i tak dla relaksu zobaczyłem co słychać na forum. Do tematu powrócę i opiszę dokładnie co i jak + programy w assemblerze.
Ludzie! Czy macie programator do zaprogramowania 89Cx51? Tak?! To O.K. a jak nie to poecam mojej roboty, tyle że współpracuje z ATARI. Czy wiecie co to jest ATARI?
Łałłłłłl...... Kto by nie wiedział
- Zenon/Dial
- -
- Posty: 18
- Rejestracja: 09 sie 2005, 20:33
- Kontakt:
Ja też pamiętam Atari, to były takie badziewne komputerki które do pięt nie dorastały ZX Spectrum
Ale i tak go w końcu wymieniłem na rozszerzenie pamięci do Amigi
Piszesz o tej stronce, może wrzuć jej linka, Jejek
Dodane:
W przerwie na samobiczowanie za sprowadzanie na złą drogę link . Projekty są w poszczególnych magazynach.
Piszesz o tej stronce, może wrzuć jej linka, Jejek
Dodane:
W przerwie na samobiczowanie za sprowadzanie na złą drogę link . Projekty są w poszczególnych magazynach.
Ostatnio zmieniony 11 sie 2005, 11:13 przez jejek, łącznie zmieniany 1 raz.
- Zenon/Dial
- -
- Posty: 18
- Rejestracja: 09 sie 2005, 20:33
- Kontakt:
E....e...
Temat trzymamy. Warto od czasu do czasu podrapać się w uchu jako przerywnik? Co?
Więc tak, programik już mam ściągnięty z mojego 89Cx51. Jest to sama procedura nadawania . Wywoływana jest z programu głównego i "siedzi" w pamięci jako podprogram.
Jedno ale.... Procedura współpracuje z komputerkiem edukacynym 8050 który zrobiłem w/g schematu zamieszczonego w EDW.
Tak więc niektóre rozkazy nie pasują do "gołego" procesorka. Są oznaczone **
Nic to nie zmienia, bo w zależności od potrzeb można to zmienić.
Podaję kody HEX + zwięzły opis co jest co
Wsakżnik DPTR należy ustawić, by wskazywał adres pierwszego bajtu do wysłania
MOV DPTR,#nn **
90 xx xx xx xx = adres pierwszego bajtu do wysłania
Ustaw RS-232 do nadawania Transmisja 1200 bodów Bit parzystości tu nieistotny
75 98 52 MOV SCON,#n RS-232 ustawiony
75 8B D0 MOV TL1,#n 1200 bodów
75 8D D0 MOV TH1,#n
D2 8E SETB TR1 uruchom taktowanie
SKOK ; SKOK to etykieta
30 99 FD JNB TI,SKOK bit=0; tak? to czekaj, trwa nadawanie : tu nastąpi skok z końca procedury
; tu ewentualnie należy wstawić rozkazy reagujące na naciśnięcie klawisza by przerwać nadawanie. Gdy się to stanie, ulec zmianie musi końcowe F5, bo skok względny będzie dalej w tył
E0 MOVX A,@DPTR ** do A pobierz kolejny bajt w/g adresu w DPTR
A3 INC DPTR ** DPTR=DPTR+1 zwiększ wskażnik danych by pobrać kolejny bajt
F5 99 MOV SBUF,A wyślij pobrany bajt RS-em
C2 99 CLR TI wyzeruj bit, sygnalizujący trwanie nadawania
80 F5 SJMP SKOK skocz w tył i czekaj na zakończenie nadawania bajtu
Jak widać procedura nie ma końca. To tylko szkielet ale działający.
I to byłoby na tyle.
W początkowym pytaniu było, jak to przesłać podczerwienią. Dodatkowa elektronika potrzebna. Sam procesor nie wystarcza. Zakupić należy diodę nadawczą na podczerwień, dobudować stopień mocy by ostro świeciła i to tyle.
Pytania?
Odpowiem.
[ Dodano: 11-08-2005, 21:04 ]
Hm...
W notatniku napisane było dobrze, chodzi o spacje.
Po wysłaniu zlepiło się to i jest mniej czytelne.
Sorki..... moja wina. Nie mam wprawy w obsłudze PC. Chyba mi sie dostanie
Na Atarci czegoś takiego nie ma
_______________________________
w przypadku załączania kodu źródłowego proszę używać tagów [ code],
one w poprawny sposób formatują tekst na ekranie, dziękuje, tasza
Temat trzymamy. Warto od czasu do czasu podrapać się w uchu jako przerywnik? Co?
Więc tak, programik już mam ściągnięty z mojego 89Cx51. Jest to sama procedura nadawania . Wywoływana jest z programu głównego i "siedzi" w pamięci jako podprogram.
Jedno ale.... Procedura współpracuje z komputerkiem edukacynym 8050 który zrobiłem w/g schematu zamieszczonego w EDW.
Tak więc niektóre rozkazy nie pasują do "gołego" procesorka. Są oznaczone **
Nic to nie zmienia, bo w zależności od potrzeb można to zmienić.
Podaję kody HEX + zwięzły opis co jest co
Wsakżnik DPTR należy ustawić, by wskazywał adres pierwszego bajtu do wysłania
MOV DPTR,#nn **
90 xx xx xx xx = adres pierwszego bajtu do wysłania
Ustaw RS-232 do nadawania Transmisja 1200 bodów Bit parzystości tu nieistotny
75 98 52 MOV SCON,#n RS-232 ustawiony
75 8B D0 MOV TL1,#n 1200 bodów
75 8D D0 MOV TH1,#n
D2 8E SETB TR1 uruchom taktowanie
SKOK ; SKOK to etykieta
30 99 FD JNB TI,SKOK bit=0; tak? to czekaj, trwa nadawanie : tu nastąpi skok z końca procedury
; tu ewentualnie należy wstawić rozkazy reagujące na naciśnięcie klawisza by przerwać nadawanie. Gdy się to stanie, ulec zmianie musi końcowe F5, bo skok względny będzie dalej w tył
E0 MOVX A,@DPTR ** do A pobierz kolejny bajt w/g adresu w DPTR
A3 INC DPTR ** DPTR=DPTR+1 zwiększ wskażnik danych by pobrać kolejny bajt
F5 99 MOV SBUF,A wyślij pobrany bajt RS-em
C2 99 CLR TI wyzeruj bit, sygnalizujący trwanie nadawania
80 F5 SJMP SKOK skocz w tył i czekaj na zakończenie nadawania bajtu
Jak widać procedura nie ma końca. To tylko szkielet ale działający.
I to byłoby na tyle.
W początkowym pytaniu było, jak to przesłać podczerwienią. Dodatkowa elektronika potrzebna. Sam procesor nie wystarcza. Zakupić należy diodę nadawczą na podczerwień, dobudować stopień mocy by ostro świeciła i to tyle.
Pytania?
Odpowiem.
[ Dodano: 11-08-2005, 21:04 ]
Hm...
W notatniku napisane było dobrze, chodzi o spacje.
Po wysłaniu zlepiło się to i jest mniej czytelne.
Sorki..... moja wina. Nie mam wprawy w obsłudze PC. Chyba mi sie dostanie
Na Atarci czegoś takiego nie ma
_______________________________
w przypadku załączania kodu źródłowego proszę używać tagów [ code],
one w poprawny sposób formatują tekst na ekranie, dziękuje, tasza
Witam..... nie przechwalając się też miałem (i mam) ATARI 65XE, ale magnet mi padł i zmarniałem na PC-cie 
najłatwiej Twój temat załatwić na Bascomie........ print zmienna i już nadane....... zobacz helpa do Bascom
Ja zamieściłem temat komunikacji po RS-485 więcej niż 2 proców każdy MASTER-SLAVE. Zapraszam do tworzenia protokołu dla 2051
najłatwiej Twój temat załatwić na Bascomie........ print zmienna i już nadane....... zobacz helpa do Bascom
Ja zamieściłem temat komunikacji po RS-485 więcej niż 2 proców każdy MASTER-SLAVE. Zapraszam do tworzenia protokołu dla 2051