Tải bản đầy đủ (.pdf) (22 trang)

Tài liệu Học nhanh về điều khiển pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (292.74 KB, 22 trang )


3 Thiết kế – ứng dụng
3.1 Giao tiếp với PPI8255
3.1.1 Giới thiệu PPI8255
- PPI: programmable peripheral interface – giao tiếp
ngoại vi lập trình được.
- Dùng 8255 để mở rộng I/O. Từng port có thể được
lập trình là input hay output một cách linh hoạt bằng
phần mềm (so sánh với việc thiết kế I/O port dùng
74LS244 và 74LS373 ở chương 1 → input hay
output được thiết kế “cứng”, cố đònh).
- Các chân:
D0÷D7: bus dữ liệu 2 chiều.
PA0÷PA7: port A.
PB0÷PB7: port B.
PC0÷PC7: port C.
/RD: Read. (Nối với /RD (P3.7) của 8051.)
/WR: Write. (Nối với /WR của 8051.)
RESET: khởi động lại 8255. (Thường được nối với mạch reset của 8051 hoặc GND.
/CS: chọn chip.)
A0, A1: đòa chỉ port. (Nối với bus đòa chỉ.)

/CS A1 A0 Mô tả
0 0 0 Port A
0 0 1 Port B
0 1 0 Port C
0 1 1 Từ điều khiển (control word)
1
× ×
8255 không được chọn


- Thanh ghi điều khiển:
o Hoạt động I/O (D7 = 1)




D6 D5 D4 D2D3 D1
PC
L
0: output
1: input
PB
0: output
1: input
Mode
0: mode 0
1: mode 1
PC
H
0: output
1: input
PA
0: output
1: input
Mode
00: mode 0
01: mode 1
1X: mode 2
D01






Nhóm A Nhóm B


1
Ghi chú: PC
H
= PC7÷PC4, PC
L
= PC3÷PC0.
o Hoạt động BSR – Bit set/reset (D7 = 0):






D2D3 D1
Bit
set/reset
0: reset
1: se
t
D0 XX X0
Chọn bit ở port C
- Hoạt động I/O cơ bản có 3 mode:
o Mode 0: I/O đơn giản.

o Mode 1: I/O có bắt tay.
o Mode 2: bus 2 chiều.

3.1.2 Thiết kế - Giao tiếp

2
Thieát keá 1
+5V
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5

D6
D7
A14
A15
A9
A8
A11
A10
A13
A12
A0
A1
A2
A3
A4
A5
A6
A7
A0
A1
A13
A14
A15
U6
8255
34
33
32
31
30

29
28
27
5
36
9
8
35
6
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13

12
11
10
D0
D1
D2
D3
D4
D5
D6
D7
RD
WR
A0
A1
RESET
CS
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4

PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
J4
1
2
3
4
5
6
7
8
J3
1
2
3
4
5
6
7
8
J2

1
2
3
4
5
6
7
8
U1
AT89C51
9 18
19
29
30
31
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27

28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST XTAL2
XTAL1
PSEN
ALE/PROG
EA/VPP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
U3
74LS373
3
4
7
8

13
14
17
18
111
2
5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
OCG
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

U2
74LS138
1
2
3
6
4
5
15
14
13
12
11
10
9
7
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7


Ñòa chæ 8255 (base addr.): 4000h (16 bit)
PA (base + 00h): 4000h
PB (base + 01h): 4001h
PC (base + 02h): 4002h
Control word (base + 03h): 4003h

Thieát keá 2

+5V
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3

D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A0
A1
A6
A7
A5
U2
74LS138
1
2
3
6
4
5
15
14
13
12
11

10
9
7
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
U6
8255
34
33
32
31
30
29
28
27
5
36
9

8
35
6
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
D0
D1
D2

D3
D4
D5
D6
D7
RD
WR
A0
A1
RESET
CS
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2

PC3
PC4
PC5
PC6
PC7
J4
1
2
3
4
5
6
7
8
J3
1
2
3
4
5
6
7
8
J2
1
2
3
4
5
6

7
8
U1
AT89C51
9 18
19
29
30
31
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14

15
16
17
39
38
37
36
35
34
33
32
RST XTAL2
XTAL1
PSEN
ALE/PROG
EA/VPP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13

P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
U3
74LS373
3
4
7
8
13
14
17
18
111
2

5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
OCG
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

Ñòa chæ 8255 (base addr.): 40h (8 bit)
PA (base + 00h): 40h
PB (base + 01h): 41h
PC (base + 02h): 42h
Control word (base + 03h): 43h




3
VD1: Khởi động 8255:
PA xuất, PB xuất, PC xuất → Từ điều khiển: 80h
PA xuất, PB nhập, PC xuất → Từ điều khiển: 82h
PA xuất, PB nhập, PC nhập → Từ điều khiển: 8Bh

VD2: Viết chương trình.
- Khởi động 8255: PA xuất, PB nhập, PC nhập.
- Liên tục đọc dữ liệu từ Port 1 của 8951, xuất dữ liệu đó ra 8255.

Chương trình cho sơ đồ ‘Thiết kế 1’:
ORG 0
MOV DPTR,#4003h ; tu+` ddie^`u khie^?n
MOV A, #8Bh ; PA: output, PB: input, PC: input
MOVX @DPTR, A
MOV P1, #0FFh ; P1 (8951): input
AGAIN: MOV DPTR,#4000h ; Port A
MOV A, P1
MOVX @DPTR,A
SJMP AGAIN

Chương trình cho sơ đồ ‘Thiết kế 2’:
ORG 0
MOV R0,#43h ; tu+` ddie^`u khie^?n
MOV A, #8Bh ; PA: output, PB: input, PC: input
MOVX @R0, A
MOV P1, #0FFh ; P1 (8951): input

AGAIN: MOV R0,#40h ; Port A
MOV A, P1
MOVX @R0,A
SJMP AGAIN


4
3.2 Giao tieỏp vụựi LED 7 ủoaùn

ẹoaùn: p g f e d c b a


Bit: D7 D6 D5 D4 D3 D2 D1 D0


p
g
f
e
d
c
b
a

Hieồn thũ Anod chung Cathode chung
0 C0h 3Fh
1 F9h 06h
2 A4h 5Bh
3 B0h 4Fh
4 99h 66h

5 92h 6Dh
6 82h 7Dh
7 F8h 07h
8 80h 7Fh
9 98h 67h
A 88h 77h
B C6h 39h
C 86h 79h
D 8Eh 71h
E 82h 70h
F 89h 76h
. 7Fh 80h
[traộng] FFh 00h



5
Quét LED
aa
p
g
e
p
f
e
c
f
bbb
p
g

a
b
c
f
d
c
p
f
d
c
g
a
ee
d
g
d
LED3
+5V
7
6
4
2
1
9
10
8
3
5
A
B

C
D
E
F
G
A1
A2
P
LED1
7
6
4
2
1
9
10
8
3
5
A
B
C
D
E
F
G
A1
A2
P
LED2

7
6
4
2
1
9
10
8
3
5
A
B
C
D
E
F
G
A1
A2
P
U1
AT89C51
9
18
19 29
30
31
1
2
3

4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST

XTAL2
XTAL1 PSEN
ALE/PROG
EA/VPP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1

P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
R1
10K
R2
10K
R4 470x8
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
R3
10K
Q1
A1015
Q2
A1015
Q3
A1015

VD: Hiển thò ‘123’ lên LED 7 đoạn.
; a,b,c,d,e,f,g -> Port 2

; P3.0 -> LED1
; P3.1 -> LED2
; P3.1 -> LED3
ORG 0H
MOV P3,#0FFh ; ta('t ta^'t ca? ca'c LED

BEGIN: MOV P2,#0B0h ; xua^'t ra P2 ma~ cu?a '3'
CLR P3.0 ; ba^.t LED1
ACALL DELAY ; delay
SETB P3.0 ; ta('t LED1

MOV P2,#0A4h ; xua^'t ra P2 ma~ cu?a '2'
CLR P3.1 ; ba^.t LED2
ACALL DELAY ; delay
SETB P3.1 ; ta('t LED2

MOV P2,#0F9h ; xua^'t ra P2 ma~ cu?a '1'
CLR P3.2 ; ba^.t LED3
ACALL DELAY ; delay
SETB P3.2 ; ta('t LED3
SJMP BEGIN

DELAY: MOV R1,#10
MOV R0,#0FFh
LOOP: DJNZ R0,LOOP
DJNZ R1,LOOP
RET
END
VD: Đếm xung ở ngõ vào T0 (P3.4) → hiển thò trò đếm lên LED 7 đoạn
; Que't LED

; a,b,c,d,e,f,g -> Port 2
; P3.0 -> LED1
; P3.1 -> LED2
; P3.2 -> LED3
; P3.4(T0) -> Button
; 40h: ha`ng do+n vi.
; 41h: ha`ng chu.c
; 42h: ha`ng tra(m
ORG 0H
MOV DPTR,#LED7SEG ; DPTR tro? dde^'n ba?ng ma~ LED

6
MOV TMOD,#06h ; counter 0, mode 2
MOV TH0,#0
SETB P3.0 ; ta('t ta^'t ca? ca'c LED
SETB P3.1
SETB P3.2
SETB P3.4 ; P3.4: input
SETB TR0 ; cho phe'p counter 0 cha.y
BEGIN: MOV A,TL0
LCALL BIN2BCD
; tra ba?ng, ddo^?i BCD -> LED 7 ddoa.n
MOV A,40h
MOVC A,@A+DPTR
MOV 40h,A
MOV A,41h
MOVC A,@A+DPTR
MOV 41h,A
MOV A,42h
MOVC A,@A+DPTR

MOV 42h,A
LCALL DISPLAY
SJMP BEGIN
DISPLAY:
MOV P2,40H ; LED1
CLR P3.0 ; ba^.t LED1 sa'ng
ACALL DELAY ; delay
SETB P3.0 ; ta('t LED1

MOV P2,41H ; LED2
CLR P3.1 ; ba^.t LED2 sa'ng
ACALL DELAY ; delay
SETB P3.1 ; ta('t LED2

MOV P2,42H ; LED 3
CLR P3.2 ; ba^.t LED3 sa'ng
ACALL DELAY ; delay
SETB P3.2 ; ta('t LED3
RET

BIN2BCD:
MOV B,#10 ; B=10
DIV AB ; chia cho 10
MOV 40h,B ; lu+u digit tha^'p
MOV B,#10 ;
DIV AB ; chia cho 10
MOV 41h,B ; lu+u digit tie^'p theo va`o 41h
MOV 42h,A ; lu+u digit cuo^'i va`o 42h
RET
; su+?a cho SV

DELAY: PUSH 7
PUSH 6
MOV R7,#10
LP2: MOV R6,#0FFh
LP1: DJNZ R6,LP1
DJNZ R7,LP2
POP 6
POP 7
RET
LED7SEG:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H
DB 88H,0C6H,86H,8EH,82H,89H
END

7
Thieát keá 3 port xuaát ra LED
Ñòa chæ (8-bit): LED1: A0h
LED2: C0h
LED3: E0h
VD: Xuaát ra LED 7 ñoaïn ‘123’
ORG 0
MOV R0,#0A0h ; LED1
MOVX @R0,#0B0h
MOV R0,#0C0h ; LED2
MOVX @R0,#0A4h
MOV R0,#0E0h ; LED3
MOVX @R0,#0F9h
SJMP $
+5V
+5V

A7
A6
A5
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
D0
D1
D2

D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
LED2
7
6
4
2
1
9
10
8

3
5
A
B
C
D
E
F
G
A1
A2
P
LED3
7
6
4
2
1
9
10
8
3
5
A
B
C
D
E
F
G

A1
A2
P
LED1
7
6
4
2
1
9
10
8
3
5
A
B
C
D
E
F
G
A1
A2
P
U1
AT89C51
9
18
19
29

30
31
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36

35
34
33
32
RST
XTAL2
XTAL1
PSEN
ALE/PROG
EA/VPP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1

P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
U5 74LS138
1
2
3
6
4
5
15
14
13
12
11
10
9
7
A
B
C

G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
U6
74LS373
3
4
7
8
13
14
17
18
111
2
5
6
9
12
15
16
19

D0
D1
D2
D3
D4
D5
D6
D7
OCG
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
7402
R4
470x8
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
U2 74LS373
3

4
7
8
13
14
17
18
1 11
2
5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
OC G
Q0
Q1
Q2
Q3
Q4

Q5
Q6
Q7
U4 74LS373
3
4
7
8
13
14
17
18
1 11
2
5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
OC G

Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
U3 74LS373
3
4
7
8
13
14
17
18
1 11
2
5
6
9
12
15
16
19
D0
D1
D2
D3

D4
D5
D6
D7
OC G
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
R6
470x8
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
R5
470x8
1 16
2 15
3 14
4 13
5 12

6 11
7 10
8 9



8

×