📄 regm16c.inc
字号:
TB1S equ TABSR<<3+6 ; Timer B1
TB2S equ TABSR<<3+7 ; Timer B2
CPSRF equ 0381h ; Vorteilerregister:
CPSR equ CPSRF<<3+7 ; Vorteiler zur乧ksetzen
ONSF equ 0382h ; Monoflop-Triggerbits
TA0OS equ ONSF<<3+0 ; Timer A0
TA1OS equ ONSF<<3+1 ; Timer A1
TA2OS equ ONSF<<3+2 ; Timer A2
TA3OS equ ONSF<<3+3 ; Timer A3
TA4OS equ ONSF<<3+4 ; Timer A4
TA0TGL equ ONSF<<3+6 ; Triggerwahl Timer A0
TA0TGH equ ONSF<<3+7
TRGSR equ 0383h ; Triggerwahlregister
TA1TGL equ TRGSR<<3+0 ; Triggerwahl Timer A1
TA1TGH equ TRGSR<<3+1
TA2TGL equ TRGSR<<3+2 ; Triggerwahl Timer A2
TA2TGH equ TRGSR<<3+3
TA3TGL equ TRGSR<<3+4 ; Triggerwahl Timer A3
TA3TGH equ TRGSR<<3+5
TA4TGL equ TRGSR<<3+6 ; Triggerwahl Timer A4
TA4TGH equ TRGSR<<3+7
UDF equ 0384h ; Z刪lrichtungen(A) / Zweiphasenmodi(A2-4)
TA0UD equ UDF<<3+0 ; Timer A0
TA1UD equ UDF<<3+1 ; Timer A1
TA2UD equ UDF<<3+2 ; Timer A2
TA3UD equ UDF<<3+3 ; Timer A3
TA4UD equ UDF<<3+4 ; Timer A4
TA2P equ UDF<<3+5 ; Timer A2
TA3P equ UDF<<3+6 ; Timer A3
TA4P equ UDF<<3+7 ; Timer A4
;----------------------------------------------------------------------------
; Watchdog
WDTS equ 000eh ; Startwert
__bitreg WDC,000fh,80h ; Vorteilerwahl / obere Z刪ler-Bits
;----------------------------------------------------------------------------
; serielle Ports:
U0TB equ 03a2h ; Senderegister UART0
U1TB equ 03aah ; Senderegister UART1
U0RB equ 03a6h ; Empfangsregister UART0
U1RB equ 03aeh ; Empfangsregister UART1
_OER equ 4 ; Overrun-Fehler ?
_FER equ 5 ; Framing-Fehler ?
_PER equ 6 ; Parit則s-Fehler ?
_SUM equ 7 ; Summenfehler ?
U0BRG equ 03a1h ; Baudratengenerator UART0
U1BRG equ 03a9h ; Baudratengenerator UART1
U0MR equ 03a0h ; Modusregister UART0
U1MR equ 03a8h ; Modusregister UART1
_SMD0 equ 0 ; Modus
_SMD1 equ 1
_SMD2 equ 2
_CKDIR equ 3 ; interner/externer Takt
_STPS equ 4 ; Anzahl Stopbits
_PRY equ 5 ; Parit則swahl
_PRYE equ 6 ; Parit則sart
_SLEP equ 7 ; Sleep-Modus
U0C0 equ 03a4h ; Steuerregister 0 UART0
U1C0 equ 03ach ; Steuerregister 1 UART0
_CLK0 equ 0 ; Taktquelle Baudratengenerator
_CLK1 equ 1
_CRS equ 2 ; RTS/CTS-Auswahl
_TXEPT equ 3 ; Senderegister voll ?
_CRD equ 4 ; CTS/RTS-Auswahl
_NCH equ 5 ; TXD als Open-Collector ?
_CKPOL equ 6 ; Taktpolarit則swahl
_UFORM equ 7 ; Bitreihenfolge
U0C1 equ 03a5h ; Steuerregister 1 UART0
U1C1 equ 03adh ; Steuerregister 1 UART1
_TE equ 0 ; Senderfreigabe
_TI equ 1 ; Sendepuffer leer ?
_RE equ 2 ; Empf刵gerfreigabe
_RI equ 3 ; Empfangspuffer voll ?
UCON equ 03b0h ; Steuerregister 2 UART0+1
U0IRS equ UCON<<3+0 ; Interruptgrund Sender UART0
U1IRS equ UCON<<3+1 ; Interruptgrund Sender UART1
U0RRM equ UCON<<3+2 ; kontinuierlicher Empfangsmodus UART0
U1RRM equ UCON<<3+3 ; kontinuierlicher Empfangsmodus UART1
CLKMD0 equ UCON<<3+4 ; Taktausgabe an CLK1/CLKS1
CLKMD1 equ UCON<<3+5
RCSP equ UCON<<3+6 ; RTS/CTS gemeinsam/einzeln
;----------------------------------------------------------------------------
; CRC-Generator
CRCD equ 03bch ; Ergebnis CRC-Berechnung
CRCIN equ 03beh ; Datumseingabe CRC-Berechnung
;----------------------------------------------------------------------------
; A/D-Wandler
AD0 equ 03c0h ; Datenregister Kanal 0
AD1 equ 03c2h ; Datenregister Kanal 1
AD2 equ 03c4h ; Datenregister Kanal 2
AD3 equ 03c6h ; Datenregister Kanal 3
AD4 equ 03c8h ; Datenregister Kanal 4
AD5 equ 03cah ; Datenregister Kanal 5
AD6 equ 03cch ; Datenregister Kanal 6
AD7 equ 03ceh ; Datenregister Kanal 7
ADCON0 equ 03d6h ; A/D-Steuerregister 0
CH0 equ ADCON0<<3+0 ; Kanalwahl
CH1 equ ADCON0<<3+1
CH2 equ ADCON0<<3+2
MD0 equ ADCON0<<3+3 ; Modus
MD1 equ ADCON0<<3+4
TRG equ ADCON0<<3+5 ; Soft/Hardwaretrigger
ADST equ ADCON0<<3+6 ; Konversion starten
CKS0 equ ADCON0<<3+7 ; Frequenzwahl
ADCON1 equ 03d7h ; A/D-Steuerregister 1
SCAN0 equ ADCON1<<3+0 ; Sweep-Modus
SCAN1 equ ADCON1<<3+1
MD2 equ ADCON1<<3+2 ; Modus
BITS equ ADCON1<<3+3 ; Breitenwahl (8/10 Bit)
VCUT equ ADCON1<<3+5
OPA0 equ ADCON1<<3+6
OPA1 equ ADCON1<<3+7
ADCON2 equ 03d4h
SMP equ ADCON2<<3+0 ; A-D Conversion method bit
;----------------------------------------------------------------------------
; D/A-Wandler
DA0 equ 03d8h ; Wert D/A-Wandler 0
DA1 equ 03dah ; Wert D/A-Wandler 1
DACON equ 03dch ; Steuerregister D/A-Wandler
DA0E equ DACON<<3+0 ; D/A-Wandler 0 freigeben
DA1E equ DACON<<3+1 ; D/A-Wandler 1 freigeben
;----------------------------------------------------------------------------
; feste Vektoren
Vec_UndefInstr equ 0fffdch ; UND ausgef乭rt
Vec_Overflow equ 0fffe0h ; INTO+Overflow ausgef乭rt
Vec_BRK equ 0fffe4h ; BRK ausgef乭rt
Vec_AddrMatch equ 0fffe8h ; Adressengleichheit aufgetreten
Vec_SingleStep equ 0fffech ; Einzelschrittverarbeitung
Vec_WDT equ 0ffff0h ; Watchdog hat zugeschlagen
Vec_DBC equ 0ffff4h
Vec_NMI equ 0ffff8h ; nichtmaskierbarer Interrupt
Vec_Reset equ 0ffffch
;----------------------------------------------------------------------------
; Variable Vektoren; hier Offset zu INTB
Vec_BRK2 equ 0 ; BRK ausgef乭rt (falls fester Vektor abgeschaltet)
Vec_DMA0 equ 44
Vec_DMA1 equ 48
Vec_KeyInp equ 52
Vec_AD equ 56
Vec_UART0T equ 68
Vec_UART0R equ 72
Vec_UART1T equ 76
Vec_UART1R equ 80
Vec_TA0 equ 84
Vec_TA1 equ 88
Vec_TA2 equ 92
Vec_TA3 equ 96
Vec_TA4 equ 100
Vec_TB0 equ 104
Vec_TB1 equ 108
Vec_TB2 equ 112
Vec_INT0 equ 116
Vec_INT1 equ 120
Vec_INT2 equ 124
;----------------------------------------------------------------------------
; Speicherbereiche
switch MOMCPUNAME
case "M30600M8"
IROM equ 0f0000h ; 64K ROM am Ende des Speicherraums
IROMEND equ 0fffffh
IRAM equ 000400h ; 10K RAM hinter SFRs
IRAMEND equ 002c00h
case "M30610" ; 128k ROM
IROM equ 0e0000h
IROMEND equ 0fffffh
IRAM equ 000400h
IRAMEND equ 002c00h ; 10k RAM
case "M30620"
IROM equ 0e0000h
IROMEND equ 0fffffh
IRAM equ 000400h
IRAMEND equ 002c00h ; 10k RAM
endcase
;----------------------------------------------------------------------------
endif
restore ; Listing wieder an
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -