Professional Documents
Culture Documents
15 - Ghep Noi 8255
15 - Ghep Noi 8255
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
D7
D0
8
2
5
5
RD
WR
A0
A1
CS
PA
PB
PC
RESET
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
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
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
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.
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
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
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
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
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
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
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
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
COM
COM
+5V
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
0855
PA0
LCD
D0
VCC
VEE
PA1
A7
VSS
RS R/W E
10K
POT
PB0
PB1
PB2
RESET
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
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
MOVX
NOP
NOP
MOV
MOVX
RET
@R0, A
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
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
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
A, 00001001B
R1, #CNTPORT
@R1, A
DELAY
A, #00001000B
@R1, A
DELAY
D0
D7
WR
RD
A2
A7
Decoding
Circuyiry
A0
A7
8255
WR
RD
A0
A7
PC4
CS
; 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
Port A with
Hanshake Signals
ACALL
SJMP
Port A Output
WR
OBF
INTEB
ACK
Output
13
14
25
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)