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