Documente Academic
Documente Profesional
Documente Cultură
Vi Dieu Khien 8051 Assembly 15 GhepNoi
Vi Dieu Khien 8051 Assembly 15 GhepNoi
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.
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
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
Mode Selcction 0 = Mode 0 1 = Mode 1 Port C (Upper PC7 - PCA) 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
AGAIN:
RD WR
A1
CS WR RD
8255 A1 A1 A0 D7 PA PB PC D0
DQ 74LS373 OC
AD0
A0 D7
D0
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
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
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
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) 8K 8 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).
ULN2003 16 15 14 13
Stepper Motor
WR RD
A0 A1
CS
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
; 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
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
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
@R0, A
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
RD
8255 D0 D7 PA0
WR
D0
10K POT
A2 A7
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
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
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
OBFB ACKB
Port B with Hanshake Signals
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
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)
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.