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

📄 mcs51reg.h

📁 sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu
💻 H
📖 第 1 页 / 共 5 页
字号:
/*-------------------------------------------------------------------------   Register Declarations for the mcs51 compatible microcontrollers   Written By -  Bela Torok / bela.torok@kssg.ch (November 2000)   This library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   This library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with this library; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   In other words, you are welcome to use, share and improve this program.   You are forbidden to forbid anyone else to use, share and improve   what you give them.   Help stamp out software-hoarding!   History:   --------   Version 1.0 Nov 2, 2000 - B. Torok  / bela.torok@kssg.ch   Initial release, supported microcontrollers:   8051, 8052, Atmel AT89C1051, AT89C2051, AT89C4051,   Infineon / Siemens SAB80515, SAB80535, SAB80515A   Version 1.0.1 (Nov 3, 2000)   SAB80515A definitions revised by Michael Schmitt / michael.schmitt@t-online.de   Version 1.0.2 (Nov 6, 2000)   T2CON bug corrected 8052 and SABX microcontrollers have different T2CONs   Support for the Atmel AT89C52, AT80LV52, AT89C55, AT80LV55   Support for the Dallas DS80C320 and DS80C323   B. Torok / bela.torok@kssg.ch   Version 1.0.3 (Nov 7, 2000)   SAB80517 definitions added by Michael Schmitt / michael.schmitt@t-online.de   Dallas AT89S53 definitions added by B. Torok / bela.torok@kssg.ch   Dallas DS87C520 and DS83C520 definitions added by B. Torok / bela.torok@kssg.ch   Version 1.0.4 (Nov 9, 2000)   To simplify the identication of registers, a large number of definitios   were renamed. Long register names now (hopefully) clearly define the   function of the registers.   Dallas DS89C420 definitions added by B. Torok / bela.torok@kssg.ch   Version 1.0.5 (Dec 15, 2000)   Definitions added: #ifdef MCS51REG_EXTERNAL_ROM                      #ifdef MCS51REG_EXTERNAL_RAM                      #ifndef MCS51REG_DISABLE_WARNINGS   Version 1.0.6 (March 10, 2001)   Support for the Dallas DS5000 & DS2250   Support for the Dallas DS5001 & DS2251   Support for the Dallas DS80C390   microcontrollers - B. Torok / bela.torok@kssg.ch   Version 1.0.7 (June 7, 2001)   #ifndef MCS51REG_DISABLE_WARNINGS removed   #ifdef MCS51REG_DISABLE_WARNINGS added - B. Torok / bela.torok@kssg.ch   Support for the Philips P80C552 added - Bernhard Held / Bernhard.Held@otelo-online.de   Version 1.0.8 (Feb 28, 2002)   Dallas DS89C420 definitions corrected by B. Torok / bela.torok@kssg.ch   Revised by lanius@ewetel.net   Version 1.0.9 (Sept 9, 2002)   Register declarations for the Atmel T89C51RD2 added by Johannes Hoelzl / johannes.hoelzl@gmx.de   Version 1.0.10 (Sept 19, 2002)   Register declarations for the Philips P89C668 added by Eric Limpens / Eric@limpens.net   Version 1.0.11 (Sept 19, 2004)   Dallas DS5000 MCON Register declarations corrected by Radek Zadera / a2i@swipnet.se   Version 1.0.12 (March 2, 2005)   Infineon SAB80C509 Register declarations added Thomas Boje / thomas@boje.name   Adding support for additional microcontrollers:   -----------------------------------------------   1. Don't modify this file!!!   2. Insert your code in a separate file e.g.: mcs51reg_update.h and include      this after the #define HEADER_MCS51REG statement in this file   3. The mcs51reg_update.h file should contain following definitions:          a. An entry with the inventory of the register set of the             microcontroller in the  "Describe microcontrollers" section.          b. If necessary add entry(s) for registers not defined in this file          c. Define interrupt vectors   4. Compile a program for the microcontroller using the Preprocessor only, e.g.:,      sdcc -E test.c > t.txt      and check definitions for validity in the t.txt file.   5. If everithing seems to be OK send me the mcs51reg_update.h file. --> bela.torok@kssg.ch      I'm going to resolve conflicts & verify/merge new definitions to this file.   Microcontroller support:   Use one of the following options:   1. use #include <mcs51reg.h> in your program & define MICROCONTROLLER_XXXX in your makefile.   2. use following definitions prior the      #include <mcs51reg.h> line in your program:      e.g.:      #define MICROCONTROLLER_8052       -> 8052 type microcontroller      or      #define MICROCONTROLLER_AT89CX051  -> Atmel AT89C1051, AT89C2051 and AT89C4051 microcontrollers   Use only one of the following definitions!!!   Supported Microcontrollers:   No definition                8051   MICROCONTROLLER_8051         8051   MICROCONTROLLER_8052         8052   MICROCONTROLLER_AT89CX051    Atmel AT89C1051, AT89C2051 and AT89C4051   MICROCONTROLLER_AT89S53      Atmel AT89S53 microcontroller   MICROCONTROLLER_AT89X52      Atmel AT89C52 and AT80LV52 microcontrollers   MICROCONTROLLER_AT89X55      Atmel AT89C55 and AT80LV55 microcontrollers   MICROCONTROLLER_DS5000       Dallas DS5000 & DS2250 microcontroller   MICROCONTROLLER_DS5001       Dallas DS5001 & DS2251 microcontroller   MICROCONTROLLER_DS80C32X     Dallas DS80C320 and DS80C323 microcontrollers   MICROCONTROLLER_DS80C390     Dallas DS80C390 microcontroller   MICROCONTROLLER_DS89C420     Dallas DS89C420 microcontroller   MICROCONTROLLER_DS8XC520     Dallas DS87C520 and DS83C520 microcontrollers   MICROCONTROLLER_P80C552      Philips P80C552   MICROCONTROLLER_P89C668      Philips P89C668   MICROCONTROLLER_SAB80C509    Infineon / Siemens SAB80C509   MICROCONTROLLER_SAB80515     Infineon / Siemens SAB80515 & SAB80535   MICROCONTROLLER_SAB80515A    Infineon / Siemens SAB80515A   MICROCONTROLLER_SAB80517     Infineon / Siemens SAB80517   MICROCONTROLLER_T89C51RD2    Atmel T89C51RD2   Additional definitions (use them prior the #include mcs51reg.h statement):   Ports P0 & P2 are not available if external ROM used.   Use statement "#define MCS51REG_EXTERNAL_ROM" to undefine P0 & P2.   Ports P0, P2, P3_6, WR, P3_7 & RD are not available if external RAM is used.   Use statement "#define MCS51REG_EXTERNAL_RAM" to undefine P0, P2,   P3_6, WR, P3_7 & RD.   #define MCS51REG_ENABLE_WARNINGS -> enable warnings-----------------------------------------------------------------------*/#ifndef HEADER_MCS51REG#define HEADER_MCS51REG//////////////////////////////////////////////////////////  Insert header here (for developers only)       //////  remove "//" from the begining of the next line /////#include "mcs51reg_update.h"                      ///////////////////////////////////////////////////////////////////////////////////////////////  Describe microcontrollers //////  (inventory of registers)  /////////////////////////////////////// definitions for the 8051#ifdef MICROCONTROLLER_8051#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: 8051#endif#define P0#define SP#define DPL#define DPH#define PCON__SMOD__x__x__x__GF1__GF0__PD__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define P2#define IE__EA__x__x__ES__ET1__EX1__ET0__EX0#define P3#define IP__x__x__x__PS__PT1__PX1__PT0__PX0#define PSW#define ACC#define B#endif// end of definitions for the 8051// definitions for the 8052 microcontroller#ifdef MICROCONTROLLER_8052#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: 8052#endif// 8051 register set#define P0#define SP#define DPL#define DPH#define PCON__SMOD__x__x__x__GF1__GF0__PD__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define P2#define IE__EA__x__ET2__ES__ET1__EX1__ET0__EX0#define P3#define IP__x__x__PT2__PS__PT1__PX1__PT0__PX0#define PSW#define ACC#define B// 8052 specific registers#define T2CON__TF2__EXF2__RCLK__TCLK__EXEN2__TR2__C_T2__CP_RL2#define RCAP2L#define RCAP2H#define TL2#define TH2#endif// end of definitions for the 8052 microcontroller// definitionsons for the Atmel// AT89C1051, AT89C2051 and AT89C4051 microcontrollers#ifdef MICROCONTROLLER_AT89CX051#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: Atmel AT89Cx051#endif// 8051 register set without P0 & P2#define SP#define DPL#define DPH#define PCON__SMOD__x__x__x__GF1__GF0__PD__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define IE__EA__x__x__ES__ET1__EX1__ET0__EX0#define P3#define IP__x__x__x__PS__PT1__PX1__PT0__PX0#define PSW#define ACC#define B#endif// end of definitionsons for the Atmel// AT89C1051, AT89C2051 and AT89C4051 microcontrollers// definitions for the Atmel AT89S53#ifdef MICROCONTROLLER_AT89S53#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: AT89S53#endif// 8051 register set#define P0#define SP#define DPL#define DPH#define PCON__SMOD__x__x__x__GF1__GF0__PD__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define P2#define IE__EA__x__ET2__ES__ET1__EX1__ET0__EX0#define P3#define IP__x__x__PT2__PS__PT1__PX1__PT0__PX0#define PSW#define ACC#define B// 8052 specific registers#define T2CON__TF2__EXF2__RCLK__TCLK__EXEN2__TR2__C_T2__CP_RL2#define RCAP2L#define RCAP2H#define TL2#define TH2// AT89S53 specific register#define T2MOD__x__x__x__x__x__x__T2OE__DCEN#define P1_EXT__x__x__x__x__x__x__T2EX__T2#define SPCR#define SPDR#define SPSR#define WCOM#define DPL1#define DPH1#endif// end of definitions for the Atmel AT89S53 microcontroller// definitions for the Atmel AT89C52 and AT89LV52 microcontrollers#ifdef MICROCONTROLLER_AT89X52#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: AT89C52 or AT89LV52#endif// 8051 register set#define P0#define SP#define DPL#define DPH#define PCON__SMOD__x__x__x__GF1__GF0__PD__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define P2#define IE__EA__x__ET2__ES__ET1__EX1__ET0__EX0#define P3#define IP__x__x__PT2__PS__PT1__PX1__PT0__PX0#define PSW#define ACC#define B// 8052 specific registers#define T2CON__TF2__EXF2__RCLK__TCLK__EXEN2__TR2__C_T2__CP_RL2#define RCAP2L#define RCAP2H#define TL2#define TH2// AT89X55 specific register#define T2MOD__x__x__x__x__x__x__T2OE__DCEN#define P1_EXT__x__x__x__x__x__x__T2EX__T2#endif// end of definitions for the Atmel AT89C52 and AT89LV52 microcontrollers// definitions for the Atmel AT89C55 and AT89LV55 microcontrollers#ifdef MICROCONTROLLER_AT89X55#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: AT89C55 or AT89LV55#endif// 8051 register set#define P0#define SP#define DPL#define DPH#define PCON__SMOD__x__x__x__GF1__GF0__PD__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define P2#define IE__EA__x__ET2__ES__ET1__EX1__ET0__EX0#define P3#define IP__x__x__PT2__PS__PT1__PX1__PT0__PX0#define PSW#define ACC#define B// 8052 specific registers#define T2CON__TF2__EXF2__RCLK__TCLK__EXEN2__TR2__C_T2__CP_RL2#define RCAP2L#define RCAP2H#define TL2#define TH2// AT89X55 specific register#define T2MOD__x__x__x__x__x__x__T2OE__DCEN#define P1_EXT__x__x__x__x__x__x__T2EX__T2#endif// end of definitions for the Atmel AT89C55 and AT89LV55 microcontrollers// definitions for the Dallas DS5000#ifdef MICROCONTROLLER_DS5000#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: DS5000#endif#define P0#define SP#define DPL#define DPH#define PCON__SMOD__POR__PFW__WTR__EPFW__EWT__STOP__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define P2#define IE__EA__x__x__ES__ET1__EX1__ET0__EX0#define P3#define IP__RWT__x__x__PS__PT1__PX1__PT0__PX0#define MCON__PA3__PA2__PA1__PA0__RA32_8__ECE2__PAA__SL#define TA#define PSW#define ACC#define B#endif// end of definitions for the Dallas DS5000// definitions for the Dallas DS5001#ifdef MICROCONTROLLER_DS5001#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: DS5001#endif#define P0#define SP#define DPL#define DPH#define PCON__SMOD__POR__PFW__WTR__EPFW__EWT__STOP__IDL#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SBUF#define P2#define IE__EA__x__x__ES__ET1__EX1__ET0__EX0#define P3#define IP__RWT__x__x__PS__PT1__PX1__PT0__PX0#define CRC#define CRCLOW#define CRCHIGH#define MCON__PA3__PA2__PA1__PA0__RG1__PES__PM__SL#define TA#define RNR#define PSW#define RPCTL#define STATUS__ST7__ST6__ST5__ST4__IA0__F0__IBF__OBF#define ACC#define B#endif// end of definitions for the Dallas DS5001// definitions for the Dallas DS80C320 and DS80C323 microcontrollers#ifdef MICROCONTROLLER_DS80C32X#ifdef MICROCONTROLLER_DEFINED#define MCS51REG_ERROR#endif#ifndef MICROCONTROLLER_DEFINED#define MICROCONTROLLER_DEFINED#endif#ifdef MCS51REG_ENABLE_WARNINGS#warning Selected HW: Dallas DS80C320 or DS80C323#endif// 8051 register set#define P0#define SP#define DPL#define DPH#define PCON__SMOD__SMOD0__x__x__GF1__GF0__STOP__IDLE#define TCON#define TMOD#define TL0#define TL1#define TH0#define TH1#define P1#define SCON#define SCON0#define SBUF#define P2#define IE__EA__ES1__ET2__ES__ET1__EX1__ET0__EX0#define P3#define IP__x__PS1__PT2__PS__PT1_PX1__PT0__PX0#define PSW#define ACC#define B// 8052 specific registers#define T2CON__TF2__EXF2__RCLK__TCLK__EXEN2__TR2__C_T2__CP_RL2#define RCAP2L#define RCAP2H#define TL2#define TH2// DS80C320 specific register#define DPL1#define DPH1#define DPS__x__x__x__x__x__x__x__SEL#define CKCON__WD1__WD0__T2M__T1M__TOM__MD2__MD1__MD0#define EXIF__IE5__IE4__IE3__IE2__x__RGMD__RGSL__BGS#define SADDR0#define SADDR1#define SADEN0#define SADEN1#define SCON1#define SBUF1#define STATUS__PIP__HIP__LIP__x__x__x__x__x#define TA#define T2MOD__x__x__x__x__x__x__T2OE__DCEN#define P1_EXT__INT5__INT4__INT3__INT2__TXD1__RXD1__T2EX__T2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -