4. VÝ 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 vµ thanh ghi ®iÒu khiÓn.
b) H·y lËp tr×nh 8255 cho c¸c cæng A, B vµ 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ë dµnh cho 8255 nh sau:
A1
5
A1
4
A1
3
A1
2
A1
1
A1
0
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
x 1 x x x x x x x x x x x X 0 0 =4000HPA
x 1 x x x x x x x x x x x X 0 1 =4000HPB
x 1 x x x x x x x x x x x X 1 0 =4000HPC
x 1 x x x x x x x x x x x X 1 1 =4000HCR
b) Byte (tõ) ®iÒu khiÓn cho tÊt c¶ c¸c cæng nh ®Çu ra lµ 80H nh ®îc tÝnh ë vÝ
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
H×nh 15.4: Nèi ghÐp 8051 víi 8255 cho vÝ dô 15.2.
8051
AD7
P0.0
P0.7
ALE
P3.7
P3.6
RD
74LS373
G
OC
QD
A0
A1
AD0
8255
WR
CS WR RDP2.7
PA
PB
PC
A1
D7 D0A0
D7
D0
A1
5. VÝ dô 15.3:
§èi víi h×nh 15.5:
a) T×m c¸c ®Þ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) T×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 lµ 0 th× ®Þa chØ cæng c¬ së cho 8255 lµ
1000H. Do vËy ta cã:
1000H lµ PA; 1001H lµ PB; 1002H lµ PC vµ 1003H lµ thanh ghi ®iÒu khiÓn.
b) Tõ ®iÒu khiÓn cho trêng hîp nµy lµ 10010000 hay 90H.
c)
MOV A, #90H ; PA lµ ®Ç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
H×nh 15.5: Nèi ghÐp 8051 tíi 8255 cho vÝ dô 15.3.
§èi víi vÝ dô 15.3 ta nªn dïng chØ lÖnh EQU cho ®Þa chØ c¸c cæng A, B, C
vµ thanh ghi ®iÒu khiÓn CNTPORT nh sau:
APORT EQU 1000H
BPORT EQU 1001H
CPORT EQU 1002H
CNTPORT EQU 1003H
MOV A, #90H ; PA lµ ®Çu vµo, PB lµ ®Çu ra, PC lµ ®Çu ra
MOV DPTR, #CNTPORT ; N¹p ®Þa chØ cña cæng thanh ghi ®iÒu khiÓn
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
RDP2.7
PA
PB
PC
RE
A12
6. MOVX @DPTR, A ; XuÊt tõ ®iÒu khiÓn
MOV DPTR, #CNTPORT ; §Þa chØ PA
MOVX DPTR, APORT ; NhËn d÷ liÖu PA
INC A, @DPTR ; §Þa chØ PB
MOVX DPTR ; Göi d÷ liÖu ra PB
INC DPTR ; §Þa chØ PC
MOVX DPTR, A ; Göi d÷ liÖu ra PC
hoÆc cã thÓ viÕt l¹i nh sau:
CONTRBYT EQU 90H X¸c ®Þnh PA ®Çu vµo, PB vµ PC ®Çu ra
BAS8255P EQU 1000H ; §Þa chØ c¬ së cña 8255
MOV A, #CONTRBYT
MOV DPTR, #BAS8255P+3 ; N¹p ®Þa chØ cæng C
MOVX @DPTR, A ; XuÊt tõ ®iÒu khiÓn
MOV DPTR, #BASS8255P ; §Þa chØ cæng A
...
§Ó ý trong vÝ dô 15.2 vµ 15.3 ta ®· sö dông thanh ghi DPTR v× ®Þa chØ c¬
së g¸n cho 8255 lµ 16 bit. NÕu ®Þa chØ c¬ së dµnh cho 8255 lµ 8 bit, ta cã thÓ sö
dông c¸c lÖnh “MOVX A, @R0” vµ “MOVX @R0, A” trong ®ã R0 (hoÆc R1)
gi÷ ®Þa chØ cæng 8 bit cña cæng. Xem vÝ dô 15.4, chó ý r»ng trong vÝ dô 15.4 ta sö
dông mét cæng l«gÝc ®¬n gi¶n ®Ó gi¶i m· ®Þa chØa cho 8255. §èi víi hÖ thèng cã
nhiÒu 8255 ta cã thÓ sö dông 74LS138 ®Ó gi¶i m· nh sÏ tr×nh bµy ë vÝ dô 15.5.
15.1.5 C¸c bÝ danh cña ®Þa chØ (Addren Alias).
Trong c¸c vÝ dô 15.4 vµ 15.4 ta gi¶i m· c¸c bÝt ®Þa chØ A0 - A7, tuy nhiªn
trong vÝ dô 15.3 vµ 15.2 ta ®· gi¶i m· mét phÇn c¸c ®Þa chØ cao cña A8 - A15.
ViÖc gi¶i m· tõng phÇn nµy dÉn ®Õn c¸i gäi lµ c¸c bÝ danh cña ®Þa chØ (Address
Aliases). Hay nãi c¸ch kh¸c, cïng cæng vËt lý gièng nhau cã c¸c ®Þa chØ kh¸c
nhau, do vËy cïng mét cæng mµ ®îc biÕt víi c¸c tªn kh¸c nhau. Trong vÝ dô
15.2 vµ 15.3 ta cã thÓ thay ®æi tèt x thµnh c¸c tæ hîp c¸c sè 1 vµ 0 kh¸c nhau
thµnh c¸c ®Þa chØ kh¸c nhau, song vÒ thùc chÊt chóng tham chiÕu ®Õn cïng mét
cæng vËt lý. Trong tµi liÖu thuyÕt minh phÇn cøng cña m×nh chóng ta cÇn ph¶i b¶o
®¶m ghi chó ®Çy ®ñ c¸c bÝ danh ®Þa chØa nÕu cã sao cho mäi ngêi dïng biÕt
®îc c¸c ®Þa chØ cã s½n ®Ó hä cã thÓ më réng hÖ thèng.
VÝ dô 15.4:
Cho h×nh 15.6:
a) H·y t×m c¸c ®Þa chØ cæng vµo/ ra ®îc g¸n cho c¸c cæng A, B, C vµ thanh ghi
®iÒu khiÓn.
b) T×m tõ ®iÒu khiÓn cho trêng hîp PA lµ ®Çu ra, PB lµ ®Çu vµo, PC - PC3 lµ ®Çu
vµo vµ CP4 - CP7 lµ ®Çu ra.
c) ViÕt mét ch¬ng tr×nh ®Ó nhËn d÷ liÖu tõ PB vµ göi nã ra PA. Ngoµi ra, d÷ liÖu
tõ PC1 ®îc göi ®Õn CPU.
Lêi gi¶i:
a) C¸c ®Þa chØ cæng ®îc t×m thÊy nh sau:
BB CS A1 A0 §Þa chØ Cæng
0010 00 0 0 20H Cæng A
0010 00 0 1 21H Cæng B
0010 00 1 0 22H Cæng C
0010 00 1 1 23H Thanh ghi ®iÒu khiÓn
b) Tõ ®iÒu khiÓn lµ 10000011 hay 83H.
7. c)
CONTRBYT EQU 83H ; PA lµ ®Çu ra, PB,PCL lµ ®Çu vµo
APORT EQU 20H
BPORT EQU 21H
CPORT EQU 22H
CNTPORT EQU 23H
...
MOV A, #CONTRBYT
MOV A, #CONTRBYT ; PA, PCU lµ ®Çu ra, PB vµ PCL lµ ®Çu vµo
MOV R0, #CNTPORT ; N¹p ®Þa chØ cña cæng thanh ghi ®iÒu khiÓn
MOVX @R0, A ; XuÊt tõ ®iÒu khiÓn
MOV R0, #BPORT ; N¹p ®Þa chØ PB
MOVX A, @R0 ; §äc PB
DEC R0 ; ChØ ®Õn PA (20H)
MOVX @R0, A ; Göi nã ®Õn PA
MOV R0, #CPORT ; N¹p ®Þa chØ PC
MOVX A, @R0 ; §äc PCL
ANL A, #0FH ; Che phÇn cao
SWAP A ; Trao ®æi phÇn cao vµ thÊp
MOVX @R0, A ; Göi ®Õn PCU
H×nh 15.6: Nèi ghÐp 8051 víi 8255 cho vÝ dô 15.4.
VÝ dô 15.5:
H·y t×m ®Þa chØ c¬ së cho 8255 trªn h×nh 15.7.
Lêi gi¶i:
GA B2G A2G C B A §Þa chØ
A7 A6 A5 A4 A3 A2 A1 A0
1 0 0 0 1 0 0 0 88H
8051
AD7
P0.0
P0.7
ALE
P3.7
P3.6
RD
74LS373
G
OC
QD
D0
D7
A0
A1
D0
AD0 A0
A1
8255
WR
CS
WR
D7
RD
PA
PB
PCL
RES
A2
A7
PCU