You are on page 1of 9

chng 4 Lp trnh cho cng vo - ra I/0

4.1 M t chn ca 8051. Mc d cc thnh vin ca h 8051 (v d 8751, 89C51, DS5000) u c cc kiu ng v khc nhau, chng hn nh hai hng chn DIP (Dual In-Line Pakage) dng v dt vung QFP (Quad Flat Pakage) v dng chp khng c chn LLC (Leadless Chip Carrier) th chng u c 40 chn cho cc chc nng khc nhau nh vo ra I/0, c RD , ghi WR , a ch, d liu v ngt. Cn phi lu rng mt s hng cung cp mt phin bn 8051 c 20 chn vi s cng vo-ra t hn cho cc ng dng yu cu thp hn. Tuy nhin, v hu ht cc nh pht trin chnh s dng chp ng v 40 chn vi hai hng chn DIP nn ta ch tp chung m t phin bn ny.

P1.0 P1.1 P1.2 P1.4 P1.5 P1.6 P1.7 RST (RXD) P3.0 (TXD) P3.1 (NT0) P3.2 (NT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND

P1.3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

8051 (8031)

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

Vcc P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.6 (AD6) EA/CPP ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4(A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (AB)

Hnh 4.1: S b tr chn ca 8051. Trn hnh 4.1 l s b tr chn ca 8051. Ta thy rng trong 40 chn th c 32 chn dnh cho cc cng P0, P1, P2 v P3 vi mi cng c 8 chn. Cc chn cn li c dnh cho ngun VCC, t GND, cc chngiao ng XTAL1 v XTAL2 ti lp RST cho php cht a ch ALE truy cp c a ch ngoi EA , cho php ct chng trnh PSEN . Trong 8 chn ny th 6 chn VCC , GND, XTAL1, XTAL2, RST v EA c cc h 8031 v 8051 s dng. Hay ni cch khc l chng phi c

ni cho h thng lm vic m khng cn bit b vi iu khin thuc h 8051 hay 8031. Cn hai chn khc l PSEN v ALE c s dng ch yu trong cc h thng da trn 8031. 1. Chn VCC: Chn s 40 l VCC cp in p ngun cho chp. Ngun in p l +5V. 2. Chn GND: Chn GND: Chn s 20 l GND. 3. Chn XTAL1 v XTAL2: 8051 c mt b giao ng trn chp nhng n yu cu c mt xung ng h ngoi chy n. B giao ng thch anh thng xuyn nht c ni ti cc chn u vo XTAL1 (chn 19) v XTAL2 (chn 18). B giao ng thch anh c ni ti XTAL1 v XTAL2 cng cn hai t in gi tr 30pF. Mt pha ca t in c ni xung t nh c trnh by trn hnh 4.2a. Cn phi lu rng c nhiu tc khc nhau ca h 8051. Tc c coi nh l tn s cc i ca b giao ng c ni ti chn XTAL. V d, mt chp 12MHz hoc thp hn. Tng t nh vy th mt b vi iu khin cng yu cu mt tinh th c tn s khng ln hn 20MHz. Khi 8051 c ni ti mt b giao ng tinh th thch anh v cp ngun th ta c th quan st tn s trn chn XTAL2 bng my hin sng. Nu ta quyt nh s dng mt ngun tn s khc b giao ng thch anh chng hn nh l b giao ng TTL th n s c ni ti chn XTAL1, cn chn XTAL2 th h khng ni nh hnh 4.2b.
C2

XTAL2

NC EXTERRNAL OSCILLATAOR SIGNAL

XTAL2 XTAL1 GND

C1 XTAL1 30pF GND

Hnh 4.2: a) Ni XTAL ti 8051 b) Ni XTAL ti ngun ng b ngoi. 4. Chn RST. Chn s 9 l chn ti lp RESET. N l mt u vo v c mc tch cc cao (bnh thng mc thp). Khi cp xung cao ti chn ny th b vi iu khin s ti lp v kt thc mi hot ng. iu ny thng c coi nh l s ti bt ngun. Khi kch hot ti bt ngun s lm mt mi gi tr trn cc thanh ghi. Bng 4.1 cung cp mt cch lit k cc thanh ghi ca 8051 v cc gi tr ca chng sau khi ti bt ngun. Bng 4.1: Gi tr mt s thanh ghi sau RESET.

Register PC ACC B PSW SP DPTR

Reset Value 0000 0000 0000 0000 0000 0007 0000

Lu rng gi tr ca b m chng trnh PC l 0 khi ti lp p CPU np m lnh u tin t b nh ROM ti v tr ngn nh 0000. iu ny c ngha l ta phi t dng u tin ca m ngun ti v tr ngn nh 0 ca ROM v y l m CPU tnh thc v tm lnh u tin. Hnh 4.3 trnh by hai cch ni chn RST vi mch bt ngun.
Vcc Vcc

------------------------ 31 30mF
10mF 30mF

8.2K

EA/Vpp 19 X1 11.0592 MHz 18 X2 RST 9

10mF

31

EA/Vpp X1 X2 RST

9 8.2K

Hnh 4.3: a) Mch ti bt ngun RESET. b) Mch ti bt ngun vi Debounce. Nhm lm cho u vo RESET c hiu qu th n phi c ti thiu 2 chu k my. Hay ni cch khc, xung cao phi ko di ti thiu 2 chu k my trc khi n xung thp. Trong 8051 mt chu k my c nh ngha bng 12 chu k dao ng nh ni chng 3 v c trnh by ti v tr 4.1. 5. Chn EA : Cc thnh vin h 8051 nh 8751, 98C51 hoc DS5000 u c ROM trn chp lu ct chng trnh. Trong cc trng hp nh vy th chn EA c ni ti VCC. i vi cc thnh vin c h nh 8031 v 8032 m khng c ROM trn chp th m chng trnh c lu ct trn b nh ROM ngoi v chng c np cho 8031/32. Do vy, i vi 8031 th chn EA phi c ni t bo rng m chng trnh c ct ngoi. EA c ngha l truy cp ngoi (External Access) l chn s 31 trn v kiu DIP. N l mt chn u vo v phi c ni hoc vi VCC hoc GND. Hay ni cch khc l n khng c h.

chng 14 chng ta s trnh by cch 8031 s dng chn ny kt hp vi PSEN truy cp cc chng trnh c ct trn b nh ROM ngoi 8031. Trong cc chp 8051 vi b nh ROM trn chp nh 8751, 89C51 hoc DS5000 th EA c ni vi VCC. V d 4: Hy tm chu k my i vi a) XTAL = 11.0592MHz b) XTAL = 16MHz. Li gii: a) 11.0592MHz/12 = 921.6kHz. Chu k my = 1/921.6kHz = 1.085ms. b) 16MHz/12 = 1.333MHz Chu k my = 1/1.333MHz = 0.75ms. Cc chn m t trn y phi c ni m khng cn thnh vin no c s dng. Cn hai chn di y c s dng ch yu trong h thng da trn 8031 v s c trnh by chi tit chng 11. 6. Chn PSEN : y l chn u ra cho php ct chng trnh (Program Store Enable) trong h thng da trn 8031 th chng trnh c ct b nh ROM ngoi th chn ny c ni ti chn OE ca ROM. Chi tit c bn chng 14. 7. Chn ALE: Chn cho php cht a ch ALE l chn u ra v c tch cc cao. Khi ni 8031 ti b nh ngoi th cng 0 cng c cp a ch v d liu. Hay ni cch khc 8031 dn a ch v d liu qua cng 0 tit kim s chn. Chn ALE c s dng phn knh a ch v d liu bng cch ni ti chn G ca chp 74LS373. iu ny c ni chi tit chng 14. 8. Cc chn cng vo ra v cc chc nng ca chng. Bn cng P0, P1, P2 v P3 u s dng 8 chn v to thnh cng 8 bt. Tt c cc cng khi RESET u c cu hnh nh cc u ra, sn sng c s dng nh cc cng u ra. Mun s dng cng no trong s cc cng ny lm u vo th n phi c lp trnh. 9. Cng P0. Cng 0 chim tt c 8 chn (t chn 32 n 39). N c th c dng nh cng u ra, s dng cc chn ca cng 0 va lm u ra, va lm u vo th mi chn phi c ni ti mt in tr ko bn ngoi 10kW. iu ny l do mt thc t l cng P0 l mt mng m khc vi cc cng P1, P2 v P3. Khi nim mng m c s dng trong cc chp MOS v chng mc no n ging nh C-lec-t h i vi cc chp TTL. Trong bt k h thng no s dng 8751, 89C51 hoc DS5000 ta thng ni cng P0 ti cc in tr ko, Xem hnh 4.4 bng cch ny ta c c cc u im ca cng P0 cho c u ra v u vo. Vi nhng in tr ko ngoi c ni khi ti lp cng P0 c cu hnh nh mt cng u ra. V d, on m sau y s lin tc gi ra cng P0 cc gi tr 554 v AAH.
BACK: MOV A, #554 MOV P0, A ACALL DELAY

CPL SJMP

A BACK Vcc 10K

DS5000 8751 8951 P0.3 P0.4 P0.5 P0.6 P0.7

P0.0 P0.1 P0.2

Hnh 4.4: Cng P0 vi cc in tr ko. a) Cng P0 u vo: Vi cc in tr c ni ti cng P0 nhm to n thnh cng u vo th n phi c lp trnh bng cch ghi 1 ti tt c cc bit. on m di y s cu hnh P0 lc u l u vo bng cch ghi 1 n n v sau d liu nhn c t n c gi n P1. b)
MOV MOV BACK: MOV MOV SJMP A,#FFH P0, A A, P0 P1, A BACK ; Gn A = FF dng Hex ; To cng P0 lm cng u vo bng cch ; Ghi tt c cc bit ca n. ; Nhn d liu t P0 ; Gi n n cng 1 ; Lp li

b) Vai tr kp ca cng P0: Nh trnh by trn hnh 4.1, cng P0 c gn AD0 AD7 cho php n c s dng va cho a ch, va cho d liu. Khi ni 8051/31 ti b nh ngoi th cng 0 cung cp c a ch v d liu 8051 dn d liu v a ch qua cng P0 tit kim s chn. ALE bo nu P0 c a ch hay d liu khi ALE 0 n cp d liu D0 - D7. Do vy, ALE c s dng tch a ch v d liu vi s tr gip ca cht 74LS373 m ta s bit c th chng 14. 10. Cng P1. Cng P1 cng chim tt c 8 chn (t chn 1 n chn 8) n c th c s dng nh u vo hoc u ra. So vi cng P0 th cng ny khng cn n in tr ko v n c cc in tr ko bn trong. Trong qu trnh ti lp th cng P1 c cu hnh nh mt cng u ra. V d, on m sau s gi lin tc cc gi tr 55 v AAH ra cng P1.
BACK: MOV MOV A, #55H P1, A

Port 0

ACALL DELAY SJMP BACK

Cng P1 nh u vo: bin cng P1 thnh u vo th n phi c lp trnh bng cch ghi mt n tt c cc bit ca n. L do v iu ny c bn mc lc Appendix C.2. Trong on m sau, cng P1 lc u c cu hnh nh cng u vo bng cch ghi 1 vo cc bit ca n v sau d liu nhn c t cng ny c ct vo R7, R6 v R5.
MOV MOV MOV MOV ACALL MOV MOV ACALL MOV MOV A, #0FFH P1, A A, P1 R7, A DELAY A, P1 R6, A DELAY A, P1 R5, A ; Np A = FF dng hex ; To cng P1 thnh cng u vo bng ; cch ghi 1 vo cc bit ca n. ; Nhn d liu t P1 ; Ct n vo thanh ghi R7 ; Ch ; Nhn d liu khc t P1 ; Ct n vo thanh ghi R6 ; Ch ; Nhn d liu khc t cng P1 ; Ct n vo thanh ghi R5

11. Cng P2: Cng P2 cng chim 8 chn (cc chn t 21 n 28). N c th c s dng nh u vo hoc u ra ging nh cng P1, cng P2 cng khng cn in tr ko v n c cc in tr ko bn trong. Khi ti lp, th cng P2 c cu hnh nh mt cng u ra. V d, on m sau s gi lin tc ra cng P2 cc gi tr 55H v AAH. l tt c cc bit ca P2 ln xung lin tc.
BACK: MOV MOV ACALL CPL SJMP A, #55H P2,A DELAY A BACK

a) Cng P2 nh u vo. to cng P2 nh u vo th n phi c lp trnh bng cch ghi cc s 1 ti tt c cc chn ca n. on m sau y u tin cu hinh P2 l cng vo bng cch ghi mt n tt c cc chn ca n v sau d liu nhn c t P2 c gi lin tc n P1.
MOV MOV BACK: MOV MOV SJMP A, 0FFH P2, A A, 2 P1, A BACK ; Gn A gi tr FF dng Hex ; To P2 l cng u vo bng cch ; ghi mt n cc chn ca n ; Nhn d liu t P2 ; Gi n n P1 ; Lp li

b) Vai tr kp ca P2.

Trong cc h thng da trn 8751, 89C51 v DS5000 th P2 c dng nh u ra n gin. Tuy nhin trong h thng da trn 80312 th cng P2 phi c dng cng vi P0 to ra a ch 16 brt i vi b nh ngoi. Nh ch ra trn hnh 4.1 cng P2 cng c ch nh nh l A8 - A15 bo chc nng kp ca n. V mt b 8031 c kh nng trung cp 64k byte b nh ngoi, n cn mt ng a ch 16 bt. Trong khi P.0 cung cp 8 bit thp qua A0 - A7. Cng vic ca P2 l cung cp cc bt a ch A8 - A15. Hay ni cch khc khi 8031c ni ti b nh ngoi th P2 c dng cho 8 bt ca a ch 16 bit v n khng th dng cho vo ra. iu ny s c trnh by chi tit chng 14. T nhng trnh by trn y ta c th kt lun rng trong cc h thng da trn cc b vi iu khin 8751, 89C51 hoc DS5000 th ta c 3 cng P0, P1v P2 cho cc thao tc vo ra v nh th l c th cho cc ng dng vi hu ht cc b vi iu khin. Cn cp P3 l dnh cho ngt v ta s cng bn di y. 11 - Cng P3: Cng P3 chim tng cng l 8 chn t chn 10 n chn 17. N c th c s dng nh u vo hoc u ra. Cng P3 khng cn cc in tr ko cng nh P1 v P2. Mc d cng P3 c cu hnh nh mt cng u ra khi ti lp, nhng y khng phi l cch n c ng dng ph bin nht. Cng P3 c chc nng b xung l cung cp mt s tn hiu quan trng c bit chng hn nh cc ngt. Bng 4.2 cung cp cc chc nng khc ca cng P3. Thng tin ny p dng cho c 8051 v 8031. Bng 4.2: Cc chc nng khc ca cng P3
Bt ca cng P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Chc nng Nhn d liu (RXD) Pht d liu (TXD) Ngt 0(INT0) Ngt 1(INT1) B nh thi 0 (TO) 1 B nh thi 1(T1) Ghi (WR) c (RD) chn s 10 11 12 13 14 15 16 17

Cc bit P3.0 v P3.1 c dng cho cc tn hiu nhn v pht d liu trong truyn thng d liu ni tip. Xem chng 10 t bit cc chng c ni ghp nh th no. Cc bit P3.2 v P3.3 c dnh cho cc ngt ngoi v chng c trnh by chi tit chng 11. Bit P3.4 v P3.5 c dng cho cc b nh thm 0 v 1v chi tit c trnh by chng 9. Cui cng cc bit P3.6 v P3.7 c cp cho cc tn hiu ghi v c cc b nh ngoi c ni ti cc h thng da trn 8031. Chng 14 s trnh by cch chng c s dng nh th no trong cc h thng da trn 8031. Trong cc h thng da trn 8751, 89C51 hoc D35000 th cc chn P3.6 v P3.7 c dng cho vo - ra cn cc chn khc ca P3 c s dng bnh thng trong vai tr chc nng thay i. 4.2 Lp trnh vo - ra: thao tc bit. 4.2.1 cc cch khc nhau truy cp ton b 8 bit.

Trong on m di y cng nh trong nhiu v d vo ra trc y ton b 8 bit ca cng P1 c cp.


BACK: MOV MOV ACALL MOV MOV ACALL SJMP A, # 55H P1,A DELAY A, #0AAH P1, A DELAY BACK

on m trn cht mi bit ca P1 mt cch lin tc. Chng ta thng mt bin th ca chng trnh trn trc . By gi ta c th vit li on m trn theo cch hiu qu hn bng cch truy cp trc tip cng m khng qua thanh ghi tng nh sau:
BACK: MOV ACALL MOV CALL SJMP P1, # 55H DELAY P1, #00H DELAY BACK

Ta c th vit mt dng khc ca on m trn bng k thut c - sa i ghi nh mc 4.2.2 di y. 4.2.2 c im c- sa i - ghi (Read - Modify Write). Cc cng trong 8051 c th c truy cp bngk thut c gi l c-sa i-ghi. c im ny tit kim rt nhiu dng lnh bng cch kt hp tt c 3 thao tc: 1c cng, 2 sa i nv 3 ghi n ra cng vo mt lnh n. on m di y trc ht t 01010101(nh phn) vo cng 1. Sau lnh XLR P1, #0FFH thc hin php l-gch OR loi tr l XOR trn cng p1 vi 1111 1111 ( nh phn ) v sau ghi kt qu tr li cng P1.
AGAIN: MOV XLR ACALL SJMP P1, #55H P1,# 0FFH DELAY AGAIN ; P1 = 01010101 ; EX - 0R P1 vi 1111 1111

Lu rng lnh X0R ca 55H v FFH s cho kt qu l AAH. Tng t nh vy lnh X0R ca AAH vi FFH li cho gi tr kt qu l 55H. Cc lnh l-gch c trnh by chng 7. 4.2.3. Kh nng nh a ch theo bt ca cc cng C nhiu lc chng ta cn truy cp ch 1 hoc2 bt ca cng thay v truy cp c 8 bit ca cng. Mt im mnh ca cc cng 8051 l chng c kh nng truy cp tng bt ring r m khng lm thay i cc bt cn li trong cng v d, on m di y cht bit P1.2 lin tc:
BACK: CPL P1.2 ; Ly b 2 ch ring bit P1.2

ACALL DELAY SJMP BACK

Mt bin th khc ca on m trn l:


AGACN: SETB ACALL CLR ACALL SJMP P1.2 DELAY P1.2 DELAY AGAIN ; Ch thay i bt P1.2 ln cao ; Xo bt P1.2 xung thp

Lu rng bt P1.2 l bt th 3 ca cng P1, v bt th nht l P1.0 v bit th hai l P1.1 v.v... Bng 4.3 trnh by cc bt ca cc cng vo ra ca 8051. Xem v d 4.2 v thao tc bt ca cc bt vo - ra. Lu rng trong v d 4.2 cc bit khng dng n l khng b nh hng. y l kh nng nh a ch theo bit ca cc cng vo - ra v l mt trong nhng im mnh nht ca b vi iu khin 8051. V d 4.2: hy vit chng trnh thc hin cc cng vic sau: a) Duy tr hin th bit P1.2 cho n khi n ln cp b) Khi P1.2 ln cao, hy ghi gi tr 45H vo cng P0 c) Gi mt xung cao xung thp (H-to-L) ti P2.3 Li gii:
SET MOV JNB MOV SETB CLR P1.2 A, #45H P1.2, AGAIN P0, A P2.3 P2.3 ; To bit P1.2 l u vo ; Gn A = 45H ; Thot khi P1.2 = 1 ; Xut A ti cng P0 ; a P2.3 ln cao ; To P2.3 xung thp c xung H-T0-L

AGAIN:

Trong chng trnh ny lnh JNB P1.2, AGCN (JNB c ngha l nhy nu khng bit) li vng lp cho n khi P1.2 cha ln cao. Khi P1.2 ln cao n thot ra khi vng lp ghi gi tr 45H ti cng P0 v to ra xung H-to-L bng chui cc lnh SETB v CLR.

You might also like