76 Pert szeregowy, komunikacja
Jeżeli do taktowania portu szeregowego jest wykorzystany licznik T2 (tylko w 8052/32), pracujący jako czasomierz (patrz punkt 2.6.2), to szybkość transmisji jest równa:
BD__^_
2 x 16 x (65536 - RLD)
gdzie RLD oznacza wartość początkową, wpisaną do rejestru RLDH.RLDL. Przy Ixtal =12 MHz jest możliwe uzyskanie szybkości transmisji w granicach od 5,72 do 375000 bodów.
Komunikacja w systemie
WIELOPROCESOROWYM
Jak już wspomniano, jeśli w słowie SCON jest SM2 równe 1, to port szeregowy pracujący w trybie 2 lub 3 ignoruje (nie ustawia znacznika RI i nie wpisuje znaku do SBUF) odebrane znaki, w których bit D8 = 0. Przyjmowane są tylko te znaki, w których D8 = 1. Mechanizm ten można wykorzystać do zrealizowania prostego protokołu komunikacji w systemie wieloprocesorowym (rys. 2.22) między procesorem głównym (ang. fnaster) a procesorami podrzędnymi (ang siarę).
Rys. 2J2. Komunikacja w systemie wieloprocesorowym
Wszystkie procesory podrzędne mają ustawiony bit SM2 = 1. Kiedy procesor główny chce przesłać blok danych do procesora podrzędnego, to najpierw wysyła jego adres. W słowie adresowym D8 — 1, a w słowach danych - D8 = 0. Słowo adresowe jest przyjęte przez wszystkie procesory podrzędne, a zaadresowany procesor ustawia bit SM2 = 0. Wysyłane teraz dane przyjmuje tylko ten procesor, dla którego są one przeznaczone. Po odebraniu bloku danych (o stałej długości lub zakończonego znakiem końca) procesor z powrotem ustawia znacznik SM2 = 1. Przesłanie danych z procesora podrzędnego do procesora głównego następuje tylko na żądanie tego drugiego.
System przerwań
Organizacja systemu
System przerwań (ang. interrupt system) mikrokomputerów 8051/52 może przyjmować zgłoszenia następujących przerwań:
zewnętrznych, tzn:
- z wejścia InTO (IEO - TCON.l)
- z wejścia INT1 (IE1 - TCON.3)
z układu czasowo-iicznikowego:
- przepełnienie licznika TO (TFO - TCON.S)
- przepełnienie licznika Tl (TF1 - TCON.7)
- tylko w 8052/32 - przepełnienie licznika T2 (TF2 - T2CON.7) lub opadające zbocze impulsu na wejściu T2EX (EXF2 - T2CON.6)
z portu szeregowego:
- koniec nadawania znaku (TI - SCON.l) lub koniec odbierania znaku (RI - SCON.O).
Z każdą przyczyną przerwania jest związany wyżej wymieniony znacznik. Wpisanie jedynki do odpowiedniego znacznika jest zgłoszeniem przerwania. Wyzerowanie znacznika powoduje skasowanie zgłoszenia. Odbywa się to automatycznie - odpowiednio przy wystąpieniu przyczyny przerwania i przy jego przyjęciu (jedynie znaczniki Tl, RI oraz TF2 i EXF2 nie są zerowane automatycznie). Wszystkie wymienione znaczniki mogą być też ustawiane i zerowane programowo. Skutek jest taki sam, tzn. zgłoszenie lub skasowanie zgłoszenia przerwania.