📄 reg96.inc
字号:
save
listing off ; kein Listing 乥er diesen File
;****************************************************************************
;* *
;* AS 1.41 - Datei REG96.INC *
;* *
;* Sinn : enth刲t Makro-, SFR- und Adre醖efinitionen f乺 die *
;* MCS-96-Prozessoren *
;* OK, der Name f刲lt aus dem Rahmen, aber STDDEF96.INC war schon *
;* belegt... *
;* *
;* letzte 巒derungen : 20. 2.1994 *
;* 28. 6.1994 80196 (KR) hinzugef乬t *
;* 9. 3.1997 80196N(T), 80296 hinzugef乬t *
;* *
;****************************************************************************
ifndef reg96inc ; verhindert Mehrfacheinbindung
reg96inc equ 1
if (MOMCPUNAME<>"8096")&&(MOMCPUNAME<>"80196")
fatal "Falscher Prozessortyp eingestellt: nur 8096, 80196, 80196N oder 80299 erlaubt!"
endif
if MOMPASS=1
message "MCS-96-SFR-Definitionen (C) 1994 Alfred Arnold"
message "binde \{MOMCPU}-SFRs ein"
endif
;----------------------------------------------------------------------------
; CPU-Register:
R0 equ 0 ; Nullregister
ZERO_REG equ R0
ONES_REG equ 2 ; nur Einsen
SP equ 18h ; Stackpointer
if MOMCPU>=80196h
WSR equ 14h ; RAM-Window in Registerbank
if MOMCPU>=80296h
WSR1 equ 15h ; RAM-Window in untere H刲fte Registerbank
endif
endif
if MOMCPU>=80296h ; Signalprozessorregister
ACC_00 equ 000ch ; Akkumulator
ACC_02 equ 000eh
ACC_04 equ 0006h
ACC_STAT equ 000bh
ICB0 equ 1fc3h ; Indexregister
ICB1 equ 1fc7h
ICX0 equ 0010h
ICX1 equ 0016h
IDX0 equ 1fc0h
IDX1 equ 1fc4h
RPT_CNT equ 0004h ; Z刪lregister
endif
;----------------------------------------------------------------------------
; SFRs:
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; A/D-Wandler
switch MOMCPUNAME
case "80296" ; Warnung unterdr乧ken
case "80196N"
AD_RESULT equ 1faah ; Ergebnis Wandlung (wortweise lesbar)
AD_COMMAND equ 1fach ; Steuerung AD-Wandler
AD_TEST equ 1faeh ; Justage
AD_TIME equ 1fafh ; Wandlungsgeschwindigkeit
case "80196"
AD_Result equ 1faah ; Ergebnis Wandlung (wortweise lesbar)
AD_Command equ 1fach ; Steuerung AD-Wandler
AD_Test equ 1faeh ; Justage
AD_Time equ 1fafh ; Wandlungsgeschwindigkeit
case "8096"
AD_Command equ 2 ; A/D-Wandler Steuerregister
AD_Result_Lo equ 2 ; Ergebnis A/D-Wandler
AD_Result_Hi equ 3 ; NUR byteweise lesen!!
endcase
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; HSI/HSO/EPA
switch MOMCPUNAME
case "80296"
EPA_MASK equ 1f9ch ; Interruptmasken
EPA_PEND equ 1f9eh ; Interruptanzeigen
__CNT set 0
rept 4
EPA{"\{__CNT}"}_CON equ 1f60h+(__CNT*4) ; Steuerung Vergleicher/Fangeinheiten
EPA{"\{__CNT}"}_TIME equ 1f62h+(__CNT*4) ; Zeitpunkt " "
__CNT set __CNT+1
endm
case "80196N"
COMP0_CON equ 1f88h ; Steuerung Vergleicher 0
COMP0_TIME equ 1f8ah ; Zeitpunkt Vergleicher 0
COMP1_CON equ 1f8ch ; dito
COMP1_CON equ 1f8eh
EPA_MASK equ 1fa0h ; Interruptmasken
EPA_MASK1 equ 1fa4h
EPA_PEND equ 1fa2h ; Interruptanzeigen
EPA_PEND1 equ 1fa6h
__CNT set 0
rept 10
EPA{"\{__CNT}"}_CON equ 1f60h+(__CNT*4) ; Steuerung Vergleicher/Fangeinheiten
EPA{"\{__CNT}"}_TIME equ 1f62h+(__CNT*4) ; Zeitpunkt " "
__CNT set __CNT+1
endm
EPAIPV equ 1fa8h ; Interrupt-Priorit則
case "80196"
EPA_Mask equ 1fa0h ; (w) EPA Interruptfreigabe 4..9, 0..1, overrun 0..9/0/1
EPA_Mask1 equ 1fa4h
EPA_Pend equ 1fa2h ; (w) EPA Interrupt aufgetreten 4..9, 0..1, overrun 0..9/0/1
EPA_Pend1 equ 1fa6h
EPAIpv equ 1fa8h ; Priorit則 EPA-Interrupt
EPA_Control0 equ 1f60h ; Steuerung Capture/Compare Kanal 0..9
EPA_Time0 equ 1f62h ; (w) gespeicherter Zeitpunkt Kanal 0..9
EPA_Control1 equ 1f64h
EPA_Time1 equ 1f66h
EPA_Control2 equ 1f68h
EPA_Time2 equ 1f6ah
EPA_Control3 equ 1f6ch
EPA_Time3 equ 1f6eh
EPA_Control4 equ 1f70h
EPA_Time4 equ 1f72h
EPA_Control5 equ 1f74h
EPA_Time5 equ 1f76h
EPA_Control6 equ 1f78h
EPA_Time6 equ 1f7ah
EPA_Control7 equ 1f7ch
EPA_Time7 equ 1f7eh
EPA_Control8 equ 1f80h
EPA_Time8 equ 1f82h
EPA_Control9 equ 1f84h
EPA_Time9 equ 1f86h
Comp_Control0 equ 1f88h ; Steuerung Compare-Kanal 0..1
Comp_Time0 equ 1f8ah ; Vergleichswert Compare-Kanal 0..1
Comp_Control1 equ 1f8ch
Comp_Time1 equ 1f8eh
case "8096"
HSI_Time equ 4 ; HSI Triggerzeitpunkt (nur Wort)
HSI_Mode equ 3 ; HSI Modusregister
HSI_Status equ 6 ; HSI Statusregister
HSO_Time equ 4 ; HSO Zeiteinstellung (nur Wort)
HSO_Command equ 6 ; HSO Steuerregister
endcase
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; serielles
switch MOMCPUNAME
case "80296"
SP_CON equ 1fbbh ; Steuerung SIO
SP_BAUD equ 1fbch ; (w) Baudrate SIO
SP_STATUS equ 1fb9h ; Status SIO
SBUF_RX equ 1fb8h ; Empfangsdaten
SBUF_TX equ 1fbah ; Sendedaten
case "80196N"
SP_CON equ 1fbbh ; Steuerung SIO
SP_BAUD equ 1fbch ; (w) Baudrate SIO
SP_STATUS equ 1fb9h ; Status SIO
SBUF_RX equ 1fb8h ; Empfangsdaten
SBUF_TX equ 1fbah ; Sendedaten
SSIO_BAUD equ 1fb4h ; Baudrate SSIO
SSIO0_BUF equ 1fb0h ; Datenregister SSIO0
SSIO1_BUF equ 1fb2h ; Datenregister SSIO1
SSIO0_CON equ 1fb1h ; Modus SSIO0
SSIO1_CON equ 1fb3h ; Modus SSIO1
case "80196"
SSIO_StB0 equ 1fb0h ; Datenpuffer SSIO Kanal 0
SSIO_StCr0 equ 1fb1h ; Steuerung Sender/Empf刵ger SSIO Kanal 0
SSIO_StB1 equ 1fb2h ; Datenpuffer SSIO Kanal 1
SSIO_StCr1 equ 1fb3h ; Steuerung Sender/Empf刵ger SSIO Kanal 1
SSIO_Baud equ 1fb4h ; Baudrate SSIO
SBuf_RX equ 1fb8h ; Empfangsdaten
SP_Stat equ 1fb9h ; Zustand SIO
SBuf_TX equ 1fbah ; Sendedaten
SP_Con equ 1fbbh ; Steuerung SIO
SP_Baud equ 1fbch ; (w) Baudrate SIO
case "8096"
SBUF equ 7 ; UART Datenregister
SPStat equ 11h ; UART Statusregister
SPCon equ 11h ; UART Steuerregister
Baud_Reg equ 0eh ; UART Datenrate
endcase
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Interruptsteuerung
switch MOMCPUNAME
case "80296"
INT_MASK equ 08h ; Interruptmasken
INT_MASK1 equ 13h
INT_PEND equ 09h ; Interruptanzeigen
INT_PEND1 equ 12h
EXTINT_CON equ 1fcch ; Flankenwahl externe Interrupts
IN_PROG0 equ 1fc8h ; Interruptbearbeitung l剈ft
IN_PROG1 equ 1fcah
INT_CON0 equ 1fe8h ; Priorit則sfestlegung
INT_CON1 equ 1feah
INT_CON2 equ 1fech
INT_CON3 equ 1feeh
NMI_PEND equ 1fc9h ; NMI angefordert ?
VECT_ADDR equ 1ff0h ; Vektorbasis
case "80196N"
INT_MASK equ 08h ; Interruptmasken
INT_MASK1 equ 13h
INT_PEND equ 09h ; Interruptanzeigen
INT_PEND1 equ 12h
PTSSRV equ 06h ; (w) PTS-Interrupt bedient
PTSSEL equ 04h ; (w) Quellen PTS freigeben
case "80196"
Int_Mask_Lo equ 08h ; Interruptfreigabe
Int_Mask_Hi equ 13h
Int_Pend_Lo equ 09h ; wartende Interrupts
Int_Pend_Hi equ 12h
PTS_Srv equ 06h ; w PTS-Interrupt bedient
PTS_Select equ 04h ; w Quellen PTS freigeben
case "8096"
INT_Mask equ 8 ; Interruptfreigabe
INT_Pending equ 9 ; Interrupts aufgetreten ?
endcase
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Timer
Watchdog equ 0ah ; Watchdog zur乧ksetzen
switch MOMCPUNAME
case "80296"
CON_REG0 equ 1fb6h ; Steuerung PWM
PWM0_CONTROL equ 1fb0h ; Einschaltdauer PWM0
PWM1_CONTROL equ 1fb2h
PWM2_CONTROL equ 1fb4h
T1CONTROL equ 1f90h ; Steuerung Timer 1
TIMER1 equ 1f92h ; (w) Daten Timer 1
T2CONTROL equ 1f94h ; Steuerung Timer 2
TIMER22 equ 1f96h ; (w) Daten Timer 2
case "80196N"
T1CONTROL equ 1f98h ; Steuerung Timer 1
TIMER1 equ 1f9ah ; (w) Daten Timer 1
T2CONTROL equ 1f9ch ; Steuerung Timer 2
TIMER22 equ 1f9eh ; (w) Daten Timer 2
case "80196"
Timer1_Control equ 1f98h ; Steuerung Timer 1
Timer1 equ 1f9ah ; (w) Daten Timer 1
Timer2_Control equ 1f9ch ; Steuerung Timer 2
Timer2 equ 1f9eh ; (w) Daten Timer 2
case "8096"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -