Ch ng VII : CÁC CHIP B TRươ
§1. chip PPI 8255
( programmable periphenal interface )
( giao di n ngo i vi l p trình đ c ) ượ
data
bus
buffer
read/write
control
logic
group A
Control Port A
(8)
Port C
upper
(4)
Port C
lower
(4)
Port B
(8)
I/O
PA7-PA0
I/O
PC7-PC4
I/O
PC3-PC0
I/O
PB7-PB0
PPI-8225
D0-D7
8bit Internal bus
RD
WR
A1
A0
RESET
CS
Group
B
Control
L a ch n các c ng đ c ch n b i A ượ 0, A1 nh sau :ư
Đ a ch A1A0C ng
$300 $c sơ 0 0 A
$301 $c s + 1ơ 0 1 B
$302 $c s + 2ơ 1 0 C
$303 $c s + 3ơ 1 1
Ki m soát
thanh ghi
đi u khi n
8255 có m ch đ m s li u 2 chi u : D 0 -D7 ;
các tín hi u đi u khi n : ghi , đ c, reset ; CS ; -> đi u khi n b ng
ph n m m
Thanh ghi đi u khi n c a 8255 :
m c 1 : c ng s làm l i vào
m c 0 : c ng s làm l i ra
D7 D6 D5 D4 D3 D2 D1 D0
PORT C LOWER
PORT B
MODE SELECT OF GROUP B
PORT C UPPER
PORT A
FLAG
MODE SELECT OF GROUP A
D0 : C ng C (n a th p ) - 0: ra ; 1 : vào
D1 : C ng B - 0 : ra 1 : vào
D2 : ch n ch đ ế 1: mode 1
0: mode 0 (mode c a nhóm B)
D3 : c ng C (n a cao) 1: vào
0: ra
D4 : C ng A : 1 vào
0 ra
D5 , D6 : Ch n ch đ ế 0 0 : mode 0
0 1 : mode 1 --> mode c a nhóm A
1 1 : mode 2
1 0 : mode 2
D7: Xác l p c ng 1: xác l p c ng port[A] := data out
0: xóa các bit data in := port[B]
Có 3 mode ho t đ ng:
+ mode 0: vào ra thông th ng, s li u t CPU ra s đ c ch t , t cườ ượ
s li u t CPU ra s đ c gi l i trong 8255 cho đ n khi ượ ế
chuy n mode s li u vào không ch t (thay đ i theo giá tr t c th i
c a I/O )
+ mode 1 : d li u ch đ c gi l i 8255 m t kho ng th i gian ượ
ng n (c vào ra ); sau đó ph i đ c Strobe (ch t )vào 1 ch t ượ
ngoài n u c n l u l i . ế ư
C ng A, B : th ng dùng đ trao đ i s li u ườ
C ng C th ng dùng đ đi u khi n cho c ng A và B . ườ
+ Mode 2 h at đ ng 2 chi u (vào ra) ch đ c dùng cho c ng A. Còn ượ
c ng B mode 0 (vào) ; mode 1 (ra ). C ng C làm tín hi u đi u khi n
cho A và B
Ví d
1 0 0 1 0 0 0 0
picture
D7: m c 1 : ch ra r ng thanh ghi đi u khi n đang đ c s d ng ượ
( đ c phép ghi l i ) ượ
D2 ,D5, D6, m c 0 : cho bi t t t c các c ng đ c s d ng mode 0 ế ượ
D4 : m c 1 c ng A là c ng vào
D3D1 D0 m c 0 c ng B và C (cao và th p ) đ c dùng làm c ng ra -> ựơ
bi u di n trong h nh phân (hexa) 90(h)
Câu l nh : port[$303]:=90h ;
S đ chân ơ c a PPI 8255 : 40 chân
chân ch c năng
34 – 27 D0 -D7: databus
4 – 1 PA0 – PA3 port A
40 -37 PA4 – PA7 port A
18 – 25 PB0 – PB7port B
14 – 27 PC0 -PC3port C lower
13 – 10 PC4 PC7port C upper
35 reset ser all port to input
6 CS Chip select
5 RD Read input
36 WR Write input
9,8 A0, A1Port address select
26 Vcc + 5volt power in
7 GND 0 volt power in
2. Giao di n vào ra 24 bit trên slot PC s d ng 8255
Đ c đi m : ghép n i 8255 o slot PC r t đ n gi n, không c n các ơ
kh i logic ph ; các tín hi u đ c n i tr c ti p t I/O -> 8255 -> slot ượ ế
s đ nh hình bênơ ư
1 40
20 21
D0
D1
D2
D3
D4
D5
D6
D7
2
3
4
5
6
7
8
9
A1
A2
A3
A4
A5
A6
A7
A8
DIR
B1
B2
B3
B4
B5
B6
B7
B8
G
18
17
16
15
14
13
12
11
19
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
RD
WR
RESET
CS
A0
A1
FOR
FOW
RESET
AEN
A2
A3
A4
A5
A6
A7
A8
A9
1
2
4
6
8
11
13
15
17
G
P0
P1
P2
P3
P4
P5
P6
P7
19
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
P=R
3
5
7
9
12
14
16
18
PORT A
PORT B
PORT C
+
10K
74HC688
74HC425 8255
3. Ví d đo n ch ng trình ngu n Assembly đ s d ng 8255 ươ
DATA SEGMENT
ORG 100H
CTRLR EQU 0FFFFH ; Control register address
INIT EQU 80H ; Control word
PA EQU 0FFF8H ; Port A Address
DATA 1 EQU AAH ; 1/ pattern
DATA END 3
CODE SEGMENT
ASSUME CS :CODE, DE : DATA
MOV AL,INIT ; LOAD CONTROL WORD
MOV DX,CTRLR ; LOAD CONTROL REGISTER
ADDRESS
OUT DX,AL ; OUTPUT CONTROL WORD
MOV AL,DATA 1 ; LOAD 1/0 PATTERN
MOV DX,PA ; LOAD PORT A ADDRESS
OUT DX,AL ; OUTPUT DATA
CODE END S
END
gi i thích : data segment : đo n s li u xác đ nh các giá tr s đ c ượ
dùng đ kh i phát và đi u khi n m ch 8255 A
0FFFH là đ a ch b n đ c a thanh ghi đi u khi n
0FFF8H là đ a ch c ng A.
80H là dùng đ kh i đ u c các c ng v i vai trò là c ng ra và h at
đ ng mode 0
(80H b ng 10000000)
d li u đ c đ a ra là tr s AAH (10101010) ượ ư
Đo n b t đ u b ng đ ng tác chuy n tr s kh i đ u 80H vào
thanh ghi DX; l nh OUT đ a tr s kh i đ u vào DX đ a ch c a ư
thanh ghi đi u khi n 8255; sau đó chuy n s li u vào AL; đ a ch
c ng A vào DX -> các bit s li u g i cho c ng A; 8255 đ c kh i ượ
phát vào c ng A là c ng ra công tác mode 0.
§2. Chip PIT 8253 / 54
m l p trình đ c) ế ượ
(programable interval timer / counter) PIT8254
Vi m ch 8253 ng d ng r t nhi u nh b đ m xung, đ m t n ư ế ế
s phát tín hi u đ ng h l p trình đ c, đi u khi n ánh sáng, đi u ượ
khi n môt ..... ơ
c u t o : 3 b đ m lùi 16bit đ c l p v i nhau, kh năng l p ế
trình, th ho t đ ng trong ch đ đ m nh phân ho c đ n ế ế ế
BCD
S đ kh i và s đ chânơ ơ