avt-553 Moduły interfejsów szeregowych.PDF
(
515 KB
)
Pobierz
Moduły interfejsów szeregowych - AVT-553/USB232, AVT-553/USB245, AVT-553/RS232
Moduły interfejsów szeregowych
P R O J E K T Y
Moduły interfejsów
szeregowych
AVT−553/USB232
AVT−553/USB245
AVT−553/RS232
Dzia³anie wielu urz¹dzeÒ
polega na wymianie danych,
najczÍúciej z†komputerami.
Popularnym i†prostym
sposobem jest wykorzystanie
w†tym celu portu
szeregowego, ktÛry jest
dostÍpny we wszystkich
komputerach stacjonarnych
lub przenoúnych. Do
niedawna niepodzielnie
panowa³ RS232, teraz coraz
czÍúciej jest stosowany
interfejs USB.
Od strony mikrokontrolera
do obs³ugi takiego po³¹czenia
potrzebna jest zarÛwno czÍúÊ
sprzÍtowa, jak i†trochÍ
oprogramowania realizuj¹cego
transmisjÍ. W†artykule
pokaøemy, jak moøna to
zrobiÊ w†urz¹dzeniach
opartych na mikrokontrolerach
z†rodziny '51 i†AVR.
Rekomendacje:
informacje
przedstawione w†artykule
przydadz¹ siÍ konstruktorom
samodzielnie buduj¹cym
urz¹dzenia cyfrowe, ktÛre
komunikuj¹ siÍ z†otoczeniem
za pomoc¹ po³¹czeÒ
przewodowych.
Jaki standard wybraÊ?
Przez d³ugie lata urz¹dzenia
zewnÍtrzne moøna by³o pod³¹czyÊ
do komputera na dwa sposoby:
albo poprzez rÛwnoleg³y port dru-
karkowy (Centronics), albo po-
przez port szeregowy RS232. Wie-
le mikrokontrolerÛw jednouk³ado-
wych, w†tym prawie wszystkie
z†rodzin '51 i†AVR, posiada me-
chanizmy u³atwiaj¹ce wymianÍ
danych w†uproszczonym formacie
RS232. Oznacza to, øe nie ma
potrzeby pisania specjalnego op-
rogramowania przeznaczonego do
obs³ugi transmisji i†odbioru ramki
pojedynczego znaku. Wystarczy
jedynie wpisaÊ w³aúciwe dane do
kilku rejestrÛw i†zainicjowaÊ od-
powiednie przerwania, dalej ca³a
transmisja przebiega w†sposÛb pra-
wie niewidoczny dla g³Ûwnego
programu mikrokontrolera. Nie-
zbÍdny jest jeszcze konwerter po-
ziomÛw najczÍúciej wykorzystuj¹-
cy uk³ad MAX232 lub jego od-
powiednik. Ostatnimi laty pojawi-
³a siÍ jednak nowa moøliwoúÊ -
port USB.
Coraz wiÍcej komputerÛw PC
jest wyposaøanych w†ten w³aúnie
rodzaj interfejsu. Coraz czÍúciej
jest to jedyny, dostÍpny w†kom-
puterze port. USB ma kilka istot-
nych zalet, np.: doúÊ duø¹ prÍd-
koúÊ transmisji, moøliwoúÊ pod³¹-
czania wielu urz¹dzeÒ peryferyj-
nych, dostÍp do stabilizowanego
napiÍcia +5 V†oraz moøliwoúÊ
bezpiecznego do³¹czania i†od³¹-
czania urz¹dzenia do/od w³¹czo-
nego komputera.
Bardzo wygodne dla konstruk-
torÛw rozwi¹zanie zaproponowa³a
firma FTDI, wprowadzaj¹c na ry-
nek uk³ady interfejsowe FT8U232
i†FT8U245. S¹ to scalone konwer-
tery USB2.0 na doskonale znany
RS232 lub wyjúcie rÛwnoleg³e.
Oba te uk³ady by³y juø opisywane
w†EP i†nie ma teraz potrzeby
dok³adnego omawiania sposobu
ich dzia³ania. Zajmiemy siÍ na-
tomiast moøliwoúci¹ ich zastoso-
wania jako interfejsÛw uk³a-
dÛw†z†mikrokontrolerami oraz spo-
sobem ich oprogramowania.
Trzy modu³y interfejsÛw
Na
rys. 1, 2
i†
3
pokazano
schematy trzech modu³Ûw†inter-
fejsowych, w†ktÛrych zastosowano
uk³ady: FT8U232 (modu³
USB232
),
FT8U245 (modu³
USB245
) oraz
konwerter poziomÛw MAX232
(modu³
RS232
). Wszystkie mo-
du³y†maj¹ wymiary nie wiÍksze
niø standardowy uk³ad scalony
w†obudowie DIP32 i†moøna je
umieúciÊ w†podstawce o†takim
rozmiarze.
Kaødy modu³ jest kompletnym
interfejsem sprzÍtowym pomiÍdzy
mikrokontrolerem a†portem USB lub
Elektronika Praktyczna 11/2003
31
Moduły interfejsów szeregowych
montowany na p³yt-
kach uk³adÛw
USB245
i†
USB232
.
Z†kolei modu³
RS232
zasilany jest
z†urz¹dzenia, w†ktÛrym pracuje.
Poniewaø jest to tylko konwerter
poziomÛw TTL/RS232, do jego
dzia³ania nie jest potrzebna ini-
cjalizacja ani po³¹czenie z†kompu-
terem.
Rys. 1. Schemat elektryczny modułu
USB232
Wyprowadzenia uk³adÛw
USB232
i†
RS232
Wszystkie uk³ady zosta³y za-
projektowane tak, aby mog³y byÊ
umieszczone w†typowej podstaw-
ce DIP32, co u³atwia ich szybk¹
wymianÍ. Jednak liczba wyprowa-
dzeÒ p³ytki modu³u jest mniejsza
niø 32. W†module
USB232
nie s¹
wyprowadzone styki 13...16 oraz
17...20, natomiast†w†
RS232
styki
13, 16, 17 i†20.
Modu³y
USB232
i†
RS232
s¹ ze
sob¹ kompatybilne jeúli chodzi
o†wyprowadzenia najwaøniejszych
sygna³Ûw. Oznacza to, øe moøna
je stosowaÊ wymiennie i†zaleønie
od potrzeb wyposaøaÊ uk³ad mik-
rokontrolera w†interfejs USB lub
RS232. W†przypadku modu³u
RS232. Modu³y by³y opracowane
z†myúl¹ o†wzajemnej kompatybil-
noúci i†przyk³adowo modu³
USB232
moøna stosowaÊ wymiennie z†uk³a-
dem
RS232
i†w†prosty sposÛb osi¹g-
n¹Ê moøliwoúÊ wspÛ³pracy mikro-
kontrolera zarÛwno z†portem USB,
jak i†RS232 bez koniecznoúci zmian
na p³ytce drukowanej uk³adu mik-
rokontrolera.
Wszystkie modu³y s¹ standar-
dowymi aplikacjami zastosowanych
uk³adÛw scalonych. Do prawid³o-
wej pracy uk³adÛw FT8U232/245
konieczne jest ich po³¹czenie kab-
lem USB z†komputerem, na ktÛ-
rym zainstalowane s¹ odpowied-
nie sterowniki. Modu³y zasilane
s¹ z†portu USB i†do ich inicja-
lizacji nie jest potrzebne w³¹cze-
nie urz¹dzenia, w†ktÛrym pracuj¹.
Co wiÍcej, z†wyprowadzeÒ ozna-
Rys. 2. Schemat elektryczny modułu
USB245
32
Elektronika Praktyczna 11/2003
czonych symbolem
V+
moøna
czerpaÊ niewielki pr¹d o†wartoúci
kilkunastu miliamperÛw z†gniazda
USB poprzez opornik zabezpie-
czaj¹cy 4,7
Ω
Moduły interfejsów szeregowych
Tab. 1. Funkcje wyprowadzeń
modułu
USB245
Nr Nazwa Kierunek Opis
1 RXF
OUT
stan niski oznacza, ¿e
bajt danych do odczy-
tu z modu³u jest do-
stêpny
2 TXE
OUT
stan niski oznacza, ¿e
modu³ jest gotów do
przyjêcia kolejnego
bajtu danych
3 WR
IN
zapis do modu³u bajtu
danych zboczem opa-
daj¹cym
4 RD
IN
odczyt z modu³u bajtu
danej zboczem naras-
taj¹cym
5 D7
I/O
b.7 bajtu danych
6 D6
I/O
b.6 bajtu danych
7 D5
I/O
b.5 bajtu danych
Rys. 3. Schemat elektryczny modułu
RS232
8 D4
I/O
b.4 bajtu danych
9 D3
I/O
b.3 bajtu danych
USB232
funkcje poszczegÛlnych
wyprowadzeÒ s¹ w†zasadzie kopi¹
wyprowadzeÒ uk³adu FT8U232BM,
ktÛry stanowi interfejs pomiÍdzy
lini¹ USB a†sygna³ami interfejsu
RS232. Dok³adny opis poszczegÛl-
nych sygna³Ûw moøna znaleüÊ
w†dostÍpnych opisach standardu
RS lub w†dokumentacji technicz-
nej uk³adu scalonego do pobrania
ze strony producenta
www.ftdi-
chip.com
(materia³y tej firmy pub-
likujemy na CD-EP11/2003B).
KompatybilnoúÊ obydwu mo-
du³Ûw istnieje na poziomie naj-
prostszej i†najpopularniejszej
transmisji portem RS z†wykorzys-
taniem jedynie linii TxD, RxD
i†masy. Modu³
USB232
posiada
wyprowadzenia wszystkich sygna-
³Ûw†RS232 dla z³¹cza DB9. W†mo-
dule
USB232
moøna wykorzystaÊ
dwie linie steruj¹ce (sygna³y /DSR
i†/DTR), co umoøliwia sterowanie
przep³ywem danych pomiÍdzy
mikrokontrolerem i†komputerem.
Na
rys. 4
i†
5
pokazano najpros-
tsze warianty po³¹czenia modu-
³Ûw M1 i†M3 z†mikrokontrolerem
typu '51.
10 D2
I/O
b.2 bajtu danych
11 D1
I/O
b.1 bajtu danych
12 D0
I/O
b.0 bajtu danych
21 GND masa
22 n.c.
23 EECS I/O
sygna³ selekcji, jeœli
stosowany jest zewnêt-
rzny EEPROM
Wyprowadzenia uk³adu
USB245
Modu³
USB245
jest interfejsem
pomiÍdzy portem USB a†dowol-
nym 8-bitowym portem mikrokon-
trolera. Kilka dodatkowych linii
steruje przep³ywem danych po-
miÍdzy modu³em a†mikrokontrole-
rem. Funkcje wyprowadzeÒ mo-
du³u przedstawiono w†
tab. 1
.
Przyk³adowe po³¹czenie modu³u
USB245
z†mikrokontrolerem poka-
zano na
rys. 6
.
24 EECLK OUT
zegar transmisji da-
nych, jeœli stosowany
jest zewnêtrzny EEPROM
25 EEDAT I/O
sygna³ danych, jeœli
stosowany jest zewnêt-
rzny EEPROM
26 V+
OUT
zasilanie z gniazda USB
2 7 RSTOUT O U T
w yjœcie wewnêtrznego
generatora resetu
28 PWREN OUT
stan niski w czasie
konfiguracji modu³u
29 n.c.
30 n.c.
31 n.c.
32 GND masa
Rys. 4. Sposób dołączenia modułu
USB232
do
mikrokontrolera
Rys. 5. Sposób dołączenia modułu
RS232
do
mikrokontrolera
Elektronika Praktyczna 11/2003
33
Moduły interfejsów szeregowych
Rys. 6. Sposób dołączenia modułu
USB245
do mikrokontrolera
takøe pe³niÊ funkcjÍ wyprowadzeÒ
sprzÍtowego interfejsu szeregowe-
go. Linie te oznaczone s¹ symbo-
lami TxD i†RxD (lub podobnymi).
Pierwsza przeznaczona jest do wy-
sy³ania danych w†trybie szerego-
wym, a†druga do odbioru danych.
Aby je uaktywniÊ, naleøy wpisaÊ
odpowiednie wartoúci do kilku
rejestrÛw mikrokontrolera oraz na-
pisaÊ trochÍ oprogramowania do
obs³ugi transmisji szeregowej przez
mikrokontroler.
Waøn¹ decyzj¹ jest okreúlenie
sposobu obs³ugi transmisji. Moøna
zaprogramowaÊ mikrokontroler
tak, aby sygnalizowa³ jedynie od-
czyt bajtu lub gotowoúÊ do wy-
s³ania kolejnego, a†program g³Ûw-
ny bÍdzie musia³ sam zadbaÊ
o†w³aúciw¹ reakcjÍ na zasygnali-
zowane w†ten sposÛb zdarzenia.
Nie jest to najwygodniejsze roz-
wi¹zanie, gdyø zmusza g³Ûwny
program do ci¹g³ego sprawdzania,
czy nowe dane juø siÍ pojawi³y
lub czy moøna juø wys³aÊ resztÍ.
W†dodatku jeøeli przegapi siÍ od-
powiedni moment, kolejny przy-
chodz¹cy bajt moøe byÊ wpisany
na miejsce poprzedniego jeszcze
nieodebranego przez program
g³Ûwny zajÍty np. d³ugotrwa³ymi
obliczeniami. Znacznie wygodniej
zdaÊ siÍ na obs³ugÍ transmisji
przez przerwania -ma³e podpro-
gramy dzia³aj¹ce niezaleønie od
programu g³Ûwnego w†tych mo-
mentach, gdy trzeba coú zrobiÊ
z†transmisj¹ szeregow¹. Takie op-
rogramowanie mikrokontrolera nie
jest wcale trudne i†pokaøemy, jak
moøna to zrobiÊ.
W†przyk³adach zostan¹ uøyte
dwa bufory: nadawczy i†odbiorczy
o†rozmiarze 8†bajtÛw kaø-
dy. Poza tym bÍd¹ wyko-
rzystywane 3†rejestry mik-
rokontrolera dla licznikÛw
bajtÛw w†buforze nadaw-
czym i†odbiorczym,
wskaünika aktualnej pozy-
cji w†rejestrze nadawczym
oraz dwa bity flag sygnalizuj¹cych
fakt oprÛønienia bufora nadawcze-
go i†umieszczenia w†buforze od-
biorczym†kolejnego bajtu odebrane-
go portem szeregowym.
Sterowniki
Uk³ady interfejsowe FT8U232BM
i†FT8U245BM, aby mÛc prawid³o-
wo pracowaÊ, wymagaj¹ zainstalo-
wania specjalnych sterownikÛw na
komputerze PC, do ktÛrego s¹
pod³¹czane. Sterownik zostaje uak-
tywniony w†momencie do³¹czenia
do gniazda USB modu³u z†wymie-
nionymi uk³adami. Dzia³anie ste-
rownika powoduje, øe†port USB
widziany jest w†systemie kompute-
rowym jako kolejny port COM
obs³ugiwany w†taki sam sposÛb jak
wszystkie inne porty RS232. DziÍki
temu programy potrafi¹ce obs³ugi-
waÊ porty COM bÍd¹ mog³y korzys-
taÊ z†USB bez koniecznoúci jakiej-
kolwiek przerÛbki.
Sterowniki dla rÛønych syste-
mÛw operacyjnych nieodp³atnie
udostÍpnia firma FTDI na stronie
internetowej
www.ftdichip.com/
FTDriver.htm
. Ich instalacja jest
bardzo prosta. Po úci¹gniÍciu pli-
ku sterownika odpo-
wiedniego do wersji sys-
temu operacyjnego,
w†ktÛrym bÍdzie praco-
wa³, naleøy plik rozpa-
kowaÊ do tymczasowego
katalogu na dysku. Na-
stÍpnie za pomoc¹ kabla
naleøy po³¹czyÊ modu³ z†kompu-
terem. Po wykryciu do³¹czonego
modu³u system operacyjny auto-
matycznie przeprowadza instala-
cjÍ sterownika, naleøy tylko po-
daÊ katalog, w†ktÛrym znajduj¹
siÍ rozpakowane pliki. Kaøde ko-
lejne do³¹czanie modu³u do kom-
putera bÍdzie juø automatycznie
uaktywnia³o odpowiedni sterow-
nik, ktÛry juø bÍdzie w†systemie.
WspÛ³praca
mikrokontrolerÛw
z†modu³ami
Modu³y
USB232
i†
USB245
umoøliwiaj¹ korzystanie z†portu
USB na nieco odmienne sposoby.
Pierwszy - w†przypadku zastoso-
wania modu³u
USB245
- jest
prostszy. Sprowadza siÍ do ba-
dania stanu linii RXF i†TXE
sygnalizuj¹cych stan gotowoúci
modu³u†do transmisji lub ko-
niecznoúÊ odczytu z†modu³u ko-
lejnego bajtu. Niski stan obydwu
linii sygnalizuje gotowoúÊ do ko-
lejnej transmisji lub zakoÒczenie
odbioru bajtu. W†przypadku
transmisji mikrokontroler powi-
nien wys³aÊ na linie D0...7 po-
ziomy odpowiadaj¹ce wysy³ane-
mu bajtowi i†wygenerowaÊ ujem-
ny impuls na linii WR. W†przy-
padku odczytu dana pojawi siÍ
na liniach D0...7 po podaniu
stanu niskiego na liniÍ RD.
Wszystko na CD−EP11/2003B
Najnowsze wersje sterowników, noty katalogowe
oraz oprogramowanie narzędziowe dla układów
produkowanych przez firmę FTDI publikujemy
na CD−EP11/2003B.
Taka prostota okupiona jest jed-
nak koniecznoúci¹ zaangaøowania
aø 12 linii portÛw. Jeøeli w†mik-
rokontrolerze brakuje wolnych lini-
i, ktÛre moøna przeznaczyʆdo tego
celu, trzeba zastosowaÊ szeregow¹
transmisjÍ i†modu³
USB232
. W†mik-
rokontrolerach z†rodzin '51 lub AVR
wydzielono dwie linie steruj¹ce,
ktÛre oprÛcz uniwersalnych zasto-
sowaÒ jako wejúcia/wyjúcia mog¹
Jak to zrobiÊ
w†programie dla '51?
Przyk³ad oprogramowania nad-
zoruj¹cego transmisjÍ w†mikrokon-
trolerze z†grupy '51 zaczniemy
34
Elektronika Praktyczna 11/2003
Moduły interfejsów szeregowych
List. 1. Program obsługi przerwania od portu szeregowego
;przerwanie portu szeregowego
;-------------------
Rs_przerwanie:
push acc ;zachowanie zawartości rejestrów
push r0 ;użytych w procedurze przerwania
jb scon.1,rs_t ;przerwanie zostało spowodowane wysłaniem poprzedniego bajtu
;obsługa odczytu kolejnego bajtu
clr scon.0 ;zerowanie flagi odbioru bajtu w rejestrze SCON
mov a,#bufor_odbiorczy
add a,licznik_odebranych_bajtów
mov r0, a ;obliczenie adresu do zapisu w buforze odbiorczym
mov @r0,sbuf ;odebrany bajt z rejestru SBUF do buforu odbiorczego
inc licznik_odebranych_bajtów ;zwiększenie licznika bajtów w buforze
setb rs_rec_flag ;ustawienie flagi odbioru bajtu
jmp rs_t1
rs_t: ;obsługa wysłania kolejnego bajtu
clr scon.1 ;w rejestrze SCON zerowanie flagi zakończenia transmisji bajtu
mov a,licznik_wysylanych_bajtow
jnz rs_t2
rwaÒ. Dla wygody najlepiej to
zrobiÊ w†osobnym podprogramie,
na przyk³ad takim jak pokazano
na
list. 2
.
SzybkoúÊ transmisji portu sze-
regowego zaleøy od 3†czynnikÛw:
czÍstotliwoúci kwarcu uøytego
w†oscylatorze mikrokontrolera,
wartoúci pocz¹tkowej wpisanej do
licznika T1 i†ustawienia bitu
SMOD w†rejestrze PCON. W†prak-
tyce oznacza to, øe niektÛrych
szybkoúci transmisji nie moøna
osi¹gn¹Ê, jeúli czÍstotliwoúÊ kwar-
cu bÍdzie zbyt ma³a. Standardowe
szybkoúci transmisji w†zakresie
1200...19200 bodÛw moøna osi¹g-
n¹Ê stosuj¹c kwarc o†czÍstotliwoú-
ci 11,059 MHz. W†
tab. 2
zesta-
wiono wartoúci pocz¹tkowe wpi-
sywane do zegara T1 i†ustawienie
bitu SMOD dla poszczegÛlnych
szybkoúci.
W†przypadku zastosowania in-
nego kwarcu skazani jesteúmy na
eksperymentalne dobieranie war-
toúci pocz¹tkowej wpisywanej do
zegara T1. Program naleøy†jeszcze
uzupe³niÊ o†deklaracjÍ uøytych re-
jestrÛw przeznaczonych do obs³u-
gi transmisji, a†takøe wpisaÊ pod
odpowiednim adresem wektor
przerwania portu szeregowego, co
pokazano na
list. 3
.
Na
list. 4
pokazano kilka linii
kodu, ktÛre powinny znaleüÊ siÍ
w†programie g³Ûwnym, aby mieÊ
dostÍp do danych odebranych
;wszystkie bajty zostały wysłane
setb rs_trans_flag
;ustawienie flagi sygnalizującej wysłanie wszystkich znaków
jmp rs_t1
rs_t2:
mov a,wskaznik_pozycji_w_buforze
add a,#bufor_nadawczy ;pozycja w buforze kolejnego bajtu do wysłania
mov r0,a
mov a,@r0 ;pobranie kolejnego znaku do wysłania
mov sbuf,a ;znak do rejestru wyjściowego SBUF
inc wskaznik_pozycji_w_buforze
dec licznik_wysylanych_bajtow
rs_t1:
pop r0
;odtworzenie stanu rejestrów
pop acc
;używanych w procedurze przerwania
reti
List. 2. Program konfigurujący UART
;podprogram inicjacji transmisji szeregowej
;9600 bodów, 8 bitów danych, 1 bit stopu
;dla kwarcu mikrokontrolera 11,059MHz
;---------------------
Inicjacja:
mov SCON, #50h ;ustawienie w rejestrze SCON trybu1: 8 bitów danych 1 bit stopu
mov TMOD, #20h ;transmisja będzie taktowana zegarem T1
mov TH1, #0FDh ;wartości początkowe wpisywane do rejestrów
mov TL1, #0FDh ;zegara T1 dla szybkości transmisji 9600 bodów
anl PCON, #07Fh ;zerowanie bitu SMOD w rejestrze PCON
setb TR1 ;włączenie zegara T1
setb ES ;zezwolenie na przerwanie portu szeregowego
setb EA ;globalne zezwolenie na przerwania
clr rs_rec_flag ;kasowanie flagi sygnalizującej odbiór bajtu
mov licznik_odebranych_bajtów, #0 ;zerowanie licznika odebranych bajtów
ret
omawiaÊ od koÒca, czyli od pod-
programu obs³ugi przerwania.
W†'51 istnieje tylko jedno prze-
rwanie zwi¹zane z†transmisj¹ sze-
regow¹. Na pocz¹tku trzeba wiÍc
ustaliÊ, czy przerwanie zosta³o
wywo³ane odbiorem kolejnego
znaku, czy zakoÒczeniem wysy³a-
nia poprzedniego. I†zaleønie od
tego albo odczytany bajt ìwyl¹du-
jeî w†buforze odbiorczym, albo
kolejny bajt zostanie pobrany z†bu-
fora nadawczego i†wys³any
w†úwiat. Przyk³adowy program re-
alizuj¹cy to zadanie pokazano na
list. 1
.
Zanim przerwanie zacznie
funkcjonowaÊ, naleøy najpierw
ustawiÊ parametry transmisji sze-
regowej: szybkoúÊ, liczbÍ bitÛw
startu i†stopu, zainicjalizowaÊ re-
jestry i†flagi zwi¹zane z†trans-
misj¹ oraz w³¹czyÊ obs³ugÍ prze-
List. 3. Deklaracja rejestrów przeznaczonych do obsługi transmisji oraz
ustalenie wektora przerwania portu szeregowego
licznik_odebranych_bajtów EQU 30H
;licznik bajtów w buforze odbiorczym
licznik_wysylanych_bajtow EQU 31H
;licznik bajtów w buforze nadawczym
wskaznik_pozycji_w_buforze EQU 32H
;wskaźnik pozycji w buforze nadawczym
flagi
EQU 20h
;adres bajtu flag
rs_rec_flag
BIT flagi.0 ;flaga sygnalizacji odbioru bajtu
rs_trans_flag
BIT flagi.1 ;flaga zakończenia transmisji bajtów z buforu nadawczego
ROZMIAR_BUFOROW
EQU 8
;deklaracja rozmiaru buforów
bufor_odbiorczy: DS ROZMIAR_BUFOROW
bufor_nadawczy: DS ROZMIAR_BUFOROW
ORG 23H
jmp Rs_przerwanie
;wektor przerwania portu szeregowego
List. 4.
mov c, rs_rec_flag
jnc bufor_pusty
;w buforze odbiorczym nie ma nowych bajtów
clr ES
;zablokowanie przerwania portu szeregowego
mov r0,# bufor_odbiorczy
petla_odczytu:
mov a, @r0
;w rejestrze akumulatora bajt odczytany z bufora
...
;tutaj kod programu związany z wykorzystaniem bajtów
...
;przesłanych portem szeregowym z PC-ta
inc r0
djnz licznik_odebranych_bajtów, petla_odczytu
clr rs_rec_flag
Tab. 2. Wartości wpisywane do T1
dla różnych prędkości transmisji dla
częstotliwości kwarcu 11,059 MHz
SzybkoϾ SMOD WartoϾ wpisywana do T1
19200
;kasowanie flagi sygnalizującej odbiór danych
setb ES
;ponowne włączenie przerwania
bufor_pusty:
Inicjacja transmisji portem szeregowym może wyglądać następująco:
... ;kod programu zapisujący do buforu nadawczego bajty danych
... ;do wysłania portem szeregowym
mov licznik_wysylanych_bajtow, #
ile_bajtów
;wpisanie do licznika ilości
;wysyłanych bajtów
mov wskaznik_pozycji_w_buforze, #0
mov r0,#bufor_nadawczy
mov a,@r0 ;w akumulatorze pierwszy bajt do wysłania
inc wskaznik_pozycji_w_buforze
dec licznik_wysylanych_bajtow
mov SBUF, a
1
#FDh
9600
0
#FDh
4800
0
#Fah
2400
0
#F4h
;zapis do SBUF pierwszego bajtu inicjuje transmisję
;zawartości bufora nadawczego
1200
0
#E8h
clr rs_trans_flag
Elektronika Praktyczna 11/2003
35
Plik z chomika:
Majster128
Inne pliki z tego folderu:
avt-332 Miernik Znieksztalceń Nieliniowych.rar
(4868 KB)
avt-987 Cyfrowa stacja lutownicza RL1.rar
(3393 KB)
avt-515 Programator mikrokontrolerów AVR i AT89S8252.rar
(359 KB)
avt-2269 Prosty miernik częstotliwości.rar
(4576 KB)
avt-2708 Miernik częstotliwści na RS232.rar
(142 KB)
Inne foldery tego chomika:
Audio
Instrukcje
Literatura
Mikrokontrolery
Programy
Zgłoś jeśli
naruszono regulamin