Professional Documents
Culture Documents
CS-430
Lecture 10
8088/8086 Microprocessor I/O Interfacing
From 8088
OUT 63H , AL RESET
8255 PPI
𝑫𝟕 − 𝑫𝟎
HERE: IN AL , 60H 𝑹𝑫
𝑷𝑨𝟎
. Switch
AND AL , 01H .
RESET .
OUT 61H , AL 𝑾𝑹 𝑷𝑨𝟕
𝑹𝑫 𝑷𝑩𝟎 LED
JMP HERE 𝑨𝟏 − 𝑨𝟎 𝑾𝑹
.
.
𝑷𝑩𝟕
𝑨𝟏 𝑨𝟎 Selection ഥ𝟐
𝑨
𝑨𝟏 .
𝑷𝑪𝟎
0 0 Port A ഥ𝟑
𝑨 𝑨𝟎 .
ഥ𝟒 .
0 1 Port B 𝑨
𝑨𝟓 .
𝑪𝑬
1 0 Port C 𝑨𝟔
𝑷𝑪𝟕
1 1 Command Register ഥ𝟕
𝑨
7 6 5 4 3 2 1 0
05H
0 X X X 0 1 0 1
7 6 5 4 3 2 1 0
0AH
0 X X X 1 0 1 0
Code:
𝑰𝑵𝑻𝑬
𝑰𝑵𝑻𝑹
𝑰𝑩𝑭
• 𝐼𝑁𝑇𝐸 (Interrupt Enable) – neither input nor output. It is an internal bit programmed via specific bit
positions of port C.
𝑃𝐶4 (𝑓𝑜𝑟 𝑃𝑜𝑟𝑡 𝐴) , 𝑃𝐶2 (𝑓𝑜𝑟 𝑃𝑜𝑟𝑡 𝐵)
• 𝐼𝑁𝑇𝐸 (Interrupt Enable) - neither input nor output. It is an internal bit programmed via specific bit
positions of port C.
𝑃𝐶6 (𝑓𝑜𝑟 𝑃𝑜𝑟𝑡 𝐴) , 𝑃𝐶2 (𝑓𝑜𝑟 𝑃𝑜𝑟𝑡 𝐵)
From 8088
RESET
8255 PPI
𝑫𝟕 − 𝑫𝟎
𝑷𝑨𝟎
𝑹𝑫 .
Input
. device
𝑾𝑹
RESET .
𝑷𝑨𝟕
𝑹𝑫 𝑷𝑩𝟎
𝑨𝟏 − 𝑨𝟎 𝑾𝑹
.
Output
. device
𝑷𝑩𝟕
ഥ𝟐
𝑨
𝑨𝟏 .
𝑷𝑪𝟎
ഥ𝟑
𝑨 𝑨𝟎 .
ഥ𝟒
𝑨 .
𝑨𝟓 .
𝑪𝑬 𝑷𝑪𝟕
𝑨𝟔
Fall Semester 2020 ഥ𝟕
𝑨 8
Programming 8255 PPI – Mode 1 Operation
.DATA 76543210
BIT5 EQU 20H AL : x x 0 x x x x x
PORTC EQU 42H BIT5 : 0 0 1 0 0 0 0 0 8255 PPI
PORTA EQU 40H Ans : 0 0 0 0 0 0 0 0 ;
ZF = 1
.CODE Input
𝑷𝑨𝟕 − 𝑷𝑨𝟎
READ PROC NEAR device
IN AL , PORTC 76543210
TEST AL , BIT5 AL : x x 1 x x x x x
𝑰𝑵𝑻𝑬𝑨 𝑷𝑪𝟒 𝑺𝑻𝑩
BIT5 : 0 0 1 0 0 0 0 0
JZ READ Ans : 0 0 1 0 0 0 0 0 ; 𝑰𝑩𝑭
IN AL, PORTA ZF = 0 𝑷𝑪𝟓
RET
READ ENDP
𝑷𝑪𝟑 𝑰𝑵𝑻𝑹
JZ WRITE BIT1 : 0 0 0 0 0 0 1 0
𝑷𝑪𝟏
𝑶𝑩𝑭
MOV AL , AH Ans : 0 0 0 0 0 0 1 0 ;
ZF = 0
OUT PORTB , AL
RET
WRITE ENDP 𝑷𝑪𝟎 𝑰𝑵𝑻𝑹
𝑰𝑵𝑻𝑬𝟏
𝑶𝑩𝑭
𝑰𝑵𝑻𝑹
𝑰𝑵𝑻𝑬𝟐
𝑰𝑩𝑭
From 8088
RESET
8255 PPI
𝑫𝟕 − 𝑫𝟎
𝑷𝑨𝟎
𝑹𝑫 . Input/
. Output
device
𝑾𝑹
RESET .
𝑷𝑨𝟕
𝑹𝑫 𝑷𝑩𝟎
𝑨𝟏 − 𝑨𝟎 𝑾𝑹
.
Output
. device
𝑷𝑩𝟕
ഥ𝟐
𝑨
𝑨𝟏 .
𝑷𝑪𝟎
ഥ𝟑
𝑨 𝑨𝟎 .
ഥ𝟒
𝑨 .
𝑨𝟓 .
𝑪𝑬 𝑷𝑪𝟕
𝑨𝟔
Fall Semester 2020 ഥ𝟕
𝑨 12
Programming 8255 PPI – Mode 2 Operation
.DATA 76543210 8255 PPI
BIT5 EQU 20H AL : x x 0 x x x x x Input/
BIT7 EQU 80H BIT5 : 0 0 1 0 0 0 0 0 Output
PORTC EQU 42H Ans : 0 0 0 0 0 0 0 0 ; 𝑷𝑨𝟕 − 𝑷𝑨𝟎 device
ZF = 1
PORTA EQU 40H
.CODE 76543210 𝑨𝑪𝑲
READ PROC NEAR AL : x x 1 x x x x x
𝑰𝑵𝑻𝑬𝟏 𝑷𝑪𝟔
IN AL , PORTC BIT5 : 0 0 1 0 0 0 0 0 𝑶𝑩𝑭
TEST AL , BIT5 Ans : 0 0 1 0 0 0 0 0 ; 𝑷𝑪𝟕
JZ READ ZF = 0
IN AL , PORTA
RET 𝑷𝑪𝟑
RET BIT7 : 1 0 0 0 0 0 0 0
𝑷𝑪𝟒 𝑺𝑻𝑩
WRITE ENDP Ans : 1 0 0 0 0 0 0 0 ;
ZF = 0 𝑰𝑵𝑻𝑬𝟐
• Clock input for each of the three counters 𝐶𝐿𝐾0 , 𝐶𝐿𝐾1 and 𝐶𝐿𝐾2 .
• Gate input for each of the three counters 𝐺𝐴𝑇𝐸0 , 𝐺𝐴𝑇𝐸1 and𝐺𝐴𝑇𝐸2 .
• Out output for each of the three counters 𝑂𝑈𝑇0 , 𝑂𝑈𝑇1 and 𝑂𝑈𝑇2 .
• Read/write control 𝑅𝐷 , 𝑊𝑅
• Chip Select 𝐶𝑆
• VCC , GND
Fall Semester 2020
Architecture of 8254A PIT
• Data bus buffer and read/write control logic
represent the microprocessor interface.
• Control word register contains three 8-bit
registers used to configure the operation of
counters 0 ,1 and 2.
Definition of Control:
M - mode
SC – Select Counter
𝑆𝐶1 𝑆𝐶0 Function 𝑀2 𝑀1 𝑀0 Function
From 8088
Code: 𝑹𝑫 8254
𝑫𝟕 − 𝑫𝟎
MOV AL , 36H 𝑪𝑳𝑲𝟎
𝑾𝑹 𝑮𝒂𝒕𝒆𝟎
OUT 43H , AL ; Initialized C#0 𝑹𝑫 𝑶𝑼𝑻𝟎
MOV AL , 0F0H 𝑾𝑹
𝑪𝑳𝑲𝟏
OUT 40H , AL ; LSB of count is written 𝑨𝟏 − 𝑨𝟎 𝑮𝒂𝒕𝒆𝟏
From 8088
IN AL , 40H 𝑹𝑫 8254
MOV DL , AL ; LSB of count in DL 𝑫𝟕 − 𝑫𝟎
𝑪𝑳𝑲𝟎
IN AL , 40H 𝑾𝑹 𝑮𝒂𝒕𝒆𝟎
𝑹𝑫 𝑶𝑼𝑻𝟎
MOV DH , AL ; MSB of count in DH 𝑾𝑹
𝑪𝑳𝑲𝟏
𝑨𝟏 − 𝑨𝟎 𝑮𝒂𝒕𝒆𝟏
𝑶𝑼𝑻𝟏
ഥ𝟐 𝑨𝟏
𝑨
ഥ𝟑
𝑨 𝑨𝟎
𝑪𝑳𝑲𝟐
ഥ𝟒
𝑨
𝑮𝒂𝒕𝒆𝟐
𝑨𝟓
𝑪𝑺 𝑶𝑼𝑻𝟐
𝑨𝟔
ഥ𝟕
𝑨
Code:
𝑆𝐶1 𝑆𝐶0 𝐶𝑂𝑈𝑁𝑇 𝑆𝑇𝐴𝑇𝑈𝑆 𝐶𝑁𝑇 2 𝐶𝑁𝑇 1 𝐶𝑁𝑇 0 0
MOV AL , 0DCH 1 1 0 1 1 1 0 0
OUT 43H , AL ; Read-Back Command written DCH
IN AL , 41H
From 8088
𝑫𝟕 − 𝑫𝟎
𝑹𝑫 8254
MOV DL , AL ; LSB of counter 1’s count in DL
𝑫𝟕 − 𝑫𝟎
𝑪𝑳𝑲𝟎
IN AL , 41H 𝑾𝑹 𝑮𝒂𝒕𝒆𝟎
MOV DH , AL ; MSB of counter 1’s count in DH 𝑹𝑫 𝑶𝑼𝑻𝟎
IN AL , 42H 𝑾𝑹
𝑪𝑳𝑲𝟏
MOV BL , AL ; LSB of counter 2’s count in BL 𝑨𝟏 − 𝑨𝟎 𝑮𝒂𝒕𝒆𝟏
IN AL , 42H 𝑶𝑼𝑻𝟏
Code:
𝑆𝐶1 𝑆𝐶0 𝐶𝑂𝑈𝑁𝑇 𝑆𝑇𝐴𝑇𝑈𝑆 𝐶𝑁𝑇 2 𝐶𝑁𝑇 1 𝐶𝑁𝑇 0 0
MOV AL , 0EEH 1 1 1 0 1 1 1 0
EEH
OUT 43H , AL ; Read-Back Command written
From 8088
𝑫𝟕 − 𝑫𝟎
IN AL , 40H 𝑹𝑫 8254
MOV DL , AL ; Status of Counter 0 in DL 𝑫𝟕 − 𝑫𝟎
𝑪𝑳𝑲𝟎
𝑾𝑹 𝑮𝒂𝒕𝒆𝟎
IN AL , 41H 𝑹𝑫 𝑶𝑼𝑻𝟎
MOV CL , AL ; Status of Counter 1 in CL 𝑾𝑹
𝑪𝑳𝑲𝟏
IN AL , 42H 𝑨𝟏 − 𝑨𝟎 𝑮𝒂𝒕𝒆𝟏
ഥ𝟐 𝑨𝟏
𝑨
ഥ𝟑
𝑨 𝑨𝟎
𝑪𝑳𝑲𝟐
ഥ𝟒
𝑨
𝑮𝒂𝒕𝒆𝟐
𝑨𝟓
𝑪𝑺 𝑶𝑼𝑻𝟐
𝑨𝟔
Fall Semester 2020 ഥ𝟕
𝑨 22
Summary
• Programming 8255 PPI
• Mode 0
• Mode 1
• Mode 2
• 8254A Programable Interval Timer
• Block Diagram and Architecture of 8254
• Programming of 8254