CH NG 15ƯƠ
Phép ghép 8031/51 v i 8255
Nh đã nói ch ng 14 trong quá trình n i ghép 8031/51 v i b như ươ
ngi thì hai c ng P0 và P2 b m t. Trong ch ng này chúng ta s trình bày làm ươ
th nào đ m r ng các c ng vào/ ra I/O c a 8031/51 b ng vi c n i nó t i chípế
8255.
nh 15.1: Chíp 8255.
15.1.1.1 Các cn PA0 - PA7 (c ng A).
C 8 bít c a c ng A PA0 - PA7 th đ c l p trình nh 8 bit đ u vào ượ ư
ho c 8 bit đ u ra ho c c 8 bít hai chi u vào/ ra.S
nh 15.2: S đ kh i c a 8255.ơ
15.1.1.2 Các cn PB0 - PB7 (c ng B).
PB
PA3
PA2
PA1
PA0
P1.4
P1.5
GND
A1
A0
PA
PA
PA
WR
RESE
D
VCC
PA
1
2
3
5
6
4
7
8
9
11
12
10
13
14
15
17
18
16
19
20
40
39
38
36
35
37
34
33
32
30
29
31
28
27
26
24
23
25
22
21
8
2
5
5
A
D
D
D
D
D
D
D
PB
PB
PB
PB
PB
PC
PC6
PC5
PC4
PC0
PC1
PC
PC
PB0
PB1
PA
PB
PC
8
2
5
5
A0
A1
RESET
CS
WR
RD
D7 D0
15.1 L p trình 8255.
Trong m c này ta nghiên c u
8255 nh m t trong nh ng chíp vào/ư
ra đ c s d ng r ng rãi nh t. Tr cượ ướ
h t ta t nh ng đ c tính c a ế
sau đó ch ra cách n i 8031/51 v i 8255
nh th nào?ư ế
15.1.1 Các đ c tính c a 8255.
8255 m t cp DIP 4 chân
(xem hình 15.1). Nó 3 c ng truy c p
đ c riêng bi t. Các c ng đó tên A,ượ
B C đ u các c ng 8 bit. Các c ng
y đ u th l p trình nh c ng đ u ư
o ho c đ u ra riêng r và có th thay
đ i m t cách năng đ ng. Ngoài ra, các
c ng 8255 có kh năng b t tay. Do v y
cho pp giao di n v i các thi t b khác ế
cũng giá tr tín hi u b t tay nh các ư
y in ch ng h n. Kh năng b t tay
c a 8255 s đ c bàn t i m c 15.3. ượ
C 8 bit c a c ng B th đ c l p trình ho c nh 8 bit đ u vào ho c 8 ượ ư
bit đ u ra ho c c 8 bit hai chi u vào/ ra.
15.1.1.3 Các cn PC0 - PC7 (c ng C).
T t c 8 bit c a c ng C (PC0 - PC7) đ u th đ c l p trình nh các ượ ư
bit đ u vào ho c các bit đ u ra. 8 bit này cũng th đ c chia làm hai ph n: ượ
Các bit cao (PC4 - PC7) CU các bit th p (PC0 - PC3) CL. M i ph n
th đ c dùng ho c làm đ u vào ho c làm đ u ra. Ngoài ra t ng bit c a c ng C ượ
t PC0 - PC7 cũng th đ c l p trình rng r . ượ
15.1.1.4 Các cn
RD
.
Đây hai tín hi u đi u khi n tích c c m c th p t i 8255 đ c n i t i ượ
các cn d li u
RD
WR
t 8031/51 đ c n i t i các chân đ u vào y. ư
15.1.1.5 Các cn d li u D0 - D7.
Các chân d li u D0 - D7 c a 8255 đ c n i t i các chân d li u c a b ượ
vi đi u khi n đ cho phép nó g i d li u qua l i gi a b vi đi u khi n và chíp
8255.
15.1.1.6 Chân RESET.
Đây đ u o tín hi u tích c c m c cao t i 8255 đ c dùng đ xoá ượ
thanh ghi đi u khi n. Khi chân RESET đ c kích ho t thì t t c các c ng đ c ượ ượ
kh i t o l i nh các c ng vào. Trong nhi u thi t k thì chân này đ c n i t i ư ế ế ượ
đ u ra RESET c a bus h th ng ho c đ c n i t i đ t đ không kích ho t nó. ượ
ng nh t t c các chân đ u vào c a IC thì ng th đ h .ư
15.1.1.7 Các cn A0, A1
CS
.
Trong khi
CS
ch n toàn b chíp thì A0 A1 l i ch n các c ng riêng
bi t. Các cn này đ c dùng đ truy c p các c ng A, B, C ho c thanh ghi đi u ượ
khi n theo b ng 15.1. L u ý ư
CS
ch c c m c th p.
15.1.2 Ch n ch đ c a 8255. ế
Trong khi c c ng A, B C đ c dùng đ nh p xu t d li u thì ượ
thanh ghi đi u khi n ph i đ c l p tnh đ ch n ch đ làm vi c c a các ượ ế
c ng này. Các c ng c a 8255 th đ c l p trình theo m t ch đ b t kỳ ượ ế
d i đây.ướ
1. Ch đ 0 (Mode0):ế Đây ch đ vào/ ra đ n gi n. ch đ này các c ngế ơ ế
A, B CL CU th đ c l p trình nh đ u vào ho c đ u ra. Trong ch đ ượ ư ế
y thì t t c các bit ho c là đ u vào ho c là đ u ra. Hay nói cách kc là không
có đi u khi n theo t ng bit riêng r nh ta đã th y các c ng P0 - P3 c a 8051. ư
đa ph n các ng d ng liên quan đ n 8255 đ u s d ng ch đ o/ ra đ n ế ế ơ
gi n này n ta s t p chung đi sâu vào ch đ này. ế
2. Ch đ 1 (Mode1):ế Trong ch đ nàyc c ng A và B có th đ c dùng nhế ượ ư
các c ng đ u vào ho c đ u ra v i các kh năng b t tay. Tín hi u b t tay đ c ượ
c p b i các bit c a c ng C (s đ c trình y m c 15.3). ượ
3. Ch đ 2 (Mode2):ế Trong ch đ này c ng A th đ c dùng nh c ngế ượ ư
o/ ra hai chi u v i kh năng b t tay các tín hi u b t tay đ c c p b i các ượ
bit c ng C. C ng B th đ c dùng nh ch đ vào/ ra đ n gi n ho c ượ ư ế ơ
ch đ b t tay Mode1. Ch đ này s không đ c trình y trong tài li uế ế ượ
y.
Ch đ BSR: Đây là ch đ thi t l p/ xoá bit (Bit Set/ Reset). ch đ này chế ế ế ế
nh ng bit riêng r c a c ng C th đ c l p trình (s đ c trình y ượ ượ
m c 15.3).
B ng 15.1: Ch n c ng c a 8255.
CS
A1 A0 Ch n c ng
0 0 0 C ng A
0 0 1 C ng B
0 1 0 C ng C
0 1 1 Thanh ghi đi u khi n
1 x X 8255 không đ c ch nượ
nh 15.3: Đ nh d ng t đi u khi n c a 8255 (ch đ vào/ ra). ế
15.1.3 L p trình ch đ o/ ra đ n gi n. ế ơ
Hãng Intel g i ch đ 0 ch đ vào/ ra c s . M t thu t ng đ c ế ế ơ ượ
ng chung h n là vào/ ra đ n gi n. Trong ch đ này thì m t c ng b t kỳ trongơ ơ ế
A, B, C đ c l p trình nh c ng đ u vào ho c c ng đ u ra. C n l u ý r ngượ ư ư
trong ch đ y m t c ng đã cho không th v a làm đ u vào l i v a làm đ uế
ra ng m t lúc.
d 15.1:
Hãy tìm t đi u khi n c a 8255 choc c u hình sau:
T t c các c ng A, B và C đ u các c ng đ u ra (ch đ 0). ế
PA là đ u vào, PB là đ u ra, PCL b ng đ u vào PCH b ng đ u ra.
L i gi i:
T hình 15.3 ta m đ c: ượ
a) 1000 0000 = 80H; b) 1001 000 = 90H
15.1.4 N i ghép 8031/51 v i 8255.
Chíp 8255 đ c l p trình m t trong b n ch đ v a trình bày trênượ ế
b ng cách g i m t byte (hãng Intel g i là m t t đi u khi n) t i thanh ghi đi u
khi n c a 8255. Tr c h t chúng ta ph i tìm ra các đ a ch c ng đ c gán cho ướ ế ượ
m i c ng A, B, C và thanh ghi đi u khi n. Đây đ c g i là ánh x c ng vào/ ra ư
(mapping).
Nh th nhìn th y t hình 15.4 thì 8255 đ c n i t i m t 8031/51ư ượ
nh th nó là b nh RAM. Đ vi c s d ng các tín hi u ư ế
RD
. Ph ngươ
pháp n i m t chíp vào/ ra b nh đ c ánh x vào không gian b nh . ượ
Hay nói cách khác, ta s d ng không gian b nh đ truy c p các thi t b vào/ ế
1 = I/O Mode
0 = BSR
Mode
Selection
00 = Mode 0
01 = Mode 1
1x = Mode2
Pont A
1 = Input
0 =
Output
Port C
(Upper PC7
- PCA)
1 = Input
0 = Output
Mode
Selcction
0 = Mode 0
Port B
1 = Input
0 = Output
Port 0
(Lowe PC3 -
PCC)
1 = Input
0 = Output
Group A Group A
D7 D6 D5 D4 D3 D2 D1
D0
ra. Vì ly??? do y mà ta dùng l nh MOVX đ truy c p RAM và ROM. Đ i v i
m t 8255 đ c n i t i 8031/51 thì ta cũng ph i ng l nh MOVX đ truy n ượ
thông v i nó. Đi u này đ c th hi n trên d 15.2. ượ
d 15.2:
Đ i v i hình 15.4:
a) Hãy tìm các đ a ch vào/ ra đ c gán cho c ng A, B, C thanh ghi đi u ượ
khi n.
b) Hãy l p trình 8255 choc c ng A, B C thành các c ng đ u ra.
c) Vi t m t ch ng trình đ g i 55H và AAH đ n c ng liên t c.ế ươ ế
L i gi i:
a) Đ a ch c s nh cho 8255 nh sau: ơ ư
A
15
A
14
A1
3
A
12
A1
1
A1
0
A9 A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
x 1 x x x x x x x x x x x X 0 0 =4000HP
A
x 1 x x x x x x x x x x x X 0 1 =4000HP
B
x 1 x x x x x x x x x x x X 1 0 =4000HP
C
x 1 x x x x x x x x x x x X 1 1 =4000HC
R
b) Byte (t ) đi u khi n cho t t c các c ng nh đ u ra là 8 ư 0H nh đ c tính ư ượ
d 15.1.
c)
MOV A, #80H ; T đi n khi n
MOV DPTR, # 4003H ; N p đ a ch c ng c a
thanh ghi đi u khi n
MOVX @DPTR, A ; Xu t t đi n khi n
MOV A, # 55H ; Gán A = 55
AGAIN: MOV DPTR, # 4000H ; Đ a ch c ng PA
MOVX @DPTR, A ; L y các bit c ng PA
INC DPTR ; Đ a ch c ng PB
MOVX @DPTR, A ; L y các bít c ng PB
INC DPTR ; Đ a ch c ng PC
MOVX @DPTR, A ; L y các bít c ng PC
CPL A ; L y các bít thanh ghi A
ACALL DELAY ; Ch
SJMP AGAIN ; Ti p t cế
8051
AD7
P0.0
P0.7
ALE
P3.7
P3.6
RD
74LS373
G
OC
QD
A0
A1
AD0
8255
WR
CS
WR
RD
P2.7
P
P
P
A1
D7 D0A0
D7
D0
A1
nh 15.4: N i ghép 8051 v i 8255 cho ví d 15.2.
d 15.3:
Đ i v i hình 15.5:
a) Tìmc đ a ch c ng vào ra đ c gán cho các c ng A, B, C và thanhg ghi đi u ượ
khi n.
b) m byte đi u khi n đ i v i PA b ng đ u vào, PB b ng đ u ra, PC b ng đ u
ra
c) Vi t m t ch ng trình đ nh n d li u t PA g i nó đ n c c ng B và c ngế ươ ế
C.
L i gi i:
a) Gi s t t các các bit không dùng đ n 0 thì đ a ch c ng c s cho 8255 là ế ơ
1000H. Do v y ta có:
1000H là PA; 1001H PB; 1002H PC 1003H thanh ghi đi u khi n.
b) T đi u khi n cho tr ng h p y là 10010000 hay 90H. ườ
c)
MOV A, #90H ; PAđ u vào, PB là đ u ra, PC là đ u ra
MOV DPTR, #1003H ; N p đ a ch c ng c a thanh ghi đi u
khi n
MOVX @DPTR, A ; Xu t t đi u khi n
MOV DPTR, #1000H ; Đ a ch PA
MOVX A, @DPTR ; Nh n d li u t PA
INC DPTR ; Đ a ch PB
MOVX @DPTR, A ; G i d li u ra PB
INC DPTR ; Đ a ch PC
MOVX @DPTR, A ; G i d li u ra PC
8051
AD7
P0.0
P0.7
ALE
P3.7
P3.6
RD
74LS373
G
OC
QD
D0
D7
A0
A1
D0
AD0
A15
A0
A1
8255
WR
CS
WR
D7
RD
P2.7
PA
PB
PC
RE
A12