dect
/
asl
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asl/include/stddef18.inc

263 lines
10 KiB
PHP

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