
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ườ ố ệ ừ ẽ ượ ố ứ
là s li u t CPU ra s đ c gi l i trong 8255 cho đ n khi nóố ệ ừ ẽ ượ ữ ạ ế
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 và 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 và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 mã 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 là đ 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 có ng d ng r t nhi u nh là 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ấ ạ : có 3 b đ m lùi 16bit đ c l p v i nhau, có kh năng l pộ ế ộ ậ ớ ả ậ
trình, nó có th ho t đ ng trong ch đ đ m nh phân ho c đ nể ạ ộ ế ộ ế ị ặ ế
BCD
S đ kh i và s đ chânơ ồ ố ơ ồ

