You are on page 1of 18

Ch*fnj 5 : Ht 115 ca prt ni tiji

H#T NG CA PORT Ni
TIP
5.1 M u
Bn trong chip 8051 c mt port ni tip hot ng mt vi ch d trn mt tm
tn s rng. Chc nng c bn ca port ni tip l_thc hin vic chuyn i d liu
song song thnh ni tip khi pht v chuyn i d liu ni tip thnh song song khi
thu.
Cc mch phn cng bn ngoi truy xut port ni tip thng qua cc chn TxD
( pht d li ) v RxD ( thu d liu ) d c gii thiu chng 2. Cc chn ny a
hp vi hai chn ca port 3 : P3.1 ( TxD--W P3.0 ( RxD ).
c trng ca port ni tip l hot dng song cng ( full duplex ), ngha l c kh
nng thu v pht ng thi. Ngoi ra port ni tip cn c mt dc trng khc, vic m
d liu khi thu ca port ny cho php mt k t dc nhn v lu gi trong b m th
trong khi k t tip theo dc nhn vo. Nu CPU dc k t th nht trc khi k t
th hai c nhn y , d liu s khng b mt.
Phn mm s dung hai thanh ghi chc nng dc bit SBUF v SCON truy xut
port ni tip. B m ca port ni tip SBUF c a ch byte l 99H, trn thc t bao
gm hai b m. Vic ghi ln SBUF s np d liu pht v vic c SBUF s truy
xu't d liu d nhn c. iu ny c ngha l ta c hai thanh ghi ring r v phn
bit : thanh ghi pht ( ch ghi ) hay b dm pht v thanh ghi thu ( ch dc ) hay b m
thu ( xem hnh 5.1 ).
Thanh ghi diu khin port ni tip SCON ( c da ch byte l 98H ) l thanh ghi
c nh a ch tng bit, thanh ghi ny cha cc bit trng thi v cc bit diu khin.
Cc bit iu khin s thit lp ch hoat ng cho pnrtni iip rnn rc hit, trang thi
ch ra s kt thc vic thu

[]88

H vi iu khin 8051

hoc pht, mt k tCc bit trng thi c kim tra bi phn mm lioc c
lp trnh to ra ngt.
Tn s hot ng ca port ni tip, hay cn gi l tc baud ( baud rate ) c th
c nh hoc thay i. Khi tc baud thay i c s dng, b nh thi 1 cung cp
xung clock tc baud v ta phi lp trnh sao cho ph hp. Trn 8032/8052, b nh
thi 2 cng c th c lp trnh cung cp xung clock tc baud.

RXD

Shift, register
CLK

\7

Baud rate clock


(receive)

SBUF
(read-only)

8051 Internal bus

Hnh 5.1 : S khi ca port 11 tip

Write only : ch ghi


Read only : ch c

Shift register : thanh


ghi dch bit
Baud rate clock ( transmit ) : xung clock t'c baud ( pht )

Baud rate clock ( receive ) : xung dock tc baud ( thu )


8051 internal bus : bus ni ca 8051

5.2 THANH GHI DIEU KHIEN PORT Ni TIP


Ch hot ng ca port ni tip c thit lp bng cch ghi t iu khin ln
thanh ghi chn ch SCON ca port ni tip a ch byte 99H ( xem bng 5.1 v
5.2 ).
Trc khi s dng port ni tip, thanh ghi SCON phi c khi ng ng ch
yu cu. Th d lnh sau :
MOV SCON, #01010010B

Chng 5 : Hot ng ca port ni tip

89 (

khi ng port ni tip ch 1 ( SM0/SM1 = 0/1 ), cho php thu ( REN = 1 ) v set c
ngt pht bng 1 ( TI = 1 ) ch ra rng port ni tip sn sng pht d liu.
5.3 CC CH HOT NG
Port ni tip ca 8051 c 4 ch hot ng, cc ch c chn bng cch ghi 1
hoc 0 cho cc bit SMO v SM1 trong thanh ghi SCON. Ba trong s cc ch hot ng
cho php truyn khng ng b ( asynchronous ), trong mi mt k t c thu hoc
c pht s cng vi mt bit start v mt bit stop to thnh mt khung ( frame ).
Nu lm quen vi hot ng ca port ni tip theo chun RS- 232C trn mt my
vi tnh, ta s tm thy c s tng t cc ch ny. Vi ch th t, port ni tip
hot ng nh mt thanh ghi dch bit n gin. Mi mt ch s c cp tm tt sau
y.
Bit

K hiu

a ch

M t

SCON.7

SMO

9FH

bit 0 chn ch ca port ni tip

SCON.6

SM1

9EH

bit 1 chn ch ca port ni tip

SCON.5

SM2

9DH

bit 2 chn ch ca port ni tip

SCON.4 REN

x l cc ch 2 v 3; bit RI s khng
c tch cc nu bit th 9 nhn c l 0.

cho php thu. Bit ny phi c set

SCON.3 TB8
9CH

nhn cc k t. bit pht 8. Bit th 9 c


pht cc ch 2 v 3; c set v xa bi

SCON.2

9BH

SCON.l

phn mm
bit thu 8. Bit th 9 nhn c. c ngt pht.

C ny c set ngay khi kt thc vic


RB8

9AH

TI

99H

SCON.O RI
Bit ny cho php
truyn thng a
Bng 5.1 : Tm

pht mt k t ; c xa bi phn mm c
ngt thu. Cr ny c set ngay khi kt
thc vic thu mt k t ; c xa bi phn
mm

98H

tt thanh ghi SCON ( iu khin port ni tip )

5.3.1 Thanh ghi dch 8-bit ( ch 0 )


Ch 0, c chn bng cch ghi gi tr 0 vo cc bit SMQ-y-SMl trong thanh
ghi SCON, t port ni tip vo ch thanh ghi dch 8-bit. D liu ni tip c thu
v pht thnp qua chn RxD. chn TxD xut xung clock dch bit. Khi pht v thu d
liu 8-bit, bit c ngha ( gi tr v tr ) nh nht ( bit LSB ) c thu hoc pht trc
tin. Tc baud c nh v bng 1/12 tn sc ca mch dao ng trn chip. Cc thut
ng
RxD v TxD b sai lch ngha trong ch ny. Chn
ftx) rtc s dng cho c thuv pht d liu cn chn TxP
c dng lm chn xua't xung
Thanh ghi dch clock dch bit.
0 0 0 0 11
Tc SMO SMl Ch M t ART 8-bit
C

10 2

nh ( tn s dao ng / 12 ) Thay i
ART 9-bit

113

baud

nh

Thay i ( thit lp bi b
tip

( thit lp bi b nh thi )

( tn s dao ng / 12 hoc/64 )
ART 9-bit

nh thi )
Bng 5.2 : Cc ch ca port ni

Vic pht d liu c khi ng bng mt lnh ghi d liu vo SBUF. D liu
c dch ra ngoi trn chn RxD ( P3.0 ) vi cc xung clock dich bit c gi ra trn
chn
TxD
( P3.1 ). Mi mt bit
hp l
c truyn i trn ng RxD trongmt chu k my.
^ -----------------
Trong mi mt chu k my, xung
clock dch bit i thnh mc
thp

S3P1 v tr li mc cao S6P1.


Gin thi gian pht d liu c trnh by hnh 5.2.
Vic thu d liu c khi ng khi bit cho php thu REN logic 1 v c ngt thu
RI logic 0. Qui lut tng qut l ta phi set bit. REN bng 1 thi im bt u
chng trnh khi ng port ni tip v saujip xa bit R ht u cng vic thu d
liu.
Khi bit RI c xa, cc xung clock dch bit c xut ra trn chn TxD, ta bt u
chu k my tip theo v d liu c dch vo chn RxD bi xung clock dch bit ( hin
nhin l cc mch ghp ni cung cp d liu trn ng RxD c ng b bi xung
clock dch bit trB-ng TxD ( xem hnh 5.3 ).

Chng 5 : Hot ng ca port ni tip


----------------One machine cyele------------------------------------

SI

S2 I S3 I S4 I S5

SG

PI I P2 I PI I P2 I PI I P2 I PI I P2 I PI I P2 I PI I P2

Osc,

ALE

Valid data bit

Data out

S3P1

_l_

Shift CLOCK I
WRITE

toSBUF

S6P1

Expanded view

iuUiiiiiiuuuuuuuuuuuuL
___
i\ DO X
ALE

DI X 1)2 X D3 Y D4 )C D5 X DG XZjjl X
I

Data out
(RXD)_
Shift
CLOCK

(TXD

I
Hnh 5.2 : Gin tlii gian pht d liu ch 0

Onejsiachine cycle : mt chu k my Osc : xung clock ca mch dao ng ALE


: xung ALE Data out : d liu xut Valid data bit : bit d liu hp l Shift
CLOCK : xung clock dch bit WRITE to SBUF : ghi vo SBUF Expanded
view : quail st c phng i

- Onp machine cycle


1

I I I I I I I I I I

_ JUULJUUUUUUUULJUUUULJUL

ALE

1 Hnh 5.3 : Gin d thi gian thu d liu ch d 0

H] 92

H vi iu khin 8051

One machine cycle : mt chu k my ALE :


xung ALE Data out : d liu xu't Shift
CLOCK : xung cock dch bit

Vic dch d liu vo port ni tip xy ra cnh dng ( cnh ln ) ca TxD.


Mt ng dng kh thi ca ch 0 ( ch thanh ghi dch bit ) l m rng thm cc
ng ra cho 8051. Mt vi mch thanh ghi dch ni tip- song song c th c ni vi cc
chn TxD v RxD ca 8051 cung cp thm 8 ng xu't ( xem hnh 5.4 ). Cc thanh
ghi dch bit khc c th ghp cascade vi thanh ghi dch bit u tin m rng thm
na.
8 Extra outputs

8051
TXD P3 11 RXD
(P3.0)

CLOCK
Data

Shift register

Hnh 5.4 : Ch thanh ghi dch bit ca port ni tip


Shift register : thanh ghi dch bit
8 extra outputs : 8 ng ra m rng
5.3.2 UART 8-bit c tc baud thay i ( ch d 1 )
Trong ch 1, port ni tip ca 8051 hot ng nh mt b thu pht khng ng
b ( universal asynchronous receiver transmitter ) UART 8-bit c t"c baud thay i.
UART l mt b thu v pht d liu ni tip vi mojjnoi. k.t d liu c ng trc
bd mt bit start ( logic 0 ) v c ng sau bi mt bit stop ( logic 1 ). Thnh thong
mt bit chn l dc chn gia bit d liu sau cng v bit stop. Hot ng ch yu ca
mt UART l bin i d liu pht t song song thnh ni tip v bin i d liu thu t
ni tip thnh song song.
Nh vy ch 1 ta c 10 bit c thu trn chn RxD v 10 bit c pht trn
chn TxD cho mi mt k t d liu, chngbao gm r bit startnuirlr (HrSHriTc liu Bit LSB trc tin ) v 1 bit stop ( lun lun l 1 ). Khi hot ng thu,
bit stop a n bit RB8 a SCON. Vi 8Q51, tc- baud ac-thit lp bi tc
trn ( overflow rate ) ca b nh thrl cn 8052, tc baud c thit lp bi tc

Chng 5 : Hot ng ca port ni tip

93 [j

trn ca b nh thi 1 hoc b nh thi 2 hoc t hp ca c hai ( mt cho pht


v mt cho thu ).
Vic cp xung clock dch bit v ng b cc thanh ghi dch bit ca port ni tip
cc ch 1, 2 v 3 c thit lp bi mt b m 16, ng ra ca b m l xung clock
tc baud ( xem hnh 5.5 ). Ng vo ca b m va nu c chn bng phn mm
v s c trnh by sau.

16 X baud rate

Baud rate clock Serial port shift register

Hnh 5.5 : Cp xung clock cho port ni tip


16 x baud rate : 16 x toe do baud Baud rate
clock : xung clock toe do baud
Serial port shift register : thanh ghi dich bit cua port noi tiep

Vic pht c khi ng bng cch ghi vo SBUF nhng vic pht
khng thc s bt u cho n ln trn k ca b"m 16, b m cung cp tc baud
cho port ni tip. D liu c dch bit c xut ra trn ng TxD s bt u bng
bit start, tip theo l 8 bit d liu ri n bit stop. Thi gian ca mi mt bit l gi tr
nghch o ca tc baud, tc baud c c bng cch lp trnh cho b nh thi.
C ngt pht TI c set bang' 1 ngay khi bit stop xut hin trn ng TxD ( xem hnh
5.6 ).

TXD

\bit /~D~)( PI

X 02 X 1)3 X D4 X n )T"D6~)( 07 /

Stop
bit

TI
(SCON.l)
Transmit intemipi (ready for
more datu

Hnh 5.6 : Set c TI ca port ni tip


Baud rate : tc baud Start bit : bit
start Stop bit : bit stop Transmit
interrupt : ngt pht

H vi iu khin 8051
Vic nhn c khi ng bi mt chuyn trng thi t 1 xung 0 trn ng RxD
( bt u bit. start ). B m 16 ngay lp tc c xa gn cc s m cho dng bit
n chn RxD ( bit k tip n khi b m trn ln na v v.v... ). Dng bit n c ly
mu gia 16 s' m.
B thu bao gm vic pht hin bit start sai bng cch yu cu 8 s m t.rng thi
0 sau khi c s chuyn trng thi t 1 xung 0 ln u tin. Nu iu ny khng xy ra,
b thu c gi s rng c nhn c nhiu thay v l nhn mt bit hp l. B thu
s c thit lp li , quay v trng thi nghi v ch s chuyn trng thi t 1 xung 0
k. Cri s mt bit start, hp l c pht hin, vic nhn k t s tip tc. Bit start,
c b qua v 8 bit d liu c nhn tun t vo thanh ghi dch bit ca port ni tip.
Khi c 8 bit c nhn, cc iu sau s xy ra : "
\/1. Bit t.h 9 ( bit. stop Kc a n bit RB8 trong thanh ghi SCON.

'/'2. 8 bit d liu c np vo S3F.


C ngt t.liu RI c set.
Ty nhin cc iu trn ch xay ra nu cc iu kin sau tn ti :
1. ^I_=0
2. SM2 = 1 v bit, stop nhn c l bit 1, hoc SM2 = 0.
Yu cu RI = 0 m bo rng phn mm c k t trc ( v xa RI ). iu kin
th hai c v phc tp nhng ch p dng trong ch truyn thng a x l. Yu cu
c ngha l khng set RI bng 1 trong ch truyn thng a x l khi bit d liu th 9
l 0.
5.3.3

UART 9-bit c tc d baud c nh ( ch d 2 )

Khi SMl = 1 v SMO = 0, port ni tip hot ng ch 2, ch UART 9-bit c


tc baud c nh. 11 bit c thu hoc pht cho vic thu pht mt k t d liu : bit.
start, 8 bit d liu, bit d liu th 9 lp trnh gc v bit stop. Khi pht, bit, th 9 l bit,
TB8 trong thanh ghi SCON ( c th l tut chan Ie~'). Khi thu, bit th 9 ' nhn c s
t vo bit RB8. Tc baud ch 2 bng 1/32 hoc bng 1/64 tn s ca mch dao
ng trn chip ( xem mc 5.6 ).
5.3.4 UART 9-bit c tc d baud thay i ( ch d 3 )
Cli 3, UART 9-bit c tc thay i, tng t nh ch 2 ngoi tr tc
baud c lp trnh v c cung cp bi b nh thi. Tht

Chng 5 : Hot ng ca port ni tip

95 [j

ra cc ch 1, 2 v 3 u tng t nhau. Chng khc nhau tc baud ( c nh


ch 2 v thay i cc ch 1 v 3 ) v s bit d liu ( 8 bit ch 1 v 9 bit
cc ch 2 v 3 ).
5.4 KHI NG V TRUY XUT CC THANH GHI
5.4.1 Cho php thu
Bit cho php thu REN trong thanh ghi SCON phi c set. bng 1 bi phn mm
cho php nhn cc k t. iu ny thng c t.hc hin u chng trnh khi
port ni tip, cc b nh thi v.v... c khi ng v c th c thc hin theo 2 cch.
Lnh :
.SETB REN

set bit REN bng 1 hoc lnh :


MOV SCON, #xxxlxxxxB

set bit, REN bng 1 v xa hoc set cc bit khc trong SCON nu cn.
5.4.2 Bit d liu th 9
Bit d liu t.h 9 c pht cc ch 2 v 3 phi c nap cho bit TB8 bng
phn mm. Bit d liu th 9 thu c phi t vo bit RB8 ca SCON. Phn mm c th
yu cu hoc khng yu cu bit d liu t.h 9 ty vo cc c tnh ca thit b ni tip
m vi thit b ny vic truyn d liu c thit lp ( bit th 9 cn ng vai tr quan
trng trong truyn thng a x l ).
5.4.3 Thm vo bit chn l
Bit th 9 thng c dng lm bit chn l cho mt k t. Nh cp chng
2, bit p trong t trng thi chng trnh PSW c set, hoc xa mi mt chu k my
thit lp vic kim tra chn cho 8 bit cha trong thanh cha A.
Th d nu vic truyn thng yu cu 8 bit d liu cng vi mt bit kim tra chn,
cc lnh sau c dng pht, i 8 bit, trong thanh cha vi bit, kim tra chn c
a
vo bit t.h 9 :
; a
;

bit

di

bit kim tra chn vo TB8


MOV SBUF, A

ny tr' thnh bit th 9


chuyn 8 bit d liu t ACC n SBUF

Nu kim tra l c yu cu, cc lnh trn phi c sa i nh sau :

MOV c, p
CPL c

; a bit kim tra chn vo TB8 ; bin i thnh kim


tra l

1)96

;
n

bit

Ii vi iu khin 8051
MOV TB8,

ny tr thnh bit th 9 ; di chuyn 8 bit d liu t ACC

MOV SBUF, A

SBF

D nhin vic s dng bit chn l khng b gii hn cc ch d 2 v ch 3. Trong


ch 1, 8 bit d liu c pht i bao gm 7 bit d liu cng vi bit chn l. pht i
mt m ASCII 7-bit cng vi bit lcim tra chn ( bit th 8 ), ta c th s dng cc dng
lnh sau :
CLR

ACC.7

; m bo bit MSB c xa
; kim tra chn

MOV

c, p

; sao chp bit p vo c

MOV

ACC.7, c

; dt bit kim tra chn vo bit MSB

MOV

SBUF, A

; pht k t
; 7 bit d liu cng vi bit kim tra chn

5.4.4
Cc c ngt
Cc c ngt thu RI v ngt pht TI trong thanh ghi SCON dng mt vai tr quan
trng trong vic truyn d liu ni tip ca 8051. C 2 bit u c set bng 1 bng phn
cng nhng phi c xa bng phn mm.
in hnh l RI c set bng 1 khi kt thc vic nhn mt k t v ch ra rng b
m thu y. iu kin ny c kim tra bng phn mm hoc c lp trnh d to ra
mt ngt ( cc ngt c cp trong chng 6 ).
Nu phn mm mun nhp mt k t t, mt thit b ghp vi port ni tip, phn
mm phi ch cho n khi RI c set bng 1, k n phn mm xa RI v dc k t t
SBUF. iu ny dc th hin nh
sau :
WAIT:

JNB

RI, WAIT

CLR RI MOV A,

kim tra RI cho


bng 1 xa RI

SBUF
n khi
c k t

C TI c set bng 1 khi kt thc vic pht mt k t v ch ra rng b m pht


rng. Nu phn mm mun pht mt k t n mt thit, 'B' ghp vipo/Tni tip,
phn mm trc tin phi kim tra bit port ni tip d sn sng. Ni cch khc, nu
mt kv t trc c pht, phn mm phi ch vic pht kt thc trc khi gi
tip k t k.
Cc lnh sau dy pht mt k t cha trong thanh cha

WAIT:

JNB

TI,

CLR

TI

MOV

SBUF, A

WAIT

kim tra TI cho n khi bng 1 xa TI


pht k t

Cc chui lnh thu v pht trn l mt phn ca cc chng trnh con xut nhp
k t. Chng s dc m t chi tit trong th d 5.2 v th d 5.3.
5.5 TRUYN THNG A x L
Cc ch d 2 v 3 l cc ch d d phng cho vic truyn thng a x l. Trong cc
ch ny, 9 bit d liu dc thu v bit th 9 dc da n RB8. Port c th c lp
trnh sao cho khi b^t stop c nhn, ngt^ do port ni tip c tch cc ch nu RB8
= 1. c trng ny c c bng cch set bit SM2 trong thanh ghi SCON bng 1. Mt
ng dng cho iu ny l mt mi trng mng s dng nhiu 8051 c sp xp tlieo
m hnh ch / t ( master / slave ) nh trnh by trong hnh 5.7.

32 I/O ]jnes

32 I/O lines

Hnh 5.7 : Truyn thng a x l


Master 8051 : 8051 ch

8051 slave # 1, # 2 : 8051 t 1, 2


32 I/O lines : 32 ng xut/nhp

Khi b x l ch mun truyn mt khi d liu n mt trong nhiu b x l t,


trc tin b x l ch pht i mt byte a ch nhn dng b x l t ch. Mt byte
da ch khc vi mt byte d liu ch bit th
9 l 1 trong byte a chi v l 0 trong bvte d liu. Mt byte a ch ngt tt c cc b
x l t cho mi mt b x l t c th kho st byte nhn c kim tra xem c
phi l b x l t dang dc dnh a ch khng. B x l t dc nh a ch s xa
bit SM2 ca mnh v chun
j

b nhn cc byte d liu theo sau. Cc b x l t khng c nh a chi c cc bit


SM2 ca chng c set bng l.v thc thi cc cng vic ca ring chng, b qua
khng nhn cc byte d liu. Cc b x l ny s c ^gt ln na khi b x l ch
pht tip byte a ch k. Cc s c th c th c nu ra sao cho mt khi lin kt
ch t c thit. lp, b x l t cng c th pht n b x l ch. Mu mo y
l khng s dng bit d liu th 9 sau khi lin kt va c thit lp ( ngc li cc b
x l t khc c th c chn mt cch khng c ).
SM2 khng nh hng n ch 0, v trong ch 1 bit ny c th c dng
kim tra s hp l ca bit stop, ch 1 thu, nu SM2 = 1, ngt thu s khng c
tch cc tr phi bit stop thu c l hp l.
5.6 TC BAUD CA PORT N TIP
Nh thy trong bng 5.2, tc baud s c nh trong cc ch 0 v 2. Trong
ch 0, tc baud lun lun bng tn s ca mach dao ng trong chip chia cho 12,.
Thng thng ngi ta s dng mt thch anh bn ngoi chip cho mch dao ng ny.
Gi s tn s ca mch dao ng l 12 MHz, tc baud ca ch 0 l 1 MHz ( xem
hnh 5.8a ).
Sau khi h thng c reset, tc baud ca ch 2 bng tn s ca mch dao
ng chia cho 64. Tc baud cng b nh hng bi mt bit trong thanh ghi iu
khin ngun PCON. Bit 7 ca PCON l bit. SMOD v vic set bit ny bng 1 s lm
tng tc baud ca cc ch 1, 2 v 3 ln gp i. ch 2, tc baud c th
c nhn 2 t gi tr mc nh l 1/64 tn s ca mch dao ng ( SMOD = 0 ) tr
thnh 1/32 tn s' ca mch dao ng ( SMOD = 1 ) ( xem hnh 5.8b )
V thanh ghi PCON khng c nh a ch tng bit, vic set bit SMOD ln 1 m
khng lm thay i cc bit khc ca thanh ghi ny c thc hin bng nhng dng
lnh sau :
MOV

A, PCON

; ly gi tr hin hnh ca PCON

SETB

ACC.7

; set bit 7 bng 1 ( SMOD )

MOV

PCON, A

; ghi gi tr mi vo PCON

Cc tc baud ca 8051 ch 1 v ch 3 c xc nh bi tc trn


ca b nh thi 1. V b nh thi hot ng tn s lng i cao, ta cn chia tc
trn cho 32 ( hoc 16 nu SMOD = 1 ) trc khi tr thnh xung clock tc baud cung
cp cho port ni tip. Tc baud ca 8052 cc ch 1 v 3 c xc nh bi tc
trn ca b nh thi 1 hoc b nh thi 2 hoc c hai.

On-chp
Chng
5 : Hot ng ca port ni tip

12

oscillator

Baud rate clock

(a) Mode 0

Baud

rate

clock

Hnh 5.8 : Cc ngun xuiig clock cho port n tip (a) ch 0 (b) ch 2 (c)

ch 1 v 3

On chip oscillator : b dao ng trong chip


Baud rate clock : xung clock tc baud Timer
1 overflow : trn b nh thi 1

5.6.1 S dng b nh thi 1 lm xung clock tc baud


K thut thng dng to xung clock tc baud l khi ng thanh ghi TMOD
ch t np lai 8-bit ( ch nh thi 2 ) v t gi tr np li thch hp vo thanh
ghi THI c tc trn ng, t to ra tc baud.
Thanh ghi TMOD c khi ng nh sau :
MOV TMOD, #0010xxxxB xxxx

dnh cho b nh thi 0.


y khng phi l kh nng duy nht. Cc tc baud rt chm c th nhn c
bng cch s dng ch 16-bt. ch nh thi 2 vj (TMOD) = OOOlxxxxB. Tuy
nhin c mt li phn mm y do cc thanh ghi TH1/TL1 phi c khi ng li
sau mi ln trn. iu ny cn dc thc hin trong mt trnh phc v ngt. Mt la
chn khc l cung cp xung clock bn ngoi cho b nh thi 1 bng cch s dng ng
vo TI ( P3.5 ). D l la chon no, tc baud cng bng tc trn ca b nh thi
JL chia cho 32 ( hoc chia cho 16 nu SMOD = 1 ).

SI 100

l :

H vi iu khin 8051

Do vy, cng thc dng xc nh t'c baud cc ch 1 v 3


BAUD RATE = TIMER 1 OVERFLOW RATE ^32
Tc baud = tc trn b nh thi 1 chia cho 32

Th d nu cn tc baud l 1200, tc trn ca b nh thi 1 phi l 38.4 KHz


( = 1200 X 32 ).
Nu tn s ca mch dao ng bn trong chip l 12 MHz, b nh thi 1 c cp
xung clock l 1 MHz hay 1000 KHz. Do b nh thi phi trn tc l 38.4 KHz,
vic trn cn xy ra sau mi 26.04 xung clock ( 1000 38.4 ) v c lm trn l 26.
V b inh thi m ln v tr 11 khi c s' m t FFH chuyn thnh 00H. 26 s' m
nh hn 0 l gi tr np li cn c np cho thanh ghi TH1- Gi tr ny l -26. Cch d
dng nh't t gi tr np li vo THI l :
-7-

MOV THI, #-26


Trnh dch hp ng s thc hin vic bin i cn thit. Trong trng hp ny -26
c bin i thnh 0E6H, vy th lnh trn tr thnh :
MOV THI, #0E6H
Do ta lm trn s xung m nn s c mt sai s nh trong kt qu tnh tc baud.
Trong trng hp tng qut, mt sai s 5% l sai s chp nhn c trong truyn d
liu khng ng b. Cc tc baud chnh xc c th nhn c bng cch s dng
mt thch anh 11.059 MHz cho mch dao ng trong chip. Bng 5.3 tm tt cc gi tr
np li cn a vo thanh ghi THI cho cc tc baud thng dng nht ( s dng
thch anh 12 MHz hoc 11.059 MHz ).
Tc
baud

Tn s
thch anh

SMOD

Gi tri
np cho
TH1

Tc
baud
thc t

Sai
A'

SO

9G00

12.000 MHz

-7 (F9H)

8923

7%

2400

12.000 MHz

-13 (F3H)

2404

0.16%

1200

12.000 MHz

-26 (E6H)

1202

0.16%

19200

11.059 MHz

-3 (FDH)

19200

9G00

11.059 MHz

-3 (FDH)

9600

2400

11.059 MHz

-12 (F4H)

2400

1200

11.059 MHz

-24(E8H)

1200

Bng 5.3 : Tm tt tc baud

Chng 5 : Hot dng ca port ni tip

101 H)

Th d 5.1 : Khi dng port ni tip


Vit mt chui lnh khi ng port ni tip sao cho port ny hot ng nh mt
UART 8-bit vi tc 2400 baud. S dng b nh thi 1 cung cp xung clock tc
baud.
Vi th d ny ta phi khi dng 4 thanh ghi : SMOD, TMOD, TCON v THI. Cc
gi tr yu cu c tm tt di y :
SMO
0

SM1
1

SM2
0

REN
1

TB8
0

RB8
0

TI
1

RI
0

GTE

C/T

MI

MO

GTE

C/T

MI

MO

TF1

TRI

TF0

TRO

IE1

IT1

IEO

ITO

TCON:

THI:

SCON:

TMOD:

Vic thit lp SM0/SM1 = 0/1 nhm t port ni tip ch UART 8-bit. REN =
1 cho php port ni tip thu cc k t. Vic set TI bng 1 cho php pht k t u tin
bng cch ch ra rng b dm pht rng. Vi thanh ghi TMOD, vic thit lp M1/M0 =
1/0 dt b dnh thi 1 vo ch d t np li 8-bit. Vic set TRI trong TCON bng 1 s
khi ng b nh thi 1 hot dng.
Cc bit khc dc cho bng 0 do chng iu khin cc c trng hoc cc ch
khng c s dng trong th d ny.
Gi tr cn np cho THI l gi tr cung cp tc trn : 2400 X 32 = 76.8 KHz. Gi
s tn s ca mch dao dng trong chip l 12 MHzvb nh thi 1 dc cung cp xung
clock c tn s 1 MHz hay 1000 KHz v <sTxurig~Hc^-cho mi ln trn l 1000 -r76.8 = 13.02 ( lm trn l 13 ). Gi tr np li l -13 hoc 0F3H.
Chui lnh khi dng port ni tip nh sau :
ORG 8100H
INIT:

MOV

SCON, #52H

port ni tip, ch d 1 b dinh thi 1,

MOV TMOD, #20H MOV

ch 2 gi tr np li c 2400

THI, #-13 SETB TRI

baud b dnh thi 1 hot dng

END

Th d 5.2 : Chng trnh con xu t k t


Vit mt chng trnh con gi l OUTCHR pht m ASCII 7-bit cha trong thanh
cha A ra port ni tip ca 8051 vi bt kim tra l l bit th 8. Vic tr v t chng trnh
con khng lm thay i ni dung thanh cha ( ngha l thanh cha c ni dung ging nh
ni dung trc khi chng trnh con c gi ).
Th d ny v th d k minh ha hai trong nhiu chng trnh con thng dng nht trn
cc h my vi tnh c thit b u cui ghp qua chun RS-232 : xut k t ( OUTCHR ) v
nhp k t ( INCHAR ).
ORG 8100H OTCHR: MOV c, p
CPL c MOV ACC.7, c AGAIN:

JNB

TI,

; t bit chn l vo c c ; i
thnh l ; a vo bit 7 ca ACC

AGAIN

; b m pht rng ?

CLR TI MOV SBUF, A CLR ACC.7 RET END

; sai, kim tra li ; ng,

xa c TI v ; pht 1 k
Ba lnh u tin t bit kim tra l vo bit 7
ca
thanh cha. Do bit p trong t trng thi chng
trnh
t
PSW thit lp kim tra chn cho thanh cha, bit
ny
phi c lv b tritr khi t vo ACC.7. Lnh JNB to ra mt vng lp ch kim tra c
ngt pht TI cho n khi c' ny c set bng 1. Khi TI =1 ( do vic pht k t trc
va kt thc ), bit ny c xa v sau k t trong thanh cha c ghi vo b m ca
port ni tip SBUF v vic pht k t bt u ln trn k cua b m 16 to xung clock
cho port, ni tip. Sau cng bit. ACC.7 c xa gi tr tr v ging nh khi m 7-bit
c chuyn n chng trnh con.

Chng trnh con OUTCHR thng dc gi bi mt chng trnh gi pht mt k


t hoc mt chui k t. Th d cc lnh san pht m ASCII ca k t z n thit. b ni
tip ghp vi port ni t.ip ca 8051 :
MOV A, # Z
CALL OUTCHR

Ta cng c th s dng chng trnh con OUTCHR nh l mt khi c thit k


trong mt chng trnh con c tn l OUTSTR chng hn, chng trnh con ny pht
mt chui k t ASCII kt thc bi byt.e NULL ( 00H ) n mt thit b jxij,tip_glij)j/i port ni tip caJiQ&h
Th d 5.3 : Chng trnh con thu mt k t
Vit mt chng trnh con c tn l INCHAR thu mt k t t port ni tip ca
8051 v tr VC m ASCII 7-bit. trong thanh cha. S dng kim tra l trong bit th 8
thu c v set c nh bng 1 nu c li chn l.
CPL c

8100H RI,

CLR ACC.7 RET

RI

; ch k t ;

A, SiF

c,

xa c
; c k t vo thanh cha ; vi
kim tra l troag A ; p cn c set
bng 1 ; vic ly b ch ra c li

ORG

INCHAR:

JNB

hay ; khng ?
; xa

CLR MOV MOV


END '

Chng trnh con ny bt u bng vic ch c ngt, thu RI c sct bng 1 ch


ra rng k t sn sng trong b m thu SBUF ( d c c ). Khi RI = 1, lnh JNB
chuyn iu khin n lnh tip theo lnh ny. C RI c xa v m trong SBUF dc
c vo thanh cha. Bit p trong PSW thit lp kim tra chn cho thanh cha, do vy bit
ny cn c set bng 1 nu bn thn thanh cha cha bit kim tra l bil th 7 ca
thanh ghi ny. Vic di chuyn bit p vo c nh lm cho CY = 0 nu khng c li. Mt
khc, nu t.hanh cha cha mt li chn l, c CY s bng 1. Cui cng bit ACC.7
c xa m bo rng ch c m 7-bit c tr v cho chng trnh gi.
Cc ni dung trong cc chng 4 v 5 trnh by cc chi tit chnh cn n khi ta lp
trnh nh thi v thu pht ni tip. Cc chng trnh th d trong 2 chng ny hon
ton khng s dng ngt m s dng cc vng lp. Vic s dng cc vng lp trong lp
trnh xut nhp

gp phi khuyt im l hcLvi x l khng lm g c ch cc iu kin xut nhp sn


sng.
Trn thc t, nhiu ng dng lin quan n cc b nh thi v port ni tip ca
8051 yu cu phi c ng b cng nh b vi x l khng phi ch, ngi ta s
dunq ngt. v l ch ca chng tip theo, hot ng ngt.

You might also like