////////////////////////////////////////////////////////////////////////// /// COPYRIGHT NOTICE /// Copyright (c) 2018, 传控科技 /// All rights reserved. /// /// @file __C51_MACRO_H_ /// @brief macro define 和cpu相关,可以和同一个系列的cpu共享 /// ///(本文件实现的功能的详述) /// /// @version 1.1 CCsens technology /// @author CC /// @date 20180102 // ////////////////////////////////////////////////////////////////////////// #ifndef __STC_MACRO_H_ #define __STC_MACRO_H_ #include #include "../clib/bit.h" #define NOP() _nop_() #define D_P07_ON() P07 = 1 #define D_P06_ON() P06 = 1 #define D_P05_ON() P05 = 1 #define D_P04_ON() P04 = 1 #define D_P03_ON() P03 = 1 #define D_P02_ON() P02 = 1 #define D_P01_ON() P01 = 1 #define D_P00_ON() P00 = 1 #define D_P07_OFF() P07 = 0 #define D_P06_OFF() P06 = 0 #define D_P05_OFF() P05 = 0 #define D_P04_OFF() P04 = 0 #define D_P03_OFF() P03 = 0 #define D_P02_OFF() P02 = 0 #define D_P01_OFF() P01 = 0 #define D_P00_OFF() P00 = 0 #define D_P07_AT() (P07) #define D_P06_AT() (P06) #define D_P05_AT() (P05) #define D_P04_AT() (P04) #define D_P03_AT() (P03) #define D_P02_AT() (P02) #define D_P01_AT() (P01) #define D_P00_AT() (P00) #define D_P07_REV() P07 = ~P07 #define D_P06_REV() P06 = ~P06 #define D_P05_REV() P05 = ~P05 #define D_P04_REV() P04 = ~P04 #define D_P03_REV() P03 = ~P03 #define D_P02_REV() P02 = ~P02 #define D_P01_REV() P01 = ~P01 #define D_P00_REV() P00 = ~P00 #define D_P17_ON() P17 = 1 #define D_P16_ON() P16 = 1 #define D_P15_ON() P15 = 1 #define D_P14_ON() P14 = 1 #define D_P13_ON() P13 = 1 #define D_P12_ON() P12 = 1 #define D_P11_ON() P11 = 1 #define D_P10_ON() P10 = 1 #define D_P17_OFF() P17 = 0 #define D_P16_OFF() P16 = 0 #define D_P15_OFF() P15 = 0 #define D_P14_OFF() P14 = 0 #define D_P13_OFF() P13 = 0 #define D_P12_OFF() P12 = 0 #define D_P11_OFF() P11 = 0 #define D_P10_OFF() P10 = 0 #define D_P17_AT() (P17) #define D_P16_AT() (P16) #define D_P15_AT() (P15) #define D_P14_AT() (P14) #define D_P13_AT() (P13) #define D_P12_AT() (P12) #define D_P11_AT() (P11) #define D_P10_AT() (P10) #define D_P17_REV() P17 = ~P17 #define D_P16_REV() P16 = ~P16 #define D_P15_REV() P15 = ~P15 #define D_P14_REV() P14 = ~P14 #define D_P13_REV() P13 = ~P13 #define D_P12_REV() P12 = ~P12 #define D_P11_REV() P11 = ~P11 #define D_P10_REV() P10 = ~P10 #define D_P27_ON() P27 = 1 #define D_P26_ON() P26 = 1 #define D_P25_ON() P25 = 1 #define D_P24_ON() P24 = 1 #define D_P23_ON() P23 = 1 #define D_P22_ON() P22 = 1 #define D_P21_ON() P21 = 1 #define D_P20_ON() P20 = 1 #define D_P27_OFF() P27 = 0 #define D_P26_OFF() P26 = 0 #define D_P25_OFF() P25 = 0 #define D_P24_OFF() P24 = 0 #define D_P23_OFF() P23 = 0 #define D_P22_OFF() P22 = 0 #define D_P21_OFF() P21 = 0 #define D_P20_OFF() P20 = 0 #define D_P27_AT() (P27) #define D_P26_AT() (P26) #define D_P25_AT() (P25) #define D_P24_AT() (P24) #define D_P23_AT() (P23) #define D_P22_AT() (P22) #define D_P21_AT() (P21) #define D_P20_AT() (P20) #define D_P27_REV() P27 = ~P27 #define D_P26_REV() P26 = ~P26 #define D_P25_REV() P25 = ~P25 #define D_P24_REV() P24 = ~P24 #define D_P23_REV() P23 = ~P23 #define D_P22_REV() P22 = ~P22 #define D_P21_REV() P21 = ~P21 #define D_P20_REV() P20 = ~P20 #define D_P37_ON() P37 = 1 #define D_P36_ON() P36 = 1 #define D_P35_ON() P35 = 1 #define D_P34_ON() P34 = 1 #define D_P33_ON() P33 = 1 #define D_P32_ON() P32 = 1 #define D_P31_ON() P31 = 1 #define D_P30_ON() P30 = 1 #define D_P37_OFF() P37 = 0 #define D_P36_OFF() P36 = 0 #define D_P35_OFF() P35 = 0 #define D_P34_OFF() P34 = 0 #define D_P33_OFF() P33 = 0 #define D_P32_OFF() P32 = 0 #define D_P31_OFF() P31 = 0 #define D_P30_OFF() P30 = 0 #define D_P37_AT() (P37) #define D_P36_AT() (P36) #define D_P35_AT() (P35) #define D_P34_AT() (P34) #define D_P33_AT() (P33) #define D_P32_AT() (P32) #define D_P31_AT() (P31) #define D_P30_AT() (P30) #define D_P37_REV() P37 = ~P37 #define D_P36_REV() P36 = ~P36 #define D_P35_REV() P35 = ~P35 #define D_P34_REV() P34 = ~P34 #define D_P33_REV() P33 = ~P33 #define D_P32_REV() P32 = ~P32 #define D_P31_REV() P31 = ~P31 #define D_P30_REV() P30 = ~P30 #define D_P47_ON() P47 = 1 #define D_P46_ON() P46 = 1 #define D_P45_ON() P45 = 1 #define D_P44_ON() P44 = 1 #define D_P43_ON() P43 = 1 #define D_P42_ON() P42 = 1 #define D_P41_ON() P41 = 1 #define D_P40_ON() P40 = 1 #define D_P47_OFF() P47 = 0 #define D_P46_OFF() P46 = 0 #define D_P45_OFF() P45 = 0 #define D_P44_OFF() P44 = 0 #define D_P43_OFF() P43 = 0 #define D_P42_OFF() P42 = 0 #define D_P41_OFF() P41 = 0 #define D_P40_OFF() P40 = 0 #define D_P47_AT() (P47) #define D_P46_AT() (P46) #define D_P45_AT() (P45) #define D_P44_AT() (P44) #define D_P43_AT() (P43) #define D_P42_AT() (P42) #define D_P41_AT() (P41) #define D_P40_AT() (P40) #define D_P47_REV() P47 = ~P47 #define D_P46_REV() P46 = ~P46 #define D_P45_REV() P45 = ~P45 #define D_P44_REV() P44 = ~P44 #define D_P43_REV() P43 = ~P43 #define D_P42_REV() P42 = ~P42 #define D_P41_REV() P41 = ~P41 #define D_P40_REV() P40 = ~P40 #define D_P57_ON() P57 = 1 #define D_P56_ON() P56 = 1 #define D_P55_ON() P55 = 1 #define D_P54_ON() P54 = 1 #define D_P53_ON() P53 = 1 #define D_P52_ON() P52 = 1 #define D_P51_ON() P51 = 1 #define D_P50_ON() P50 = 1 #define D_P57_OFF() P57 = 0 #define D_P56_OFF() P56 = 0 #define D_P55_OFF() P55 = 0 #define D_P54_OFF() P54 = 0 #define D_P53_OFF() P53 = 0 #define D_P52_OFF() P52 = 0 #define D_P51_OFF() P51 = 0 #define D_P50_OFF() P50 = 0 #define D_P57_AT() (P57) #define D_P56_AT() (P56) #define D_P55_AT() (P55) #define D_P54_AT() (P54) #define D_P53_AT() (P53) #define D_P52_AT() (P52) #define D_P51_AT() (P51) #define D_P50_AT() (P50) #define D_P57_REV() P57 = ~P57 #define D_P56_REV() P56 = ~P56 #define D_P55_REV() P55 = ~P55 #define D_P54_REV() P54 = ~P54 #define D_P53_REV() P53 = ~P53 #define D_P52_REV() P52 = ~P52 #define D_P51_REV() P51 = ~P51 #define D_P50_REV() P50 = ~P50 #define D_P67_ON() P67 = 1 #define D_P66_ON() P66 = 1 #define D_P65_ON() P65 = 1 #define D_P64_ON() P64 = 1 #define D_P63_ON() P63 = 1 #define D_P62_ON() P62 = 1 #define D_P61_ON() P61 = 1 #define D_P60_ON() P60 = 1 #define D_P67_OFF() P67 = 0 #define D_P66_OFF() P66 = 0 #define D_P65_OFF() P65 = 0 #define D_P64_OFF() P64 = 0 #define D_P63_OFF() P63 = 0 #define D_P62_OFF() P62 = 0 #define D_P61_OFF() P61 = 0 #define D_P60_OFF() P60 = 0 #define D_P67_AT() (P67) #define D_P66_AT() (P66) #define D_P65_AT() (P65) #define D_P64_AT() (P64) #define D_P63_AT() (P63) #define D_P62_AT() (P62) #define D_P61_AT() (P61) #define D_P60_AT() (P60) #define D_P67_REV() P67 = ~P67 #define D_P66_REV() P66 = ~P66 #define D_P65_REV() P65 = ~P65 #define D_P64_REV() P64 = ~P64 #define D_P63_REV() P63 = ~P63 #define D_P62_REV() P62 = ~P62 #define D_P61_REV() P61 = ~P61 #define D_P60_REV() P60 = ~P60 #define D_P77_ON() P77 = 1 #define D_P76_ON() P76 = 1 #define D_P75_ON() P75 = 1 #define D_P74_ON() P74 = 1 #define D_P73_ON() P73 = 1 #define D_P72_ON() P72 = 1 #define D_P71_ON() P71 = 1 #define D_P70_ON() P70 = 1 #define D_P77_OFF() P77 = 0 #define D_P76_OFF() P76 = 0 #define D_P75_OFF() P75 = 0 #define D_P74_OFF() P74 = 0 #define D_P73_OFF() P73 = 0 #define D_P72_OFF() P72 = 0 #define D_P71_OFF() P71 = 0 #define D_P70_OFF() P70 = 0 #define D_P77_AT() (P77) #define D_P76_AT() (P76) #define D_P75_AT() (P75) #define D_P74_AT() (P74) #define D_P73_AT() (P73) #define D_P72_AT() (P72) #define D_P71_AT() (P71) #define D_P70_AT() (P70) #define D_P77_REV() P77 = ~P77 #define D_P76_REV() P76 = ~P76 #define D_P75_REV() P75 = ~P75 #define D_P74_REV() P74 = ~P74 #define D_P73_REV() P73 = ~P73 #define D_P72_REV() P72 = ~P72 #define D_P71_REV() P71 = ~P71 #define D_P70_REV() P70 = ~P70 #define D_stdIO_P0_ALL() P0M1=0;P0M0=0; #define D_HighI_P0_ALL() P0M1=0;P0M0=0XFF; #define D_HighR_P0_ALL() P0M1=0XFF;P0M0=0; #define D_OpenD_P0_ALL() P0M1=0XFF;P0M0=0XFF; #define D_stdIO_P1_ALL() P1M1=0;P1M0=0; #define D_HighI_P1_ALL() P1M1=0;P1M0=0XFF; #define D_HighR_P1_ALL() P1M1=0XFF;P1M0=0; #define D_OpenD_P1_ALL() P1M1=0XFF;P1M0=0XFF; #define D_stdIO_P2_ALL() P2M1=0;P2M0=0; #define D_HighI_P2_ALL() P2M1=0;P2M0=0XFF; #define D_HighR_P2_ALL() P2M1=0XFF;P2M0=0; #define D_OpenD_P2_ALL() P2M1=0XFF;P2M0=0XFF; #define D_stdIO_P3_ALL() P3M1=0;P3M0=0; #define D_HighI_P3_ALL() P3M1=0;P3M0=0XFF; #define D_HighR_P3_ALL() P3M1=0XFF;P3M0=0; #define D_OpenD_P3_ALL() P3M1=0XFF;P3M0=0XFF; #define D_stdIO_P4_ALL() P4M1=0;P4M0=0; #define D_HighI_P4_ALL() P4M1=0;P4M0=0XFF; #define D_HighR_P4_ALL() P4M1=0XFF;P4M0=0; #define D_OpenD_P4_ALL() P4M1=0XFF;P4M0=0XFF; #define D_stdIO_P5_ALL() P5M1=0;P5M0=0; #define D_HighI_P5_ALL() P5M1=0;P5M0=0XFF; #define D_HighR_P5_ALL() P5M1=0XFF;P5M0=0; #define D_OpenD_P5_ALL() P5M1=0XFF;P5M0=0XFF; #define D_stdIO_P6_ALL() P6M1=0;P6M0=0; #define D_HighI_P6_ALL() P6M1=0;P6M0=0XFF; #define D_HighR_P6_ALL() P6M1=0XFF;P6M0=0; #define D_OpenD_P6_ALL() P6M1=0XFF;P6M0=0XFF; #define D_stdIO_P7_ALL() P7M1=0;P7M0=0; #define D_HighI_P7_ALL() P7M1=0;P7M0=0XFF; #define D_HighR_P7_ALL() P7M1=0XFF;P7M0=0; #define D_OpenD_P7_ALL() P7M1=0XFF;P7M0=0XFF; ////Notice: n: BITN0---BITN7 不是0-7 eg:D_stdIO_P0(BITN0) #define D_stdIO_P0(n) BITN_0(P0M1,n);BITN_0(P0M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P0(n) BITN_0(P0M1,n);BITN_1(P0M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P0(n) BITN_1(P0M1,n);BITN_0(P0M0,n); /////////10 高阻 #define D_OpenD_P0(n) BITN_1(P0M1,n);BITN_1(P0M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #define D_stdIO_P1(n) BITN_0(P1M1,n);BITN_0(P1M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P1(n) BITN_0(P1M1,n);BITN_1(P1M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P1(n) BITN_1(P1M1,n);BITN_0(P1M0,n); /////////10 高阻 #define D_OpenD_P1(n) BITN_1(P1M1,n);BITN_1(P1M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #define D_stdIO_P2(n) BITN_0(P2M1,n);BITN_0(P2M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P2(n) BITN_0(P2M1,n);BITN_1(P2M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P2(n) BITN_1(P2M1,n);BITN_0(P2M0,n); /////////10 高阻 #define D_OpenD_P2(n) BITN_1(P2M1,n);BITN_1(P2M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #define D_stdIO_P3(n) BITN_0(P3M1,n);BITN_0(P3M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P3(n) BITN_0(P3M1,n);BITN_1(P3M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P3(n) BITN_1(P3M1,n);BITN_0(P3M0,n); /////////10 高阻 #define D_OpenD_P3(n) BITN_1(P3M1,n);BITN_1(P3M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #define D_stdIO_P4(n) BITN_0(P4M1,n);BITN_0(P4M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P4(n) BITN_0(P4M1,n);BITN_1(P4M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P4(n) BITN_1(P4M1,n);BITN_0(P4M0,n); /////////10 高阻 #define D_OpenD_P4(n) BITN_1(P4M1,n);BITN_1(P4M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #define D_stdIO_P5(n) BITN_0(P5M1,n);BITN_0(P5M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P5(n) BITN_0(P5M1,n);BITN_1(P5M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P5(n) BITN_1(P5M1,n);BITN_0(P5M0,n); /////////10 高阻 #define D_OpenD_P5(n) BITN_1(P5M1,n);BITN_1(P5M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #define D_stdIO_P6(n) BITN_0(P6M1,n);BITN_0(P6M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P6(n) BITN_0(P6M1,n);BITN_1(P6M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P6(n) BITN_1(P6M1,n);BITN_0(P6M0,n); /////////10 高阻 #define D_OpenD_P6(n) BITN_1(P6M1,n);BITN_1(P6M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #define D_stdIO_P7(n) BITN_0(P7M1,n);BITN_0(P7M0,n); //////00 准双向口 灌电流20mA 拉电流270-150uS #define D_HighI_P7(n) BITN_0(P7M1,n);BITN_1(P7M0,n); //////01 推挽输出 20mA 加限流 #define D_HighR_P7(n) BITN_1(P7M1,n);BITN_0(P7M0,n); /////////10 高阻 #define D_OpenD_P7(n) BITN_1(P7M1,n);BITN_1(P7M0,n); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平 #endif //__STC_MACRO_H_