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/reg251.inc

226 lines
10 KiB
PHP

save
listing off ; kein Listing über diesen File
;****************************************************************************
;* *
;* AS 1.41 - Datei REG251.INC *
;* *
;* Sinn : enthält SFR- und Bitdefinitionen für MCS-251-Prozessoren *
;* *
;* letzte Änderungen : 30.12.1995 *
;* *
;****************************************************************************
ifndef reg251inc ; verhindert Mehrfacheinbindung
reg251inc equ 1
if MOMCPUNAME<>"80C251"
fatal "Falscher Prozessortyp eingestellt: nur 80C251 erlaubt!"
endif
if MOMPASS=1
message "MCS-251-SFR-Definitionen (C) 1995 Alfred Arnold"
message "binde \{MOMCPU}-SFRs ein"
endif
;----------------------------------------------------------------------------
; CPU-Kern:
; ACC = A = R11
; B = R10
; SP/SPH = SPX = DR60
; DPL/DPH/DPXL = DPX = DR56
; CY wird von AS selbst benutzt
ACC port 0e0h ; Akkumulator
B port 0f0h ; B-Register
PSW port 0d0h ; 8051-kompatibles PSW
CARRY bit PSW.7 ; Carry
AC bit PSW.6 ; Auxiliary-Carry
F0 bit PSW.5 ; Flag 0
RS1 bit PSW.4 ; Register-Bank-Auswahl
RS0 bit PSW.3
OV bit PSW.2 ; Overflow-Flag
UD bit PSW.1 ; User-Flag
P bit PSW.0 ; Parity-Flag
PSW1 port 0d1h ; erweitertes PSW (Bits 2-4,6-7 wie in PSW)
N bit PSW1.5 ; Negatives Ergebnis?
Z bit PSW1.1 ; Ergebnis 0 ?
SP port 81h ; Stackpointer (Bit 0..7)
SPH port 0bdh ; Stackpointer (Bit 8..15)
DPL port 082h ; Datenzeiger (Bit 0..7)
DPH port 083h ; Datenzeiger (Bit 8..15)
DPXL port 084h ; Datenzeiger (Bit 15..23)
PCON port 087h ; Power-Down-Modi u.a.
SMOD1 bit PCON.7 ; Verdopplung Baudrate in Modus 1..3
SMOD0 bit PCON.6 ; Umschaltung SCON.7 als FE/SM0
POF bit PCON.4 ; war Spannung weg ?
GF1 bit PCON.3 ; General Flag 1
GF0 bit PCON.2 ; General Flag 0
PD bit PCON.1 ; in Powerdown-Modus schalten
IDL bit PCON.0 ; in Idle-Modus schalten
IE port 0a8h ; Interrupt-Freigaben (eigentlich IE0,
; aber das ist schon belegt
EA bit IE.7 ; generelle Interruptsperre
EC bit IE.6 ; PCA-Interrupts freigeben
ET2 bit IE.5 ; Interrupts Timer 2 freigeben
ES bit IE.4 ; Interrupts ser. Schnittstelle freigeben
ET1 bit IE.3 ; Interrupt Timer 1 freigeben
EX1 bit IE.2 ; externen Interrupt 1 freigeben
ET0 bit IE.1 ; Interrupt Timer 0 freigeben
EX0 bit IE.0 ; externen Interrupt 0 freigeben
IPH0 port 0b7h ; Interrupt-Prioritäten
IPL0 port 0b8h
;----------------------------------------------------------------------------
; Ports mit Extrafunktionen:
P0 port 080h ; Port 0
P1 port 090h ; Port 1
T2 bit P1.0 ; Ein/Ausgabe Timer 2
T2EX bit P1.1 ; Trigger Timer 2
ECI bit P1.2 ; externer Takt PCA
CEX0 bit P1.3 ; Ein/Ausgabe PCA-Modul 0
CEX1 bit P1.4 ; Ein/Ausgabe PCA-Modul 1
CEX2 bit P1.5 ; Ein/Ausgabe PCA-Modul 2
CEX3 bit P1.6 ; Ein/Ausgabe PCA-Modul 3
CEX4 bit P1.7 ; Ein/Ausgabe PCA-Modul 4
P2 port 0a0h ; Port 2
P3 port 0b0h ; Port 3
RXD bit P3.0 ; serielle Empfangsleitung
TXD bit P3.1 ; serielle Sendeleitung
INT0 bit P3.2 ; externer Interrupt 0
INT1 bit P3.3 ; externer Interrupt 1
T0 bit P3.4 ; Takteingang Timer 0
T1 bit P3.5 ; Takteingang Timer 1
WR bit P3.6 ; Leseleitung
RD bit P3.7 ; Schreibleitung
;----------------------------------------------------------------------------
; serieller Port:
SCON port 098h ; Konfiguration
FE bit SCON.7 ; fehlerhaftes Stopbit ?
SM0 bit SCON.7 ; Modusauswahl
SM1 bit SCON.6
SM2 bit SCON.5
REN bit SCON.4 ; Empfänger freigeben
TB8 bit SCON.3 ; Sendedatenbit 8
RB8 bit SCON.2 ; Empfangsdatenbit 8
TI bit SCON.1 ; Zeichen vollständig versandt ?
RI bit SCON.0 ; Zeichen vollständig empfangen ?
SBUF port 099h ; Datenregister
SADEN port 0b9h ; Slave-Adreßmaske
SADDR port 0a9h ; Slave-Adresse
;----------------------------------------------------------------------------
; Zähler/Watchdog:
TL0 port 08ah ; Zählwert Zähler 0
TH0 port 08ch
TL1 port 08bh ; Zählwert Zähler 1
TH1 port 08dh
TCON port 088h ; Steuerung Zähler 0/1
TF1 bit TCON.7 ; Überlauf Timer 1 ?
TR1 bit TCON.6 ; Timer 1 starten/stoppen
TF0 bit TCON.5 ; Überlauf Timer 0 ?
TR0 bit TCON.4 ; Timer 0 starten/stoppen
IE1 bit TCON.3 ; externer Interrupt 1 augetreten ?
IT1 bit TCON.2 ; Flanken/Pegeltriggerung ext. Interrupt 1
IE0 bit TCON.1 ; externer Interrupt 0 augetreten ?
IT0 bit TCON.0 ; Flanken/Pegeltriggerung ext. Interrupt 0
TMOD port 089h ; Steuerung/Modus Zähler 0/1
M00 bit TMOD.0 ; Modus Timer 0
M10 bit TMOD.1
CT0 bit TMOD.2 ; Zähler/Timerumschaltung Timer 0
GATE0 bit TMOD.3 ; Freigabemodus Timer 0
M01 bit TMOD.4 ; Modus Timer 1
M11 bit TMOD.5
CT1 bit TMOD.6 ; Zähler/Timerumschaltung Timer 1
GATE1 bit TMOD.7 ; Freigabemodus Timer 1
TL2 port 0cch ; Zählwert Zähler 2
TH2 port 0cdh
T2CON port 0c8h ; Steuerung Zähler 2
TF2 bit T2CON.7 ; Überlauf Timer 2 ?
EXF2 bit T2CON.6 ; Flanke an T2EX aufgetreten ?
RCLK bit T2CON.5 ; Timer 2 oder 1 für seriellen Empfangstakt nutzen ?
TCLK bit T2CON.4 ; Timer 2 oder 1 für seriellen Sendetakt nutzen ?
EXEN2 bit T2CON.3 ; Fang durch T2EX freigeben
TR2 bit T2CON.2 ; Timer 2 starten/stoppen
CT2 bit T2CON.1 ; Zähler/Timerumschaltung Timer 2
CPRL2 bit T2CON.0 ; Fang oder Neuladen durch T2EX
T2MOD port 0c9h ; Steuerung/Modus Zähler 2
T2OE bit T2MOD.1 ; Ausgabe Timer 2 an T2 freigeben
DCEN bit T2MOD.0 ; Zählrichtung Timer 2
RCAP2L port 0cah ; Reload/Capture-Wert Timer 2
RCAP2H port 0cbh
WDTRST port 0a6h ; Watchdog zurücksetzen
;----------------------------------------------------------------------------
; Zählerfeld:
CCON port 0d8h ; Steuerregister
CF bit CCON.7 ; Überlauf PCA ?
CR bit CCON.6 ; PCA-Timer starten/stoppen
CCF4 bit CCON.4 ; Hat PCA-Modul 4..0 angesprochen ?
CCF3 bit CCON.3
CCF2 bit CCON.2
CCF1 bit CCON.1
CCF0 bit CCON.0
CMOD port 0d9h ; Modusregister
CIDL bit CMOD.7 ; PCA während Idle-Mode abschalten
WDTE bit CMOD.6 ; Watchdog-Ausgabe an PCA-Modul 4 freigeben
CPS1 bit CMOD.2 ; PCA-Taktauswahl
CPS0 bit CMOD.1
ECF bit CMOD.0 ; Interruptfreigabe
CL port 0e9h ; Zählwert
CH port 0f9h
__defpcamodule macro Offset,NUM
CCAPM{NUM} port 0d0h+Offset ; Modusregister
ECOM{NUM} bit CCAPM0.6 ; Komparator Modul x einschalten
CAPP{NUM} bit CCAPM0.5 ; Fangfunktion Modul x einschalten (pos. Flanke)
CAPN{NUM} bit CCAPM0.4 ; Fangfunktion Modul x einschalten (neg. Flanke)
MAT{NUM} bit CCAPM0.3 ; Interrupt bei Gleichheit Modul x einschalten
TOG{NUM} bit CCAPM0.2 ; High-Speed-Output-Modus Modul x einschalten
PWM{NUM} bit CCAPM0.1 ; PWM-Modus Modul x einschalten
ECCF{NUM} bit CCAPM0.0 ; Interrupts durch CCFx einschalten
CCAP{NUM}L port 0e0h+Offset ; Vergleichs/Fangwert Modul x
CCAP{NUM}H port 0f0h+Offset
endm
__defpcamodule 0ah,"0"
__defpcamodule 0bh,"1"
__defpcamodule 0ch,"2"
__defpcamodule 0dh,"3"
__defpcamodule 0eh,"4"
;----------------------------------------------------------------------------
endif
restore ; wieder erlauben