Retro-ingénerie d'une carte Z80 : partie 6 - PIOs en entrée
Bonsoir amis Maker,
Ce fût décidément un Week-end bien productif avec un double article sur les PIOs de ma carte Z80.
Après "Retro-ingenierie d'une carte Z80 : partie 5 - test des PIOs", j'ai décidé -cette fois- de tester le PIO (Parallèle IO, Z0842004PSC) en entrée.
Tester les PIO en entrée |
Tester les PIO en entrée |
La rétro-ingénierie de la carte CPU nous a appris que la plupart des entrées/sorties des modules PIO sont disponibles sur le connecteur P1. C'est pour cela que j'y ai branché un bouton poussoir avec une résistance pull-up.
Cette fois, j'utilise le port B (7ieme broche) du PIO1 pour y brancher une bouton poussoir.
- SI le bouton est relâché ALORS la broche p1.PB7 est HIGH
- SI le bouton est enfoncé ALORS la broche p1.PB7 est LOW (puisque raccordée directement à la masse)
L'adressage du PIO et le fichier io.asm se fait de la même façon que dans le dernier article.
Code assembleur pour PIO en entrée
Le programme 04_pio_read.asm effectue l'opération de lecture pour activer/désactiver la LED D7 de la carte RCIO en fonction de l'état de l'entrée p1.PB7.
Voici le code assembleur commenté:
include 'io.asm' org 0x0000 ; Redemarrage a froid du Z80. ld a, $00 ; Eteindre toutes LEDs sur carte d'extension out (RCIO_OUTPUT), a main: ld a,$4F ; fixer mode 1 (input/entrée) out (PIO1_BASE+PIO_PORTB+PIO_CMD),a read_portb: in a,(PIO1_BASE+PIO_PORTB+PIO_DATA) ; lecture portB du PIO1 bit 7,a ; Bit 7 actif dans reg. a ? donc PB7 jp z,input_is_zero ld a, $01 ; Allumer LED D0 jp set_user_led input_is_zero: ld a, $00 ; Eteindre LED D0 set_user_led: out (RCIO_OUTPUT),a ; Appliquer etat LED D0 jp read_portb ; Nouvelle Lecture
Ressource
- Mes premiers programmes assembleur
Sur la carte Z80. Sélection du programme d'assemblage, Makefile, transfert sur EEprom. - Les sources assembleurs (GitHub MCHobby)
kicad-public-projects/HASKEL-Z80/Z80-ASM/test/ - Schéma des cartes Z80 (GitHub MCHobby)
kicad-public-projects/HASKEL-Z80/
Manuels Z80-PIO
Faites une recherche Google autour des termes suivants:
- z80 pio technical manual (36 pages)
- z80 pio user=s manual (22 pages)
Écrire un commentaire