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
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
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 32 gości