Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

CHNG 10 Truyn thng ni tip ca 8051

Cc my tnh truyn d liu theo hai cch: Song song v ni tip. Trong truyn d liu song song thng cn 8 hoc nhiu ng dy dn truyn d liu n mt thit b ch cch xa vi bc. V d ca truyn d liu song song l cc my in v cc cng, mi thit b s dng mt ng cp vi nhiu dy dn. Mc d trong cc trng hp nh vy th nhiu d liu c truyn i trong mt khong thi gian ngn bng cch dng nhiu dy dn song song nhng khong cch th khng th ln c. truyn ddx liu i xa th phi s dng phng php truyn ni tip. Trong truyn thng ni tip d liu c gi i tng bt mt so vi truyn song song th mt hoc nhiu byte c truyn i cng mt lc. Truyn thng ni tip ca 8051 l ch ca chng ny. 8051 c ci sn kh nng truyn thng ni tip, do vy c th truyn nhnh d liu vi ch mt s t dy dn. 10.1 Cc c s ca truyn thng ni tip. Khi mt b vi x l truyn thng vi th gii bn ngoi th n cp d liu di dng tng khc 8 bt (byte) mt. Trong mt s trng hp chng hn nh cc my in th thng tin n gin c ly t ng bus d liu 8 bt v c gi i ti bus d liu 8 bt ca my in. iu ny c th lm vic ch khi ng cp bus khng qu di v cc ng cp di lm suy gim thm ch lm mo tn hiu. Ngoi ra, ng d liu 8 bt gi thng t. V nhng l do ny, vic truyn thng ni tip c dng truyn d liu gia hai h thng cch xa nhau hng trm n hng triu dm. Hnh 10.1 l s truyn ni tip so vi s truyn song song.
Serial Transfer Transfer Sender Receiver Sender Parallen

D0

Receiver

D7

Hnh 10.1: S truyn d liu ni tip so vi s truyn song song. Thc t l trong truyn thng ni tip l mt ng d liu duy nht c dng thay cho mt ng d liu 8 bt ca truyn thng song song lm cho n khng ch r hn rt nhiu m n cn m ra kh nng hai my tnh cch xa nhau c truyn thng qua ng thoi. i vi truyn thng ni tip th lm c cc byte d liu phi c chuyn i thnh cc bt ni tip s dng thanh ghi giao dch vo - song song - ra ni tip. Sau n c th c truyn quan mt ng d liu n. iu ny cng c ngha l u thu cng phi c mt thanh ghi vo - ni tip - ra - song song nhn d liu ni tip v sau gi chng thnh tng byte mt. Tt nhin, nu d liu c truyn qua ng thoi th n phi c chuyn i t cc s 0 v 1 sang m thanh dng sng hnh sin. Vic chuyn i ny thc thi bi mt thit b c tn gi l Modem l ch vit tt ca Modulator/ demodulator (iu ch/ gii iu ch).

Khi c ly truyn ngn th tn hiu s c th c truyn nh ni trn, mt dy dn n gin v khng cn iu ch. y l cch cc bn PC v IBM truyn d liu n bo mch m. Tuy nhin, truyn d liu i xa dng cc ng truyn chng hn nh ng thoi th vic truyn thng d liu ni tip yu cu mt modem iu ch (chuyn cc s 0 v 1 v tn hiu m thanh) v sau gii iu ch (chuyn tn hiu m thanh v cc s 0 v 1). Truyn thng d liu ni tip s dng hai phng php ng b v d b. Phng php ng b truyn mt khi d liu (cc k t) ti cng thi im trong khi truyn d b ch truyn tng byte mt. C th vit phn mm s dng mt trong hai phng php ny, nhng chng trnh c th rt di v bun t. V l do ny m nhiu nh sn xut cho ra th trng nhiu loi IC chuyn dng phc v cho truyn thng d liu ni tip. Nhng IC ny phc v nh cc b thu - pht d b tng hp VART (Universal Asynchronous Receiver Transmitter) v cc b thu - pht ng - d b tng hp UBART (Universal Asynchronous Receiver Transmitter). B vi iu khin 8051 c mt ci sn mt UART m n s c bn k mc 10.3.
n cng B pht B thu

Bn n cng

B pht B thu

B thu B pht

Song cng

B pht B thu

B thu B pht

Hnh 10.2: Truyn d liu n cng, bn cng v song cng. 10.1.1 Truyn d liu bn cng v song cng. Trong truyn d liu nu d liu c th c va pht v va c thu th gi l truyn song cng. iu ny tng phn vi truyn n cng chng hn nh cc my in ch nhn d liu t my tnh. Truyn song cng c th c hai loi l bn song cng v song cng hon ton ph thuc vo truyn d liu c th xy ra ng thi khng? Nu d liu c truyn theo mt ng ti mt thi im th c gi l truyn bn song cng. Nu d liu c th i theo c hai ng cng mt lc th gi l song cng ton phn. Tt nhin, truyn song cng i hi hai ng d liu (ngoi ng m ca tn hiu), mt pht v mt thu d liu cng mt lc. 10.1.2 Truyn thng ni tip d b v ng khung d liu. D liu i vo u thu ca ng d liu trong truyn d liu ni tip ton l cc s 0 v 1, n tht l kh lm cho d liu y c ngha l nu bn pht v bn thu khng cng thng nht v mt tp cc lut, mt th tc, v cch d liu c ng gi, bao nhiu bt to nn mt k t v khi no d liu bt u v kt thc. 10.1.3 Cc bt bt u v dng.

Truyn thng d liu ni tip d b c s dng rng ri cho cc php truyn hng k t, cn cc b truyn d liu theo khi th s dng phng pht ng b. Trong phng php d b, mi k t c b tr gia cc bt bt u (start) v bt dng (stop). Cng vic ny gi l ng gi d liu. Trong ng gi d liu i vi truyn thng d b th d liu chng hn l cc k t m ASCII c ng gi gia mt bt bt u v mt bt dng. Bt bt u lun lun ch l mt bt, cn bt dng c th l mt hoc hai bt. Bt bt u lun l bt thp (0) v cc bt dng lun l cc bt cao (bt 1). V d, hy xt v d trn hnh 10.3 trong k t A ca m ASCII (8 bt nh phn l 0100 0001) ng gi khung gia mt bt bt u v mt bt dng. Lu rng bt thp nht LSB c gi ra u tin.

Stop Space bt Goes out d

Start Mar bt Goes out

Hnh 10.3: ng khung mt k t A ca m ASCII (41H) c tn hiu l 1 (cao) c coi nh l mt du (mark), cn khng c tn hiu tc l 0 (thp) th c coi l khong trng (space). Lu rng php truyn bt u vi start sau bt D0, bt thp nht LSB, sau cc bt cn li cho n bt D7, bt cao nht MSB v cui cng l bt dng stop bo kt thc k t A. Trong truyn thng ni tip d b th cc chp IC ngoi vi v cc modem c th c lp trnh cho d liu vi kch thc theo 7 bt hoc 8 bt. y l cha k cc bt dng stop c th l 1 hoc 2 bt. Trong khi cc h ASCII c hn (trc y) th cc k t l 7 bt th ngay nay do vic m rng cc k t ASCII nn d liu nhn chung l 8 bt. Trong cc h c hn do tc chm ca cc thit b thu th phi s dng hai bt dng m bo thi gian t chc truyn byte k tip. Tuy nhin, trong cc my tnh PC hin ti ch s dng 1 bt stop nh l chun. Gi s rng chng ta ang truyn mt tp vn bn cc k t ASCII s dng 1 bt stop th ta c tng cng l 10 bt cho mi k t gm: 8 bt cho k t ASCII chun v 1 bt start cng 1 bt stop. Do vy, i vi mi k t 8 bt th cn thm 2 b v chi l mt 25% tng ph. Trong mt s h thng nhm duy tr tnh ton vn ca d liu th ngi ta cn thm mt bt l (parity bt). iu ny c ngha l i vi mi k t (7 hoc 8 bt tu tng h) ta c thm mt bt ngoi cc bt start v stop. Bt chn l l bt chn hoc bt l. Nu l bt l l s bt ca d liu bao gm c bt chn l s l mt s l cc s 1. Tng t nh vy i vi trng hp bt chn th s bt ca d liu bao gm c bt chn - l s l mt s chn ca cc s 1. V d, k t A ca m ASCII dng nh phn l 0100 0001, c bt 0 l bt chn. Cc chp UART u cho php vic lp trnh bt chn - l v chn, l hoc khng phn bit chn l. 10.1.4 Tc truyn d liu. Tc truyn d liu trong truyn thng d liu ni tip c gi l bt trong giy bps (bt per second). Ngoi ra, cn c s dng mt thut ng rng ri na l tc baud. Tuy nhin, cc tc baud v bps l hon ton khng bng nhau. iu ny

l do tc baud l thut ng ca modem v c nh ngha nh l s ln thay i ca tn hiu trong mt giy. Trong cc modem c nhng trng hp khi mt s thay i ca tn hiu th n truyn vi bt d liu. Nhng i vi mt dy dn th tc baud v bps l nh nhau nn trong cun sch ny chng ta c th dng thay i cc thut ng ny cho nhau. Tc truyn d liu ca mt h my tnh cho ph thuc vo cc cng truyn thng kt ni vo trong h thng o. V d, cc my tnh PC/XT trc y ca IBM c th truyn d liu vi tc 100 n 9600 bps. Tuy nhin, trong nhng nm gn y th cc my tnh PC da trn Pentium truyn d liu vi tc ln ti 56kbps. Cn phi ni thm rng trong truyn thng d liu ni tip d b th tc baud nhn chung l b gii hn 100.000 bps. 10.1.5 Cc chun RS232. cho php tng thch gia cc thit b truyn thng d liu c sn xut bi cc hng khc nhau th mt chun giao din c gi l RS232 c thit lp bi hip hi cng nghip in t EIA vo nm 19960. Nm 1963 n c sa chnh v c gi l RS232A v vo cc nm 1965 v 1969 th c i thnh RS232B v RS232C. y chng ta n gin ch ni n RS232. Ngy nay RS232 l chun giao din I/O vo - ra ni tip c s dng rng ri nht. Chun ny c s dng trong my tnh PC v hng lot cc thit b khc nhau. Tuy nhin, v n c thit lp trc h l-gc TTL rt lu do vy in p u vo v u ra ca n khng tng thch vi mc TTL. Trong RS232 th mc 1 c biu din bi - 3v n 25v trong khi mc 0 th ng vi in p + 3v n +25v lm cho in p - 3v n + 3v l khng xc nh. V l do ny kt ni mt RS232 bt k n mt h vi iu khin th ta phi s dng cc b bin i in p nh MAX232 chuyn i cc mc l-gc TTL v mc in p RS232 v ngc li. Cc chp IC MAX232 nhn chung c coi nh c b iu khin ng truyn. Kt ni RS232 n MAX232 c tho thun phn 10.2. 10.1.6 Cc chn ca RS232. Bng 10.1 cung cp s chn ca cp RSE232 v cc tn gi ca chng thng c gi l u ni DB - 25. Trong l hiu th u ni cm vo (u c) gi l DB - 25p v u ni ci c gi l DB - 25s.
1 13

14

25

Hnh 10.4: u ni DB - 25 ca RS232. V khng phi tt c mi chn u c s dng trong cp cu my tnh PC, nn IBM a ra phin bn ca chun vo/ra ni tip ch s dng c 9 chn gi l DB - 9 nh trnh by bng 10:2 v hnh 10.5. Bng 10.1: Cc chn ca RS232, 25 chn (DB - 25).

S chn 1 2 3 4 5 6 7 8 9/10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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) 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

10.1.7 Phn loi truyn thng d liu. Thut ng hin nay phn chia thit b truyn thng d liu thnh mt thit b u cui d liu DTE (Data Terminal Equipment) hoc thit b truyn thng d liu DCE (Data Communication Equipment). DTE ch yu l cc my tnh v cc thit b u cui gi v nhn d liu, cn DCE l thit b truyn thng chng hn nh cc modem chu trch nhim v truyn d liu. Lu rng tt c mi nh ngha v chc nng cc chn RS232 trong cc bng 10.1 v 10.2 u xut pht t gc ca DTE. Kt ni n gin nht gia mt PC v b vi iu khin yu cu ti thiu l nhng chn sau: TxD, RxD v t nh ch ra hnh 10.6. rng trn hnh ny th cc chn TxD v RxD c i cho nhau. Hnh 10.5: S u ni DB - 9 ca RS232.
1 5

Bng 10.2: Cc tn hiu ca cc chn u ni DB - 9 trn my tnh IBM PC.

M t 1 2 3 4 5 6 7 8 9

Da ta carrier detect (DCD) Received data (RxD) Transmitted data (TxD) Data terminal ready (DTR) Signal ground (GND) Data set ready (DSR) Request to send (RTS) Clear to send (CTS) Ring indicator (RL)

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
TxD RxD TxD RxD

DTE

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. T m t trn th vic truyn thng PC v modem c th c tm tt nh sau: Trong khi cc tn hiu DTR v DSR c dng bi PC v modem bo rng chng ang hot ng tt th cc tn hiu RTS v CTS thc t ang kim tra lung d liu. Khi PC mun gi d liu th n yu cu RTS v p li, nu modem sn sng (c ch cha d liu) nhn d liu th n gi li tn hiu CTS. Cn nu khng c ch cho d liu th modem khng kch hot CTS v PC thi khng yu cu DTR v th li. Cc tn hiu RTS v CTS cng c ci nh tn hiu lung iu khin phn cng. n y kt thc s m tt 9 chn quan trng nht ca cc tn hiu bt tay RS232 v cc tn hiu TxD, RxD v t (Ground). Tn hiu Ground ny cng c coi nh l tn hiu SG - t ca tn hiu. 10.1.9 Cc cng COM ca IBM PC v tng thch. Cc my tnh IBM PC v tng thch da trn cc b vi x l 86 (8086, 286, 384, 486 v Pentium) thng c hai cng COM. C hai cng COM u c cc u ni kiu RS232. Nhiu my tnh PC s dng mi u ni mt kiu cm DB - 25 v DB - 9. Trong nhng nm gn y, cng COM1 c dng cho chut v COM2 c dng cho cc thit b chng hn nh Modem. Chng ta c th ni cng ni tip ca 8051 n cng COM2 ca mt my tnh PC cho cc th nghim v truyn thng ni tip. Vi nn kin thc v truyn thng ni tip ny chng ta sn sng lm vic vi 8051. 10.2 Ni ghp 8051 ti RS232. Nh ni phn 10.1, chun RS232 khng tng thch vi mc l-gc TTL, do vy n yu cu mt b iu khin ng truyn chng hn nh chp MAX232 chuyn i cc mc in p RS232 v cc mc TTL v ngc li. Ni dung chnh ca phn ny l bn v ni ghp 8051 vi cc u ni RS232 thng qua chp MAX232. 10.2.1 Cc chn RxD v TxD trong 8051. 8051 c hai chn c dng chuyn cho truyn v nhn d liu ni tip. Hai chn ny c gi l TxD v RxD v l mt phn ca cng P3 ( l P3.0 v P3.1). chn 11 ca 8051 l P3.1 c gn cho TxD v chn 10 (P3.0) c dng cho RxD. Cc chn ny tng thch vi mc l-gch TTL. Do vy chng i hi mt b iu khin ng truyn chng tng thch vi RS232. Mt b iu khin nh vy l chp MAX232. 10.2.2 B iu khin ng truyn MAX232.

V RS232 khng tng thch vi cc b vi x l v vi iu khin hin nay nn ta cn mt b iu khin ng truyn (b chuyn i in p) chuyn i cc tn hiu RS232 v cc mc in p TTL s c chp nhn bi cc chn TxD v RxD ca 8051. Mt v d ca mt b chuyn i nh vy l chp MAX232 t hng Maxim a ch Website ca hng www.maxim-ic.com. B MAX232 chuyn i t cc mc in p RS232 s v mc in p TTL v ngc li. Mt im mnh ca chp MAX232 l n dng in p ngung +5v cng vi in p ngun ca 8051. Hay nic cch khc vi ngun in p nui +5 chng ta m c th nui 8051 v MAX232 m khng phi dng hai ngun nui khc nhau nh ph bin trong cc h thng trc y. B iu khin MAX232 c hai b iu khin thng nhn v truyn d liu nh trnh by trn hnh 10.7. Cc b iu khin ng c dng cho TxD c gi l T1 v T2. Trong nhiu ng dng th ch c mt cp c dng. V d T1 v R1 c dng vi nhau i vi TxD v RxD ca 8051, cn cp R2 v T2 th cha dng n. rng trong MAX232 b iu khin T1 c gn T1in v T1out trn cc chn s 11 v 1 tng ng. Chn T1in l pha TTL v c ni ti chn RxD ca b vi iu khin, cn T1out l pha RS232 c ni ti chn RxD ca u ni DB ca RS232. B iu khin ng R1 cng c gn R1in v R1out trn cc chn s 13 v 12 tng ng. Chn R1in (chn s 13) l pha RS232 c ni ti chn TxD ca u ni DB ca RS232 v chn R1out (chn s 12) l pha TTL m n c ni ti chn RxD ca b vi iu khin, xem hnh 10.7. rng ni ghp modem khng l ni ghp m chn TxD bn pht c ni vi RxD ca bn thu v ngc li.
Vc + C + C 11 12 1 9 TTL T1R1T2R215 16 2 6 T1R1T2R214 13 7 8 C 3 C 4 8051

P3.1 11 TxD P3.0 RxD

2 3

Max23

5 2 5 4 2 DB -

10

Rs232

Hnh 10.7: a) S bn trong ca MAX232 b) S ni ghp ca MAX232 vi 8051 theo moden khng. B MAX232 i hi 4 t in gi tr t 1 n 22F. Gi tr ph bin nht cho cc t ny l 22F. 10.2.3 B iu khin MAX232. tit kim khng gian trn bng mch, nhiu nh thit k s dng chp MAX232 t hng Maxim. B iu khin MAX232 thc hin cng nhng cng vic nh MAX232 li khng cn n cc t in. Tuy nhin, chp MAX232 li t hn rt nhiu so vi MAX233 khng c s chn ging nhau (khng tng thch). Chng

ta khng th ly mt chp MAX232 ra khi mt bng mch v thay vo RS233. Hy xem hnh 10.8 thy MAX233 khng cn n t.
Vc 7 11 15 16 10 T1R1T2R29 8051 Max23

13 14 12 17 2 3 1 20 TTL T1R1T2-

5 4 18 19

T1-

P3.1 11 TxD
10

2 3

5 4

2 5 2 DB -

P3.0 RxD

R26

Rs232

Hnh 10.8: a) S bn trong ca MAX233. b) S ni ghp ca MAX233 vi 8051 theo modem khng. 10.3 Lp trnh truyn thng ni tip cho 8051. Trong phn ny chng ta s nghin cu v cc thanh ghi truyn thng ni tip ca 8051 v cch lp trnh chng truyn v nhn d liu ni tip. V cc my tnh IBM PC v tng thch c s dng rt rng ri truyn thng vi cc h da trn 8051, do vy ta ch yu tp trung vo truyn thng ni tip ca 8051 vi cng COM ca PC. cho php truyn d liu gia my tn PC v h thng 8051 m khng c bt k li no th chng ta phi bit chc rng tc baud ca h 8051 phi ph hp vi tc baud ca cng COM my tnh PC c cho trong bng 10.3. Chng ta c th kim tra cc tc baud ny bng cch vo chng trnh Windows Terminal v bm chut ln tu chn Communication Settings. Chng trnh Terminal.exe ca Window3.1 cng lm vic tt trn Windows95 v Window98. Trong Window95 v cao hn ta c th s dng chc nng Hyperterrminal. Hm Hyperterminal h tr cc tc Baud cao hn nhiu so vi cc tc cho trong bng 10.3. Bng 10.3: Cc tc Baud ca my tnh PC486 v Pentium cho trong BIOS.
100 150 300 600 1200 2400 4800

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.
28800H

XTAL oscillator

12

921.6kH

32 by UART

10.3.1 Tc baud trong 8051. 8051 truyn v nhn d liu ni tip theo nhiu tc khc nhau. Tc truyn ca n c th lp trnh c. iu y thc hin nh s tr gip ca b nh thi Timer1. Trc khi ta i vo bn cch lm iu nh th no th ta s xt quan h gia tn s thch anh v tc baud trong 8051. Nh ta ni chng trc y th 8051 chia so thch anh cho 12 ly tn s chu trnh my. Trong trng hp XTAL = 11.0592MHz th tn s chu trnh l 921.6kHz (11.0592MHz : 12 = 921.6kHz). Mch in UART truyn thng ni tip ca 8051 li chia tn s chu trnh my cho 32 mt ln na trc khi n c dng bi b nh thi gian Timer1 to ra tc baud. Do vy, 921.6kHz : 32 = 28.800Hz. y l s ta s dng trong c phn ny tm gi tr ca Timer1 t tc baud. Mun Timer1 t tc baud th n phi c lp trnh v ch lm vic mode2, l ch thanh ghi 8 bt t ng np li. c tc baud tng thch vi PC ta phi 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 (thp phn) - 3 - 6 - 12 - 24 TH1 (s Hex) FD FA F4 F8

10.3.2 Thanh ghi SBUF. SBUF l thanh ghi 8 bt c dng ring cho truyn thng ni tip trong 8051. i vi mt byte d liu cn phi c truyn qua ng TxD th n phi c t trong thanh ghi SBUF. Tng t nh vy SBUF gi mt byte d liu khi n c nhn b ng RxD ca 8051. SBUF c th c truy cp bi mi thanh ghi bt k trong 8051. Xt mt v d di y thy SBUF c truy cp nh th no?
MOV SBUF, # D MOV SBUF, A MOV A, SBUF ; Np vo SBUF gi tr 44H m ACSII ca k t D. ; Sao thanh ghi A vo SBUF. ; Sao SBUF vo thanh ghi A.

Khi mt byte c ghi vo thanh ghi SBUF n c ng khung vi cc bt Start v Stop v ng truyn ni tip quan chn TxD. Tng t nh vy, khi cc bt c nhn ni tip t RxD th 8051 m khung n loi tr cc bt Start v Stop ly ra mt byte t d liu nhn c v t n vo thanh ghi SBUF.

10.3.3 Thanh ghi iu khin ni tip SCON. Thanh ghi SCON l thanh ghi 8 bt c dng lp trnh vic ng khung bt bt u Start, bt dng Stop v cc bt d liu cng vi vic khc. Di y l m t cc bt khc nhau ca SCON:
SM0 SM1 SM2 REN TB8 RB8 T1

SM0 SM1 SM2 REN TB8 RB8 T1 ch R1

SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0

S xc nh ch lm vic cng ni tip S xc nh ch lm vic cng ni tip Dng cho truyn thng gia cc b vi x l (SM2 = 0) Bt/xo bng phn mm cho php/ khng cho thu Khng s dng rng ri Khng s dng rng ri C ngt truyn t bng phn cng khi bt u bt Stop C ngt thu 1. Xo bng phn mm.

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

Trong bn ch ta ch quan tm n ch 1, cc ch khc c gii thch Appendisk A3. Trong thanh ghi SCON khi ch 1 c chn th d liu c ng khung gm 8 bt d liu, 1 bt Start, 1 bt Stop tng thch vi cng COM ca IBM PC v cc PC tng thch khc. Quan trng hn l ch ni tip 1 cho php tc baud thay i v c thit lp bi Timer1 ca 8051. Trong ch ni tip 1 th mi k t gm c 10 bt c truyn trong c bt u l bt Start, sau l 8 bt d liu v cui cng l bt Stop. 10.3.3.2 Bt SM2. Bt SM2 l bt D5 ca thanh ghi SCON. Bt ny cho php kh nng a x l ca 8051 v n nm ngoi phm vi trnh by ca chng ny. i vi cc ng dng ca chng ta t SM2 = 0 v ta khng s dng 8051 trong mi trng a x l. 10.3.3.3 Bt REN. y l bt cho php thu (Receive Enable), bt D4 ca thanh ghi SCON. Bt REN cng c tham chiu nh l SCON.4 v SCON l thanh ghi c th nh a ch theo bt. Khi bt REN cao th n cho php 8051 thu d liu trn chn RxD ca n. V kt qu l nu ta mun 8051 va truyn v nhn d liu th bt REN phi c t ln 1. Khi t REN th b thu b cm. Vic t REN = 1 hay REN = 0 c th t c

bng lnh SETB SCON.4 v CLR SCON.4 tng ng. Lu rng cc lnh ny s dng c im nh a ch theo bt ca thanh ghi SCON. Bt ny c th c dng khng ch mi vic nhn d liu ni tip v n l bt cc k quan trng trong thanh ghi SCON. 10.3.3.4 Bt TB8 v RB8. Bt TB8 l bt SCON.3 hay l bt D3 ca thanh ghi SCON. N c dng cho ch ni tip 2 v 3. Ta t TB8 v n khng c s dng trong cc ng dng ca mnh. Bt RB8 (bt thu 8) l bt D2 ca thanh ghi SCON. Trong ch ni tip 1 th bt ny nhn mt bn sao ca bt Stop khi mt d liu 8 bt c nhn. Bt ny cng nh bt TB8 rt him khi c s dng. Trong cc ng dng ca mnh ta t RB8 = 0 v n c s dng cho ch ni tip 2 v 3. 10.3.3.5 Cc bt TI v RI. Cc bt ngt truyn TI v ngt thu RI l cc bt D1 v D0 ca thanh ghi SCON. Cc bt ny l cc k quan trng ca thanh ghi SCON. Khi 8051 kt thc truyn mt k t 8 bt th n bt TI bo rng n sn sng truyn mt byte khc. Bt TI c bt ln trc bt Stop. Cn khi 8051 nhn c d liu ni tip qua chn RxD v n tch cc bt Start v Stop ly ra 8 bt d liu t vo SBUF, sau khi hon tt n bt c RI bo rng n nhn xong mt byte v cn phi ly i ko n b mt c RI c bt khi ang tch bt Stop. Trong cc v d di y s ni v vai tr ca cc bt TI v RI. 10.3.4 Lp trnh 8051 truyn d liu ni tip. Khi lp trnh 8051 truyn cc byte k t ni tip th cn phi thc hin cc bc sau y: 1. Np thanh ghi TMOD gi tr 204 bo rng s dng Timer1 ch 2 thit lp ch baud. 2. Np thanh ghi TH1 cc gi tr cho trong bng 10.4 thit lp ch baud truyn d liu ni tip (vi gi thit tn s XTAL = 11.0592MHz). 3. Np thanh ghi SCON gi tr 50H bo ch ni tip 1 ng khung 8 bt d liu, 1 bt Start v 1 bt Stop. 4. Bt TR1 = 1 khi ng Timer1. 5. Xo bt TI bng lnh CLR TI 6. Byte k t cn phi truyn c ghi vo SBUF. 7. Bt c TI c hin th bng lnh JNB TI, xx bo k t c truyn hon tt cha. 8. truyn k t tip theo quay tr v bc 5. V d 10.2 trnh by chng trnh truyn ni tip vi tc 4800 baud. V d 10.3 trnh by cch truyn lin tc ch YES. V d 10.2: Hy vit chng trnh cho 8051 truyn ni tip mt k t A vi tc 4800 baud lin tc. Li gii:
MOV MOV MOV SETB AGAIN: HERE: CLR TMOD, #20H TH1, # - 6 SCON, #A TR1 MOV SBUF, #A JNB TI, HERE TI ; Chn Timer1, ch 2 (t ng np li) ; Chn tc 4800 baud ; Truyn 8 bt d liu, 1 bt Stop cho php thu ; Khi ng Timer1 ; Cn truyn k t A ; Ch n bt cui cng ; Xo bt TI cho k t k tip

SJMP AGAIN

; Tip tc gi li ch A

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 ; Chn b Timer1, ch 2 MOV TH1, # - 3 ; Chn tc 9600 baud MOV SCON, #50H ; Truyn 8 bt d liu, 1 bt Stop cho php thu SETB TR1 ; Khi ng Timer1 AGAIN: MOV A, # "Y" ; Truyn k t Y ACALL TRANS MOV A, # "E" ; Truyn k t E ACALL TRANS MOV A, # "S" ; Truyn k t S ACALL TRANS SJMP AGAIN ; Tip tc ; Chng trnh con truyn d liu ni tip. TRANS: MOV SBUF, A ; Np SBUF HERE: JNB TI, HERE ; Ch cho n khi truyn bt cui cng CLR TI ; Ch sn cho mt byte k tip RET

10.3.4.1 Tm quan trng ca c TI. hiu tm quan trng ca c ngt TI ta hy xt trnh t cc bc di y m 8051 phi thc hin khi truyn mt k t quan ng TxD: 1. Byte k t cn phi truyn c ghi vo SBUF. 2. Truyn bt Start 3. Truyn k t 8 bt ln lt tng bt mt. 4. Bt Stop c truyn xong, trong qu trnh truyn bt Stop th c TI c bt (TI = 1) bi 8051 bo sn sng truyn k t k tip. 5. Bng vi hin th c TI ta bit chc rng ta khng np qu vo thanh ghi SBUF. Nu ta np mt byte vo SBUF trc ghi TI c bt th phn d liu ca byte trc cha truyn ht s b mt. Hay ni cch khc l 8051 bt c TI khi truyn xong mt byte v n sn sng truyn byte k tip. 6. Sau khi SBOF c np mt byte mi t c nhm c th truyn byte mi ny. T phn trnh by trn y ta kt lun rng bng vic kim tra bt c ngt TI ta bit c 8051 c sn sng truyn mt byte khc khng. Quan trng hn cn phi ni y l bt c TI c bt bi t 8051 khi n hon tt vic truyn mt byte d liu, cn vic xo n th phi c lp trnh vin thc hin bng lnh CLR TI. Cng cn lu rng, nu ta ghi mt byte vo thanh ghi SBUF trc khi c TI c bt th s c nguy c mt phn d liu ang truyn. Bt c TI c th kim tra bng lnh JNB TI hoc c th s dng ngt nh ta s thy trong chng 11. 10.3.5 Lp trnh 8051 nhn d liu. Trong lp trnh ca 8051 nhn cc byte k t ni tip th phi thc hin cc bc sau y. 1. Np gi tr 20H vo thanh ghi TMOD bo s dng b Timer1, ch 2 (8 btm, t ng np li) thit lp tc baud. 2. Np TH1 cc gi tr cho trong bng 10.4 to ra tc baud vi gi thit XTAL = 10.0592MHz.

3. Np gi tr 50H vo thanh ghi SCON bo s dng ch truyn ni tip 1 l d liu c ng gi bi 8 bt d liu, 1 bt Start v 1 bt Stop. 4. Bt TR1 = 1 khi ng Timer1. 5. Xo c ngt RI bng lnh CLR RI 6. Bt c RI c hin th bng lnh JNB RI, xx xem ton b k t c nhn cha. 7. Khi RI c thit lp th trong SBUF c 1 byte. Cc ni dung ca n c ct lu vo mt ni an ton. 8. nhn mt k t tip theo quay tr v bc 5. V d 10.4: Hy lp trnh cho 8051 nhn cc byte d liu ni tip v t chng vo cng P1. t tc baud l 4800, 8 bt d liu v 1 bt Stopl. Li gii:
MOV MOV MOV SETB HERE: MOV MOV CLR SJMP TMOD, #20H TH1, # - 6 SCON, #50H TR1 JNB R1, HERE A, SBUF P1, A RI HERE ; Chn b Timer1, ch 2 (t ng np li) ; Chn tc 4800 baud ; Chn khung d liu 8 bt Stop, bt. ; Khi ng b Timer1 ; i nhn ton b l t vo ht ; Lu ct k t vo thanh A ; Gi ra cng P.1 ; Sn sng nhn byte k tip ; Tip tc nhn d liu

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. b) Nhn bt k d liu g c PC gi n v chuyn n cc n LED ang ni n cc chn ca cng P1. c) Nhn d liu trn cc chuyn mch c ni ti P2 v gi n ti my tnh PC ni tip. Chng trnh phi thc hin mt ln a), nhng b) v c) chy lin tc vi tc 4800 baud. Li gii:
ORG MOV MOV MOV MOV 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 ; Ly k t ; Nu k t cui cng mun gi ra ; Nu cha th gi chng trnh con SEND ; Chy tip ; Quay li vng lp ; c d liu trn cng P2 ; Truyn n ni tip ; Nhn d liu ni tip

H - 1:

B - 1:

SETB TR1 MOV DPTR, #MYDATA CLR A MOVC A, A + DPTR JZ DPTR ACALL SEND INC DPTR SJMP H - 1 MOV A, P2 ACALL RECV ACALL RECV

; SEND: H- 2: ; RECV:

; RECV:

; MYDATA:

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 CO M port P1 TxD RxD P2 SW LED

10.3.5.1 Tm quan trng ca c RT. Khi nhn cc bt quan chn RxD ca n th 8051 phi i quan cc bc sau: 1. N nhn bt Start bo rng bt sau n l bt d liu u tin cn phi nhn. 2. K t 8 bt c nhn ln lt tng bt mt. Khi bt cui cng c nhn th mt byte c hnh thnh v t vo trong SBUF. 3. Khi bt Stop c nhn th 8051 bt RT = 1 bo rng ton b k t c nhn v phi ly i trc khi n b byte mi nhn v ghi ln. 4. Bng vic kim tra bt c RI khi n c bt ln chng ta bit rng mt k t c nhn v ang nm trong SBUF. Ti sao ni dung SBUF vo ni an ton trong mt thanh ghi hay b nh khc trc khi n b mt. 5. Sau khi SBUF c ghi vo ni an ton th c RI c xo v 0 bng lnh CLR RI nhm cho cc k t k tip nhn c a vo SBUF. Nu khng lm c iu ny th gy ra mt k t va nhn c. T m t trn y ta rt ra kt lun rng bng vic kim tra c RI ta bit 8051 nhn c mt byte k t cha hay ri. Nu ta khng sao c ni dung ca thanh ghi SBUF vo ni an ton th c nguy c ta b mt k t va nhn c. Quan trng hn l phi nh rng c RI c 8051 bt ln nh lp trnh vin phi xo n bng lnh CLR RI. Cng nn nh rng, nu ta sao ni dung SBUF vo ni an ton trc khi RI c bt ta mo him sao d liu cha y . Bt c RI c th c kim tra bi lnh JNB RI, xx hoc bng ngt s c bn chng 11. 10.3.6 Nhn i tc baud trong 8051. C hai cch tng tc baud truyn d liu trong 8051.

1. S dng tn s thch anh cao hn. 2. Thay i mt bt trong thanh ghi iu khin cng sut PCON (Power Control) nh ch ra di y.
D7 SM0D GF0 GF0 D0 PD

Phng n mt l khng thc thi trong nhiu trng hp v tn s thch anh ca h thng l c nh. Quan trng hn l n khng kh thi v tn s thch anh mi khng tng thch vi tc baud ca cc cng COM ni tip ca IBM PC. Do vy, ta s tp trung thm d phng n hai, c mt cch nhn i tn s baud bng phn mm trong 8051 vi tn s thch anh khng i. iu ny c thc hin nh thanh ghi PCON, y l thanh ghi 8 bt. Trong 8 bt ny th c mt s bt khng c dng iu khin cng sut ca 8051. Bt dnh cho truyn thng l D7, bt SMOD (ch ni tip - serial mode). Khi 8051 c bt ngun th bt SMOD ca thanh ghi PCON mc thp 0. Chng ta c th t n ln 1 bng phn mm v do vy nhn i c tc baud. Th t cc lnh c s dng thit lp bt D7 ca PCON ln cao nh sau (thanh ghi PCON l th nh a ch theo bt).
MOV A, PCON SETB ACC.7 MOV PCON, A khc. ; t bn sao ca PCON vo ACC ; t D7 ca ACC ln 1. ; By gi SMOD = 1 m khng thay i bt k bt no

bit tc baud c tng ln gp i nh th no bng phng php ny ta xt vai tr ca bt SMOD trong PCON khi n l 0 v 1. a) Khi SMOD = 0. Khi SMOD = 0 th 8051 chia 1/12 tn s thch anh cho 32 v s dng n cho b Timer1 thit lp tc baud. Trong trng hp XTAL = 11.0592MHz th ta c: Tn s chu trnh my =
11.0592 MHz 921.6kHz = 921.6kHz v = 28.800Hz v 12 32

SMOD = 0. y l tn s c Timer1 s dng t tc baud. y l c s cho tt c v d t trc n gi v n l gi tr mc nh ca 8051 khi bt ngun. Cc tc baud i vi SMOD = 0 c cho trong bng 10.4. b) Khi SMOD = 1. Vi tn s c nh thch anh ta c th nhn i tc baud bng cch t bt SMOD = 1. Khi bt D7 ca PCON (bt SMOD) c a ln 1 th 1/12 tn s XTAL c chia cho 16 (thay v chia cho 32 nh khi SMOD = 0) v y l tn s c Timer dng thit lp tc baud. Trong trng hp XTAL = 11.0592MHz ta c: Tn s chu trnh my =
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) -3 TH1 (Hex) FD Tc baud SMOD = 0 SMOD = 1 9600 19200

-6 -12 -24

DA F4 E8

4800 2400 1200

9600 4800 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.
MOV A, PCON SETB ACC.7 MOV PCON, A c nh ; MOV TMOD, #20H ; Chn b Timer1, ch 2, t ng np li MOV TH1, - 3 ; Chn tc baud 19200 (57600/3=19200) v SMOD =1 ; MOV SCON, #50H ; ng khung d liu gm 8 bt d liu, 1 Stop v cho php RI. A-1: H-1: SETB MOV CLR MOV JNB SJMP TR1 A, #B TI SBUF, A TI, H-1 A-1 ; Khi ng Timer1 ; Truyn k t B ; Khng nh TI = 0 ; Truyn n ; Ch y cho n khi bt cui c gi i ; Tip tc gi B ; Sao ni dung thanh ghi PCON vo thanh ghi ACC ; t D7 = 0 ; t SMOD = 1 tng gp i tn s baud vi tn s XTAL

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
11.0592M 28800Hz XTAL oscillator 12 921.6kH SMOD= 16 32 SMOD= 57600H 28800H To timer 1 to set baud

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.

You might also like