Professional Documents
Culture Documents
Sender
Parallen Transfer
Receiver
Sender
D0
Receiver
D7
B pht
B thu
Bn n cng
B pht
B thu
B thu
B pht
B pht
B thu
B thu
B pht
Song cng
Space
Goes out last
Stop
bt
d7
d0
Start Mark
bt
Goes out first
13
14
25
M t
t cch ly (Protective Cround)
D liu c truyn TxD (TrNsmitted data)
D liu c phn RxD (Received data)
Yu cu gi RTS (Request To Send)
Xo gi CIS (Clear To Send)
D liu sn sng DSR (Data Set Ready)
t ca tn hiu GND (Signal Cround)
Tch tn hiu mng d liu DCD (Data Carrier Detect)
Nhn kim tra d liu (Received for data testing)
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Cha dng
Tch tn hiu mng d liu th cp (Secondary data carrier detect)
Xo nhn d liu th cp (Secondary Clear to Send)
D liu c truyn th cp (Secondary Transmit Signal Element Timing)
Truyn phn chia thi gian phn t tn hiu (Transmit Signal Element
Timing)
D liu c nhn th cp (Secondary Received data)
Nhn phn chia thi gian phn t tn hiu (Receiveo Signal Element
Timing)
Cha dng
Yu cu nhn th cp (Secondary Request to Send)
u d liu sn sng (Data Terminal Ready)
Pht hin cht lng tn hiu (Signal Qualyty Detector)
Bo chung (Ring Indicator)
Chn tc tn hiu d liu (Data Signal Rate Select)
Truyn phn chia thi gian tn hiu (Transmit Signal Element Timing)
Cha dng
S chn
Trnh tn hiu mng d liu
D liu c nhn
D liu c gi
u d liu sn sng
t ca tn hiu
D liu sn sng
Yu cu gi
Xo gi
Bo chung
DTE
DTE
TxD
TxD
RxD
RxD
ground
Hnh 10.6: Ni kt khng modem.
10.1.8 Kim tra cc tn hiu bt tay ca RS232.
bo m truyn d liu nhanh v tin cy gia hai thit b th vic truyn d
liu phi c phi hp tt. Chng hn nh trong trng hp ca my in, do mt thc
t l trong truyn thng d liu ni tip thit b thu c th khng c ch cha d
liu, do phi c cch bo cho bn pht dng gi d liu. Rt nhiu chn ca
RS232 c dng cho cc tn hiu bt tay. Di y l m t v chng nh l mt
tham kho v chng c th c b qua v chng khng c h tr bi chp UART
ca 8051.
1. u d liu sn sng DTR: Khi thit b u cui (hoc mt cng COM ca PC)
c bt th sau khi t kim tra n gi mt tn hiu DTR bo rng n sn sng
cho truyn thng. Nu c mt ci g trc trc vi cng COM th tn hiu ny
khng c kch hot. y l tn hiu tch cc mc thp v c th c dng
bo cho modem bit rng my tnh ang hot ng v ang sn sng. y
l chn u ra t DTC (cng COM ca PC) v chn u ra ca modem.
2. D liu sn sng QSR: Khi DCE (chng hn modem) c bt ln v chy
xong chng trnh t kim tra th n i hi DSR bo rng c sn sng
cho truyn thng. Do vy, n l u ra ca modem (DCE) v u vo ca PC
(DTE). y l tn hiu tch cc mc thp. Nu v l do no m modem
khng kch hot bo cho PC bit (hoc thit b u cui) rng n khng th
nhn hoc gi d liu.
3. Yu cu gi RTS: Khi thit b DTE (chng hn mt PC) c mt byte d liu
cn gi th n yu cu RTS bo cho modem bit rng n c mt byte cn
phi gi i. RTS l mt u ra tch cc mc thp t DTE v mt u vo ti
modem.
4. Tn hiu xo gi CTS: p li RTS th khi modem c cha d liu m
n cn nhn th n gi mt tn hiu CTS ti DTE (PC) bo rng by gi n
c th nhn d liu. Tn hiu u vo ny ti DTE dng khi ng vic
truyn d liu.
5. Tch tn hiu mang d liu DCD: Modem yu cu tn hiu DCD bo cho DTE
bit rng tch c mt tn hiu mang d liu hp l v rng kt ni gia n
v modem khc c thit lp. Do vy, DCD l mt u ra ca modem v
u vo ca PC (DTE).
6. Bo chung RI: Mt u ra t modem (DCE) v mt u vo ti my tnh PC
(DTE) bo rng in thoi ang bo chung. N tt v bt ng b vi m
thanh ang chung. Trong 6 tn hiu bt tay th tn hiu ny l t c dng
nht do mt thc t l cc modem chu trch nhim v tr li in thoi.
Tuy nhin, nu trong mt h thng cho m PC phi chu trch nhim tr li
in thoi th tn hiu ny c th c dng.
16
11
2
12
2
10
9
2
6
T1IIN
T1OUT
R1OUT
R1IIN
T2IIN
T2OUT
R2OUT
R2IIN
TTL side
C3
+
15
8051
C4
+
14
P3.1 11
TxD
10
P3.0
RxD
13
Max232
2 5
4 2
DB - 9
7
8
Rs232 side
13
14
12
17
2
3
1
20
T1IIN
11
15
16
10
T1OUT
R1OUT
R1IIN
T2IIN
T2OUT
R2OUT
R2IIN
TTL side
8051
5
4
18
T1IIN
P3.1 11
TxD
10
P3.0
RxD
Max232
2 5
2
DB - 9
19
Rs232 side
150
300
600
1200
2400
4800
9600 19200
V d 10.1:
Vi tn s XTAL l 11.0592MHz. Hy tm gi tr TH1 cn thit c tc
baud sau:
a) 9600
b) 2400
c) 1200
Li gii:
Vi tn s XTAL l 11.0592MHz th ta c tn s chu trnh my ca 8051 l
11.0592MHz : 12 = 921.6kHz v sau ly 921.6kHz/32 = 28.800Hz l tn s c
cp bi UART ti b nh thi Timer1 thit lp tc .
a) 28.800/3 = 9600
trong - 3 = FD c np vo TH1
b) 28.800/12 = 2400
trong - 12 = F4 c np vo TH1
c) 28.800/24 = 1200
trong - 24 = F8 c np vo TH1
Lu rng vic chia 1/12 ca tn s thch anh cho 32 l gi tr mc nh khi
kch hot chn RESET ca 8051. Chng ta c th thay i gi tr ci t mc nh
ny. iu ny s c gii thch cui chng.
XTAL
oscillator
12
921.6kHz
32
by UART
28800Hz
np TH1 theo cc gi tr cho trong bng 10.3. V d 10.1 trnh by cch kim tra gi
tr d liu cho trong bng 10.3.
Bng 10.3: Cc gi tr ca thanh ghi TH1 trong Timer1 cho cc tc baud
khc nhau.
Tc baud
9600
4800
2400
1200
TH1 (s Hex)
FD
FA
F4
F8
SBUF, # D
SBUF, A
A, SBUF
SM0
SM1
SM2
REN
TB8
RB8
T1
SCON.7
SCON.6
SCON.5
SCON.4
SCON.3
SCON.2
SCON.1
R1
SCON.0
SM1
SM2 REN
TB8
RB8
T1
R1
Ch :
Hnh 10.2: Thanh ghi iu khin cng ni tip SCON.
10.3.3.1 Cc bt SM0, SM1.
y l cc bt D7 v D6 ca thanh ghi SCON. Chng c dng xc nh
ch ng khung d liu bng cch xc nh s bt ca mt k t v cc bt Start v
Stop. Cc t hp ca chng l:
SM0
0
0
1
1
SM1
0
1
0
1
Ch ni tip 0
Ch ni tip 1, 8 bt d liu, Start, Stop
Ch ni tip 2
Ch ni tip 3
AGAIN:
HERE:
MOV
MOV
MOV
SETB
MOV
JNB
CLR
SJMP
TMOD, #20H
TH1, # - 6
SCON, #A
TR1
SBUF, #A
TI, HERE
TI
AGAIN
V d 10.3:
Hy vit chng trnh truyn ch YES ni tip lin tc vi tc 9600
baud (8 bt d liu, 1 bt Stop).
Li gii:
MOV TMOD, #20H
MOV TH1, # - 3
MOV SCON, #50H
SETB TR1
AGAIN: MOV A, # "Y"
ACALL TRANS
MOV A, # "E"
ACALL TRANS
MOV A, # "S"
ACALL TRANS
SJMP AGAIN
; Chng trnh con truyn d liu ni tip.
TRANS:
MOV SBUF, A
HERE:
JNB
TI, HERE
CLR
TI
RET
; Chn b Timer1, ch 2
; Chn tc 9600 baud
; Truyn 8 bt d liu, 1 bt Stop cho php thu
; Khi ng Timer1
; Truyn k t Y
; Truyn k t E
; Truyn k t S
; Tip tc
; Np SBUF
; Ch cho n khi truyn bt cui cng
; Ch sn cho mt byte k tip
TMOD, #20H
TH1, # - 6
SCON, #50H
TR1
R1, HERE
A, SBUF
P1, A
RI
HERE
V d 10.5:
Gi s cng ni tip ca 8051 c ni vo cng COM ca my tnh IBM CP
v m ang s chng trnh Termina. Exe gi v nhn d liu ni tip. Cng P1 v
P2 ca 8051 c n ti cc LED v cc cng tc chuyn mch tng ng. Hy
vit mt chng trrnh cho 8051.
a) Gi thng bo We Are Ready (chng ti sn sng) ti my tnh PC.
H - 1:
B - 1:
;
SEND:
H- 2:
;
RECV:
;
RECV:
;
MYDATA:
0
P2, #0FFH
TMOD, #20H
TH1, # 0FAH
SCON, #50H
; Ly cng P2 lm cng vo
; Chn b Timer1, ch 2 (t ng np li)
; Chn tc 4800 baud
; To khung d liu 8 bt, 1bt Stop cho php
REN.
; Khi ng b Timer1
; Np con tr n thng bo
SETB TR1
MOV DPTR, #MYDATA
CLR
A
MOVC A, A + DPTR
; Ly k t
JZ
DPTR
; Nu k t cui cng mun gi ra
ACALL SEND
; Nu cha th gi chng trnh con SEND
INC
DPTR
; Chy tip
SJMP H - 1
; Quay li vng lp
MOV A, P2
; c d liu trn cng P2
ACALL RECV
; Truyn n ni tip
ACALL RECV
; Nhn d liu ni tip
MOV F1, A
; Hin th n ra cc n LED
SJMP B - 1
; li vng lp v hn
Truyn d liu ni tip ACC c d liu
MOV SBUF, A
; Np d liu
JNB
TI, H - 2
; li vng lp v hn
CLR
TI
; Truyn d liu ni tip
RET
; Nhn d liu
Truyn d liu ni tip ACC c d liu
JNB
RI, RECV
; Np d liu
MOV A, SBUF
; li y cho n khi gi bt cui cng
CLR
RI
; Sn sng cho k t mi
RET
; Tr v mi gi
Nhn d liu ni tip trong ACC
JNB
RI, RECV
; i y nhn k t
MOV A, SBUF
; Lu n vo trong ACC
CLR
RI
; Sn sng nhn k t m tip theo
RET
; Tr v ni gi
Ngn xp cha thng bo
DB
Chng ti sn sng 0
END
8051
To
PC
COM
port
P1
LED
TxD
RxD
P2
SW
D7
SM0D
GF0
GF0
PD
IDL
A, PCON
ACC.7
PCON, A
11.0592MHz
921.6kHz
= 921.6 kHz v
= 28.800Hz v SMOD =
12
32
11.0592MHz
921.6kHz
= 921.6kHz v
= 57.600kHz v
12
16
SMOD = 1.
y l tn s m Timer1 dng t tc baud. Bng 10.5 l cc gi tr cn
c np vo TH1 cng vi cc tc baud ca 8051 khi SMOD = 0 v 1.
Bng 10.5: So snh tc baud khi SMOD thay i.
TH1 (thp phn)
TH1 (Hex)
-3
-6
-12
-24
FD
DA
F4
E8
Tc baud
SMOD = 0
SMOD = 1
9600
19200
4800
9600
2400
4800
1200
2400
V d 10.6:
gi s tn s XTAL = 11.0592MHz cho chng trnh di y, hy pht biu
a) chng trnh ny lm g? b) hy tnh ton tn s c Timer1 s dng t tc
baud? v c) hy tm tc baud truyn d liu.
A-1:
H-1:
MOV
SETB
MOV
A, PCON
ACC.7
PCON, A
MOV
MOV
TMOD, #20H
TH1, - 3
MOV
SETB
MOV
CLR
MOV
JNB
SJMP
SCON, #50H
TR1
A, #B
TI
SBUF, A
TI, H-1
A-1
Li gii:
a) Chng trnh ny truyn lin tc m ASCII ca ch B ( dng nh phn l 0100
0010)
b) Vi tn s XTAL = 11.0592MHz v SMOD = 1 trong chng trnh trn ta c:
11.0592MHz/12 = 921.6kHz l tn s chu trnh my
921.6kHz/16 = 57.6kHz l tn s c Timer1 s dng t tc baud
c) 57.6kHz/3 = 19.200 l tc cn tm
V d 10.7:
Tm gi tr TH1 ( dng thp phn v hex) t tc baud cho cc trng
hp sau.
a) 9600
b) 4800 nu SMOD = 1 v tn s XTAL = 11.0592MHz
Li gii:
Vi tn s XTAL = 11.0592MHz v SMOD = 1 ta c tn s cp cho Timer1 l
57.6kHz.
a) 57.600/9600 = 6 do vy TH1 = - 6 hay TH1 = FAH
b) 57.600/4800 = 12 do vy TH1 = - 12 hay TH1 = F4H
SMOD=1
11.0592MHz
28800Hz
XTAL
oscillator
12
921.6kHz
16
32
57600Hz
28800Hz
To
timer1
to set
baud
rate
SMOD=0
V d 10.8:
Hy tm tc baud nu TH1 = -2, SMOD = 1 v tn s XTAL =
11.0592MHz. Tc ny c c h tr bi cc my tnh IBM PC v tng thch
khng?
Li gii:
Vi tn s XTAL = 11.0592MHz v SMOD = 1 ta c tn s cp cho Timer1 l
57.6kHz. Tc baud l 57.600kHz/2 = 28.800. Tc ny khng c h tr bi
cc my tnh IBM PC v tng thch. Tuy nhin, PC c th c lp trnh truyn
d liu vi tc nh vy. Phn mm ca nhiu modem c th lm cho iu ny v
Hyperterminal ca Windows 95 cng c th h tr tc ny v cc tc khc na.
10.3.7 Truyn d liuda trn cc ngt.
Ta phi thy rng tht lng ph cc b vi iu khin phi bt ln xung cc
c TI v RI. Do vy, tng hiu sut ca 8051 ta c th lp trnh cc cng truyn
thng ni tip ca n bng cc ngt. y chnh l ni dung chnh s bn lun
chng 11 di y.