/** * @file HWB_STC8_BASE.h * * @param Project DEVICE_GENERAL_ATY_LIB * * @author ATY * * @copyright * - Copyright 2017 - 2023 MZ-ATY * - This code follows: * - MZ-ATY Various Contents Joint Statement - * * https://mengze.top/MZ-ATY_VCJS * - CC 4.0 BY-NC-SA - * * https://creativecommons.org/licenses/by-nc-sa/4.0/ * - Your use will be deemed to have accepted the terms of this statement. * * @brief base defines and functions of STC8 * * @version * - 1_01_230514 > ATY * -# Preliminary version, first Release ******************************************************************************** */ #ifndef __HWB_STC8_BASE_H #define __HWB_STC8_BASE_H #include "INCLUDE_ATY.h" /******************************* For user *************************************/ SFR(CCON, 0xd8); SBIT(CR, CCON, 6); SFR(CMOD, 0xd9); SFR(CL, 0xe9); SFR(CH, 0xf9); SFR(CCAPM0, 0xda); SFR(CCAP0L, 0xea); SFR(CCAP0H, 0xfa); SFR(PCA_PWM0, 0xf2); /******************************************************************************/ /* Defines ********************************************************************/ #define _P0 0x80 SFR(P0, _P0); SBIT(P00, _P0, 0); SBIT(P01, _P0, 1); SBIT(P02, _P0, 2); SBIT(P03, _P0, 3); SBIT(P04, _P0, 4); SBIT(P05, _P0, 5); SBIT(P06, _P0, 6); SBIT(P07, _P0, 7); SFR(SP, 0x81); SFR(DPL, 0x82); SFR(DPH, 0x83); SFR(S4CON, 0x84); SFR(S4BUF, 0x85); SFR(PCON, 0x87); #define _TCON 0x88 SFR(TCON, _TCON); 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); SFR(TMOD, 0x89); SFR(TL0, 0x8A); SFR(TL1, 0x8B); SFR(TH0, 0x8C); SFR(TH1, 0x8D); SFR(AUXR, 0x8E); SFR(INTCLKO, 0x8F); #define _P1 0x90 SFR(P1, _P1); SBIT(P10, _P1, 0); SBIT(P11, _P1, 1); SBIT(P12, _P1, 2); SBIT(P13, _P1, 3); SBIT(P14, _P1, 4); SBIT(P15, _P1, 5); SBIT(P16, _P1, 6); SBIT(P17, _P1, 7); SFR(P1M1, 0x91); SFR(P1M0, 0x92); SFR(P0M1, 0x93); SFR(P0M0, 0x94); SFR(P2M1, 0x95); SFR(P2M0, 0x96); #define _SCON 0x98 SFR(SCON, _SCON); SBIT(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); SFR(SBUF, 0x99); SFR(S2CON, 0x9A); SFR(S2BUF, 0x9B); SFR(IRCBAND, 0x9D); SFR(LIRTRIM, 0x9E); SFR(IRTRIM, 0x9F); #define _P2 0xA0 SFR(P2, _P2); SBIT(P20, _P2, 0); SBIT(P21, _P2, 1); SBIT(P22, _P2, 2); SBIT(P23, _P2, 3); SBIT(P24, _P2, 4); SBIT(P25, _P2, 5); SBIT(P26, _P2, 6); SBIT(P27, _P2, 7); SFR(BUS_SPEED, 0xA1); SFR(P_SW1, 0xA2); #define _IE 0xA8 SFR(IE, _IE); SBIT(EA, _IE, 7); SBIT(ELVD, _IE, 6); SBIT(EADC, _IE, 5); SBIT(ES, _IE, 4); SBIT(ET1, _IE, 3); SBIT(EX1, _IE, 2); SBIT(ET0, _IE, 1); SBIT(EX0, _IE, 0); SFR(SADDR, 0xA9); SFR(WKTCL, 0xAA); SFR(WKTCH, 0xAB); SFR(S3CON, 0xAC); SFR(S3BUF, 0xAD); SFR(TA, 0xAE); SFR(IE2, 0xAF); #define _P3 0xB0 SFR(P3, _P3); SBIT(P30, _P3, 0); SBIT(P31, _P3, 1); SBIT(P32, _P3, 2); SBIT(P33, _P3, 3); SBIT(P34, _P3, 4); SBIT(P35, _P3, 5); SBIT(P36, _P3, 6); SBIT(P37, _P3, 7); SFR(P3M1, 0xB1); SFR(P3M0, 0xB2); SFR(P4M1, 0xB3); SFR(P4M0, 0xB4); SFR(IP2, 0xB5); SFR(IP2H, 0xB6); SFR(IPH, 0xB7); #define _IP 0xB8 SFR(IP, _IP); SBIT(PPCA, _IP, 7); SBIT(PLVD, _IP, 6); SBIT(PADC, _IP, 5); SBIT(PS, _IP, 4); SBIT(PT1, _IP, 3); SBIT(PX1, _IP, 2); SBIT(PT0, _IP, 1); SBIT(PX0, _IP, 0); SFR(SADEN, 0xB9); SFR(P_SW2, 0xBA); SFR(ADC_CONTR, 0xBC); SFR(ADC_RES, 0xBD); SFR(ADC_RESL, 0xBE); #define _P4 0xC0 SFR(P4, _P4); SBIT(P40, _P4, 0); SBIT(P41, _P4, 1); SBIT(P42, _P4, 2); SBIT(P43, _P4, 3); SBIT(P44, _P4, 4); SBIT(P45, _P4, 5); SBIT(P46, _P4, 6); SBIT(P47, _P4, 7); SFR(WDT_CONTR, 0xC1); SFR(IAP_DATA, 0xC2); SFR(IAP_ADDRH, 0xC3); SFR(IAP_ADDRL, 0xC4); SFR(IAP_CMD, 0xC5); SFR(IAP_TRIG, 0xC6); SFR(IAP_CONTR, 0xC7); #define _P5 0xC8 SFR(P5, _P5); SBIT(P50, _P5, 0); SBIT(P51, _P5, 1); SBIT(P52, _P5, 2); SBIT(P53, _P5, 3); SBIT(P54, _P5, 4); SBIT(P55, _P5, 5); SBIT(P56, _P5, 6); SBIT(P57, _P5, 7); SFR(P5M1, 0xC9); SFR(P5M0, 0xCA); SFR(P6M1, 0xCB); SFR(P6M0, 0xCC); SFR(SPSTAT, 0xCD); SFR(SPCTL, 0xCE); SFR(SPDAT, 0xCF); #define _PSW 0xD0 SFR(PSW, _PSW); SBIT(CY, _PSW, 7); SBIT(AC, _PSW, 6); SBIT(F0, _PSW, 5); SBIT(RS1, _PSW, 4); SBIT(RS0, _PSW, 3); SBIT(OV, _PSW, 2); SBIT(F1, _PSW, 1); SBIT(P, _PSW, 0); SFR(T4T3M, 0xD1); SFR(T4H, 0xD2); SFR(T4L, 0xD3); SFR(T3H, 0xD4); SFR(T3L, 0xD5); SFR(T2H, 0xD6); SFR(T2L, 0xD7); SFR(ACC, 0xE0); #define _P6 0xE8 SFR(P6, _P6); SBIT(P60, _P6, 0); SBIT(P61, _P6, 1); SBIT(P62, _P6, 2); SBIT(P63, _P6, 3); SBIT(P64, _P6, 4); SBIT(P65, _P6, 5); SBIT(P66, _P6, 6); SBIT(P67, _P6, 7); SFR(B, 0xF0); #define _P7 0xF8 SFR(P7, _P7); SBIT(P70, _P7, 0); SBIT(P71, _P7, 1); SBIT(P72, _P7, 2); SBIT(P73, _P7, 3); SBIT(P74, _P7, 4); SBIT(P75, _P7, 5); SBIT(P76, _P7, 6); SBIT(P77, _P7, 7); /* Functions ******************************************************************/ #define STC8_IO_INIT \ do{ \ P0M0 = 0x00; \ P0M1 = 0x00; \ P1M0 = 0x00; \ P1M1 = 0x00; \ P2M0 = 0x00; \ P2M1 = 0x00; \ P3M0 = 0x00; \ P3M1 = 0x00; \ P4M0 = 0x00; \ P4M1 = 0x00; \ P5M0 = 0x00; \ P5M1 = 0x00; \ } while (0) #ifdef SYSLED_PIN #define MCU_Sleep \ do{ \ /* Close io or other part */ \ /* LOG_ATY("\r\n\r\nSleeping...\r\n\r\n"); */ \ SYSLED_PIN = 1; \ /* MCU enter lose power mode */ \ PCON = 0x02; \ /* wont into IT function after wake up */ \ _nop_(); \ _nop_(); \ _nop_(); \ _nop_(); \ /* LOG_ATY("\r\n\r\nWaking...\r\n\r\n"); */ \ } while (0) #define MCU_Idle \ do{ \ /* Close io or other part */ \ /* LOG_ATY("\r\n\r\nSleeping...\r\n\r\n"); */ \ SYSLED_PIN = 1; \ /* MCU enter IDLE mode */ \ PCON = 0x01; \ /* wont into IT function after wake up */ \ _nop_(); \ _nop_(); \ _nop_(); \ _nop_(); \ /* LOG_ATY("\r\n\r\nWaking...\r\n\r\n"); */ \ } while (0) #else #define MCU_Sleep \ do{ \ /* Close io or other part */ \ /* LOG_ATY("\r\n\r\nSleeping...\r\n\r\n"); */ \ /* MCU enter lose power mode */ \ PCON = 0x02; \ /* wont into IT function after wake up */ \ _nop_(); \ _nop_(); \ _nop_(); \ _nop_(); \ /* LOG_ATY("\r\n\r\nWaking...\r\n\r\n"); */ \ } while (0) #define MCU_Idle \ do{ \ /* Close io or other part */ \ /* LOG_ATY("\r\n\r\nSleeping...\r\n\r\n"); */ \ /* MCU enter IDLE mode */ \ PCON = 0x01; \ /* wont into IT function after wake up */ \ _nop_(); \ _nop_(); \ _nop_(); \ _nop_(); \ /* LOG_ATY("\r\n\r\nWaking...\r\n\r\n"); */ \ } while (0) #endif /* SYSLED_PIN */ \ #define MCU_Restart \ do{ \ /* @STCISP# Auto ISP Flash Download */ \ IAP_CONTR |= 0x60; \ } while (0) /* IO Modes *******************************************************************/ // #define SET_IO_MODE(p) #endif /* __HWB_STC8_BASE_H */ /******************************** End Of File *********************************/