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

Hnh 15.1: Chp 8255.

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

RD
WR
A0
A1

CS

PA
PB
PC

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

A1

A0

Chn cng

0
0
0
0
1

0
0
1
1
x

0
1
0
1
X

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

Group A
D7

D6

D5

Group A
D4

D3

Mode Selection
00 = Mode 0
01 = Mode 1
1x = Mode2

D1

Mode Selcction
0 = Mode 0
1 = Mode 1

Pont A
1 = Input
0 = Output

1 = I/O Mode
0 = BSR Mode

D2

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

D0

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

A1
4
1

A1
3
x

A1
2
x

A1
1
x

A1
0
x

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

=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

AGAIN:

A, #80H
DPTR, # 4003H
@DPTR, A
A, # 55H
DPTR, # 4000H
@DPTR, A
DPTR
@DPTR, A
DPTR
@DPTR, A
A
DELAY
AGAIN

8051

; 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

RD
WR

P3.7
P3.6

A1

CS WR RD

P2.7
ALE
P0.7
P0.0

AD7

AD0

8255

DQ
74LS373
OC

A1

A1

A0

A0
D7

D7

D0

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

PA
PB
PC
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:
1000H l PA; 1001H l PB; 1002H l PC v 1003H l thanh ghi iu khin.

b) T iu khin cho trng hp ny l 10010000 hay 90H.


c)
MOV
MOV
MOVX
MOV
MOVX
INC
MOVX
INC
MOVX

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

8051

RD
WR

P3.7
P3.6

A15

P2.7

A12
G

ALE
P0.7
P0.0

WR RD

CS

AD7

AD0

8255
A1

D Q
74LS373
OC

A0

A1
A0
D7

PA
PB
PC

D0 RE

D7

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

1000H
1001H
1002H
EQU
1003H

MOV
MOV

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

CS

A1

A0

a ch

0010
0010
0010
0010

00
00
00
00

0
0
1
1

0
1
0
1

20H
21H
22H
23H

b) T iu khin l 10000011 hay 83H.

Cng
Cng A
Cng B
Cng C
Thanh ghi iu khin

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

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

A, #CONTRBYT
A, #CONTRBYT
R0, #CNTPORT
@R0, A
R0, #BPORT
A, @R0
R0
@R0, A
R0, #CPORT
A, @R0
A, #0FH
A
@R0, A

8051

; 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

P3.7
P3.6

A7

WR RD

CS
ALE
P0.7
P0.0

PA

A2

8255

AD7

A1

D Q

A1
A0
D7

74LS373
AD0

A0

OC

PB
PCL
PCU

D0 RES

D7

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

G 2B

G 2A

A7
1

A6
0

A5
0

A4
0

A3
1

A2
0

a ch
A1
0

A0
0

88H

74LS138
A2
A4

A
B
C

A5

G 2A

A6

G 2B

A7

G1

A3

A0
A1
8255

Y2

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.

EA

8031
P3.7
P3.6

RD
WR

VCC

PSEN
A12

P2.7
P2.0
ALE
P0.7
P0.0

G
AD7
AD0

D q
74LS373
OC

A8

CE OE VCC
A12
A8

A0

A0

A0

A0
D7

2864
(2764)
8K8
Program
RAM
D0

WR RD
8
2
5
5

PA
PB
PC

A1

A0

RES

D7

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
D7

from
8051

WR
A0
A1

Decoding
Circuyiry

A7

ULN2003

PA0

RD

A0
A1
A2

D0
D7

PA1
PA2
PA3

16

15

14

13

Stepper Motor

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:

AGAIN:

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

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

A7
VSS
RS R/W E

10K
POT

PB0
PB1
PB2
RESET

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.

BACK:
sng cha

MOV
MOV
MOVX
MOV
MOVX
ANL

A, #80H
R1, #CRPORT
@R1, A
R1, #CPORT
A, @R1
A,, #00000001B

; 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

JNZ

BACK

MOV
MOVX

R1, #APORT
A, @R1

; 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

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

RD
8255
D0
D7

A2
A7

PA0

PA7
PC0

Decoding
Circuyiry
RESET

WR
D0

D7
INTR

VCC
CLK R

5V
10k

150pF

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

10K
POT

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

D6

D5

BSR
Mode

D4

D3

D2

Not Used.
Generally = 0.

D1

D0
S/R

Bit Select

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

WR
RD
A2
A7

Decoding
Circuyiry

A0
A7

8255

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

D7 D6 D5 D4 D3 D2 D1 D0

Port A Output

PC1

OBFB

PC2

ACKB

INTEB

OBFB

INTEB

iNTEA

PB7
PB0

I/O

WR

I/O

D7 D6 D5 D4 D3 D2 D1 D0
INTEA

PC0

1/0

StatusWord-Mode1Output
OBFA

INTEB

Port B with
Hanshake Signals

INTEB

Port B Output

PC6

I/O Mode

INTEA

Port B Mode1

ACKA

Port B Output

PC6

PC4.51=Input,0=Outpput

OBFA

Port A Output

PC7

Port A Mode1

ControlWord-Mode1Output

Port A Mode1

INTEA

PC4
PC4

DELAY ; Thi gian gi chm


AGAIN

Port A with
Hanshake Signals

ACALL
SJMP

Port A Output

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.

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