Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier. |
Home Experimente I/O-Bausteine Experimente mit Z80-PIO Tastatur mit 16 Tasten | |||
Siehe auch: Z80-PIO (Z8420) | |||
|
|||
Experiment: Ansteuerung einer Tastatur mit 16 Tasten
Das folgende Experiment soll ein Verfahren zur Ansteuerung einer Tastatur zeigen. Dazu wird eine Tastatur aus 16 Aus-/Ein-Tastern aufgebaut. Die Tasten werden quadratisch in Reihen zu je vier Elementen angeordnet und die entstandene Tastenmatrix wird mit insgesamt acht Leitungen an die PIO angeschlossen. Die PIO wird nun so programmiert, dass vier Leitungen (in diesem Beispiel die horizontalen Leitungen) als Eingänge geschaltet sind und die anderen vier als Ausgänge.
Das Abtasten der Tastenmatrix geschieht nun in der Weise, dass von den Ausgangsleitungen jeweils eine auf HIGH gelegt wird und alle Eingangsleitungen gelesen werden. Sind eine oder mehrere Tasten, die mit der gerade aktiven Ausgangsleitung verbunden sind, gedrückt, so spiegelt sich dies in den Bits des Eingangsmusters wider. Nach der Ansteuerung aller Ausgangsleitungen hat man ein Abbild aller gedrückten Tasten in Form einer Bitmap. Nachdem das unten aufgeführte Steuerprogramm die Schnittstelle entsprechend initialisiert hat, läuft es in einer Endlosschleife, in der zuerst die Tastatur entsprechend dem eben beschriebenen Verfahren abgetastet wird und dann die Bitmap (Variable INPAT) zu einer 16-Bit-Variablen zusammengefasst und als Zahl am Display ausgegeben wird. Ist keine Taste gedrückt, so zeigt die Anzeige den Wert null an. ;=================================================== ;------ Experiment: Tastaturabfrage ---------------- ;=================================================== ; .GLOBAL PIOKEY PIOKEY: LD A,0CFH ;Modus 3 OUT (PIOAC),A LD A,00001111B ;Eingang: Bit 0-3 OUT (PIOAC),A ;Ausgang: Bit 4-7 LD A,00000111B ;keine Interrupts OUT (PIOAC),A ; $2 LD B,4 ;4 Leitungen scannen LD A,10H LD (OUTPAT),A ;Scanmuster ausgeben LD HL,INPAT ;Zeiger auf Bit-Feld $1: LD A,(OUTPAT) ;1 Leitung aktivieren OUT (PIOAD),A ADD A,A ;nächste Leitung LD (OUTPAT),A IN A,(PIOAD) ;Rückmeldung lesen AND 0FH LD (HL),A ;und speichern in INC HL ; Bit-Feld DJNZ $1 ; LD DE,INPAT ;Auswertung LD HL,0 LD B,4 $3: ADD HL,HL ;Bits in HL setzen ADD HL,HL ADD HL,HL ADD HL,HL LD A,(DE) OR L LD L,A INC DE DJNZ $3 CALL DSPHL ;Ergebnis anzeigen LD HL,10000 CALL DELAY JR $2 RET ; .DATA OUTPAT DEFB 0 ;Ausgangsmuster INPAT DEFB 0,0,0,0 ;Eingangsmuster .CODE
|
|||
Home Experimente I/O-Bausteine Experimente mit Z80-PIO Tastatur mit 16 Tasten |