aboutsummaryrefslogtreecommitdiffstats
path: root/include/stddef18.inc
diff options
context:
space:
mode:
Diffstat (limited to 'include/stddef18.inc')
-rw-r--r--include/stddef18.inc262
1 files changed, 262 insertions, 0 deletions
diff --git a/include/stddef18.inc b/include/stddef18.inc
new file mode 100644
index 0000000..672c76a
--- /dev/null
+++ b/include/stddef18.inc
@@ -0,0 +1,262 @@
+ save
+ listing off ; kein Listing über diesen File
+
+;****************************************************************************
+;* *
+;* AS 1.40 - Datei STDDEF18.INC *
+;* *
+;* Sinn : enthält die SFR-Definitionen für die PIC 16C8x-Familie *
+;* Die Makrodefinitionen kann man bei Bedarf aus STDDEF16.INC *
+;* kopieren *
+;* *
+;* letzte Änderungen : 14.11.1993 *
+;* 27. 2.1993 PIC16C64-Register *
+;* IND0-->INDF umbenannt *
+;* *
+;****************************************************************************
+
+ ifndef stddef18inc ; verhindert Mehrfacheinbindung
+
+stddef18inc equ 1
+
+ if (MOMCPU<93316)&&(MOMCPU<>93284)
+ fatal "Falscher Prozessortyp eingestellt: nur 16C84 oder 16C64 erlaubt"
+ endif
+
+ if MOMPASS=1
+ message "PIC16C8x-Definitionen (C) 1993 Alfred Arnold"
+ message "binde \{MOMCPU}-Register ein"
+ endif
+
+;----------------------------------------------------------------------------
+; erstmal die Spezialregister :
+
+INDF SFR 0 ; indirekte Adressierung
+PCL SFR 2 ; PC Bits 0..7
+PCLATH SFR 10 ; obere Hälfte Programmzähler
+Status SFR 3 ; Status-Register
+FSR SFR 4 ; File-Select-Register
+OPTION SFR $81 ; Chipkonfiguration
+ if MOMCPU=$16C64
+PCON SFR $8e
+ endif
+
+;----------------------------------------------------------------------------
+; Ports
+
+PortA SFR 5 ; Datenregister Port A
+TrisA SFR $85 ; Datenrichtungsregister Port A
+PortB SFR 6 ; Datenregister Port C
+TrisB SFR $86 ; Datenrichtungsregister Port B
+ if MOMCPU=$16C64
+PortC SFR 7 ; Datenregister Port C
+TrisC SFR $87 ; Datenrichtungsregister Port C
+PortD SFR 8 ; Datenregister Port D
+TrisD SFR $88 ; Datenrichtungsregister Port D
+PortE SFR 9 ; Datenregister Port E
+TrisE SFR $89 ; Datenrichtungsregister Port E
+ endif
+
+;----------------------------------------------------------------------------
+; Timer
+
+ if MOMCPU=$16C64
+TMR0 SFR 1 ; Zähler 0
+TMR1L SFR 14 ; Zähler 1
+TMR1H SFR 15
+TMR2 SFR 17 ; Zähler 2
+CCPR1L SFR $15 ; Vergleichs/Pulsweitenregister
+CCPR1H SFR $16
+T1CON SFR 16 ; Steuerung Zähler 1
+T2CON SFR 18 ; Steuerung Zähler 2
+PR2 SFR $92 ; Periode Zähler 2
+CCP1CON SFR $17 ; Modus Vergleicher
+ elseif
+RTCC SFR 1 ; Zähler
+ endif
+
+;----------------------------------------------------------------------------
+; serielle Schnittstelle
+
+ if MOMCPU=$16C64
+SSPBuf SFR $13 ; serielles Datenregister
+SSPCon SFR $14 ; Konfiguration
+SSPAD0 SFR $93 ; I2C-Adreßregister
+SSPSTAT SFR $94 ; Schnittstellenstatus
+ endif
+
+;----------------------------------------------------------------------------
+; EEPROM
+
+ if MOMCPU=$16C84
+EEData SFR 8 ; EEPROM Datenregister
+EEAdr SFR 9 ; EEPROM Adreßregister
+EECON1 SFR $88 ; Konfiguration EEPROM
+EECON2 SFR $89
+ endif
+
+;----------------------------------------------------------------------------
+; Interrupts
+
+INTCON SFR 11 ; Interruptsteuerung
+ if MOMCPU=$16C64
+PIR SFR 12 ; Interrupts aufgetreten ?
+PIE SFR $8c ; Interruptfreigabe
+ endif
+
+;============================================================================
+; Bits im Statusregister
+
+Flag_C EQU 0 ; Carry
+Flag_DC EQU 1 ; Digit-Carry
+Flag_Z EQU 2 ; Zero
+Flag_PD EQU 3 ; Aufgewacht aus SLEEP-Befehl ?
+Flag_TO EQU 4 ; Durch Watchdog zurückgesetzt ?
+Flag_RP0 EQU 5 ; Registerbank Bit 8
+ if MOMCPU=$16C84
+Flag_RP1 EQU 6 ; Registerbank Bit 9
+Flag_IRP EQU 7 ; Registerbnak Bit 9 (indirekt)
+ endif
+
+;----------------------------------------------------------------------------
+; Bits in TrisE
+
+ if MOMCPU=$16C64
+TRISE0 EQU 0 ; Datenrichtung RE0
+TRISE1 EQU 1 ; Datenrichtung RE1
+TRISE2 EQU 2 ; Datenrichtung RE2
+PSPMODE EQU 4 ; Modus Port D&E
+IBOV EQU 5 ; Überlauf Eingabepuffer
+OBF EQU 6 ; Ausgabepuffer voll
+IBF EQU 7 ; Eingabepuffer voll
+ endif
+
+;----------------------------------------------------------------------------
+; Bits in T1CON
+
+ if MOMCPU=$16C64
+TMR1ON EQU 0 ; Timer 1 starten
+TMR1CS EQU 1 ; Timer 1 mit internem/externem Takt
+T1INSYNC EQU 2 ; Timer 1 extern synchronisieren
+T1OSCEN EQU 3 ; Oszillator Timer 1 freigeben
+T1CKPS0 EQU 4 ; Vorteilerwahl Timer 1
+T1CKPS1 EQU 5
+ endif
+
+; Bits in T2CON
+
+ if MOMCPU=$16C64
+T2CKPS0 EQU 0 ; Vorteilerwahl Timer 2
+T2CKPS1 EQU 1
+TMR2ON EQU 2 ; Timer 2 ein/ausschalten
+TOUTPS0 EQU 3 ; Nachteilerwahl Timer 2
+TOUTPS1 EQU 4
+TOUTPS2 EQU 5
+TOUTPS3 EQU 7
+ endif
+
+; Bits in CCP1CON
+
+ if MOMCPU=$16C64
+CCP1M0 EQU 0 ; Modus CCP1
+CCP1M1 EQU 1
+CCP1M2 EQU 2
+CCP1M3 EQU 3
+CCP1Y EQU 4 ; PWM Bits 0,1
+CCP1X EQU 5
+ endif
+
+;----------------------------------------------------------------------------
+; Bits in SSPSTAT
+
+ if MOMCPU=$16C64
+BF EQU 0 ; Puffer voll ?
+UA EQU 1 ; neue Adresse muß in SSPADD geschrieben werden
+RW EQU 2 ; I2C lesen/schreiben ?
+S EQU 3 ; Startbit gefunden ?
+P EQU 4 ; Stopbit gefunden
+DA EQU 5 ; I2C Datum/Adresse empfangen ?
+ endif
+
+; Bits in SSPCON
+
+ if MOMCPU=$16C64
+SSPM0 EQU 0 ; Schnittstellenmodus
+SSPM1 EQU 1
+SSPM2 EQU 2
+SSPM3 EQU 3
+CKP EQU 4 ; Taktpolarität
+SSPEN EQU 5 ; Portfreigabe
+SSPOV EQU 6 ; Empfägerüberlauf
+WCOL EQU 7 ; Senderkollision
+ endif
+
+;----------------------------------------------------------------------------
+; Bits in INTCON
+
+RBIF EQU 0 ; auf 1, falls Pegelwechsel an PB4..7
+INTF EQU 1 ; Interrupt aufgetreten
+RTIF EQU 2 ; RTCC-Interrupt
+RBIE EQU 3 ; Interrupts durch Bit 0 freigeben
+INTE EQU 4 ; Interrupts durch Bit 1 freigeben
+RTIE EQU 5 ; Interrupts durch Bit 2 freigeben
+ if MOMCPU=$16C84
+EEIE EQU 6 ; Interrupts vom EEPROM freigeben
+ elseif
+PEIE EQU 6 ; Peripherie-Interrupts freigeben
+ endif
+GIE EQU 7 ; globale Interruptsperre
+
+; Bits in PIE1
+
+ if MOMCPU=$16C64
+TMR1IE EQU 0 ; Interrupts Timer 1 freigeben
+TMR2IE EQU 1 ; Interrupts Timer 2 freigeben
+CCP1IE EQU 2 ; Interrupts CCP1 freigeben
+SSPIE EQU 3 ; Interrupts serielle Schnittstelle freigeben
+PSPIE EQU 7 ; Interrupts Parallelport freigeben
+ endif
+
+; Bits in PIR1
+
+ if MOMCPU=$16C64
+TMR1IF EQU 0 ; Interrupt Timer 1 aufgetreten
+TMR2IF EQU 1 ; Interrupt Timer 2 aufgetreten
+CCP1IF EQU 2 ; Interrupt CCP1 aufgetreten
+SSPIF EQU 3 ; Interrupt serielle Schnittstelle aufgetreten
+PSPIF EQU 7 ; Interrupt Parallelport aufgetreten
+ endif
+
+;----------------------------------------------------------------------------
+; Bits in OPTION
+
+PS0 EQU 0 ; Einstellung Vorteiler
+PS1 EQU 1
+PS2 EQU 2
+PSA EQU 3 ; Vorteile-Zuordnung
+RTE EQU 4 ; Triggerflanke RTCC
+RTS EQU 5 ; RTCC-Signalquelle
+INTEDG EQU 6 ; INT-Triggerflanke
+RBPU EQU 7 ; Pull-Ups an Port B freigeben
+
+;Bits in PCON
+
+ if MOMCPU=$16C64
+POR EQU 1 ; 0=Power-On-Reset aufgetreten
+ endif
+
+;----------------------------------------------------------------------------
+; Bits in EECON1
+
+ if MOMCPU=$16C84
+RD EQU 0 ; Lesezyklus starten
+WR EQU 1 ; Schreibzyklus starten
+WREN EQU 2 ; Schreibsperre
+WRERR EQU 3 ; Schreibvorgang abgebrochen
+EEIF EQU 4 ; signalisiert Schreibende
+ endif
+
+ endif
+
+ restore ; wieder erlauben
+