You are on page 1of 16

chng 15 Php ghp 8031/51 vi 8255

Nh ni chng 14 trong qu trnh ni ghp 8031/51 vi b nh ngoi th hai cng P0 v P2 b mt. Trong chng ny chng ta s trnh by lm th no m rng cc cng vo/ ra I/O ca 8031/51 bng vic ni n ti chp 8255. 15.1 Lp trnh 8255. Trong mc ny ta nghin cu 8255 nh l mt trong nhng chp vo/ ra c s dng rng ri nht. Trc ht ta m t nhng c tnh ca n v sau s ch ra cch ni 8031/51 vi 8255 nh th no? 15.1 Lp trnh 8255. Trong mc ny ta nghin cu 8255 nh l mt trong nhng chp vo/ ra c s dng rng ri nht. Trc ht ta m t nhng c tnh ca n v sau ch ra cch ni 8031/51 vi 8255 nh th no? 15.1.1 Cc c tnh ca 8255. 8255 l mt chp DIP 4 chn (xem hnh 15.1). N c 3 cng truy cp c ring bit. Cc cng c tn A, B v C u l cc cng 8 bit. Cc cng ny u c th lp trnh nh cng u vo hoc u ra ring r v c th thay i mt cch nng ng. Ngoi ra, cc cng 8255 c kh nng bt tay. Do vy cho php giao din vi cc thit b khc cng c gi tr tn hiu bt tay nh cc my in chng hn. Kh nng bt tay ca 8255 s c bn ti mc 15.3.

PA3 PA2 PA1

PA0
P1.4 P1.5 GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3

PB0

PB1 PB2

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

8 2 5 5 A

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

PA4 PA5 PA6 PA7 WR RESE D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3

15.1.1.1 Cc chn PA0 - PA7 (cng A). C 8 bt ca cng A PA0 - PA7 c th c lp trnh nh 8 bit u vo hoc 8 bit u ra hoc c 8 bt hai chiu vo/ ra.S

Hnh 15.1: Chp 8255.

D7

D0 8 2 5 5

PA PB PC

RD WR
A0 A1

CS

RESET

Hnh 15.2: S khi ca 8255. 15.1.1.2 Cc chn PB0 - PB7 (cng B). C 8 bit ca cng B c th c lp trnh hoc nh 8 bit u vo hoc 8 bit u ra hoc c 8 bit hai chiu vo/ ra. 15.1.1.3 Cc chn PC0 - PC7 (cng C). Tt c 8 bit ca cng C (PC0 - PC7) u c th c lp trnh nh cc bit u vo hoc cc bit u ra. 8 bit ny cng c th c chia lm hai phn: Cc bit cao (PC4 - PC7) l CU v cc bit thp (PC0 - PC3) l CL. Mi phn c th c dng hoc lm u vo hoc lm u ra. Ngoi ra tng bit ca cng C t PC0 PC7 cng c th c lp trnh ring r. 15.1.1.4 Cc chn RD v WR . y l hai tn hiu iu khin tch cc mc thp ti 8255 c ni ti cc chn d liu RD v WR t 8031/51 c ni ti cc chn u vo ny. 15.1.1.5 Cc chn d liu D0 - D7. Cc chn d liu D0 - D7 ca 8255 c ni ti cc chn d liu ca b vi iu khin cho php n gi d liu qua li gia b vi iu khin v chp 8255. 15.1.1.6 Chn RESET. y l u vo tn hiu tch cc mc cao ti 8255 c dng xo thanh ghi iu khin. Khi chn RESET c kch hot th tt c cc cng c khi to li nh cc cng vo. Trong nhiu thit k th chn ny c ni ti u ra RESET ca bus h thng hoc c ni ti t khng kch hot n. Cng nh tt c cc chn u vo ca IC th n cng c th h. 15.1.1.7 Cc chn A0, A1 v CS . Trong khi CS chn ton b chp th A0 v A1 li chn cc cng ring bit. Cc chn ny c dng truy cp cc cng A, B, C hoc thanh ghi iu khin theo bng 15.1. Lu CS l tch cc mc thp. 15.1.2 Chn ch ca 8255. Trong khi cc cng A, B v C c dng nhp v xut d liu th thanh ghi iu khin phi c lp trnh chn ch lm vic ca cc cng ny. Cc cng ca 8255 c th c lp trnh theo mt ch bt k di y. 1. Ch 0 (Mode0): y l ch vo/ ra n gin. ch ny cc cng A, B CL v CU c th c lp trnh nh u vo hoc u ra. Trong ch ny th tt c cc bit hoc l u vo hoc l u ra. Hay ni cch khc l khng c iu khin theo tng bit ring r nh ta thy cc cng P0 - P3 ca 8051. V a phn cc ng dng lin quan n 8255 u s dng ch vo/ ra n gin ny nn ta s tp chung i su vo ch ny. 2. Ch 1 (Mode1): Trong ch ny cc cng A v B c th c dng nh cc cng u vo hoc u ra vi cc kh nng bt tay. Tn hiu bt tay c cp bi cc bit ca cng C (s c trnh by mc 15.3). 3. Ch 2 (Mode2): Trong ch ny cng A c th c dng nh cng vo/ ra hai chiu vi kh nng bt tay v cc tn hiu bt tay c cp bi cc bit cng C. Cng B c th c dng nh ch vo/ ra n gin hoc ch c bt tay Mode1. Ch ny s khng c trnh by trong ti liu ny. Ch BSR: y l ch thit lp/ xo bit (Bit Set/ Reset). ch ny ch c nhng bit ring r ca cng C c th c lp trnh (s c trnh by mc 15.3). Bng 15.1: Chn cng ca 8255.

CS
0 0 0 0 1

A1 0 0 1 1 x

A0 0 1 0 1 X

Chn cng Cng A Cng B Cng C Thanh ghi iu khin 8255 khng c chn

Group A D7 D6 D5 D4 D3 D2

Group A D1 D0

1 = I/O Mode 0 = BSR Mode Mode Selection 00 = Mode 0 01 = Mode 1 1x = Mode2

Pont A 1 = Input 0 = Output

Mode Selcction 0 = Mode 0 1 = Mode 1 Port C (Upper PC7 - PCA) 1 = Input 0 = Output

Port 0 (Lowe PC3 - PCC) 1 = Input 0 = Output

Port B 1 = Input 0 = Output

Hnh 15.3: nh dng t iu khin ca 8255 (ch vo/ ra). 15.1.3 Lp trnh ch vo/ ra n gin. Hng Intel gi ch 0 l ch vo/ ra c s. Mt thut ng c dng chung hn l vo/ ra n gin. Trong ch ny th mt cng bt k trong A, B, C c lp trnh nh l cng u vo hoc cng u ra. Cn lu rng trong ch ny mt cng cho khng th va lm u vo li va lm u ra cng mt lc. V d 15.1: Hy tm t iu khin ca 8255 cho cc cu hnh sau: Tt c cc cng A, B v C u l cc cng u ra (ch 0). PA l u vo, PB l u ra, PCL bng u vo v PCH bng u ra. Li gii: T hnh 15.3 ta tm c:
a) 1000 0000 = 80H; b) 1001 000 = 90H

15.1.4 Ni ghp 8031/51 vi 8255. Chp 8255 c lp trnh mt trong bn ch va trnh by trn bng cch gi mt byte (hng Intel gi l mt t iu khin) ti thanh ghi iu khin ca 8255. Trc ht chng ta phi tm ra cc a ch cng c gn cho mi cng A, B, C v thanh ghi iu khin. y c gi l nh x cng vo/ ra (mapping). Nh c th nhn thy t hnh 15.4 th 8255 c ni ti mt 8031/51 nh th n l b nh RAM. vic s dng cc tn hiu RD v WR . Phng php ni mt chp vo/ ra b nh v n c nh x vo khng gian b nh. Hay ni cch khc, ta s dng khng gian b nh truy cp cc thit b vo/ ra. V ly??? do ny m ta dng lnh MOVX truy cp RAM v ROM. i vi mt 8255 c ni ti 8031/51 th ta cng phi dng lnh MOVX truyn thng vi n. iu ny c th hin trn v d 15.2.

V d 15.2: i vi hnh 15.4: a) Hy tm cc a ch vo/ ra c gn cho cng A, B, C v thanh ghi iu khin. b) Hy lp trnh 8255 cho cc cng A, B v C thnh cc cng u ra. c) Vit mt chng trnh gi 55H v AAH n cng lin tc. Li gii: a) a ch c s dnh cho 8255 nh sau:
A1 5 x x x x A1 4 1 1 1 1 A1 3 x x x x A1 2 x x x x A1 1 x x x x A1 0 x x x x A9 x x x x A8 x x x x A7 x x x x A6 x x x x A5 x x x x A4 x x x x A3 x x x x A2 X X X X A1 0 0 1 1 A0 0 1 0 1 =4000HPA =4000HPB =4000HPC =4000HCR

b) Byte (t) iu khin cho tt c cc cng nh u ra l 80H nh c tnh v d 15.1. c)


MOV MOV MOVX MOV MOV MOVX INC MOVX INC MOVX CPL ACALL SJMP 8051 P3.7 P3.6 P2.7 ALE P0.7 P0.0 AD7 G A, #80H DPTR, # 4003H @DPTR, A A, # 55H DPTR, # 4000H @DPTR, A DPTR @DPTR, A DPTR @DPTR, A A DELAY AGAIN ; T in khin ; Np a ch cng ca thanh ghi iu khin ; Xut t in khin ; Gn A = 55 ; a ch cng PA ; Ly cc bit cng PA ; a ch cng PB ; Ly cc bt cng PB ; a ch cng PC ; Ly cc bt cng PC ; Ly cc bt thanh ghi A ; Ch ; Tip tc

AGAIN:

RD WR
A1

CS WR RD
8255 A1 A1 A0 D7 PA PB PC D0

DQ 74LS373 OC

AD0

A0 D7

D0

Hnh 15.4: Ni ghp 8051 vi 8255 cho v d 15.2.

V d 15.3: i vi hnh 15.5: a) Tm cc a ch cng vo ra c gn cho cc cng A, B, C v thanhg ghi iu khin. b) Tm byte iu khin i vi PA bng u vo, PB bng u ra, PC bng u ra c) Vit mt chng trnh nhn d liu t PA gi n n c cng B v cng C. Li gii: a) Gi s tt cc cc bit khng dng n l 0 th a ch cng c s cho 8255 l 1000H. Do vy ta c: b) T iu khin cho trng hp ny l 10010000 hay 90H. c)
MOV MOV MOVX MOV MOVX INC MOVX INC MOVX 8051 P3.7 P3.6 P2.7 1000H l PA; 1001H l PB; 1002H l PC v 1003H l thanh ghi iu khin.

A, #90H ; PA l u vo, PB l u ra, PC l u ra DPTR, #1003H ; Np a ch cng ca thanh ghi iu khin @DPTR, A ; Xut t iu khin DPTR, #1000H ; a ch PA A, @DPTR ; Nhn d liu t PA DPTR ; a ch PB @DPTR, A ; Gi d liu ra PB DPTR ; a ch PC @DPTR, A ; Gi d liu ra PC

RD WR
A15

CS
A12 G AD7 D Q 74LS373 OC A0 D7 A1 A1 A0 D7

WR RD 8255
PA PB PC D0 RE

ALE P0.7 P0.0

AD0

D0

Hnh 15.5: Ni ghp 8051 ti 8255 cho v d 15.3. i vi v d 15.3 ta nn dng ch lnh EQU cho a ch cc cng A, B, C v thanh ghi iu khin CNTPORT nh sau:
APORT EQU BPORT EQU CPORT EQU CNTPORT MOV MOV 1000H 1001H 1002H EQU 1003H A, #90H DPTR, #CNTPORT ; PA l u vo, PB l u ra, PC l u ra ; Np a ch ca cng thanh ghi iu khin

MOVX @DPTR, A ; Xut t iu khin MOV DPTR, #CNTPORT ; a ch PA MOVX DPTR, APORT ; Nhn d liu PA INC A, @DPTR ; a ch PB MOVX DPTR ; Gi d liu ra PB INC DPTR ; a ch PC MOVX DPTR, A ; Gi d liu ra PC hoc c th vit li nh sau: CONTRBYT EQU 90H Xc nh PA u vo, PB v PC u ra BAS8255P EQU 1000H ; a ch c s ca 8255 MOV MOV MOVX MOV ... A, #CONTRBYT DPTR, #BAS8255P+3 @DPTR, A DPTR, #BASS8255P ; Np a ch cng C ; Xut t iu khin ; a ch cng A

trong v d 15.2 v 15.3 ta s dng thanh ghi DPTR v a ch c s gn cho 8255 l 16 bit. Nu a ch c s dnh cho 8255 l 8 bit, ta c th s dng cc lnh MOVX A, @R0 v MOVX @R0, A trong R0 (hoc R1) gi a ch cng 8 bit ca cng. Xem v d 15.4, ch rng trong v d 15.4 ta s dng mt cng lgc n gin gii m a cha cho 8255. i vi h thng c nhiu 8255 ta c th s dng 74LS138 gii m nh s trnh by v d 15.5. 15.1.5 Cc b danh ca a ch (Addren Alias). Trong cc v d 15.4 v 15.4 ta gii m cc bt a ch A0 - A7, tuy nhin trong v d 15.3 v 15.2 ta gii m mt phn cc a ch cao ca A8 - A15. Vic gii m tng phn ny dn n ci gi l cc b danh ca a ch (Address Aliases). Hay ni cch khc, cng cng vt l ging nhau c cc a ch khc nhau, do vy cng mt cng m c bit vi cc tn khc nhau. Trong v d 15.2 v 15.3 ta c th thay i tt x thnh cc t hp cc s 1 v 0 khc nhau thnh cc a ch khc nhau, song v thc cht chng tham chiu n cng mt cng vt l. Trong ti liu thuyt minh phn cng ca mnh chng ta cn phi bo m ghi ch y cc b danh a cha nu c sao cho mi ngi dng bit c cc a ch c sn h c th m rng h thng. V d 15.4: Cho hnh 15.6: a) Hy tm cc a ch cng vo/ ra c gn cho cc cng A, B, C v thanh ghi iu khin. b) Tm t iu khin cho trng hp PA l u ra, PB l u vo, PC - PC3 l u vo v CP4 - CP7 l u ra. c) Vit mt chng trnh nhn d liu t PB v gi n ra PA. Ngoi ra, d liu t PC1 c gi n CPU. Li gii: a) Cc a ch cng c tm thy nh sau:
BB 0010 0010 0010 0010

CS
00 00 00 00

A1 0 0 1 1

A0 0 1 0 1

a ch 20H 21H 22H 23H

Cng Cng A Cng B Cng C Thanh ghi iu khin

b) T iu khin l 10000011 hay 83H.

c) CONTRBYT APORT BPORT CPORT CNTPORT

EQU EQU EQU EQU EQU ... MOV MOV MOV MOVX MOV MOVX DEC MOVX MOV MOVX ANL SWAP MOVX

83H 20H 21H 22H 23H A, #CONTRBYT A, #CONTRBYT R0, #CNTPORT @R0, A R0, #BPORT A, @R0 R0 @R0, A R0, #CPORT A, @R0 A, #0FH A @R0, A

; PA l u ra, PB,PCL l u vo

; PA, PCU l u ra, PB v PCL l u vo ; Np a ch ca cng thanh ghi iu khin ; Xut t iu khin ; Np a ch PB ; c PB ; Ch n PA (20H) ; Gi n n PA ; Np a ch PC ; c PCL ; Che phn cao ; Trao i phn cao v thp ; Gi n PCU

8051 P3.7 P3.6

RD WR
A7

CS
ALE P0.7 P0.0 A2 AD7 G D Q 74LS373 AD0 OC A0 D7 A1 A1 A0 D7

WR RD
PA 8255 PB PCL PCU D0 RES

D0

Hnh 15.6: Ni ghp 8051 vi 8255 cho v d 15.4. V d 15.5: Hy tm a ch c s cho 8255 trn hnh 15.7. Li gii:
GA A7 1

G 2B
A6 0

G 2A
A5 0

C A4 0

B A3 1

A A2 0 A1 0 A0 0

a ch 88H

74LS138 A2 A3 A4 A5 A6 A7 A B C A0 A1 Y2 8255

G 2A G 2B
G1

CS

Hnh 15.7: Gii m a ch ca 8255 s dng 74LS138. 15.1.6 H 8031 vi 8255. Trong mt h thng da trn 8031 m b nh chng trnh ROM ngoi l mt s bt buc tuyt i th s dng mt 8255 l rt c tro n. iu ny l do mt thc t l trong gii trnh phi ghp 8031 vi b nh chng trnh ROM ngoi ta b mt hai cng P0 v P2 v ch cn li duy nht cng P1. Do vy, vic ni vi mt 8255 l cch tt nht c thm mt s cng. iu ny c ch ra trn hnh 15.8.
8031 P3.7 P3.6

RD WR
VCC

EA

PSEN
P2.7 P2.0 ALE P0.7 P0.0 AD7 AD0 G A12 A8 A0 A12 A8 A0 A0 D7

CE OE VCC
2864 (2764) 8K8 Program RAM D0

WR RD
8 2 5 5
A1

PA PB PC RES

D q 74LS373
OC

A0 D7

A0

D0

Hnh 15.8: Ni 8031 ti mt ROM chng trnh ngoi v 8255. 15.2 Ni ghp vi th gii thc. 15.2.1 Phi ghp 8255 vi ng c bc. Chng 13 ni chi tit v phi ghp ng c bc vi 8051, y ta trnh by ni ghp ng c bc ti 8255 v lp trnh (xem hnh 15.9).

0855 D0 from 8051 A0 A1 A2 A7 Decoding Circuyiry D7 D0 D7 PA0 PA1 PA2 PA3 1 2 3 4

ULN2003 16 15 14 13

Stepper Motor

WR RD
A0 A1

CS

ULN2003 Conection for Stepper Motor Pin 8 = GND Pin 9 = +5v

COM COM +5V

Hnh 15.9: Ni ghp 8255 vi mt ng c bc. Chng trnh cho s ni ghp ny nh sau:
MOV MOV MOVX MOV MOV MOVX RR ACALL SJMP A, #80H R1, #CRPORT @R1, A R1, #APORT A, #66H @R1, A A DELAY AGAIN ; Chn t iu khin PA l u ra ; a ch cng thanh ghi iu khin ; Cu hnh cho PA u ra ; Np a ch cng PA ; Gn A = 66H, chuyn xung ca ng c bc ; Xut chui ng c n PA ; Quay chui theo chiu kim ng h ; Ch

AGAIN:

15.2.2 Phi ghp 8255 vi LCD. Chng trnh 15.1 trnh by cch xut cc lnh v d liu ti mt LCD c ni ti 8255 theo s hnh 15.10. Trong chng trnh 15.1 ta phi t mt tr trc mi ln xut thng tin bt k (lnh hoc d liu) ti LCD. Mt cch tt hn l kim tra c bn trc khi xut bt k th g ti LCD nh ni chng 12. Chng trnh 15.2 lp li chng trnh 15.1 c s dng kim tra c bn. rng lc ny khng cn thi gian gi chm nh v tr 15.1. Chng 15.1:
0855 PA0 LCD D0 VCC VEE PA1 PB0 PB1 PB2 RESET A7 VSS RS R/W E 10K POT

Hnh 5.10: Ni ghp 8255 vi LCD.

; Ghi cc lnh v d liu ti LCD khng c kim tra c bn. ; Gi s PA ca 8255 c ni ti D0 - D7 ca LCD v ; IB - RS, PB1 = R/W, PB2 = E ni cc chn iu khin LCD MOV A, #80H ; t tt c cc cng 8255 l u ra MOV R0, #CNTPORT ; Np a ch thanh ghi iu khin MOVX @R0, A ; Xut t iu khin MOV A, #38H ; Cu hnh LCD c hai dng v ma trn 57

ACALL CMDWRT ACALL DELAY MOV A, # 0EH ACALL CMDWRT ACALL DELAY MOV A, # 01H ACALL CMDWRT ACALL DELAY MOV A, # 06 ACALL CMDWRT ACALL DELAY ... MOV A, # 'N' ACALL DATAWRT ACALL DELAY MOV A, # '0' ACALL DATAWRT ACALL DELAY ... ; Chng trnh con ghi lnh CMDWRT ra LCD CMDWRT: MOV R0, # APORT MOVX @R0, A MOV R0, # BPORT MOV A, # 00000100B MOVX NOP NOP MOV @R0, A

; Ghi lnh ra LCD ; Ch n ln xut k tip (2ms) ; Bt con tr cho LCD ; Ghi lnh ny ra LCD ; Ch ln xut k tip ; Xo LCD ; Ghi lnh ny ra LCD ; Dch con tr sang phi ; Ghi lnh ny ra LCD ; Ch ln xut sau ; Ghi lnh ny ra LCD ; v.v... cho tt c mi lnh LCD ; Hin th d liu ra (ch N) ; Gi d liu ra LCD hin th ; Ch ln xut sau ; Hin th ch "0" ; Gi ra LCD hin th ; Ch ln xut sau ; v.v... cho cc d liu khc ; Np a ch cng A ; Xut thng tin ti chn d liu ca LCD ; Np a ch cng B ; RS=0, R/W=1, E=1 cho xung cao xung thp ; Kch hot cc chnRS, R/W, E ca LCD ; To xung cho chn E

A, # 00000000B ; RS=0, R/W=1, E=1 cho xung cao xung thp

MOVX @R0, A ; Cht thng tin trn chn d liu ca LCD RET ; Chng trnh con ghi lnh DATAWRT ghi d liu ra LCD. CMDWRT: MOV R0, # APORT ; Np a ch cng A MOVX @R0, A ; Xut thng tin ti chn d liu ca LCD MOV R0, # BPORT ; t RS=1, R/W=0, E=0 cho xung cao xung thp MOV A, # 00000101B ; Kch hot cc chn RS, R/W, E MOVX @R0, A ; To xung cho chn E NOP NOP MOV A, # 00000001B ; t RS=1, R/W=0, E=0 cho xung cao xung thp MOVX @RC, A ; Cht thng tin trn chn d liu ca LCD RET

Chng trnh 15.2:


; Ghi cc lnh v d liu ti LCD c s dng kim tra c bn. ; Gi s PA ca 8255 c ni ti D0 - D7 ca LCD v ; PB0 = RS, PB1 = R/W, PB2 = E i vi 8255 ti cc chn iu khin LCD MOV A, #80H ; t tt c cc cng 8255 l u ra MOV R0, #CNTPORT ; Np a ch thanh ghi iu khin MOVX @R0, A ; Xut t iu khin MOV A, #38H ; Chn LCD c hai dng v ma trn 57 ACALL NMDWRT ; Ghi lnh ra LCD MOV A, # 0EH ; Lnh ca LCD cho con tr bt ACALL NMDWRT ; Ghi lnh ra LCD

MOV

A, # 01H

; Xo LCD

ACALL NMDWRT ; Ghi lnh ra LCD MOV A, # 06 ; Lnh dch con tr sang phi ACALL CMDWRT ; Ghi lnh ra LCD ... ; v.v... cho tt c mi lnh LCD MOV A, # 'N' ; Hin th d liu ra (ch N) ACALL NCMDWRT ; Gi d liu ra LCD hin th MOV A, # '0' ; Hin th ch "0" ACALL NDADWRT ; Gi ra LCD hin th ... ; v.v... cho cc d liu khc ; Chng trnh con ghi lnh NCMDWRT c hin th c bn NCMDWRT: MOV R2, A ; Lu gi tr thanh ghi A MOV A, #90H ; t PA l cng u vo c trng thi LCD MOV R0, # CNTPORT ; Np a ch thanh ghi iu khin MOVX @R0, A ; t PA u vo, PB u ra MOV A, # 00000110B ; RS=0, R/W=1, E=1 c lnh MOV @R0, BPORT ; Np a ch cng B MOVX R0, A ; RS=0, R/W=1 cho cc chn RD v RS MOV R0, APORT ; Np a ch cng A MOVX @R0 ; c thanh ghi lnh RLC A ; Chuyn D7 (c bn) vo bit nh carry JC READY ; Ch cho n khi LCD sn sng MOV A, #80H ; t li PA, PB thnh u ra MOV R0, #CNTPORT ; Np a ch cng iu khin MOVX @R0, A ; Xut t iu khin ti 8255 MOV A, R2 ; Nhn gi tr tr li ti LCD MOV R0, #APORT ; Np a ch cng A MOVX @R0, A ; Xut thng tin ti cc chn d liu ca LCD MOV R0, #BPORT ; Np a ch cng B MOV A, #00000100B ; t RS=0, R/W=0, E=1 cho xung thp ln cao MOVX @R0, A ; Kch hot RS, R/W, E ca LCD NOP ; To rng xung ca chn E NOP MOV A, #00000000B ; t RS=0, R/W=0, E=0 cho xung cao xung thp MOVX @R0, A ; Cht thng tin chn d liu LCD RET ; Chng trnh con ghi d liu mi NDATAWRT s dng c bn NCMDWRT: MOV R2, A ; Lu gi tr thanh ghi A MOV A, #90H ; t PA l cng u vo c trng thi LCD MOV R0, # CNTPORT ; Np a ch thanh ghi iu khin MOVX @R0, A ; t PA u vo, PB u ra MOV A, # 00000110B ; RS=0, R/W=1, E=1 c lnh MOV @R0, BPORT ; Np a ch cng B MOVX R0, A ; RS=0, R/W=1 cho cc chn RD v RS READY: READY: MOV MOVX RLC JC MOV MOV MOVX MOV MOV MOVX MOV MOV R0, APORT @R0 A READY A, #80H R0, #CNTPORT @R0, A A, R2 R0, #APORT @R0, A R0, #BPORT A, #00000101B ; Np a ch cng A ; c thanh ghi lnh ; Chuyn D7 (c bn) vo bit nh carry ; Ch cho n khi LCD sn sng ; t li PA, PB thnh u ra ; Np a ch cng iu khin ; Xut t iu khin ti 8255 ; Nhn gi tr tr li ti LCD ; Np a ch cng A ; Xut thng tin ti cc chn d liu ca LCD ; Np a ch cng B ; t RS=1, R/W=0, E=1 cho xung thp ln cao

MOVX NOP NOP MOV MOVX RET

@R0, A

; Kch hot RS, R/W, E ca LCD ; To rng xung ca chn E

A, #00000001B ; t RS=1, R/W=0, E=0 cho xung cao xung thp @R0, A ; Cht thng tin chn d liu LCD

15.2.3 Ni ghp ADC ti 8255. Cc b ADC c trnh by chng 12. Di y mt chng trnh ch mt b ADC c ni ti 8255 theo s cho trn hnh 115.11.
MOV MOV MOVX MOV MOVX ANL JNZ MOV MOVX A, #80H R1, #CRPORT @R1, A R1, #CPORT A, @R1 A,, #00000001B BACK R1, #APORT A, @R1 ; T iu khin vi PA = u ra v PC = u vo ; Np a ch cng iu khin ; t PA = u ra v PC = u vo ; Np a ch cng C ; c a ch cng C xem ADC sn sng cha ; Che tt c cc bt cng C xem ADC sn ; Gi hin th PC0 che EOC ; Kt thc hi thoi v by gi nhn d liu ca ADC ; Np a ch PA ; A = u vo d liu tng t

BACK: sng cha

Cho n y ta c trao i ch vo/ ra n gin ca 8255 v trnh by nhiu v d v n. Ta xt tip cc ch khc.


ADC804 5V 10k 150pF

RD
8255 D0 D7 PA0

WR
D0

VCC CLK R CLK IN Vin(+) Vin(-) A GND Vref/2 GND

10K POT

A2 A7

Decoding Circuyiry RESET

PA7 PC0

D7 INTR

CS

Hnh 15.11: Ni ghp ADC 804 vi 8255. 15.3 Cc ch khc ca 8255. 15.3.1 Ch thit lp/ xo bit BSR. Mt c tnh duy nht ca cng C l cc bit c th c iu khin ring r. Ch BSR cho php ta thit lp cc bit PC0 - PC7 ln cao xung thp nh c ch ra trn hnh 15.12. V d 15.6 v 15.7 trnh by cch s dng ch ny nh th no?

D7 0

D6 x

D5 x

D4 x

D3

D2 Bit Select

D1

D0 S/R

BSR Mode

Not Used. Generally = 0.

000=Bit0 100=Bit4 001 = Bit1 101=Bit5 010 = Bit2 110=Bit6 011 = Bit3 111=Bit7

Set=1 Reset=0

Hnh 15.12: T iu khin ca ch BSR. V d 15.6: Hy lp trnh PCA ca 8255 ch BSR th bit D7 ca t iu khin phi mc thp. PC4 mc cao, ta cn mt t iu khin l "0xxx1001" v mc thp ta cn "0xxx1000". Cc bt c nh du x l ta khng cn quan tm v thng chng c t v 0.
MOV MOV MOVX ACALL MOV MOVX ACALL A, 00001001B R1, #CNTPORT @R1, A DELAY A, #00001000B @R1, A DELAY ; t byte iu khin cho PC4 =1 ; Np cng thanh ghi iu khin ; To PC4 = 1 ; Thi gian gi chm cho xung cao ; t byte iu khin cho PC4 = 0 ; To PC4 = 0

D0 D7

8255

WR RD
A2 A7 Decoding Circuyiry A0 A7

WR RD
A0 A7 PC4

CS

Hnh 15.13: Cu hnh cho v d 15.6 v 15.7. V d 15.7: Hy lp trnh 8255 theo s 15.13 : a) t PC2 ln cao b) S dng PC6 to xung vung lin tc vi 66% y xung. Li gii:
a) MOV R0, # CNTPORT MOV A, # 0XXX0101 MOV @R0, A b) AGAIN: MOV MOV MOVX ACALL ACALL MOV ; Byte iu khin A, #00001101B R0, #CNTPORT @R0, A DELAY DELAY A, #00001100B ; Chn PC6 = 1 ; Np a ch thanh ghi iu khin ; To PC6 = 1 ; PC6 = 0

ACALL SJMP

DELAY ; Thi gian gi chm AGAIN ControlWord-Mode1Output Port A Output Port A with Hanshake Signals D7 D6 D5 D4 D3 D2 D1 D0

INTEA

PC4 PC4 PC7 PC6

OBFA ACKA

0 Port A Mode1

1 Port A Mode1

1/0 PC4.51=Input,0=Outpput

0 Port B Mode1

Port A Output

Port B Output

Port B Output

I/O Mode

INTEA PC6 INTEB PC1 PC2

OBFB ACKB
Port B with Hanshake Signals

StatusWord-Mode1Output D7 D6 D5 D4 D3 D2 D1 D0 INTEB INTEB iNTEA INTEA OBFA OBFB I/O I/O

INTEB PC0

WR

INTEA is controlled by PC6 in BSR mode PC4.5 INTEB is controlled by PC2 in BSR mode Hnh 15.14: Biu u ra ca 8255 ch 1.

PB7 PB0

Port A Output

WR OBF
INTEB

ACK
Output

Hnh 15.15: Biu nh thi ca 8255 ch 1. 15.3.2 8255 ch 1: Vo/ ra vi kh nng ny bt tay. Mt trong nhng c im mnh nht ca 8255 l kh nng bt tay vi cc thit b khc. Kh nng bt tay l mt qu trnh truyn thng qua li ca hai thit b thng minh. V d v mt thit b c cc tn hiu bt tay l my in. Di y ta trnh by cc tn hiu bt tay ca 8255 vi my in. Ch 1: Xut d liu ra vi cc tn hiu bt tay. Nh trnh by trn hnh 15.14 th cng A v B c th c s dng nh cc cng u ra gi d liu ti mt thit b vi cc tn hiu bt tay. Cc tn hiu bt tay cho c hai cng A v B c cp bi cc bit ca cng C. Hnh 15.15 biu nh thi ca 8255.

Di y l cc phn gii thch v cc tn hiu bt tay v tnh hp l ca chng i vi cng A, cn cng B th hon ton tng t. Tn hiu OBFa : y l tn hiu b m u ra y ca cng A c tch cc mc thp i ra t chn PC7 bo rng CPU ghi 1 byte d liu ti cng A. Tn hiu ny phi c ni ti chn STROBE ca thit b thu nhn d liu (chng hn nh my in) bo rng n by gi c th c mt byte d liu t cht cng. Tn hiu ACKa : y l tn hiu chp nhn do cng A c mc tch cc mc thp c nhn ti chn PC6 ca 8255. Qua tn hiu ACKa th 8255 bit rng tn hiu ti cng A c thit b thu nhn ly i. Khi thit b nhn ly d liu i t cng A n bo 8255 qua tn hiu ACKa . Lc ny 8255 bt OBFa ln cao bo rng d liu ti cng A by gi l d liu c v khi CPU ghi mt byte d liu mi ti cng A th OBFa li xung thp v.v... Tn hiu INTRa: y l tn hiu yu cu ngt ca cng A c mc tch cc cao i ra t chn PC3 ca 8255. Tn hiu ACK l tn hiu c di hn ch. Khi n xung thp (tch cc) th n lm cho OBFa khng tch cc, n mc thp mt thi gian ngn v sau tr nn cao (khng tch cc). Sn ln ca ACK kch hot INTRa ln cao. Tn hiu cao ny trn chn INTRa c th c dng gy ch ca CPU. CPU c thng bo qua tn hiu INTRa rng my in nhn byte cui cng v n sn sng nhn byte d liu khc. INTRa ngt CPU ngng mi th ang lm v p n gi byte k tip ti cng A in. iu quan trng l ch rng INTRa c bt ln 1 ch khi nu INTRa, OBFa v ACKa u mc cao. N c xo v khng khi CPU ghi mt byte ti cng A. Tn hiu INTEa: y l tn hiu cho php ngt cng A 8255 c th cm INTRa ngn n khng c ngt CPU. y l chc nng ca tn hiu INTEa. N l mt mch lt Flip - Flop bn trong thit k che (cm) INTRa. Tn hiu INTRa c th c bt ln hoc b xo qua cng C trong ch BSR v INTEa l Flip - Plop c iu khin bi PC6. T trng thi: 8255 cho php hin th trng thi ca cc tn hiu INTR, OBF v INTE cho c hai cng A v B. iu ny c thc hin bng cch c cng C vo thanh ghi tng v kim tra cc bit. c im ny cho php thc thi thm d thay cho ngt phn cng.
1 13

14

25

Hnh 15.16: u cm DB-25. (hnh 15.17 m qu khng v c) Hnh 15.17: u cp ca my in Centronics. Bng 15.2: Cc chn tn hiu ca my in Centronics.

Chn s 1 2 3 4 5 6 7 8 9 10

M t STROBE D liu D0 D liu D1 D liu D2 D liu D3 D liu D4 D liu D5 D liu D6 D liu D7

Chn s 11 12 13 14 15 16 17 18-25

M t Bn (busy) Ht giy (out of paper) Chn (select) T np ( Autofeed ) Li ( Error ) Khi to my in Chn u vo ( Select input ) t (ground)

ACK (chp nhn)

Cc bc truyn thng c bt tay gia my in v 8255. Mt byte d liu c gi n bus d liu my in. My in c bo c 1 byte d liu cn c in bng cch kch hot tn hiu u vo STROBE ca n. Khi my nhn c d liu n bo bn gi bng cch kch hot tn hiu u ra c gi l ACK (chp nhn). Tn hiu ACK khi to qu trnh cp mt byte khc n my in. Nh ta thy t cc bc trn th ch khi mt byte d liu ti my in l khng . My in phi c thng bo v s hin din ca d liu. Khi d liu c gi th my in c th bn hoc ht giy, do vy my in phi c bo cho bn gi khi no n nhn v ly c d liu ca n. Hnh 15.16 v 15.17 trnh cc cm DB25 v u cp ca my in Centronics tng ng.

You might also like