⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reg96.inc

📁 万能汇编工具
💻 INC
📖 第 1 页 / 共 2 页
字号:
		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 + -