Blame | Last modification | View Log | Download | RSS feed
ifndef reg251inc ; avoid multiple inclusionreg251inc equ 1savelisting off ; no listing over this file;****************************************************************************;* *;* AS 1.42 - File REG251.INC *;* *;* Contains SFR/Bit Defintions for MCS-251 Processors *;* *;****************************************************************************if (MOMCPUNAME<>"80C251")&&(MOMCPUNAME<>"80C251T")fatal "wrong target selected: only 80C251(T) allowed!"endifif MOMPASS=1message "MCS-251 SFR Definitions (C) 2003 Alfred Arnold"message "including \{MOMCPUNAME}-SFRsn"endif;----------------------------------------------------------------------------; CPU Core:; ACC = A = R11; B = R10; SP/SPH = SPX = DR60; DPL/DPH/DPXL = DPX = DR56; CY is being used by AS itselfACC port 0e0h ; AccumulatorB port 0f0h ; B RegisterPSW port 0d0h ; 8051-Compatible PSWCARRY bit PSW.7 ; CarryAC bit PSW.6 ; Auxiliary CarryF0 bit PSW.5 ; Flag 0RS1 bit PSW.4 ; Register Bank SelectRS0 bit PSW.3OV bit PSW.2 ; Overflow FlagUD bit PSW.1 ; User FlagP bit PSW.0 ; Parity FlagPSW1 port 0d1h ; Extended PSW (bits 2-4,6-7 as in PSW)N bit PSW1.5 ; Negative ResultZ bit PSW1.1 ; Zero ResultSP port 81h ; Stack Pointer (Bits 0..7)SPH port 0beh ; Stack Pointer (Bits 8..15)DPL port 082h ; Data Pointer (Bits 0..7)DPH port 083h ; Data Pointer (Bits 8..15)DPXL port 084h ; Data Pointer (Bits 15..23)PCON port 087h ; Power Down Modes etc.SMOD1 bit PCON.7 ; Doubles baud Rate in Modes 1..3SMOD0 bit PCON.6 ; Toggles SCON.7 as FE/SM0POF bit PCON.4 ; Power OutageGF1 bit PCON.3 ; General Flag 1GF0 bit PCON.2 ; General Flag 0PD bit PCON.1 ; Switch to Power Down ModeIDL bit PCON.0 ; Switch to Idle ModeIE port 0a8h ; Interrupt Enables (should be IE0,; but that is already occupied)EA bit IE.7 ; General Interrupt MaskEC bit IE.6 ; Enable PCA InterruptsET2 bit IE.5 ; Enable Timer 2 InterruptsES bit IE.4 ; Enable Serial Port InterruptsET1 bit IE.3 ; Enable Timer 1 InterruptsEX1 bit IE.2 ; Enable External Interrupt 1ET0 bit IE.1 ; Enable Timer 0 InterruptsEX0 bit IE.0 ; Enable External Interrupt 0IPH0 port 0b7h ; Interrupt PrioritiesIPL0 port 0b8hif MOMCPUNAME="80C251T"IPH1 port 0b3hIPL1 port 0b2hIE01 port 0b1h ; It's called IE1 in the manual but; that's the name of a bit elsewhere;; Should probably find a better name; for this one, or change IE1endif;----------------------------------------------------------------------------; Ports with extra functions:P0 port 080h ; Port 0P1 port 090h ; Port 1T2 bit P1.0 ; In/Output Timer 2T2EX bit P1.1 ; Trigger Timer 2ECI bit P1.2 ; External PCA ClockCEX0 bit P1.3 ; In/Output PCA Module 0CEX1 bit P1.4 ; In/Output PCA Module 1CEX2 bit P1.5 ; In/Output PCA Module 2CEX3 bit P1.6 ; In/Output PCA Module 3CEX4 bit P1.7 ; In/Output PCA Module 4P2 port 0a0h ; Port 2P3 port 0b0h ; Port 3RXD bit P3.0 ; Serial Receive LineTXD bit P3.1 ; Serial Transmit LineINT0 bit P3.2 ; External Interrupt 0INT1 bit P3.3 ; External Interrupt 1T0 bit P3.4 ; Clock input Timer 0T1 bit P3.5 ; Clock input Timer 1WR bit P3.6 ; Read LineRD bit P3.7 ; Write Line;----------------------------------------------------------------------------; Serial Port:SCON port 098h ; ConfigurationFE bit SCON.7 ; Framing ErrorSM0 bit SCON.7 ; Mode SelectionSM1 bit SCON.6SM2 bit SCON.5REN bit SCON.4 ; Enable ReceiverTB8 bit SCON.3 ; Transmit Data bit 8RB8 bit SCON.2 ; Receive Data bit 8TI bit SCON.1 ; Character Sent CompletelyRI bit SCON.0 ; Character Received CompletelySBUF port 099h ; Data RegisterSADEN port 0b9h ; Slave Address MaskSADDR port 0a9h ; Slave Addressif MOMCPUNAME="80C251T";----------------------------------------------------------------------------; Second Serial Port:SADEN1 port 0bah ; Slave Address MaskSADDR1 port 0aah ; Slave AddressSCON1 port 09ah ; Configuration, similar to SCONSBUF1 port 09bh ; Data RegisterBGCON port 08fhendif;----------------------------------------------------------------------------; Counters/Watchdog:TL0 port 08ah ; Counter Value Counter 0TH0 port 08chTL1 port 08bh ; Counter Value Counter 1TH1 port 08dhTCON port 088h ; Counter 0/1 ControlTF1 bit TCON.7 ; Timer 1 OverflowTR1 bit TCON.6 ; Timer 1 Start/StopTF0 bit TCON.5 ; Timer 0 OverflowTR0 bit TCON.4 ; Timer 0 Start/StopIE1 bit TCON.3 ; External Interrupt 1 occuredIT1 bit TCON.2 ; External Interrupt 1 Edge/Level TriggerIE0 bit TCON.1 ; External Interrupt 0 occuredIT0 bit TCON.0 ; External Interrupt 0 Edge/Level TriggerTMOD port 089h ; Counter 0/1 Control/ModeM00 bit TMOD.0 ; Timer 0 ModeM10 bit TMOD.1CT0 bit TMOD.2 ; Timer 0 Counter/Timer SelectGATE0 bit TMOD.3 ; Timer 0 Enable ModeM01 bit TMOD.4 ; Timer 1 ModeM11 bit TMOD.5CT1 bit TMOD.6 ; Timer 1 Counter/Timer SelectGATE1 bit TMOD.7 ; Timer 1 Enable ModeTL2 port 0cch ; Counter 2 Counter ValueTH2 port 0cdhT2CON port 0c8h ; Counter 2 ControlTF2 bit T2CON.7 ; Timer 2 OverflowEXF2 bit T2CON.6 ; Edge Occured on T2EXRCLK bit T2CON.5 ; Use Timer 2 or 1 for Serial Receive ClockTCLK bit T2CON.4 ; Use Timer 2 or 1 for Serial Transmit ClockEXEN2 bit T2CON.3 ; Enable Capture via T2EXTR2 bit T2CON.2 ; Timer 2 Start/StopCT2 bit T2CON.1 ; Timer 2 Counter/Timer SelectCPRL2 bit T2CON.0 ; Capture or reload via T2EXT2MOD port 0c9h ; Counter 2 Control/ModeT2OE bit T2MOD.1 ; Timer 2 Enable Output on T2DCEN bit T2MOD.0 ; Timer 2 Counting DirectionRCAP2L port 0cah ; Timer 2 Reload/Capture ValueRCAP2H port 0cbhWDTRST port 0a6h ; Reset WatchdogWCON port 0a7h ; Watchdog Control;----------------------------------------------------------------------------; Counter Field:CCON port 0d8h ; Control RegisterCF bit CCON.7 ; PCA OverflowCR bit CCON.6 ; Start/Stop PCA TimerCCF4 bit CCON.4 ; PCA Module 4..0 Trigger FlagsCCF3 bit CCON.3CCF2 bit CCON.2CCF1 bit CCON.1CCF0 bit CCON.0CMOD port 0d9h ; Mode RegisterCIDL bit CMOD.7 ; Turn off PCA during Idle ModeWDTE bit CMOD.6 ; Enable Watchdog Output on PCA Module 4CPS1 bit CMOD.2 ; PCA Clock SelectCPS0 bit CMOD.1ECF bit CMOD.0 ; Interrupt EnableCL port 0e9h ; Counter ValueCH port 0f9h__defpcamodule macro Offset,NUMCCAPM{NUM} port 0d0h+Offset ; Mode RegisterECOM{NUM} bit CCAPM0.6 ; Enable Comparator Module xCAPP{NUM} bit CCAPM0.5 ; Enable Capture Function Module x (Positive Edge)CAPN{NUM} bit CCAPM0.4 ; Enable Capture Function Module x (Negative Edge)MAT{NUM} bit CCAPM0.3 ; Enable Equality Interrupt Module xTOG{NUM} bit CCAPM0.2 ; Enable High-Speed Output Mode Module xPWM{NUM} bit CCAPM0.1 ; Enable PWM Mode Module xECCF{NUM} bit CCAPM0.0 ; Enable Interrupts via CCFxCCAP{NUM}L port 0e0h+Offset ; Compare/Capture Value Module xCCAP{NUM}H port 0f0h+Offsetendm__defpcamodule 0ah,"0"__defpcamodule 0bh,"1"__defpcamodule 0ch,"2"__defpcamodule 0dh,"3"__defpcamodule 0eh,"4";----------------------------------------------------------------------------restore ; enable listing againendif ; reg251inc