429 lines
9.5 KiB
C
429 lines
9.5 KiB
C
/*--------------------------------------------------------------------------
|
|
REG_MCU_H
|
|
|
|
Header file for generic SH79xx series microcontroller.
|
|
Copyright (c) 1996-2014 Sionwealth Electronic and Sinowealth Software, Inc.
|
|
All rights reserved.
|
|
--------------------------------------------------------------------------*/
|
|
#ifndef REG_MCU_H
|
|
#define REG_MCU_H
|
|
|
|
/*-------------------------- BYTE Register --------------------------*/
|
|
/* CPU */
|
|
sfr ACC = 0xE0;
|
|
sfr B = 0xF0;
|
|
sfr AUXC = 0xF1;
|
|
sfr PSW = 0xD0;
|
|
sfr SP = 0x81;
|
|
sfr DPL = 0x82;
|
|
sfr DPH = 0x83;
|
|
sfr16 DPTR = 0x82;
|
|
sfr DPL1 = 0x84;
|
|
sfr DPH1 = 0x85;
|
|
sfr16 DPTR1 = 0x84;
|
|
sfr INSCON = 0x86;
|
|
|
|
/* power */
|
|
sfr PCON = 0x87;
|
|
sfr SUSLO = 0x8E;
|
|
|
|
/* FLASH */
|
|
sfr IB_OFFSET = 0xFB;
|
|
sfr IB_DATA = 0xFC;
|
|
sfr IB_CON1 = 0xF2;
|
|
sfr IB_CON2 = 0xF3;
|
|
sfr IB_CON3 = 0xF4;
|
|
sfr IB_CON4 = 0xF5;
|
|
sfr IB_CON5 = 0xF6;
|
|
sfr XPAGE = 0xF7;
|
|
sfr FLASHCON = 0xA7;
|
|
|
|
/* WDT */
|
|
sfr RSTSTAT = 0xB1;
|
|
|
|
/* CLKCTRL */
|
|
sfr CLKCON = 0xB2;
|
|
|
|
/* INTERRUPT */
|
|
sfr IEN0 = 0xA8;
|
|
sfr IEN1 = 0xA9;
|
|
sfr IEN2 = 0xAA;
|
|
sfr IENC = 0xBA;
|
|
sfr IPL0 = 0xB8;
|
|
sfr IPH0 = 0xB4;
|
|
sfr IPL1 = 0xB9;
|
|
sfr IPH1 = 0xB5;
|
|
sfr EXF1 = 0xD8;
|
|
sfr EXCON = 0x8B;
|
|
sfr EXF0 = 0xE8;
|
|
sfr TCON = 0x88;
|
|
|
|
/* TWI */
|
|
sfr TWICON = 0xC8;
|
|
sfr TWISTA = 0xD1;
|
|
sfr TWIBR = 0x8A;
|
|
sfr TWITOUT = 0xE6;
|
|
sfr TWIDAT = 0x8D;
|
|
sfr TWIADR = 0x8C;
|
|
sfr TWIAMR = 0x8F;
|
|
sfr TWTFREE = 0x89;
|
|
|
|
/* PORT */
|
|
sfr P0 = 0x80;
|
|
sfr P1 = 0x90;
|
|
sfr P2 = 0xA0;
|
|
sfr P3 = 0xB0;
|
|
sfr P4 = 0xC0;
|
|
sfr P5 = 0x80; //BANK1
|
|
sfr P0CR = 0xE1;
|
|
sfr P1CR = 0xE2;
|
|
sfr P2CR = 0xE3;
|
|
sfr P3CR = 0xE4;
|
|
sfr P4CR = 0xE5;
|
|
sfr P5CR = 0x8A; //BANK1
|
|
sfr P0PCR = 0xE9;
|
|
sfr P1PCR = 0xEA;
|
|
sfr P2PCR = 0xEB;
|
|
sfr P3PCR = 0xEC;
|
|
sfr P4PCR = 0xED;
|
|
sfr P5PCR = 0x8B; //BANK1
|
|
sfr PIMS0 = 0xD2;
|
|
sfr PIMS1 = 0xD9;
|
|
sfr PIMS2 = 0xDB;
|
|
|
|
/* TIMER */
|
|
sfr T3CON = 0x88; //BANK1
|
|
sfr TL3 = 0x8C; //BANK1
|
|
sfr TH3 = 0x8D; //BANK1
|
|
sfr16 T3_16 = 0x8C; //BANK1
|
|
|
|
/* EUART */
|
|
sfr SCON = 0x98;
|
|
sfr SBUF = 0x99;
|
|
sfr SADEN = 0x9B;
|
|
sfr SADDR = 0x9A;
|
|
sfr SBRTL = 0x9C;
|
|
sfr SBRTH = 0x9D;
|
|
sfr16 SBRT_16 = 0x9C;
|
|
sfr SFINE = 0x9E;
|
|
sfr SCON1 = 0xA0; //BANK1
|
|
sfr SBUF1 = 0xA1; //BANK1
|
|
sfr SADEN1 = 0xA3; //BANK1
|
|
sfr SADDR1 = 0xA2; //BANK1
|
|
sfr SBRTL1 = 0xA4; //BANK1
|
|
sfr SBRTH1 = 0xA5; //BANK1
|
|
sfr16 SBRT1_16 = 0xA4; //BANK1
|
|
sfr SFINE1 = 0xA6; //BANK1
|
|
sfr PCON1 = 0xA7; //BANK1
|
|
sfr SCON2 = 0x90; //BANK1
|
|
sfr SBUF2 = 0x91; //BANK1
|
|
sfr SADEN2 = 0x93; //BANK1
|
|
sfr SADDR2 = 0x92; //BANK1
|
|
sfr SBRTL2 = 0x94; //BANK1
|
|
sfr SBRTH2 = 0x95; //BANK1
|
|
sfr16 SBRT2_16 = 0x94; //BANK1
|
|
sfr SFINE2 = 0x96; //BANK1
|
|
sfr PCON2 = 0x97; //BANK1
|
|
|
|
/* SPI */
|
|
sfr SPCON = 0xA2;
|
|
sfr SPSTA = 0xF8;
|
|
sfr SPDAT = 0xA3;
|
|
|
|
/* ADC */
|
|
sfr ADCON1 = 0x93;
|
|
sfr ADCON2 = 0x92;
|
|
sfr SEQCON = 0x91;
|
|
sfr SEQCHx = 0x9F;
|
|
sfr ADDxL = 0x96;
|
|
sfr ADDxH = 0x97;
|
|
sfr16 ADDx_16 = 0x96;
|
|
sfr ADCH1 = 0x95;
|
|
sfr ADCH2 = 0xA6;
|
|
sfr ADT = 0x94;
|
|
|
|
/* PWM */
|
|
sfr PWM0CON = 0xC7;
|
|
sfr PWM1CON = 0xB6;
|
|
sfr PWM2CON = 0xB7;
|
|
sfr PWM0PH = 0xCD;
|
|
sfr PWM0PL = 0xCC;
|
|
sfr16 PWM0P_16 = 0xCC;
|
|
sfr PWM1PH = 0xAF;
|
|
sfr PWM1PL = 0xAE;
|
|
sfr16 PWM1P_16 = 0xAE;
|
|
sfr PWM2PH = 0xBD;
|
|
sfr PWM2PL = 0xBC;
|
|
sfr16 PWM2P_16 = 0xBC;
|
|
sfr PWM0DH = 0xCF;
|
|
sfr PWM0DL = 0xCE;
|
|
sfr16 PWM0D_16 = 0xCE;
|
|
sfr PWM1DH = 0xA5;
|
|
sfr PWM1DL = 0xA4;
|
|
sfr16 PWM1D_16 = 0xA4;
|
|
sfr PWM2DH = 0xBF;
|
|
sfr PWM2DL = 0xBE;
|
|
sfr16 PWM2D_16 = 0xBE;
|
|
|
|
/* PCA */
|
|
sfr P0CF = 0x98; //BANK1
|
|
sfr P0CMD = 0x99; //BANK1
|
|
sfr P0CPM0 = 0x9A; //BANK1
|
|
sfr P0CPM1 = 0x9B; //BANK1
|
|
sfr P0TOPL = 0x9E; //BANK1
|
|
sfr P0TOPH = 0x9F; //BANK1
|
|
sfr16 P0TOP_16 = 0x9E; //BANK1
|
|
sfr P0CPL0 = 0x9C; //BANK1
|
|
sfr P0CPH0 = 0x9D; //BANK1
|
|
sfr16 P0CP0_16 = 0x9C; //BANK1
|
|
sfr P0CPL1 = 0xD4; //BANK1
|
|
sfr P0CPH1 = 0xD5; //BANK1
|
|
sfr16 P0CP1_16 = 0xD4; //BANK1
|
|
sfr PCACON = 0xD8; //BANK1
|
|
sfr P0FORCE = 0xDC; //BANK1
|
|
sfr P1CF = 0xC0; //BANK1
|
|
sfr P1CMD = 0xC1; //BANK1
|
|
sfr P1CPM0 = 0xC2; //BANK1
|
|
sfr P1CPM1 = 0xC3; //BANK1
|
|
sfr P1TOPL = 0xC6; //BANK1
|
|
sfr P1TOPH = 0xC7; //BANK1
|
|
sfr16 P1TOP_16 = 0xC6; //BANK1
|
|
sfr P1CPL0 = 0xC4; //BANK1
|
|
sfr P1CPH0 = 0xC5; //BANK1
|
|
sfr16 P1CP0_16 = 0xC4; //BANK1
|
|
sfr P1CPL1 = 0xE4; //BANK1
|
|
sfr P1CPH1 = 0xE5; //BANK1
|
|
sfr16 P1CP1_16 = 0xE4; //BANK1
|
|
sfr P1FORCE = 0xEC; //BANK1
|
|
sfr P2CF = 0xC8; //BANK1
|
|
sfr P2CMD = 0xC9; //BANK1
|
|
sfr P2CPM0 = 0xCA; //BANK1
|
|
sfr P2CPM1 = 0xCB; //BANK1
|
|
sfr P2TOPL = 0xCE; //BANK1
|
|
sfr P2TOPH = 0xCF; //BANK1
|
|
sfr16 P2TOP_16 = 0xCE; //BANK1
|
|
sfr P2CPL0 = 0xCC; //BANK1
|
|
sfr P2CPH0 = 0xCD; //BANK1
|
|
sfr16 P2CP0_16 = 0xCC; //BANK1
|
|
sfr P2CPL1 = 0xF4; //BANK1
|
|
sfr P2CPH1 = 0xF5; //BANK1
|
|
sfr16 P2CP1_16 = 0xF4; //BANK1
|
|
sfr P2FORCE = 0xFC; //BANK1
|
|
|
|
/* LPD*/
|
|
sfr LPDCON = 0xB3;
|
|
sfr LPDSEL = 0xBB;
|
|
|
|
/* CRC */
|
|
sfr CRCCON = 0xC1;
|
|
sfr CRCDH = 0xC3;
|
|
sfr CRCDL = 0xC2;
|
|
sfr16 CRCD_16 = 0xC2;
|
|
sfr CRCSTAL = 0xD4;
|
|
sfr CRCSTAH = 0xD5;
|
|
sfr16 CRCSTA_16 = 0xD4;
|
|
sfr CRCSTOL = 0xDC;
|
|
sfr CRCSTOH = 0xDD;
|
|
sfr16 CRCSTO_16 = 0xDC;
|
|
|
|
/* LCM */
|
|
sfr UART0CR = 0xC4;
|
|
sfr UART1CR = 0xC5;
|
|
sfr TWICR = 0xC6;
|
|
sfr PWMCR = 0xCA;
|
|
sfr CEXCR = 0xCB;
|
|
sfr ECICR = 0xC9;
|
|
|
|
/*-------------------------- BIT Register --------------------------*/
|
|
/* SPSTA */
|
|
sbit SPEN = 0xFF;
|
|
sbit SPIF = 0xFE;
|
|
sbit MODF = 0xFD;
|
|
sbit WCOL = 0xFC;
|
|
sbit RXOV = 0xFB;
|
|
|
|
/* B */
|
|
|
|
/* EXF0 */
|
|
sbit IT41 = 0xEF;
|
|
sbit IT40 = 0xEE;
|
|
sbit IT31 = 0xED;
|
|
sbit IT30 = 0xEC;
|
|
sbit IT21 = 0xEB;
|
|
sbit IT20 = 0xEA;
|
|
sbit IE3 = 0xE9;
|
|
sbit IE2 = 0xE8;
|
|
/* ACC */
|
|
|
|
/* EXF1 */
|
|
sbit IF47 = 0xDF;
|
|
sbit IF46 = 0xDE;
|
|
sbit IF45 = 0xDD;
|
|
sbit IF44 = 0xDC;
|
|
sbit IF43 = 0xDB;
|
|
sbit IF42 = 0xDA;
|
|
sbit IF41 = 0xD9;
|
|
sbit IF40 = 0xD8;
|
|
|
|
/* PSW */
|
|
sbit CY = 0xD7;
|
|
sbit AC = 0xD6;
|
|
sbit F0 = 0xD5;
|
|
sbit RS1 = 0xD4;
|
|
sbit RS0 = 0xD3;
|
|
sbit OV = 0xD2;
|
|
sbit F1 = 0xD1;
|
|
sbit P = 0xD0;
|
|
|
|
/*TWICON*/
|
|
sbit TOUT = 0xCF;
|
|
sbit ENTWI = 0xCE;
|
|
sbit STA = 0xCD;
|
|
sbit STO = 0xCC;
|
|
sbit TWINT = 0xCB;
|
|
sbit AA = 0xCA;
|
|
sbit TFREE = 0xC9;
|
|
sbit EFREE = 0xC8;
|
|
|
|
/* P5 */
|
|
sbit P5_0 = P5^0; //BANK1
|
|
sbit P5_1 = P5^1; //BANK1
|
|
|
|
|
|
/* P4 */
|
|
sbit P4_0 = P4^0;
|
|
sbit P4_1 = P4^1;
|
|
sbit P4_2 = P4^2;
|
|
sbit P4_3 = P4^3;
|
|
sbit P4_4 = P4^4;
|
|
sbit P4_5 = P4^5;
|
|
sbit P4_6 = P4^6;
|
|
sbit P4_7 = P4^7;
|
|
|
|
/* IPL0 */
|
|
sbit PINTL = 0xBF;
|
|
sbit PADCL = 0xBE;
|
|
sbit PT3L = 0xBD;
|
|
sbit PS0L = 0xBC;
|
|
sbit PCF1L = 0xBB;
|
|
sbit PX1L = 0xBA;
|
|
sbit PCF0L = 0xB9;
|
|
sbit PX0L = 0xB8;
|
|
|
|
/* P3 */
|
|
sbit P3_0 = P3^0;
|
|
sbit P3_1 = P3^1;
|
|
sbit P3_2 = P3^2;
|
|
sbit P3_3 = P3^3;
|
|
sbit P3_4 = P3^4;
|
|
sbit P3_5 = P3^5;
|
|
sbit P3_6 = P3^6;
|
|
sbit P3_7 = P3^7;
|
|
|
|
/* IEN0 */
|
|
sbit EA = 0xAF;
|
|
sbit EADC = 0xAE;
|
|
sbit ET3 = 0xAD;
|
|
sbit ES0 = 0xAC;
|
|
sbit EPCA1 = 0xAB;
|
|
sbit EX1 = 0xAA;
|
|
sbit EPCA0 = 0xA9;
|
|
sbit EX0 = 0xA8;
|
|
|
|
/* P2 */
|
|
sbit P2_0 = P2^0;
|
|
sbit P2_1 = P2^1;
|
|
sbit P2_2 = P2^2;
|
|
sbit P2_3 = P2^3;
|
|
sbit P2_4 = P2^4;
|
|
sbit P2_5 = P2^5;
|
|
sbit P2_6 = P2^6;
|
|
sbit P2_7 = P2^7;
|
|
|
|
/* SCON */
|
|
sbit SM0_FE = 0x9F;
|
|
sbit SM1_RXOV = 0x9E;
|
|
sbit SM2_TXCOL = 0x9D;
|
|
sbit REN = 0x9C;
|
|
sbit TB8 = 0x9B;
|
|
sbit RB8 = 0x9A;
|
|
sbit TI = 0x99;
|
|
sbit RI = 0x98;
|
|
|
|
/* P1 */
|
|
sbit P1_0 = P1^0;
|
|
sbit P1_1 = P1^1;
|
|
sbit P1_2 = P1^2;
|
|
sbit P1_3 = P1^3;
|
|
sbit P1_4 = P1^4;
|
|
sbit P1_5 = P1^5;
|
|
sbit P1_6 = P1^6;
|
|
sbit P1_7 = P1^7;
|
|
|
|
/* TCON */
|
|
|
|
sbit IE1 = 0x8B;
|
|
sbit IT1 = 0x8A;
|
|
sbit IE0 = 0x89;
|
|
sbit IT0 = 0x88;
|
|
|
|
/* P0 */
|
|
sbit P0_0 = P0^0;
|
|
sbit P0_1 = P0^1;
|
|
sbit P0_2 = P0^2;
|
|
sbit P0_3 = P0^3;
|
|
sbit P0_4 = P0^4;
|
|
sbit P0_5 = P0^5;
|
|
sbit P0_6 = P0^6;
|
|
sbit P0_7 = P0^7;
|
|
|
|
/* PCACON */
|
|
sbit PR2 = 0xDA; //BANK1
|
|
sbit PR1 = 0xD9; //BANK1
|
|
sbit PR0 = 0xD8; //BANK1
|
|
|
|
/* P2CF */
|
|
sbit CF2 = 0xCF; //BANK1
|
|
sbit P2CCF1 = 0xC9; //BANK1
|
|
sbit P2CCF0 = 0xC8; //BANK1
|
|
|
|
/* P1CF */
|
|
sbit CF1 = 0xC7; //BANK1
|
|
sbit P1CCF1 = 0xC1; //BANK1
|
|
sbit P1CCF0 = 0xC0; //BANK1
|
|
|
|
/* SCON1 */
|
|
sbit SM10_FE1 = 0xA7; //BANK1
|
|
sbit SM11_RXOV1 = 0xA6; //BANK1
|
|
sbit SM12_TXCOL1 = 0xA5; //BANK1
|
|
sbit REN1 = 0xA4; //BANK1
|
|
sbit TB81 = 0xA3; //BANK1
|
|
sbit RB81 = 0xA2; //BANK1
|
|
sbit TI1 = 0xA1; //BANK1
|
|
sbit RI1 = 0xA0; //BANK1
|
|
|
|
/* P0CF */
|
|
sbit CF0 = 0x9F; //BANK1
|
|
sbit P0CCF1 = 0x99; //BANK1
|
|
sbit P0CCF0 = 0x98; //BANK1
|
|
|
|
/* SCON2 */
|
|
sbit SM20_FE2 = 0x97; //BANK1
|
|
sbit SM21_RXOV2 = 0x96; //BANK1
|
|
sbit SM22_TXCOL2 = 0x95; //BANK1
|
|
sbit REN2 = 0x94; //BANK1
|
|
sbit TB82 = 0x93; //BANK1
|
|
sbit RB82 = 0x92; //BANK1
|
|
sbit TI2 = 0x91; //BANK1
|
|
sbit RI2 = 0x90; //BANK1
|
|
|
|
/* T3CON */
|
|
sbit TF3 = 0x8F; //BANK1
|
|
sbit T3PS1 = 0x8D; //BANK1
|
|
sbit T3PS0 = 0x8C; //BANK1
|
|
sbit TR3 = 0x8A; //BANK1
|
|
sbit T3CLKS1 = 0x89; //BANK1
|
|
sbit T3CLKS0 = 0x88; //BANK1
|
|
|
|
#endif
|