006
23.01.2015, 06:47 Uhr
PIC18F2550
|
Moin Bert,
KPIA_INTV ist schon einer der ersten freien FREx_INTV.
Hab es mal wegen der Verwechslungsgefahr mit den Modulbezeichnungen versucht.
Quellcode: | ;******************************************************************************* ;* ;* Keybord parallelinterface ;* ;* (c)2015 by PIC18F2550 ;* ;******************************************************************************* CPU z80
;******************************************************************************* ; Hartware deffinition M001 M001_CTC0_DATA EQU 00h M001_CTC1_DATA EQU 01h M001_CTC2_CTRL EQU 02h M001_CTC3_CTRL EQU 03h M001_PIOA_DATA EQU 04h M001_PIOB_DATA EQU 05h M001_PIOA_CTRL EQU 06h M001_PIOB_CTRL EQU 07h
;******************************************************************************* ; INT-Vector Tabelle ab 01D4H bis 01EEH (16Bit) X000_FRE0_INTV EQU 01D4H ; Frei für Anwender-Interrupttabellen X000_FRE1_INTV EQU 01D6H ; Frei für Anwender-Interrupttabellen X000_FRE2_INTV EQU 01D8H ; Frei für Anwender-Interrupttabellen X000_FRE3_INTV EQU 01DAH ; Frei für Anwender-Interrupttabellen X000_FRE4_INTV EQU 01DCH ; Frei für Anwender-Interrupttabellen X000_FRE5_INTV EQU 01DEH ; Frei für Anwender-Interrupttabellen M001_PIOA_INTV EQU 01E0H ; Interrupt M001 PIO Kanal A - Tastatur M001_PIOB_INTV EQU 01E2H ; Interrupt M001 PIO Kanal B - Frei D001_PIOA_INTV EQU 01E4H ; Interrupt D001 PIO Kanal A - Kassetteneingabe D001_PIOB_INTV EQU 01E6H ; Interrupt D001 PIO Kanal B - Tastatur D001_CTC0_INTV EQU 01E8H ; Interrupt D001 CTC Kanal 0 - Frei D001_CTC1_INTV EQU 01EAH ; Interrupt D001 CTC Kanal 1 - Kassettenausgabe D001_CTC2_INTV EQU 01ECH ; Interrupt D001 CTC Kanal 2 - Tondauer D001_CTC3_INTV EQU 01EEH ; Interrupt D001 CTC Kanal 3 - Tastatur
;******************************************************************************* ; Start ORG 4000H M001_PIO_INIT: DI LD HL,M001_PIOA_INTV ; INT Vektoradr LD DE,M001_PIOA_INT LD (HL),E INC HL LD (HL),D LD HL,M001_PIOB_INTV ; INT Vektoradr LD DE,M001_PIOB_INT LD (HL),E INC HL LD (HL),D
;******************************************************************************* ; PIOA INI LD A,04FH ; MODE 1 (01xx1111) OUT (M001_PIOA_CTRL),A LD A,L OUT (M001_PIOA_CTRL),A ; INTERRUPT VEKTOR PIOA EI LD A,83H ; Interrupt enable PIOA OUT (M001_PIOA_CTRL),A
;******************************************************************************* ; PIOB INI ; frei RET
;******************************************************************************* ; PIOA INT Routine M001_PIOA_INT: DI PUSH AF IN A,(M001_PIOA_DATA) ;******************************************************************************* ; Außwertung SET 8,(IX+8) ; Neues Zeichen LD (IX+13),A POP AF EI RETI
;******************************************************************************* ; PIOA INT Routine M001_PIOB_INT: RETI
;******************************************************************************* ; Programm ende END |
-- 42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest" Aktuelle Projektdokumentationen |