/*H****************************************************************************
* NAME: at89c5131.h
*------------------------------------------------------------------------------
* PURPOSE:
* This file defines Sfr registers and BIT Registers for AT89C5131
* (Keil notation is the reference)
******************************************************************************/
#ifndef _REG5131_H_
#define _REG5131_H_
/*
** _____ H E A D E R S ________________________________________________________
*/
/*
** _____ F U N C T I O N D E F I N I T I O N ________________________________
*/
#define Sfr(x,y) sfr x = y
#define Sfr16(x,y) sfr16 x = y
#define Sbit(x,y,z) sbit x = y ^ z
/*
** _____ B Y T E R E G I S T E R S __________________________________________
*/
/* _____ C 5 1 C O R E ______________________________________________________
*/
Sfr ( ACC , 0xE0 ) ; /* Sfr ( ACC, bit addressable)*/
Sfr ( B , 0xF0 ) ; /* Sfr ( B, bit addressable)*/
Sfr ( PSW , 0xD0 ) ; /* Sfr ( PSW, bit addressable)*/
Sfr ( SP , 0x81 ) ;
Sfr ( DPL , 0x82 ) ;
Sfr ( DPH , 0x83 ) ;
Sfr16 (DPTR, 0x82);
#define PM_PD 0x02 /* Power Down Mode */
#define PM_IDL 0x01 /* Idle Mode */
/* _____ I / O P O R T ____________________________________________________
*/
Sfr ( P0 , 0x80 ) ; /* Sfr ( P0, bit addressable)*/
Sbit ( P0_7 , P0 , 7 ) ;
Sbit ( P0_6 , P0 , 6 ) ;
Sbit ( P0_5 , P0 , 5 ) ;
Sbit ( P0_4 , P0 , 4 ) ;
Sbit ( P0_3 , P0 , 3 ) ;
Sbit ( P0_2 , P0 , 2 ) ;
Sbit ( P0_1 , P0 , 1 ) ;
Sbit ( P0_0 , P0 , 0 ) ;
Sfr ( P1 , 0x90 ) ; /* Sfr ( P1, bit addressable)*/
Sbit ( P1_7 , P1 , 7 ) ;
Sbit ( P1_6 , P1 , 6 ) ;
Sbit ( P1_5 , P1 , 5 ) ;
Sbit ( P1_4 , P1 , 4 ) ;
Sbit ( P1_3 , P1 , 3 ) ;
Sbit ( P1_2 , P1 , 2 ) ;
Sbit ( P1_1 , P1 , 1 ) ;
Sbit ( P1_0 , P1 , 0 ) ;
Sfr ( P2 , 0xA0 ) ; /* Sfr ( P2, bit addressable)*/
Sbit ( P2_7 , P2 , 7 ) ;
Sbit ( P2_6 , P2 , 6 ) ;
Sbit ( P2_5 , P2 , 5 ) ;
Sbit ( P2_4 , P2 , 4 ) ;
Sbit ( P2_3 , P2 , 3 ) ;
Sbit ( P2_2 , P2 , 2 ) ;
Sbit ( P2_1 , P2 , 1 ) ;
Sbit ( P2_0 , P2 , 0 ) ;
Sfr ( P3 , 0xB0 ) ; /* Sfr ( P3, bit addressable)*/
Sbit ( P3_7 , P3 , 7 ) ;
Sbit ( P3_6 , P3 , 6 ) ;
Sbit ( P3_5 , P3 , 5 ) ;
Sbit ( P3_4 , P3 , 4 ) ;
Sbit ( P3_3 , P3 , 3 ) ;
Sbit ( P3_2 , P3 , 2 ) ;
Sbit ( P3_1 , P3 , 1 ) ;
Sbit ( P3_0 , P3 , 0 ) ;
Sfr ( P4 , 0xC0 ) ; /* Sfr ( P4, bit addressable)*/
Sbit ( P4_1 , P4 , 1 ) ;
Sbit ( P4_0 , P4 , 0 ) ;
/* _____ T I M E R S __________________________________________________________
*/
Sfr ( TH0 , 0x8C ) ;
Sfr ( TL0 , 0x8A ) ;
Sfr ( TH1 , 0x8D ) ;
Sfr ( TL1 , 0x8B ) ;
Sfr ( TH2 , 0xCD ) ;
Sfr ( TL2 , 0xCC ) ;
Sfr ( TCON , 0x88 ) ; /* Sfr ( TCON, bit addressable)*/
Sfr ( TMOD , 0x89 ) ;
Sfr ( T2CON , 0xC8 ) ; /* Sfr ( T2CON, bit addressable)*/
Sfr ( T2MOD , 0xC9 ) ;
Sfr ( RCAP2H, 0xCB ) ;
Sfr ( RCAP2L, 0xCA ) ;
Sfr ( WDTRST, 0xA6 ) ;
Sfr ( WDTPRG, 0xA7 ) ;
/* TCON bits */
Sbit ( TF1 , TCON , 7 ) ;
Sbit ( TR1 , TCON , 6 ) ;
Sbit ( TF0 , TCON , 5 ) ;
Sbit ( TR0 , TCON , 4 ) ;
Sbit ( IE1_ , TCON , 3 ) ;
Sbit ( IT1 , TCON , 2 ) ;
Sbit ( IE0_ , TCON , 1 ) ;
Sbit ( IT0 , TCON , 0 ) ;
/* T2CON bits */
Sbit ( TF2 , T2CON , 7 ) ;
Sbit ( EXF2 , T2CON , 6 ) ;
Sbit ( RCLK , T2CON , 5 ) ;
Sbit ( TCLK , T2CON , 4 ) ;
Sbit ( EXEN2 , T2CON , 3 ) ;
Sbit ( TR2 , T2CON , 2 ) ;
Sbit ( C_T2 , T2CON , 1 ) ;
Sbit ( CP_RL2, T2CON , 0 ) ;
/* _____ S E R I A L I / O _________________________________________________
*/
Sfr ( SCON , 0x98 ) ;
Sfr ( SBUF , 0x99 ) ;
Sfr ( SADEN , 0xB9 ) ;
Sfr ( SADDR , 0xA9 ) ;
Sbit ( FE_SM0, SCON , 7 ) ;
Sbit ( SM1 , SCON , 6 ) ;
Sbit ( SM2 , SCON , 5 ) ;
Sbit ( REN , SCON , 4 ) ;
Sbit ( TB8 , SCON , 3 ) ;
Sbit ( RB8 , SCON , 2 ) ;
Sbit ( TI , SCON , 1 ) ;
Sbit ( RI , SCON , 0 ) ;
/* _____ B A U D R A T E G E N E R A T O R ______________________________
*/
Sfr ( BRL , 0x9A ) ;
Sfr ( BDRCON, 0x9B ) ;
/* _____ P C A ________________________________________________________________
*/
Sfr ( CCON , 0xD8 ) ; /* Sfr ( CCON, bit addressable)*/
Sfr ( CMOD , 0xD9 ) ;
Sfr ( CL , 0xE9 ) ;
Sfr ( CH , 0xF9 ) ;
Sfr ( CCAPM0 , 0xDA ) ;
Sfr ( CCAPM1 , 0xDB ) ;
Sfr ( CCAPM2 , 0xDC ) ;
Sfr ( CCAPM3 , 0xDD ) ;
Sfr ( CCAPM4 , 0xDE ) ;
Sfr ( CCAP0H , 0xFA ) ;
Sfr ( CCAP1H , 0xFB ) ;
Sfr ( CCAP2H , 0xFC ) ;
Sfr ( CCAP3H , 0xFD ) ;
Sfr ( CCAP4H , 0xFE ) ;
Sfr ( CCAP0L , 0xEA ) ;
Sfr ( CCAP1L , 0xEB ) ;
Sfr ( CCAP2L , 0xEC ) ;
Sfr ( CCAP3L , 0xED ) ;
Sfr ( CCAP4L , 0xEE ) ;
/* CCON bits */
Sbit ( CF , CCON , 7 ) ;
Sbit ( CR , CCON , 6 ) ;
Sbit ( CCF4 , CCON , 4 ) ;
Sbit ( CCF3 , CCON , 3 ) ;
Sbit ( CCF2 , CCON , 2 ) ;
Sbit ( CCF1 , CCON , 1 ) ;
Sbit ( CCF0 , CCON , 0 ) ;
/* _____ I N T E R R U P T ____________________________________________________
*/
Sfr ( IEN0 , 0xA8 ) ; /* Sfr ( IEN0, bit addressable */
Sfr ( IEN1 , 0xB1 ) ;
Sfr ( IPL0 , 0xB8 ) ; /* Sfr ( IPL0, bit addressable */
Sfr ( IPH0 , 0xB7 ) ;
Sfr ( IPL1 , 0xB2 ) ;
Sfr ( IPH1 , 0xB3 ) ;
/* IE0 bits */
Sbit ( EA , IEN0 , 7 ) ;
Sbit ( EC , IEN0 , 6 ) ;
Sbit ( ET2 , IEN0 , 5 ) ;
Sbit ( ES , IEN0 , 4 ) ;
Sbit ( ET1 , IEN0 , 3 ) ;
Sbit ( EX1 , IEN0 , 2 ) ;
Sbit ( ET0 , IEN0 , 1 ) ;
Sbit ( EX0 , IEN0 , 0 ) ;
/* IPL0 bits */
Sbit ( PPCL , IPL0 , 6 ) ;
Sbit ( PT2L , IPL0 , 5 ) ;
Sbit ( PSL , IPL0 , 4 ) ;
Sbit ( PTIL , IPL0 , 3 ) ;
Sbit ( PXIL , IPL0 , 2 ) ;
Sbit ( PT0L , IPL0 , 1 ) ;
Sbit ( PX0L , IPL0 , 0 ) ;
/* _____ P L L ________________________________________________________________
*/
Sfr ( PLLCON, 0xA3 ) ;
Sfr ( PLLDIV, 0xA4 ) ;
/* _____ K E Y B O A R D ______________________________________________________
*/
Sfr ( KBF , 0x9E ) ;
Sfr ( KBE , 0x9D ) ;
Sfr ( KBLS , 0x9C ) ;
/* _____ T W I ________________________________________________________________
*/
Sfr ( SSCON , 0x93 ) ;
Sfr ( SSCS , 0x94 ) ;
Sfr ( SSDAT , 0x95 ) ;
Sfr ( SSADR , 0x96 ) ;
/* _____ S P I ________________________________________________________________
*/
Sfr ( SPCON , 0xC3 ) ;
Sfr ( SPSTA , 0xC4 ) ;
Sfr ( SPDAT , 0xC5 ) ;
/* _____ U S B ________________________________________________________________
*/
Sfr ( USBCON , 0xBC ) ;
Sfr ( USBADDR, 0xC6 ) ;
Sfr ( USBINT , 0xBD ) ;
Sfr ( USBIEN , 0xBE ) ;
Sfr ( UEPNUM , 0xC7 ) ;
Sfr ( UEPCONX, 0xD4 ) ;
Sfr ( UEPSTAX, 0xCE ) ;
Sfr ( UEPRST , 0xD5 ) ;
Sfr ( UEPINT , 0xF8 ) ; /* Sfr ( UEPINT, bit addressable) */
Sfr ( UEPIEN , 0xC2 ) ;
Sfr ( UEPDATX, 0xCF ) ;
Sfr ( UBYCTLX, 0xE2 ) ;
Sfr ( UBYCTHX, 0xE3 ) ;
Sfr ( UDPADDL, 0xD6 ) ;
Sfr ( UDPADDH, 0xD7 ) ;
Sfr ( UFNUML , 0xBA ) ;
Sfr ( UFNUMH , 0xBB ) ;
/* UEPINT bits */
Sbit ( EP6INT , UEPINT , 6 ) ;
Sbit ( EP5INT , UEPINT , 5 ) ;
Sbit ( EP4INT , UEPINT , 4 ) ;
Sbit ( EP3INT , UEPINT , 3 ) ;
Sbit ( EP2INT , UEPINT , 2 ) ;
Sbit ( EP1INT , UEPINT , 1 ) ;
Sbit ( EP0INT , UEPINT , 0 ) ;
/* _____ M I S C . ____________________________________________________________
*/
Sfr ( PCON , 0x87 ) ;
Sfr ( AUXR , 0x8E ) ;
Sfr ( AUXR1 , 0xA2 ) ;
Sfr ( CKCON0 , 0x8F ) ;
Sfr ( CKCON1 , 0xAF ) ;
Sfr ( CKSEL , 0x85 ) ;
Sfr ( LEDCON , 0xF1 ) ;
Sfr ( FCON , 0xD1 ) ;
Sfr ( EECON , 0xD2 ) ;
#endif /* _REG5131_H_ */