Vous êtes sur la page 1sur 11

Interface parallèle programmable

INTEL 8255
I ) Introduction :
 3 ports d’E/S
 3 modes :
 Mode 0
 Mode 1
 Mode 2

Remarque :
Le port C est divisé en deux port C haut et port C bas
Le schéma bloque du 8255A est donné par la figure suivante :
 /CS : Sélection du 8255A par les décodeurs d’adresse.
 Sélection des ports par A0 et A1
:
II) Programmation du 8255

On peut programmer le 8255A selon trois modes :

 Mode 0 : Entrée/sortie de base.


 Mode 1 : Entrée sortie échantillonnée.
 Mode 2 : Bus bidirectionnel.

Le format ainsi que le choix des modes se fait à partir du mot de contrôle suivant :
Mode 0 :

 16 combinaisons possibles :

Le programme s’écrit :

MOV AL, ??H ; Mot de commande


MOV DX , @registre de commande
OUT DX, AL ; envoi du mot vers le registre de commande
Remarque :
Les bits du port C peuvent être mis à 1 ou à 0 individuellement, lorsque le bit 7 du mot
de commande est égal à 0 . Le mot de commande devient alors :

Pour mettre à 1 le PC3 par exemple le mot de commande est : 00000111


Pour mettre à 0 le PC3 par exemple le mot de commande est : 00000110
Exemple d'application en mode 0 :
On donne le schéma de la figure 1,
 on veut écrire un programme qui permet de faire clignoter les Leds. Jusqu'à l'appui sur
SW0.
 On veut écrire un programme qui affiche sur deux 7 segments les nombres sur deux
digits décimaux contenus dans une table.
 On veut écrire un programme qui permet de faire clignoter les diodes paires si on
appuie sur SW0 et les diodes impaires si on appuie sur SW1

On suppose que les adresses des ports est comme suit :


Port A : 300H
Port B : 302H
Port C : 304H
Registre de commande : 306H
Programme:
Donnee SEGMENT
PortA EQU 300H
PortC EQU 304H
Reg_com EQU 306H
Mot_com EQU 81H
Masque_SW0 EQU 01H
Diode_allume EQU 0FH
Diode_eteinte EQU 00H
Donnee ENDS
Code SEGMENT
Assume CS :code , DS :donnee
Prog Proc
MOV AX,donnee
MOV DS,AX
MOV AL,Mot_com ; configurer les ports en sorties
OUT Reg_com,AL
Debut:
MOV AL, Diode_allume ; D3D2D1D0 = FH led allumé
OUT PortA, AL
CALL Tempo ; temporisation
MOV AL, Diode_eteinte ; D3D2D1D0 = 0H led etainte
OUT PortA, AL
CALL Tempo ; temporisation
IN AL, PortC ; Lecture du portC
AND AL, 01H ; verifier s'il a appui sur SW0
CMP AL, 01H
JNZ Debut
MOV AH, 4CH
INT 21H
Prog endp
Tempo Proc Near
MOV CX,7FFFH ; Effectuer une temporisation
Temp1: PUSh CX ; avec deux boucles imbriqués
MOV CX,7FFFH
Temp2:
NOP
NOP
NOP
NOP
LOOP Temp2
POP CX
LOOP Temp1
RET
Tempo ENDP
RET Code
ends
End prog

Vous aimerez peut-être aussi