Blame | Last modification | View Log | Download | RSS feed
savelisting off ; no listing over this file;****************************************************************************;* *;* AS 1.42 - Datei 80C50x.INC *;* *;* Contains SFR and Bit Definitions for SAB C50x Processors *;* (derived from STDDEF51.INC) *;* *;* Last Changes 1997-03-26 Initial Version *;* 1997-06-08 added corrections from Mr. Schmid *;* *;****************************************************************************ifndef reg50xinc ; avoid multiple inclusionreg50xinc equ 1if (MOMCPUNAME<>"80C501")&&(MOMCPUNAME<>"80C502")&&(MOMCPUNAME<>"80C504")fatal "wrong target: only 80C501, 80C502, or 80C504 supported"endifif MOMPASS=1message "SAB C50x SFR Definitions (C) 1993 Alfred Arnold, Steffen Schmid"message "including SFRS for \{MOMCPUNAME}"endif;----------------------------------------------------------------------------; ProzessorkernACC SFRB 0e0h ; AccumulatorB SFRB 0f0h ; Auxiliary Accumulator for MUL/DIVSP SFR 81h ; Stack PointerDPL SFR 82h ; Data Pointer Bit 0..7DPH SFR 83h ; " Bit 8..15PSW SFRB 0d0h ; Status WordCY BIT PSW.7AC BIT PSW.6F0 BIT PSW.5RS1 BIT PSW.4RS0 BIT PSW.3OV BIT PSW.2P BIT PSW.0SYSCON SFR 0b1h ; System ConfigurationPCON SFR 87h ; "Power Management"PCON1 SFRB 88hEWPD BIT PCON1.7 ; Enable Wake-Up via INT0if MOMCPUNAME="80C502"XPAGE SFR 91h ; XRAM Control 80C502XCON SFR 94hDPSEL SFR 92hendif;----------------------------------------------------------------------------; PortsP0 SFRB 80h ; GPIOP1 SFRB 90hP2 SFRB 0a0hP3 SFRB 0b0hT2EX BIT P1.1T2 BIT P1.0if MOMCPUNAME="80C504"P1ANA SFRB 90h ; Select Port 1/3 as analog inputsP3ANA SFRB 0b0hEAN0 BIT P1ANA.0EAN1 BIT P1ANA.1EAN2 BIT P1ANA.2EAN3 BIT P1ANA.3EAN4 BIT P1ANA.2EAN5 BIT P1ANA.3EAN6 BIT P1ANA.4EAN7 BIT P1ANA.5endifRD BIT P3.7 ; Port 3: Write ControlWR BIT P3.6 ; Read ControlT1 BIT P3.5 ; Test Pin 1T0 BIT P3.4 ; Test Pin 0INT1 BIT P3.3 ; External Interrupt 1INT0 BIT P3.2 ; External Interrupt 0TXD BIT P3.1 ; Serial OutputRXD BIT P3.0 ; Serial Input;----------------------------------------------------------------------------; seriellesSCON SFRB 98h ; Serial Interface: Control RegisterSM0 BIT SCON.7 ; Operation ModesSM1 BIT SCON.6SM2 BIT SCON.5REN BIT SCON.4 ; Enable ReceiverTB8 BIT SCON.3 ; 9th Bit to be SentRB8 BIT SCON.2 ; 9th Bit ReceivedTI BIT SCON.1 ; Transmit Interrupt FlagRI BIT SCON.0 ; Receiver Interrupt FlagSBUF SFR 99h ; Data Registerif MOMCPUNAME="80C502"SRELL SFR 0aah ; Baud Rate Generator ValueSRELH SFR 0bahBAUD SFRB 0d8hBD BIT BAUD.7 ; Enable Baud Rate GeneratorENDIF;----------------------------------------------------------------------------; TimerTCON SFRB 88h ; Timer 0/1 Control RegisterTF1 BIT TCON.7 ; Overflow Timer 1TR1 BIT TCON.6 ; Timer 1 Run/StopTF0 BIT TCON.5 ; Overflow Timer 0TR0 BIT TCON.4 ; Timer 0 Run/StopIE1 BIT TCON.3 ; External Interrupt 1 FlagIT1 BIT TCON.2 ; Edge Selection External Interrupt 1IE0 BIT TCON.1 ; External Interrupt 0 FlagIT0 BIT TCON.0 ; Edge Selection External Interrupt 0TMOD SFR 89h ; Timer 0/1 Operation Mode RegisterTL0 SFR 8ah ; Timer 0 ValueTL1 SFR 8bhTH0 SFR 8ch ; Timer 1 ValueTH1 SFR 8dhT2CON SFRB 0c8h ; Control Register Timer 2TL2 SFR 0cch ; Timer 2 ValueTH2 SFR 0cdhRC2L SFR 0cah ; Timer 2 Capture ValueRC2H SFR 0cbhTF2 BIT T2CON.7 ; Overflow Timer 2EXF2 BIT T2CON.6 ; Timer 2 Reload OccuredRCLK BIT T2CON.5 ; Timer 2 Supplies RxD ClockTCLK BIT T2CON.4 ; Timer 2 Supplies TxD ClockEXEN2 BIT T2CON.3 ; External Enable Timer 2TR2 BIT T2CON.2 ; Start Timer 2CT2 BIT T2CON.1 ; Timer 2 Operate as CounterCPRL2 BIT T2CON.0 ; Timer 2 Enable Capture;---------------------------------------------------------------------------; Watchdogif MOMCPU>=80C504hWDCON SFRB 0c0h ; Watchdog ControlSWDT BIT WDCON.0 ; Start WatchdogWDT BIT WDCON.1 ; Reset WatchdogWDTS BIT WDCON.2 ; Watchdog Reset FlagOWDS BIT WDCON.3 ; Oszillator Watchdog FlagWDTREL SFR 86hendif;---------------------------------------------------------------------------; Capture/Compare-Einheitif MOMCPUNAME="80C504"CT1CON SFR 0e1h ; Comparator 1 ControlCCPL SFR 0deh ; Comparator 1 PeriodCCPH SFR 0dfhCT1OFL SFR 0e6h ; Comparator 1 OffsetCT1OFH SFR 0e7hCMSEL0 SFR 0e3h ; ModeCMSEL1 SFR 0e4hCOINI SFR 0e2h ; Initialize Comparator OutputTRCON SFR 0cfh ; Enable TrapCCL0 SFR 0c2h ; Compare/Capture Value 0CCH0 SFR 0c3hCCL1 SFR 0c4h ; Compare/Capture Value 1CCH1 SFR 0c5hCCL2 SFR 0c6h ; Compare/Capture Value 2CCH2 SFR 0c7hCCIR SFR 0e5h ; Interrupt FlagsCCIE SFR 0d6h ; Interrupt MasksCT2CON SFR 0c1h ; Comparator 2 ControlCP2L SFR 0d2h ; Comparator 2 PeriodCP2H SFR 0d3hCMP2L SFR 0d4h ; Timer 2 Compare/Capture ValueCMP2H SFR 0d5hBCON SFR 0d7h ; Block Communication Controlendif;---------------------------------------------------------------------------; A/D-Wandlerif MOMCPUNAME="80C504"ADCON0 SFRB 0d8h ; ConfigurationIADC BIT ADCON0.5 ; Interrupt Flag (End of Conversion)BSY BIT ADCON0.4 ; Busy FlagADM BIT ADCON0.3 ; Single/Continuous ConversionMX2 BIT ADCON0.2 ; Channel SelectionMX1 BIT ADCON0.1MX0 BIT ADCON0.0ADCON1 SFR 0dchADDATH SFR 0d9h ; DataADDATL SFR 0dahendif;-------------------------------------------------------------------------; Interruptsteuerregister:IEN0 SFRB 0a8h ; Interrupt Enable BitsIE SFRB IEN0EA BIT IEN0.7 ; Global EnableET2 BIT IEN0.5 ; Timer 2ES BIT IEN0.4 ; Serial InterfaceET1 BIT IEN0.3 ; Overflow Timer 1EX1 BIT IEN0.2 ; External Interrupt 1ET0 BIT IEN0.1 ; Timer 0 OverflowEX0 BIT IEN0.0 ; External Interrupt 0IP0 SFRB 0b8h ; PrioritiesIP SFRB IP0PT2 BIT IP0.5 ; see Enable BitsPS BIT IP0.4PT1 BIT IP0.3PX1 BIT IP0.2PT0 BIT IP0.1PX0 BIT IP0.0if MOMCPUNAME="80C504"IEN1 SFR 0a9hIP1 SFR 0b9hITCON SFR 09ah ; Trigger Conditionsendif;---------------------------------------------------------------------------; Since the 8051 has no instructions to pus the registers, this has to be done; via direct addressing, which requires knowledge of the currently active bank.; The macro USING is provided for doing this. It holds the addresses of the; currently active registers in symbols AR0..AR7. USING expects the bank; number as argument.Bank0 equ 0 ; For Completeness...Bank1 equ 1Bank2 equ 2Bank3 equ 3using macro bankif (bank<0)||(bank>3) ; only bank 0..3 allowederror "Falsche Banknummer: \{BANK}"endififdef RegUsage ; bookkeeping about used banksRegUsage set RegUsage|(2^bank)elseifRegUsage set 2^bankendifar0 set bank*8 ; define symbolsar1 set ar0+1ar2 set ar0+2ar3 set ar0+3ar4 set ar0+4ar5 set ar0+5ar6 set ar0+6ar7 set ar0+7endmendifrestore ; re-allow listing