74 Port szeregowy, traasmisji
Ponadto, jeśli w tej chwili są spełnione dwa następujące warunki:
1. RI (SCON.O) = 0,
2. SM2 (SCON.5) = 0 lub SM2 (SCON5) = 1 i odebrany bit D8 = 1,
to następuje wpisanie odebranego znaku do rejestru wejściowego SBUF (bity od 0 do 7) i znacznika RB8 (bit 8) oraz ustawienie znacznika RI, które jest sygnałem dla procesora o gotowości do odczytania danych w SBUF. Jeżeli jeden z powyższych warunków nie jest spełniony, to odebrany znak jest ignorowany.
Podobnie jak w trybie 0, ustawienie znacznika TI lub RI jest sygnałem zgłoszenia przerwania z portu szeregowego (patrz punkt 2.8).
Szybkość transmisji
W trybie 0 szybkość transmisji jest stała i wynosi zawsze 6ctal/12 natomiast w trybie 2 szybkość transmisji może być określona programowo, za pomocą bitu SMOD (PCON.7), i wynosi: 6nvu/64, gdy jest SMOD = 0, lub 6ctal/32, gdy jest SMOD = 1.
W trybach 1 i 3 szybkość transmisji może być ustalona programowo w bardzo szerokim zakresie. Jest ona bowiem określona przez częstotliwość sygnału przepełnienia licznika Tl- fon (lub licznika T2 - fon, ale tylko w 8052/32) wykorzystanego do taktowania portu szeregowego.
Jeżeli do taktowania portu szeregowego jest wykorzystany licznik Tl, to szybkość transmisji jest równa:
fon/32, gdy SMOD = 0, fon/16, gdy SMOD = 1.
Częstotliwość sygnału przepełnienia licznika Tl - fon - zależy od funkcji i trybu licznika (patrz punkt 2.6.1). Na przykład, jeżeli pracuje on w trybie 2 (8-bitowy licznik TL 1 z automatycznym ładowaniem wartości początkowej z TH1), to
fon = fri/(256-THl)
gdzie fri oznacza częstotliwość impulsów zliczanych przez licznik. Jeśli pracuje on jako czasomierz, to oczywiście fn = fxTAi/12.
Przy pracy w takim trybie licznik nie wymaga żadnej ingerencji programowej, poza jednorazowym wpisaniem wartości początkowej do TH1, ustawieniem trybu i uruchomieniem zliczania. W tablicy 2.3 zestawiono wartości liczbowe, konieczne do uzyskania najczęściej używanych szybkości transmisji, a także inne, charakteryzujące wykorzystanie licznika TL
Tablica 23. Szybkości transmisji przy wykorzystaniu do taktowania portu szeregowego licznika-czasomierza Tl
Szybkość _Tl
transmisji w trybach 1 i 3 [body] |
fxTAL MHz |
SMOD (PCON.7) |
fn kHz |
C/T |
Tryb |
Wartość początkowa (hex) |
62500 (mai) |
12,0 |
1 |
1000 |
0 |
2 |
FF |
122 (min) |
12,0 |
0 |
1000 |
0 |
2 |
00 |
19200 |
11,059 |
1 |
921,6 |
0 |
2 |
FD |
9600 |
11,059 |
0 |
921,6 |
0 |
2 |
FD |
4800 |
11,059 |
0 |
921,6 |
0 |
2 |
FA |
2400 |
11,059 |
0 |
921,6 |
0 |
2 |
F4 |
1200 |
11,059 |
0 |
921,6 |
0 |
2 |
ES |
600 |
11,059 |
0 |
921,6 |
0 |
2 |
DO |
110 |
6,0 |
0 |
500 |
0 |
2 |
72 |
110 |
12,0 |
0 |
120 (zewn.) |
1 |
2 |
DE |
110 |
12,0 |
0 |
1000 |
0 |
1 |
FEE3 |
Jeżeli 6ctal/12 MHz, to do uzyskania bardzo małych szybkości transmisji nie można wykorzystać licznika Tl pracującego jako czasomierz w trybie 2, bowiem częstotliwość fon jest zbyt duża. W takim przypadku możliwe są trzy rozwiązania:
- zmniejszenie 6ctal,
- praca licznika w trybie 2 jako licznik impulsów zewnętrznych i dołączenie do wejścia Tl sygnału o odpowiedniej częstotliwości,
- praca licznika w trybie 1 jako czasomierz, z programowym wpisywaniem wartości początkowej do całego licznika po każdym przepełnieniu.