Vous êtes sur la page 1sur 42

Dcodeur d adresses Bus d adresses

Unit
centrale

Entres/Sorties ROM

(CPU)

RAM

(I/O)

Bus de contrle Bus de donnes

Bus d adresses Priphriques


Unit Bus de contrle
Clavier

Bus d adresses (CPU) Bus de donnes

centrale

Entres/Sorties ROM RAM (I/O)

Entres/Sorties Ecran
Imprimante (I/O)

Moteur

Bus de contrle

Souris Camra

Bus de donnes Traceur


Lecteur code barre

STRUCTURE SIMPLIFIEE DU PIA 6821 ( cot A )


CS0/ CS1/ CS2 = 7 0

CRA
1 2 3 4
Vers cot B

RS1/ RS0 =

& &

DDRA ORA
0

D0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7
Vers cot

PA7

A rception d'un RESET.....


CS0/ CS1/ CS2 = 7 0

CRA
1 2 3 4
Vers cot B

RS1/ RS0 =

& &

RESET
7 0

DDRA ORA
0

D0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7
Vers cot

PA7

Tous les registres sont mis ZERO


CS0/ CS1/ CS2 = 7
0 0 0 0 0 0 0

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

RESET
7
0 0 0 0 0 0 0

0
0

DDRA
PA0
PERIPHERIQUE

ORA
D0 0
0 0 0

BUS DE DONNEES MICROPROS.


D7
Vers cot

0 0 0 0

PA7

Les interruptions sont masques et les ports sont en entre


CS0/ CS1/ CS2 = 7
0 0 0 0 0 0 0

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

RESET
7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x
Vers cot

PA7

Les interruptions sont masques et les ports sont en entre


CS0/ CS1/ CS2 = 7
0 0 0 0 0 0 0

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

RESET
7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 =

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 =

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

il faut changer le0 contenu du 0 registre DDR . 0 0 Peut on l'adresser directement ? 0


7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 =

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

0 Oui, aprs un reset le bit 2 du CR 0 0 est 0 0 0

7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 =

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

0 Oui, aprs un reset le bit 2 du CR 0 0 est 0 0 0

7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 =

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

0 Il suffit d'envoyer l'adresse 0 0 permettant d'accder au DDRA 0 0

7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

0 Il suffit d'envoyer l'adresse 0 0 permettant d'accder au DDRA 0 0

7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

0 Il suffit d'envoyer l'adresse 0 0 permettant d'accder au DDRA 0 0

7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

0 Il suffit d'envoyer l'adresse 0 0 permettant d'accder au DDRA 0 0

7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x

0 Quelle valeur devons nous crire 0 dans le DDRA pour rpondre la 0 0 question ? 0

7
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

0FH
7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

0FH
7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
x

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

x x x x x x
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

0FH
7
0 0 0 0 0 0 0

0
0

DDRA
x x x x x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

0FH
7
0 0 0 0 1 1 1

0
1

DDRA
x x x x x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

0FH
7
0 0 0 0 1 1 1

0
1

DDRA
x x x x x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

0FH
7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0

ORA
D0
1

0 0 0 0 0 0 0

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

Dans quel registre doit on 0 0 0 mettre les 0 1 1 1 1 DDRA valeurs que PA0 0 0 nous voulons 0 sortir ? 0
x x x x

PERIPHERIQUE

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

Le registre ORA
7
0 0 0 0 1 1 1

0
1

DDRA
PERIPHERIQUE

ORA
D0
1

0 0 0 0 0 0 0

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA0 Que faut il faire 0 pour pouvoir0 le 0 remplir ? 0


x x x x

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0

ORA
D0
1

0 0 0 0 0 0 0

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

Il faut mettre 1 dans le bit02 du 0 0 CRA pour 0 1 1 1 1 DDRA PA0 pouvoir accder 0 0 au registre de 0 0 sortie ORA
x x x x

PERIPHERIQUE

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 =

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

Pour adresser le CRA il faut :


7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 =

0
0

CRA

RS1/ RS0 =

1 2 3 4
Vers cot B

& &

Pour adresser le CRA il faut : RS1/RS0 =01 0 7


0 0 0 0 1 1 1 1

DDRA
0 0 0 0 x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 01

1 2 3 4
Vers cot B

& &

Pour adresser le CRA il faut : RS0/RS1 =01 0 7


0 0 0 0 1 1 1 1

DDRA
0 0 0 0 x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 01

1 2 3 4
Vers cot B

& &

Pour adresser le CRA il faut : RS0/RS1 =01 0 7


0 0 0 0 1 1 1 1

DDRA
0 0 0 0 x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 0 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 01

1 2 3 4
Vers cot B

& &

Et nous devons le remplir avec quelle valeur ?


7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
1

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 1 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 01

1 2 3 4
Vers cot B

& &

la valeur 04H
7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
0

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 01

1 2 3 4
Vers cot B

& &

Et ensuite ?
7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
0

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 01

1 2 3 4
Vers cot B

& &

7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
0

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 01

1 2 3 4
Vers cot B

& &

7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
0

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
0

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 1 1 1

0
1

DDRA
0 0 0 0 x x x x

ORA
D0
0

0 0 0 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 1 1 1

0
1

DDRA
0 1 1 0 x x x x

ORA
D0
0

0 1 1 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

A-t'on rpondu la question ?


7
0 0 0 0 1 1 1

0
1

DDRA
0 1 1 0 x x x x

ORA
D0
0

0 1 1 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

En lecture quelle valeur avons nous dans les bits D0 ... D7 ?


7
0 0 0 0 1 1 1

0
1

DDRA
0 1 1 0 x x x x

ORA
D0
0

0 1 1 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 0 0 0 0
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

1 2 3 4
Vers cot B

& &

7
0 0 0 0 1 1 1

0
1

DDRA
0 1 1 0 x x x x

ORA
D0
0

0 1 1 0 0 0 0

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 x x x x
Vers cot

PA7

Nous voulons :

PA0 ...PA3 en SORTIE, PA4...PA7 en ENTREE sortir la valeur 6H


7
0 0 0 0 0 1 0

CS0/ CS1/ CS2 = 110

0
0

CRA

RS1/ RS0 = 00

D0

7 vous savez presque ORA tout sur le 0


Vers cot B

1 2 3 4

Maintenant
& &

0
1 1 1 1

DDRA
0 1 1 0 x x x x

0 1

PA0
PERIPHERIQUE

BUS DE DONNEES MICROPROS.


D7

1 0 x x x x
Vers cot

PIA 6821 !
0 0 0 0

PA7