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ę

UART-Port szeregowy

lukas
-
-
Posty:22
Rejestracja:5 maja 2004, o 09:50
UART-Port szeregowy

Postautor: lukas » 1 cze 2004, o 14:00

Mój pierwszy program z wykorzystaniem portu szeregowego UART.
Jak z dokumentacji AT89C2051 wynika znacznik SCON.1(TI) zostaje ustawiony (1?) po wysłaniu danych do portu szeregowego a SCON.0 (RI) po odbiorze. Sprawdzam jaka jest wartoś tego wskaźnika TI przed wysłaniem i jest 1 a RI =0. Gdy wyzeruję wskaźnik TI to nie mogę nic wysłać do portu szeregowego. Co jest? Do czego w takim razie służą te wskaźniki TI i RI (wskaźnik odbioru). Kiedy kontroler wie, że dane są wysłane a kiedy dane w sbuf zostają zastąpione danymi z odbioru transmisji?
Ustawiłem tryb pracy UART na synchroniczny odczyt/zapis. Do zapisu stosuję polecenie Print Sbuf. Nie znam jeszcze procedury obsługi odbioru transmisji danych. Pomożcie proszę obsłużyć UART. Nie wiem jak wybrnąć z tego. W ustawionym przeze mnie trybie 0 clock na TXD wynosi FXtal/12. Czy parametr boudrate w Baskomie służy do ustawienia innej wartości clocka transmisji szeregowej?
Buduję układ zapisujący do rejestru 4094 i odczytujący z niego dane w postaci szeregowej.

Wstępny programik.

Dim BB as byte
Strobe Alias P3.5
SCON.7 = 0 'ustawienie trybu pracy
SCON.8 = 0 'ustawienie trybu pracy
BB = 3 'jakaś zmienna
do
print SCON.0 '=0
print SCON.1 '=1
Sbuf = 30 'zapis do bufora sbuf liczby 30
'być może wystarczy print 30?
print Sbuf
print SCON.0 '=0
print SCON.1 '=1
strobe = 1 'zatrzasniecie rejestru 4094
waitms 50
Sbuf = 54 itd.
print sbuf
waitms 50
loop

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 30 gości