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 45 gości
