微處理器 - STCmicro STC15W4K56S4 - C/C++ - stc15w4k56s4.h



#ifndef __STC15W4K56S4_H__
#define __STC15W4K56S4_H__

    #include <8051.h>
    #include <compiler.h>

    #ifdef REG8051_H
        #undef REG8051_H
    #endif

    SFR(ACC, 0xE0);
    SFR(B, 0xF0);
    SFR(PSW, 0xD0);
        SBIT(CY, 0xd0, 7);
        SBIT(AC, 0xd0, 6);
        SBIT(F0, 0xd0, 5);
        SBIT(RS1, 0xd0, 4);
        SBIT(RS0, 0xd0, 3);
        SBIT(OV, 0xd0, 2);
        SBIT(P, 0xd0, 0);
    SFR(SP, 0x81);
    SFR(DPL, 0x82);
    SFR(DPH, 0x83);

    SFR(P0, 0x80);
        SBIT(P00, 0x80, 0);
        SBIT(P01, 0x80, 1);
        SBIT(P02, 0x80, 2);
        SBIT(P03, 0x80, 3);
        SBIT(P04, 0x80, 4);
        SBIT(P05, 0x80, 5);
        SBIT(P06, 0x80, 6);
        SBIT(P07, 0x80, 7);
    SFR(P1, 0x90);
        SBIT(P10, 0x90, 0);
        SBIT(P11, 0x90, 1);
        SBIT(P12, 0x90, 2);
        SBIT(P13, 0x90, 3);
        SBIT(P14, 0x90, 4);
        SBIT(P15, 0x90, 5);
        SBIT(P16, 0x90, 6);
        SBIT(P17, 0x90, 7);
    SFR(P2, 0xA0);
        SBIT(P20, 0xa0, 0);
        SBIT(P21, 0xa0, 1);
        SBIT(P22, 0xa0, 2);
        SBIT(P23, 0xa0, 3);
        SBIT(P24, 0xa0, 4);
        SBIT(P25, 0xa0, 5);
        SBIT(P26, 0xa0, 6);
        SBIT(P27, 0xa0, 7);
    SFR(P3, 0xB0);
        SBIT(P30, 0xb0, 0);
        SBIT(P31, 0xb0, 1);
        SBIT(P32, 0xb0, 2);
        SBIT(P33, 0xb0, 3);
        SBIT(P34, 0xb0, 4);
        SBIT(P35, 0xb0, 5);
        SBIT(P36, 0xb0, 6);
        SBIT(P37, 0xb0, 7);
    SFR(P4, 0xC0);
        SBIT(P40, 0xc0, 0);
        SBIT(P41, 0xc0, 1);
        SBIT(P42, 0xc0, 2);
        SBIT(P43, 0xc0, 3);
        SBIT(P44, 0xc0, 4);
        SBIT(P45, 0xc0, 5);
        SBIT(P46, 0xc0, 6);
        SBIT(P47, 0xc0, 7);
    SFR(P5, 0xC8);
        SBIT(P50, 0xc8, 0);
        SBIT(P51, 0xc8, 1);
        SBIT(P52, 0xc8, 2);
        SBIT(P53, 0xc8, 3);
        SBIT(P54, 0xc8, 4);
        SBIT(P55, 0xc8, 5);
        SBIT(P56, 0xc8, 6);
        SBIT(P57, 0xc8, 7);
    SFR(P6, 0xE8);
        SBIT(P60, 0xe8, 0);
        SBIT(P61, 0xe8, 1);
        SBIT(P62, 0xe8, 2);
        SBIT(P63, 0xe8, 3);
        SBIT(P64, 0xe8, 4);
        SBIT(P65, 0xe8, 5);
        SBIT(P66, 0xe8, 6);
        SBIT(P67, 0xe8, 7);
    SFR(P7, 0xF8);
        SBIT(P70, 0xf8, 0);
        SBIT(P71, 0xf8, 1);
        SBIT(P72, 0xf8, 2);
        SBIT(P73, 0xf8, 3);
        SBIT(P74, 0xf8, 4);
        SBIT(P75, 0xf8, 5);
        SBIT(P76, 0xf8, 6);
        SBIT(P77, 0xf8, 7);
    SFR(P0M0, 0x94);
    SFR(P0M1, 0x93);
    SFR(P1M0, 0x92);
    SFR(P1M1, 0x91);
    SFR(P2M0, 0x96);
    SFR(P2M1, 0x95);
    SFR(P3M0, 0xB2);
    SFR(P3M1, 0xB1);
    SFR(P4M0, 0xB4);
    SFR(P4M1, 0xB3);
    SFR(P5M0, 0xCA);
    SFR(P5M1, 0xC9);
    SFR(P6M0, 0xCC);
    SFR(P6M1, 0xCB);
    SFR(P7M0, 0xE2);
    SFR(P7M1, 0xE1);

    SFR(PCON, 0x87);
    SFR(AUXR, 0x8E);
    SFR(AUXR1, 0xA2);
    SFR(P_SW1, 0xA2);
    SFR(CLK_DIV, 0x97);
    SFR(BUS_SPEED, 0xA1);
    SFR(P1ASF, 0x9D);
    SFR(P_SW2, 0xBA);

    SFR(IE, 0xA8);
        SBIT(EA, 0xa8, 7);
        SBIT(ELVD, 0xa8, 6);
        SBIT(EADC, 0xa8, 5);
        SBIT(ES, 0xa8, 4);
        SBIT(ET1, 0xa8, 3);
        SBIT(EX1, 0xa8, 2);
        SBIT(ET0, 0xa8, 1);
        SBIT(EX0, 0xa8, 0);
    SFR(IP, 0xB8);
        SBIT(PPCA, 0xb8, 7);
        SBIT(PLVD, 0xb8, 6);
        SBIT(PADC, 0xb8, 5);
        SBIT(PS, 0xb8, 4);
        SBIT(PT1, 0xb8, 3);
        SBIT(PX1, 0xb8, 2);
        SBIT(PT0, 0xb8, 1);
        SBIT(PX0, 0xb8, 0);
    SFR(IE2, 0xAF);
    SFR(IP2, 0xB5);
    SFR(INT_CLKO, 0x8F);

    SFR(TCON, 0x88);
        SBIT(TF1, 0x88, 7);
        SBIT(TR1, 0x88, 6);
        SBIT(TF0, 0x88, 5);
        SBIT(TR0, 0x88, 4);
        SBIT(IE1, 0x88, 3);
        SBIT(IT1, 0x88, 2);
        SBIT(IE0, 0x88, 1);
        SBIT(IT0, 0x88, 0);
    SFR(TMOD, 0x89);
    SFR(TL0, 0x8A);
    SFR(TL1, 0x8B);
    SFR(TH0, 0x8C);
    SFR(TH1, 0x8D);
    SFR(T4T3M, 0xD1);
    SFR(T3T4M, 0xD1);
    SFR(T4H, 0xD2);
    SFR(T4L, 0xD3);
    SFR(T3H, 0xD4);
    SFR(T3L, 0xD5);
    SFR(T2H, 0xD6);
    SFR(T2L, 0xD7);
    SFR(WKTCL, 0xAA);
    SFR(WKTCH, 0xAB);
    SFR(WDT_CONTR, 0xC1);

    SFR(SCON, 0x98);
        SBIT(SM0, 0x98, 7);
        SBIT(SM1, 0x98, 6);
        SBIT(SM2, 0x98, 5);
        SBIT(REN, 0x98, 4);
        SBIT(TB8, 0x98, 3);
        SBIT(RB8, 0x98, 2);
        SBIT(TI, 0x98, 1);
        SBIT(RI, 0x98, 0);
    SFR(SBUF, 0x99);
    SFR(S2CON, 0x9A);
    SFR(S2BUF, 0x9B);
    SFR(S3CON, 0xAC);
    SFR(S3BUF, 0xAD);
    SFR(S4CON, 0x84);
    SFR(S4BUF, 0x85);
    SFR(SADDR, 0xA9);
    SFR(SADEN, 0xB9);

    SFR(ADC_CONTR, 0xBC);
    SFR(ADC_RES, 0xBD);
    SFR(ADC_RESL, 0xBE);

    SFR(SPSTAT, 0xCD);
    SFR(SPCTL, 0xCE);
    SFR(SPDAT, 0xCF);

    SFR(IAP_DATA, 0xC2);
    SFR(IAP_ADDRH, 0xC3);
    SFR(IAP_ADDRL, 0xC4);
    SFR(IAP_CMD, 0xC5);
    SFR(IAP_TRIG, 0xC6);
    SFR(IAP_CONTR, 0xC7);

    SFR(CCON, 0xD8);
        SBIT(CF, 0xd8, 7);
        SBIT(CR, 0xd8, 6);
        SBIT(CCF2, 0xd8, 2);
        SBIT(CCF1, 0xd8, 1);
        SBIT(CCF0, 0xd8, 0);
    SFR(CMOD, 0xD9);
    SFR(CL, 0xE9);
    SFR(CH, 0xF9);
    SFR(CCAPM0, 0xDA);
    SFR(CCAPM1, 0xDB);
    SFR(CCAPM2, 0xDC);
    SFR(CCAP0L, 0xEA);
    SFR(CCAP1L, 0xEB);
    SFR(CCAP2L, 0xEC);
    SFR(PCA_PWM0, 0xF2);
    SFR(PCA_PWM1, 0xF3);
    SFR(PCA_PWM2, 0xF4);
    SFR(CCAP0H, 0xFA);
    SFR(CCAP1H, 0xFB);
    SFR(CCAP2H, 0xFC);

    SFR(CMPCR1, 0xE6);
    SFR(CMPCR2, 0xE7);

    SFR(PWMCFG, 0xf1);
    SFR(PWMCR, 0xf5);
    SFR(PWMIF, 0xf6);
    SFR(PWMFDCR, 0xf7);

    #define PWMC (*(unsigned int volatile xdata *)0xfff0)
    #define PWMCH (*(unsigned char volatile xdata *)0xfff0)
    #define PWMCL (*(unsigned char volatile xdata *)0xfff1)
    #define PWMCKS (*(unsigned char volatile xdata *)0xfff2)
    #define PWM2T1 (*(unsigned int volatile xdata *)0xff00)
    #define PWM2T1H (*(unsigned char volatile xdata *)0xff00)
    #define PWM2T1L (*(unsigned char volatile xdata *)0xff01)
    #define PWM2T2 (*(unsigned int volatile xdata *)0xff02)
    #define PWM2T2H (*(unsigned char volatile xdata *)0xff02)
    #define PWM2T2L (*(unsigned char volatile xdata *)0xff03)
    #define PWM2CR (*(unsigned char volatile xdata *)0xff04)
    #define PWM3T1 (*(unsigned int volatile xdata *)0xff10)
    #define PWM3T1H (*(unsigned char volatile xdata *)0xff10)
    #define PWM3T1L (*(unsigned char volatile xdata *)0xff11)
    #define PWM3T2 (*(unsigned int volatile xdata *)0xff12)
    #define PWM3T2H (*(unsigned char volatile xdata *)0xff12)
    #define PWM3T2L (*(unsigned char volatile xdata *)0xff13)
    #define PWM3CR (*(unsigned char volatile xdata *)0xff14)
    #define PWM4T1 (*(unsigned int volatile xdata *)0xff20)
    #define PWM4T1H (*(unsigned char volatile xdata *)0xff20)
    #define PWM4T1L (*(unsigned char volatile xdata *)0xff21)
    #define PWM4T2 (*(unsigned int volatile xdata *)0xff22)
    #define PWM4T2H (*(unsigned char volatile xdata *)0xff22)
    #define PWM4T2L (*(unsigned char volatile xdata *)0xff23)
    #define PWM4CR (*(unsigned char volatile xdata *)0xff24)
    #define PWM5T1 (*(unsigned int volatile xdata *)0xff30)
    #define PWM5T1H (*(unsigned char volatile xdata *)0xff30)
    #define PWM5T1L (*(unsigned char volatile xdata *)0xff31)
    #define PWM5T2 (*(unsigned int volatile xdata *)0xff32)
    #define PWM5T2H (*(unsigned char volatile xdata *)0xff32)
    #define PWM5T2L (*(unsigned char volatile xdata *)0xff33)
    #define PWM5CR (*(unsigned char volatile xdata *)0xff34)
    #define PWM6T1 (*(unsigned int volatile xdata *)0xff40)
    #define PWM6T1H (*(unsigned char volatile xdata *)0xff40)
    #define PWM6T1L (*(unsigned char volatile xdata *)0xff41)
    #define PWM6T2 (*(unsigned int volatile xdata *)0xff42)
    #define PWM6T2H (*(unsigned char volatile xdata *)0xff42)
    #define PWM6T2L (*(unsigned char volatile xdata *)0xff43)
    #define PWM6CR (*(unsigned char volatile xdata *)0xff44)
    #define PWM7T1 (*(unsigned int volatile xdata *)0xff50)
    #define PWM7T1H (*(unsigned char volatile xdata *)0xff50)
    #define PWM7T1L (*(unsigned char volatile xdata *)0xff51)
    #define PWM7T2 (*(unsigned int volatile xdata *)0xff52)
    #define PWM7T2H (*(unsigned char volatile xdata *)0xff52)
    #define PWM7T2L (*(unsigned char volatile xdata *)0xff53)
    #define PWM7CR (*(unsigned char volatile xdata *)0xff54)

#endif