数码之家

 找回密码
 立即注册
搜索
查看: 5757|回复: 19

分享一个自己写的STC单片机设置GPIO的宏

[复制链接]
发表于 2021-1-19 19:03:46 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我自己用了很久了,分享出来希望可以帮助大家。
注意:port代表端口号,pin代表引脚编号,例如P12的端口号是1,引脚编号是2。例如要设置P12为推挽输出,则使用:GPIO_MODE_PP(1,2); 即可

  1. //设置单个GPIO的工作模式
  2. #define GPIO_MODE_BIIO(port,pin)  do{ P##port##M1 &= (unsigned char)(~(1<<pin)); P##port##M0 &= (unsigned char)(~(1<<pin)); }while(0) /*传统的双向IO*/
  3. #define GPIO_MODE_PP(port,pin)    do{ P##port##M1 &= (unsigned char)(~(1<<pin)); P##port##M0 |= (unsigned char)(1<<pin);    }while(0) /*推挽输出*/
  4. #define GPIO_MODE_HIZIN(port,pin) do{ P##port##M1 |= (unsigned char)(1<<pin);    P##port##M0 &= (unsigned char)(~(1<<pin)); }while(0) /*高阻输入*/
  5. #define GPIO_MODE_OD(port,pin)    do{ P##port##M1 |= (unsigned char)(1<<pin);    P##port##M0 |= (unsigned char)(1<<pin);    }while(0) /*开漏输出*/

  6. //设置一个端口下的所有GPIO为同种工作模式
  7. #define PORT_MODE_BIIO(port)      do{ P##port##M1 =0x00;  P##port##M0 =0x00; }while(0)  /*传统的双向IO*/
  8. #define PORT_MODE_PP(port)        do{ P##port##M1 =0x00;  P##port##M0 =0xFF; }while(0)  /*推挽输出*/
  9. #define PORT_MODE_HIZIN(port)     do{ P##port##M1 =0xFF;  P##port##M0 =0x00; }while(0)  /*高阻输入*/
  10. #define PORT_MODE_OD(port)        do{ P##port##M1 =0xFF;  P##port##M0 =0xFF; }while(0)  /*开漏输出*/
复制代码
建议大家可以多用宏封装对寄存器的操作,一方面是方便,一方面是有助于程序的抽象和理解。
这个事情本来是STC公司的软件开发部门的事,但是人家STC不做啊,:lol:

打赏

参与人数 4家元 +66 收起 理由
autopccopy + 1 STC官网早有库函数,含GPIO!
水表君 + 5 支持!
flishmen + 30 優秀文章
家睦 + 30

查看全部打赏

发表于 2021-1-19 22:23:28 | 显示全部楼层
好东西,下载来用下了.封成头文件可能好用点.
回复 支持 反对

使用道具 举报

发表于 2021-1-19 22:48:09 | 显示全部楼层
谢谢楼主分享   好东西, 再设置就方便 明了
回复 支持 反对

使用道具 举报

发表于 2021-1-19 23:20:39 | 显示全部楼层
#define SET_BIT(R, BIT)                        (R |= (1 << BIT))
#define CLR_BIT(R, BIT)                        (R &= ~(1 << BIT))
#define GET_BIT(R, BIT)                        (((R & (1 << BIT)) >> BIT) & 0x01)

#define        EaxSFR()                        gBIT_TMP = EA; EA = 0; P_SW2 |=  0x80                /* MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展SFR(XSFR) */
#define        EaxRAM()                        P_SW2 &= ~0x80; EA = gBIT_TMP                       /* MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展RAM(XRAM) */

#define set_P_SW2_EAXFR                SET_BIT(P_SW2, 7)
#define clr_P_SW2_EAXFR     CLR_BIT(P_SW2, 7)
#define get_P_SW2_EAXFR     GET_BIT(P_SW2, 7)

#define Set_All_GPIO_Input_Mode         P0M1 = 0xff; P0M0 = 0x00; P1M1 = 0xff; P1M0 = 0x00; P2M1 = 0xff; P2M0 = 0x00; P3M1 = 0xff; P3M0 = 0x00; P4M1 = 0xff; P4M0 = 0x00; P5M1 = 0xff; P5M0 = 0x00; P6M1 = 0xff; P6M0 = 0x00; P7M1 = 0xff; P7M0 = 0x00
#define Set_All_GPIO_Quasi_Mode         P0M1 = 0x00; P0M0 = 0x00; P1M1 = 0x00; P1M0 = 0x00; P2M1 = 0x00; P2M0 = 0x00; P3M1 = 0x00; P3M0 = 0x00; P4M1 = 0x00; P4M0 = 0x00; P5M1 = 0x00; P5M0 = 0x00; P6M1 = 0x00; P6M0 = 0x00; P7M1 = 0x00; P7M0 = 0x00

//----------------- Define Port as Quasi mode ----------------
#define P00_Quasi_Mode                        CLR_BIT(P0M1, 0); CLR_BIT(P0M0, 0)
#define P01_Quasi_Mode                        CLR_BIT(P0M1, 1); CLR_BIT(P0M0, 1)
#define P02_Quasi_Mode                        CLR_BIT(P0M1, 2); CLR_BIT(P0M0, 2)
#define P03_Quasi_Mode                        CLR_BIT(P0M1, 3); CLR_BIT(P0M0, 3)
#define P04_Quasi_Mode                        CLR_BIT(P0M1, 4); CLR_BIT(P0M0, 4)
#define P05_Quasi_Mode                        CLR_BIT(P0M1, 5); CLR_BIT(P0M0, 5)
#define P06_Quasi_Mode                        CLR_BIT(P0M1, 6); CLR_BIT(P0M0, 6)
#define P07_Quasi_Mode                        CLR_BIT(P0M1, 7); CLR_BIT(P0M0, 7)

#define P10_Quasi_Mode                        CLR_BIT(P1M1, 0); CLR_BIT(P1M0, 0)
#define P11_Quasi_Mode                        CLR_BIT(P1M1, 1); CLR_BIT(P1M0, 1)
#define P12_Quasi_Mode                        CLR_BIT(P1M1, 2); CLR_BIT(P1M0, 2)
#define P13_Quasi_Mode                        CLR_BIT(P1M1, 3); CLR_BIT(P1M0, 3)
#define P14_Quasi_Mode                        CLR_BIT(P1M1, 4); CLR_BIT(P1M0, 4)
#define P15_Quasi_Mode                        CLR_BIT(P1M1, 5); CLR_BIT(P1M0, 5)
#define P16_Quasi_Mode                        CLR_BIT(P1M1, 6); CLR_BIT(P1M0, 6)
#define P17_Quasi_Mode                        CLR_BIT(P1M1, 7); CLR_BIT(P1M0, 7)

#define P20_Quasi_Mode                        CLR_BIT(P2M1, 0); CLR_BIT(P2M0, 0)
#define P21_Quasi_Mode                        CLR_BIT(P2M1, 1); CLR_BIT(P2M0, 1)
#define P22_Quasi_Mode                        CLR_BIT(P2M1, 2); CLR_BIT(P2M0, 2)
#define P23_Quasi_Mode                        CLR_BIT(P2M1, 3); CLR_BIT(P2M0, 3)
#define P24_Quasi_Mode                        CLR_BIT(P2M1, 4); CLR_BIT(P2M0, 4)
#define P25_Quasi_Mode                        CLR_BIT(P2M1, 5); CLR_BIT(P2M0, 5)
#define P26_Quasi_Mode                        CLR_BIT(P2M1, 6); CLR_BIT(P2M0, 6)
#define P27_Quasi_Mode                        CLR_BIT(P2M1, 7); CLR_BIT(P2M0, 7)

#define P30_Quasi_Mode                        CLR_BIT(P3M1, 0); CLR_BIT(P3M0, 0)
#define P31_Quasi_Mode                        CLR_BIT(P3M1, 1); CLR_BIT(P3M0, 1)
#define P32_Quasi_Mode                        CLR_BIT(P3M1, 2); CLR_BIT(P3M0, 2)
#define P33_Quasi_Mode                        CLR_BIT(P3M1, 3); CLR_BIT(P3M0, 3)
#define P34_Quasi_Mode                        CLR_BIT(P3M1, 4); CLR_BIT(P3M0, 4)
#define P35_Quasi_Mode                        CLR_BIT(P3M1, 5); CLR_BIT(P3M0, 5)
#define P36_Quasi_Mode                        CLR_BIT(P3M1, 6); CLR_BIT(P3M0, 6)
#define P37_Quasi_Mode                        CLR_BIT(P3M1, 7); CLR_BIT(P3M0, 7)

#define P40_Quasi_Mode                        CLR_BIT(P4M1, 0); CLR_BIT(P4M0, 0)
#define P41_Quasi_Mode                        CLR_BIT(P4M1, 1); CLR_BIT(P4M0, 1)
#define P42_Quasi_Mode                        CLR_BIT(P4M1, 2); CLR_BIT(P4M0, 2)
#define P43_Quasi_Mode                        CLR_BIT(P4M1, 3); CLR_BIT(P4M0, 3)
#define P44_Quasi_Mode                        CLR_BIT(P4M1, 4); CLR_BIT(P4M0, 4)
#define P45_Quasi_Mode                        CLR_BIT(P4M1, 5); CLR_BIT(P4M0, 5)
#define P46_Quasi_Mode                        CLR_BIT(P4M1, 6); CLR_BIT(P4M0, 6)
#define P47_Quasi_Mode                        CLR_BIT(P4M1, 7); CLR_BIT(P4M0, 7)

#define P50_Quasi_Mode                        CLR_BIT(P5M1, 0); CLR_BIT(P5M0, 0)
#define P51_Quasi_Mode                        CLR_BIT(P5M1, 1); CLR_BIT(P5M0, 1)
#define P52_Quasi_Mode                        CLR_BIT(P5M1, 2); CLR_BIT(P5M0, 2)
#define P53_Quasi_Mode                        CLR_BIT(P5M1, 3); CLR_BIT(P5M0, 3)
#define P54_Quasi_Mode                        CLR_BIT(P5M1, 4); CLR_BIT(P5M0, 4)

#define P60_Quasi_Mode                        CLR_BIT(P6M1, 0); CLR_BIT(P6M0, 0)
#define P61_Quasi_Mode                        CLR_BIT(P6M1, 1); CLR_BIT(P6M0, 1)
#define P62_Quasi_Mode                        CLR_BIT(P6M1, 2); CLR_BIT(P6M0, 2)
#define P63_Quasi_Mode                        CLR_BIT(P6M1, 3); CLR_BIT(P6M0, 3)
#define P64_Quasi_Mode                        CLR_BIT(P6M1, 4); CLR_BIT(P6M0, 4)
#define P65_Quasi_Mode                        CLR_BIT(P6M1, 5); CLR_BIT(P6M0, 5)
#define P66_Quasi_Mode                        CLR_BIT(P6M1, 6); CLR_BIT(P6M0, 6)
#define P67_Quasi_Mode                        CLR_BIT(P6M1, 7); CLR_BIT(P6M0, 7)

#define P70_Quasi_Mode                        CLR_BIT(P7M1, 0); CLR_BIT(P7M0, 0)
#define P71_Quasi_Mode                        CLR_BIT(P7M1, 1); CLR_BIT(P7M0, 1)
#define P72_Quasi_Mode                        CLR_BIT(P7M1, 2); CLR_BIT(P7M0, 2)
#define P73_Quasi_Mode                        CLR_BIT(P7M1, 3); CLR_BIT(P7M0, 3)
#define P74_Quasi_Mode                        CLR_BIT(P7M1, 4); CLR_BIT(P7M0, 4)
#define P75_Quasi_Mode                        CLR_BIT(P7M1, 5); CLR_BIT(P7M0, 5)
#define P76_Quasi_Mode                        CLR_BIT(P7M1, 6); CLR_BIT(P7M0, 6)
#define P77_Quasi_Mode                        CLR_BIT(P7M1, 7); CLR_BIT(P7M0, 7)

//------------ Define Port as Push Pull mode -----------
#define P00_PushPull_Mode                        CLR_BIT(P0M1, 0); SET_BIT(P0M0, 0)
#define P01_PushPull_Mode                        CLR_BIT(P0M1, 1); SET_BIT(P0M0, 1)
#define P02_PushPull_Mode                        CLR_BIT(P0M1, 2); SET_BIT(P0M0, 2)
#define P03_PushPull_Mode                        CLR_BIT(P0M1, 3); SET_BIT(P0M0, 3)
#define P04_PushPull_Mode                        CLR_BIT(P0M1, 4); SET_BIT(P0M0, 4)
#define P05_PushPull_Mode                        CLR_BIT(P0M1, 5); SET_BIT(P0M0, 5)
#define P06_PushPull_Mode                        CLR_BIT(P0M1, 6); SET_BIT(P0M0, 6)
#define P07_PushPull_Mode                        CLR_BIT(P0M1, 7); SET_BIT(P0M0, 7)

#define P10_PushPull_Mode                        CLR_BIT(P1M1, 0); SET_BIT(P1M0, 0)
#define P11_PushPull_Mode                        CLR_BIT(P1M1, 1); SET_BIT(P1M0, 1)
#define P12_PushPull_Mode                        CLR_BIT(P1M1, 2); SET_BIT(P1M0, 2)
#define P13_PushPull_Mode                        CLR_BIT(P1M1, 3); SET_BIT(P1M0, 3)
#define P14_PushPull_Mode                        CLR_BIT(P1M1, 4); SET_BIT(P1M0, 4)
#define P15_PushPull_Mode                        CLR_BIT(P1M1, 5); SET_BIT(P1M0, 5)
#define P16_PushPull_Mode                        CLR_BIT(P1M1, 6); SET_BIT(P1M0, 6)
#define P17_PushPull_Mode                        CLR_BIT(P1M1, 7); SET_BIT(P1M0, 7)

#define P20_PushPull_Mode                        CLR_BIT(P2M1, 0); SET_BIT(P2M0, 0)
#define P21_PushPull_Mode                        CLR_BIT(P2M1, 1); SET_BIT(P2M0, 1)
#define P22_PushPull_Mode                        CLR_BIT(P2M1, 2); SET_BIT(P2M0, 2)
#define P23_PushPull_Mode                        CLR_BIT(P2M1, 3); SET_BIT(P2M0, 3)
#define P24_PushPull_Mode                        CLR_BIT(P2M1, 4); SET_BIT(P2M0, 4)
#define P25_PushPull_Mode                        CLR_BIT(P2M1, 5); SET_BIT(P2M0, 5)
#define P26_PushPull_Mode                        CLR_BIT(P2M1, 6); SET_BIT(P2M0, 6)
#define P27_PushPull_Mode                        CLR_BIT(P2M1, 7); SET_BIT(P2M0, 7)

#define P30_PushPull_Mode                        CLR_BIT(P3M1, 0); SET_BIT(P3M0, 0)
#define P31_PushPull_Mode                        CLR_BIT(P3M1, 1); SET_BIT(P3M0, 1)
#define P32_PushPull_Mode                        CLR_BIT(P3M1, 2); SET_BIT(P3M0, 2)
#define P33_PushPull_Mode                        CLR_BIT(P3M1, 3); SET_BIT(P3M0, 3)
#define P34_PushPull_Mode                        CLR_BIT(P3M1, 4); SET_BIT(P3M0, 4)
#define P35_PushPull_Mode                        CLR_BIT(P3M1, 5); SET_BIT(P3M0, 5)
#define P36_PushPull_Mode                        CLR_BIT(P3M1, 6); SET_BIT(P3M0, 6)
#define P37_PushPull_Mode                        CLR_BIT(P3M1, 7); SET_BIT(P3M0, 7)

#define P40_PushPull_Mode                        CLR_BIT(P4M1, 0); SET_BIT(P4M0, 0)
#define P41_PushPull_Mode                        CLR_BIT(P4M1, 1); SET_BIT(P4M0, 1)
#define P42_PushPull_Mode                        CLR_BIT(P4M1, 2); SET_BIT(P4M0, 2)
#define P43_PushPull_Mode                        CLR_BIT(P4M1, 3); SET_BIT(P4M0, 3)
#define P44_PushPull_Mode                        CLR_BIT(P4M1, 4); SET_BIT(P4M0, 4)
#define P45_PushPull_Mode                        CLR_BIT(P4M1, 5); SET_BIT(P4M0, 5)
#define P46_PushPull_Mode                        CLR_BIT(P4M1, 6); SET_BIT(P4M0, 6)
#define P47_PushPull_Mode                        CLR_BIT(P4M1, 7); SET_BIT(P4M0, 7)

#define P50_PushPull_Mode                        CLR_BIT(P5M1, 0); SET_BIT(P5M0, 0)
#define P51_PushPull_Mode                        CLR_BIT(P5M1, 1); SET_BIT(P5M0, 1)
#define P52_PushPull_Mode                        CLR_BIT(P5M1, 2); SET_BIT(P5M0, 2)
#define P53_PushPull_Mode                        CLR_BIT(P5M1, 3); SET_BIT(P5M0, 3)
#define P54_PushPull_Mode                        CLR_BIT(P5M1, 4); SET_BIT(P5M0, 4)

#define P60_PushPull_Mode                        CLR_BIT(P6M1, 0); SET_BIT(P6M0, 0)
#define P61_PushPull_Mode                        CLR_BIT(P6M1, 1); SET_BIT(P6M0, 1)
#define P62_PushPull_Mode                        CLR_BIT(P6M1, 2); SET_BIT(P6M0, 2)
#define P63_PushPull_Mode                        CLR_BIT(P6M1, 3); SET_BIT(P6M0, 3)
#define P64_PushPull_Mode                        CLR_BIT(P6M1, 4); SET_BIT(P6M0, 4)
#define P65_PushPull_Mode                        CLR_BIT(P6M1, 5); SET_BIT(P6M0, 5)
#define P66_PushPull_Mode                        CLR_BIT(P6M1, 6); SET_BIT(P6M0, 6)
#define P67_PushPull_Mode                        CLR_BIT(P6M1, 7); SET_BIT(P6M0, 7)

#define P70_PushPull_Mode                        CLR_BIT(P7M1, 0); SET_BIT(P7M0, 0)
#define P71_PushPull_Mode                        CLR_BIT(P7M1, 1); SET_BIT(P7M0, 1)
#define P72_PushPull_Mode                        CLR_BIT(P7M1, 2); SET_BIT(P7M0, 2)
#define P73_PushPull_Mode                        CLR_BIT(P7M1, 3); SET_BIT(P7M0, 3)
#define P74_PushPull_Mode                        CLR_BIT(P7M1, 4); SET_BIT(P7M0, 4)
#define P75_PushPull_Mode                        CLR_BIT(P7M1, 5); SET_BIT(P7M0, 5)
#define P76_PushPull_Mode                        CLR_BIT(P7M1, 6); SET_BIT(P7M0, 6)
#define P77_PushPull_Mode                        CLR_BIT(P7M1, 7); SET_BIT(P7M0, 7)

//------------- Define Port as Input mode ------------
#define P00_Input_Mode                        SET_BIT(P0M1, 0); CLR_BIT(P0M0, 0)
#define P01_Input_Mode                        SET_BIT(P0M1, 1); CLR_BIT(P0M0, 1)
#define P02_Input_Mode                        SET_BIT(P0M1, 2); CLR_BIT(P0M0, 2)
#define P03_Input_Mode                        SET_BIT(P0M1, 3); CLR_BIT(P0M0, 3)
#define P04_Input_Mode                        SET_BIT(P0M1, 4); CLR_BIT(P0M0, 4)
#define P05_Input_Mode                        SET_BIT(P0M1, 5); CLR_BIT(P0M0, 5)
#define P06_Input_Mode                        SET_BIT(P0M1, 6); CLR_BIT(P0M0, 6)
#define P07_Input_Mode                        SET_BIT(P0M1, 7); CLR_BIT(P0M0, 7)

#define P10_Input_Mode                        SET_BIT(P1M1, 0); CLR_BIT(P1M0, 0)
#define P11_Input_Mode                        SET_BIT(P1M1, 1); CLR_BIT(P1M0, 1)
#define P12_Input_Mode                        SET_BIT(P1M1, 2); CLR_BIT(P1M0, 2)
#define P13_Input_Mode                        SET_BIT(P1M1, 3); CLR_BIT(P1M0, 3)
#define P14_Input_Mode                        SET_BIT(P1M1, 4); CLR_BIT(P1M0, 4)
#define P15_Input_Mode                        SET_BIT(P1M1, 5); CLR_BIT(P1M0, 5)
#define P16_Input_Mode                        SET_BIT(P1M1, 6); CLR_BIT(P1M0, 6)
#define P17_Input_Mode                        SET_BIT(P1M1, 7); CLR_BIT(P1M0, 7)

#define P20_Input_Mode                        SET_BIT(P2M1, 0); CLR_BIT(P2M0, 0)
#define P21_Input_Mode                        SET_BIT(P2M1, 1); CLR_BIT(P2M0, 1)
#define P22_Input_Mode                        SET_BIT(P2M1, 2); CLR_BIT(P2M0, 2)
#define P23_Input_Mode                        SET_BIT(P2M1, 3); CLR_BIT(P2M0, 3)
#define P24_Input_Mode                        SET_BIT(P2M1, 4); CLR_BIT(P2M0, 4)
#define P25_Input_Mode                        SET_BIT(P2M1, 5); CLR_BIT(P2M0, 5)
#define P26_Input_Mode                        SET_BIT(P2M1, 6); CLR_BIT(P2M0, 6)
#define P27_Input_Mode                        SET_BIT(P2M1, 7); CLR_BIT(P2M0, 7)

#define P30_Input_Mode                        SET_BIT(P3M1, 0); CLR_BIT(P3M0, 0)
#define P31_Input_Mode                        SET_BIT(P3M1, 1); CLR_BIT(P3M0, 1)
#define P32_Input_Mode                        SET_BIT(P3M1, 2); CLR_BIT(P3M0, 2)
#define P33_Input_Mode                        SET_BIT(P3M1, 3); CLR_BIT(P3M0, 3)
#define P34_Input_Mode                        SET_BIT(P3M1, 4); CLR_BIT(P3M0, 4)
#define P35_Input_Mode                        SET_BIT(P3M1, 5); CLR_BIT(P3M0, 5)
#define P36_Input_Mode                        SET_BIT(P3M1, 6); CLR_BIT(P3M0, 6)
#define P37_Input_Mode                        SET_BIT(P3M1, 7); CLR_BIT(P3M0, 7)

#define P40_Input_Mode                        SET_BIT(P4M1, 0); CLR_BIT(P4M0, 0)
#define P41_Input_Mode                        SET_BIT(P4M1, 1); CLR_BIT(P4M0, 1)
#define P42_Input_Mode                        SET_BIT(P4M1, 2); CLR_BIT(P4M0, 2)
#define P43_Input_Mode                        SET_BIT(P4M1, 3); CLR_BIT(P4M0, 3)
#define P44_Input_Mode                        SET_BIT(P4M1, 4); CLR_BIT(P4M0, 4)
#define P45_Input_Mode                        SET_BIT(P4M1, 5); CLR_BIT(P4M0, 5)
#define P46_Input_Mode                        SET_BIT(P4M1, 6); CLR_BIT(P4M0, 6)
#define P47_Input_Mode                        SET_BIT(P4M1, 7); CLR_BIT(P4M0, 7)

#define P50_Input_Mode                        SET_BIT(P5M1, 0); CLR_BIT(P5M0, 0)
#define P51_Input_Mode                        SET_BIT(P5M1, 1); CLR_BIT(P5M0, 1)
#define P52_Input_Mode                        SET_BIT(P5M1, 2); CLR_BIT(P5M0, 2)
#define P53_Input_Mode                        SET_BIT(P5M1, 3); CLR_BIT(P5M0, 3)
#define P54_Input_Mode                        SET_BIT(P5M1, 4); CLR_BIT(P5M0, 4)

#define P60_Input_Mode                        SET_BIT(P6M1, 0); CLR_BIT(P6M0, 0)
#define P61_Input_Mode                        SET_BIT(P6M1, 1); CLR_BIT(P6M0, 1)
#define P62_Input_Mode                        SET_BIT(P6M1, 2); CLR_BIT(P6M0, 2)
#define P63_Input_Mode                        SET_BIT(P6M1, 3); CLR_BIT(P6M0, 3)
#define P64_Input_Mode                        SET_BIT(P6M1, 4); CLR_BIT(P6M0, 4)
#define P65_Input_Mode                        SET_BIT(P6M1, 5); CLR_BIT(P6M0, 5)
#define P66_Input_Mode                        SET_BIT(P6M1, 6); CLR_BIT(P6M0, 6)
#define P67_Input_Mode                        SET_BIT(P6M1, 7); CLR_BIT(P6M0, 7)

#define P70_Input_Mode                        SET_BIT(P7M1, 0); CLR_BIT(P7M0, 0)
#define P71_Input_Mode                        SET_BIT(P7M1, 1); CLR_BIT(P7M0, 1)
#define P72_Input_Mode                        SET_BIT(P7M1, 2); CLR_BIT(P7M0, 2)
#define P73_Input_Mode                        SET_BIT(P7M1, 3); CLR_BIT(P7M0, 3)
#define P74_Input_Mode                        SET_BIT(P7M1, 4); CLR_BIT(P7M0, 4)
#define P75_Input_Mode                        SET_BIT(P7M1, 5); CLR_BIT(P7M0, 5)
#define P76_Input_Mode                        SET_BIT(P7M1, 6); CLR_BIT(P7M0, 6)
#define P77_Input_Mode                        SET_BIT(P7M1, 7); CLR_BIT(P7M0, 7)

//------------- Define Port as OpenDrain mode ------------
#define P00_OpenDrain_Mode                        SET_BIT(P0M1, 0); SET_BIT(P0M0, 0)
#define P01_OpenDrain_Mode                        SET_BIT(P0M1, 1); SET_BIT(P0M0, 1)
#define P02_OpenDrain_Mode                        SET_BIT(P0M1, 2); SET_BIT(P0M0, 2)
#define P03_OpenDrain_Mode                        SET_BIT(P0M1, 3); SET_BIT(P0M0, 3)
#define P04_OpenDrain_Mode                        SET_BIT(P0M1, 4); SET_BIT(P0M0, 4)
#define P05_OpenDrain_Mode                        SET_BIT(P0M1, 5); SET_BIT(P0M0, 5)
#define P06_OpenDrain_Mode                        SET_BIT(P0M1, 6); SET_BIT(P0M0, 6)
#define P07_OpenDrain_Mode                        SET_BIT(P0M1, 7); SET_BIT(P0M0, 7)

#define P10_OpenDrain_Mode                        SET_BIT(P1M1, 0); SET_BIT(P1M0, 0)
#define P11_OpenDrain_Mode                        SET_BIT(P1M1, 1); SET_BIT(P1M0, 1)
#define P12_OpenDrain_Mode                        SET_BIT(P1M1, 2); SET_BIT(P1M0, 2)
#define P13_OpenDrain_Mode                        SET_BIT(P1M1, 3); SET_BIT(P1M0, 3)
#define P14_OpenDrain_Mode                        SET_BIT(P1M1, 4); SET_BIT(P1M0, 4)
#define P15_OpenDrain_Mode                        SET_BIT(P1M1, 5); SET_BIT(P1M0, 5)
#define P16_OpenDrain_Mode                        SET_BIT(P1M1, 6); SET_BIT(P1M0, 6)
#define P17_OpenDrain_Mode                        SET_BIT(P1M1, 7); SET_BIT(P1M0, 7)

#define P20_OpenDrain_Mode                        SET_BIT(P2M1, 0); SET_BIT(P2M0, 0)
#define P21_OpenDrain_Mode                        SET_BIT(P2M1, 1); SET_BIT(P2M0, 1)
#define P22_OpenDrain_Mode                        SET_BIT(P2M1, 2); SET_BIT(P2M0, 2)
#define P23_OpenDrain_Mode                        SET_BIT(P2M1, 3); SET_BIT(P2M0, 3)
#define P24_OpenDrain_Mode                        SET_BIT(P2M1, 4); SET_BIT(P2M0, 4)
#define P25_OpenDrain_Mode                        SET_BIT(P2M1, 5); SET_BIT(P2M0, 5)
#define P26_OpenDrain_Mode                        SET_BIT(P2M1, 6); SET_BIT(P2M0, 6)
#define P27_OpenDrain_Mode                        SET_BIT(P2M1, 7); SET_BIT(P2M0, 7)

#define P30_OpenDrain_Mode                        SET_BIT(P3M1, 0); SET_BIT(P3M0, 0)
#define P31_OpenDrain_Mode                        SET_BIT(P3M1, 1); SET_BIT(P3M0, 1)
#define P32_OpenDrain_Mode                        SET_BIT(P3M1, 2); SET_BIT(P3M0, 2)
#define P33_OpenDrain_Mode                        SET_BIT(P3M1, 3); SET_BIT(P3M0, 3)
#define P34_OpenDrain_Mode                        SET_BIT(P3M1, 4); SET_BIT(P3M0, 4)
#define P35_OpenDrain_Mode                        SET_BIT(P3M1, 5); SET_BIT(P3M0, 5)
#define P36_OpenDrain_Mode                        SET_BIT(P3M1, 6); SET_BIT(P3M0, 6)
#define P37_OpenDrain_Mode                        SET_BIT(P3M1, 7); SET_BIT(P3M0, 7)

#define P40_OpenDrain_Mode                        SET_BIT(P4M1, 0); SET_BIT(P4M0, 0)
#define P41_OpenDrain_Mode                        SET_BIT(P4M1, 1); SET_BIT(P4M0, 1)
#define P42_OpenDrain_Mode                        SET_BIT(P4M1, 2); SET_BIT(P4M0, 2)
#define P43_OpenDrain_Mode                        SET_BIT(P4M1, 3); SET_BIT(P4M0, 3)
#define P44_OpenDrain_Mode                        SET_BIT(P4M1, 4); SET_BIT(P4M0, 4)
#define P45_OpenDrain_Mode                        SET_BIT(P4M1, 5); SET_BIT(P4M0, 5)
#define P46_OpenDrain_Mode                        SET_BIT(P4M1, 6); SET_BIT(P4M0, 6)
#define P47_OpenDrain_Mode                        SET_BIT(P4M1, 7); SET_BIT(P4M0, 7)

#define P50_OpenDrain_Mode                        SET_BIT(P5M1, 0); SET_BIT(P5M0, 0)
#define P51_OpenDrain_Mode                        SET_BIT(P5M1, 1); SET_BIT(P5M0, 1)
#define P52_OpenDrain_Mode                        SET_BIT(P5M1, 2); SET_BIT(P5M0, 2)
#define P53_OpenDrain_Mode                        SET_BIT(P5M1, 3); SET_BIT(P5M0, 3)
#define P54_OpenDrain_Mode                        SET_BIT(P5M1, 4); SET_BIT(P5M0, 4)

#define P60_OpenDrain_Mode                        SET_BIT(P6M1, 0); SET_BIT(P6M0, 0)
#define P61_OpenDrain_Mode                        SET_BIT(P6M1, 1); SET_BIT(P6M0, 1)
#define P62_OpenDrain_Mode                        SET_BIT(P6M1, 2); SET_BIT(P6M0, 2)
#define P63_OpenDrain_Mode                        SET_BIT(P6M1, 3); SET_BIT(P6M0, 3)
#define P64_OpenDrain_Mode                        SET_BIT(P6M1, 4); SET_BIT(P6M0, 4)
#define P65_OpenDrain_Mode                        SET_BIT(P6M1, 5); SET_BIT(P6M0, 5)
#define P66_OpenDrain_Mode                        SET_BIT(P6M1, 6); SET_BIT(P6M0, 6)
#define P67_OpenDrain_Mode                        SET_BIT(P6M1, 7); SET_BIT(P6M0, 7)

#define P70_OpenDrain_Mode                        SET_BIT(P7M1, 0); SET_BIT(P7M0, 0)
#define P71_OpenDrain_Mode                        SET_BIT(P7M1, 1); SET_BIT(P7M0, 1)
#define P72_OpenDrain_Mode                        SET_BIT(P7M1, 2); SET_BIT(P7M0, 2)
#define P73_OpenDrain_Mode                        SET_BIT(P7M1, 3); SET_BIT(P7M0, 3)
#define P74_OpenDrain_Mode                        SET_BIT(P7M1, 4); SET_BIT(P7M0, 4)
#define P75_OpenDrain_Mode                        SET_BIT(P7M1, 5); SET_BIT(P7M0, 5)
#define P76_OpenDrain_Mode                        SET_BIT(P7M1, 6); SET_BIT(P7M0, 6)
#define P77_OpenDrain_Mode                        SET_BIT(P7M1, 7); SET_BIT(P7M0, 7)

//---------------- Define Port as PullUp mode ----------------
#define P00_Enable_PullUp                        SET_BIT(P0PU, 0)
#define P01_Enable_PullUp                        SET_BIT(P0PU, 1)
#define P02_Enable_PullUp                        SET_BIT(P0PU, 2)
#define P03_Enable_PullUp                        SET_BIT(P0PU, 3)
#define P04_Enable_PullUp                        SET_BIT(P0PU, 4)
#define P05_Enable_PullUp                        SET_BIT(P0PU, 5)
#define P06_Enable_PullUp                        SET_BIT(P0PU, 6)
#define P07_Enable_PullUp                        SET_BIT(P0PU, 7)

#define P10_Enable_PullUp                        SET_BIT(P1PU, 0)
#define P11_Enable_PullUp                        SET_BIT(P1PU, 1)
#define P12_Enable_PullUp                        SET_BIT(P1PU, 2)
#define P13_Enable_PullUp                        SET_BIT(P1PU, 3)
#define P14_Enable_PullUp                        SET_BIT(P1PU, 4)
#define P15_Enable_PullUp                        SET_BIT(P1PU, 5)
#define P16_Enable_PullUp                        SET_BIT(P1PU, 6)
#define P17_Enable_PullUp                        SET_BIT(P1PU, 7)

#define P20_Enable_PullUp                        SET_BIT(P2PU, 0)
#define P21_Enable_PullUp                        SET_BIT(P2PU, 1)
#define P22_Enable_PullUp                        SET_BIT(P2PU, 2)
#define P23_Enable_PullUp                        SET_BIT(P2PU, 3)
#define P24_Enable_PullUp                        SET_BIT(P2PU, 4)
#define P25_Enable_PullUp                        SET_BIT(P2PU, 5)
#define P26_Enable_PullUp                        SET_BIT(P2PU, 6)
#define P27_Enable_PullUp                        SET_BIT(P2PU, 7)

#define P30_Enable_PullUp                        SET_BIT(P3PU, 0)
#define P31_Enable_PullUp                        SET_BIT(P3PU, 1)
#define P32_Enable_PullUp                        SET_BIT(P3PU, 2)
#define P33_Enable_PullUp                        SET_BIT(P3PU, 3)
#define P34_Enable_PullUp                        SET_BIT(P3PU, 4)
#define P35_Enable_PullUp                        SET_BIT(P3PU, 5)
#define P36_Enable_PullUp                        SET_BIT(P3PU, 6)
#define P37_Enable_PullUp                        SET_BIT(P3PU, 7)

#define P40_Enable_PullUp                        SET_BIT(P4PU, 0)
#define P41_Enable_PullUp                        SET_BIT(P4PU, 1)
#define P42_Enable_PullUp                        SET_BIT(P4PU, 2)
#define P43_Enable_PullUp                        SET_BIT(P4PU, 3)
#define P44_Enable_PullUp                        SET_BIT(P4PU, 4)
#define P45_Enable_PullUp                        SET_BIT(P4PU, 5)
#define P46_Enable_PullUp                        SET_BIT(P4PU, 6)
#define P47_Enable_PullUp                        SET_BIT(P4PU, 7)

#define P50_Enable_PullUp                        SET_BIT(P5PU, 0)
#define P51_Enable_PullUp                        SET_BIT(P5PU, 1)
#define P52_Enable_PullUp                        SET_BIT(P5PU, 2)
#define P53_Enable_PullUp                        SET_BIT(P5PU, 3)
#define P54_Enable_PullUp                        SET_BIT(P5PU, 4)

#define P60_Enable_PullUp                        SET_BIT(P6PU, 0)
#define P61_Enable_PullUp                        SET_BIT(P6PU, 1)
#define P62_Enable_PullUp                        SET_BIT(P6PU, 2)
#define P63_Enable_PullUp                        SET_BIT(P6PU, 3)
#define P64_Enable_PullUp                        SET_BIT(P6PU, 4)
#define P65_Enable_PullUp                        SET_BIT(P6PU, 5)
#define P66_Enable_PullUp                        SET_BIT(P6PU, 6)
#define P67_Enable_PullUp                        SET_BIT(P6PU, 7)

#define P70_Enable_PullUp                        SET_BIT(P7PU, 0)
#define P71_Enable_PullUp                        SET_BIT(P7PU, 1)
#define P72_Enable_PullUp                        SET_BIT(P7PU, 2)
#define P73_Enable_PullUp                        SET_BIT(P7PU, 3)
#define P74_Enable_PullUp                        SET_BIT(P7PU, 4)
#define P75_Enable_PullUp                        SET_BIT(P7PU, 5)
#define P76_Enable_PullUp                        SET_BIT(P7PU, 6)
#define P77_Enable_PullUp                        SET_BIT(P7PU, 7)

#define P00_Disable_PullUp                        CLR_BIT(P0PU, 0)
#define P01_Disable_PullUp                        CLR_BIT(P0PU, 1)
#define P02_Disable_PullUp                        CLR_BIT(P0PU, 2)
#define P03_Disable_PullUp                        CLR_BIT(P0PU, 3)
#define P04_Disable_PullUp                        CLR_BIT(P0PU, 4)
#define P05_Disable_PullUp                        CLR_BIT(P0PU, 5)
#define P06_Disable_PullUp                        CLR_BIT(P0PU, 6)
#define P07_Disable_PullUp                        CLR_BIT(P0PU, 7)

#define P10_Disable_PullUp                        CLR_BIT(P1PU, 0)
#define P11_Disable_PullUp                        CLR_BIT(P1PU, 1)
#define P12_Disable_PullUp                        CLR_BIT(P1PU, 2)
#define P13_Disable_PullUp                        CLR_BIT(P1PU, 3)
#define P14_Disable_PullUp                        CLR_BIT(P1PU, 4)
#define P15_Disable_PullUp                        CLR_BIT(P1PU, 5)
#define P16_Disable_PullUp                        CLR_BIT(P1PU, 6)
#define P17_Disable_PullUp                        CLR_BIT(P1PU, 7)

#define P20_Disable_PullUp                        CLR_BIT(P2PU, 0)
#define P21_Disable_PullUp                        CLR_BIT(P2PU, 1)
#define P22_Disable_PullUp                        CLR_BIT(P2PU, 2)
#define P23_Disable_PullUp                        CLR_BIT(P2PU, 3)
#define P24_Disable_PullUp                        CLR_BIT(P2PU, 4)
#define P25_Disable_PullUp                        CLR_BIT(P2PU, 5)
#define P26_Disable_PullUp                        CLR_BIT(P2PU, 6)
#define P27_Disable_PullUp                        CLR_BIT(P2PU, 7)

#define P30_Disable_PullUp                        CLR_BIT(P3PU, 0)
#define P31_Disable_PullUp                        CLR_BIT(P3PU, 1)
#define P32_Disable_PullUp                        CLR_BIT(P3PU, 2)
#define P33_Disable_PullUp                        CLR_BIT(P3PU, 3)
#define P34_Disable_PullUp                        CLR_BIT(P3PU, 4)
#define P35_Disable_PullUp                        CLR_BIT(P3PU, 5)
#define P36_Disable_PullUp                        CLR_BIT(P3PU, 6)
#define P37_Disable_PullUp                        CLR_BIT(P3PU, 7)

#define P40_Disable_PullUp                        CLR_BIT(P4PU, 0)
#define P41_Disable_PullUp                        CLR_BIT(P4PU, 1)
#define P42_Disable_PullUp                        CLR_BIT(P4PU, 2)
#define P43_Disable_PullUp                        CLR_BIT(P4PU, 3)
#define P44_Disable_PullUp                        CLR_BIT(P4PU, 4)
#define P45_Disable_PullUp                        CLR_BIT(P4PU, 5)
#define P46_Disable_PullUp                        CLR_BIT(P4PU, 6)
#define P47_Disable_PullUp                        CLR_BIT(P4PU, 7)

#define P50_Disable_PullUp                        CLR_BIT(P5PU, 0)
#define P51_Disable_PullUp                        CLR_BIT(P5PU, 1)
#define P52_Disable_PullUp                        CLR_BIT(P5PU, 2)
#define P53_Disable_PullUp                        CLR_BIT(P5PU, 3)
#define P54_Disable_PullUp                        CLR_BIT(P5PU, 4)

#define P60_Disable_PullUp                        CLR_BIT(P6PU, 0)
#define P61_Disable_PullUp                        CLR_BIT(P6PU, 1)
#define P62_Disable_PullUp                        CLR_BIT(P6PU, 2)
#define P63_Disable_PullUp                        CLR_BIT(P6PU, 3)
#define P64_Disable_PullUp                        CLR_BIT(P6PU, 4)
#define P65_Disable_PullUp                        CLR_BIT(P6PU, 5)
#define P66_Disable_PullUp                        CLR_BIT(P6PU, 6)
#define P67_Disable_PullUp                        CLR_BIT(P6PU, 7)

#define P70_Disable_PullUp                        CLR_BIT(P7PU, 0)
#define P71_Disable_PullUp                        CLR_BIT(P7PU, 1)
#define P72_Disable_PullUp                        CLR_BIT(P7PU, 2)
#define P73_Disable_PullUp                        CLR_BIT(P7PU, 3)
#define P74_Disable_PullUp                        CLR_BIT(P7PU, 4)
#define P75_Disable_PullUp                        CLR_BIT(P7PU, 5)
#define P76_Disable_PullUp                        CLR_BIT(P7PU, 6)
#define P77_Disable_PullUp                        CLR_BIT(P7PU, 7)

//----------------- Define Port as NCS mode -----------------
#define P00_Enable_NCS                            CLR_BIT(P0NCS, 0)
#define P01_Enable_NCS                            CLR_BIT(P0NCS, 1)
#define P02_Enable_NCS                            CLR_BIT(P0NCS, 2)
#define P03_Enable_NCS                            CLR_BIT(P0NCS, 3)
#define P04_Enable_NCS                            CLR_BIT(P0NCS, 4)
#define P05_Enable_NCS                            CLR_BIT(P0NCS, 5)
#define P06_Enable_NCS                            CLR_BIT(P0NCS, 6)
#define P07_Enable_NCS                            CLR_BIT(P0NCS, 7)

#define P10_Enable_NCS                            CLR_BIT(P1NCS, 0)
#define P11_Enable_NCS                            CLR_BIT(P1NCS, 1)
#define P12_Enable_NCS                            CLR_BIT(P1NCS, 2)
#define P13_Enable_NCS                            CLR_BIT(P1NCS, 3)
#define P14_Enable_NCS                            CLR_BIT(P1NCS, 4)
#define P15_Enable_NCS                            CLR_BIT(P1NCS, 5)
#define P16_Enable_NCS                            CLR_BIT(P1NCS, 6)
#define P17_Enable_NCS                            CLR_BIT(P1NCS, 7)

#define P20_Enable_NCS                            CLR_BIT(P2NCS, 0)
#define P21_Enable_NCS                            CLR_BIT(P2NCS, 1)
#define P22_Enable_NCS                            CLR_BIT(P2NCS, 2)
#define P23_Enable_NCS                            CLR_BIT(P2NCS, 3)
#define P24_Enable_NCS                            CLR_BIT(P2NCS, 4)
#define P25_Enable_NCS                            CLR_BIT(P2NCS, 5)
#define P26_Enable_NCS                            CLR_BIT(P2NCS, 6)
#define P27_Enable_NCS                            CLR_BIT(P2NCS, 7)

#define P30_Enable_NCS                            CLR_BIT(P3NCS, 0)
#define P31_Enable_NCS                            CLR_BIT(P3NCS, 1)
#define P32_Enable_NCS                            CLR_BIT(P3NCS, 2)
#define P33_Enable_NCS                            CLR_BIT(P3NCS, 3)
#define P34_Enable_NCS                            CLR_BIT(P3NCS, 4)
#define P35_Enable_NCS                            CLR_BIT(P3NCS, 5)
#define P36_Enable_NCS                            CLR_BIT(P3NCS, 6)
#define P37_Enable_NCS                            CLR_BIT(P3NCS, 7)

#define P40_Enable_NCS                            CLR_BIT(P4NCS, 0)
#define P41_Enable_NCS                            CLR_BIT(P4NCS, 1)
#define P42_Enable_NCS                            CLR_BIT(P4NCS, 2)
#define P43_Enable_NCS                            CLR_BIT(P4NCS, 3)
#define P44_Enable_NCS                            CLR_BIT(P4NCS, 4)
#define P45_Enable_NCS                            CLR_BIT(P4NCS, 5)
#define P46_Enable_NCS                            CLR_BIT(P4NCS, 6)
#define P47_Enable_NCS                            CLR_BIT(P4NCS, 7)

#define P50_Enable_NCS                            CLR_BIT(P5NCS, 0)
#define P51_Enable_NCS                            CLR_BIT(P5NCS, 1)
#define P52_Enable_NCS                            CLR_BIT(P5NCS, 2)
#define P53_Enable_NCS                            CLR_BIT(P5NCS, 3)
#define P54_Enable_NCS                            CLR_BIT(P5NCS, 4)

#define P60_Enable_NCS                            CLR_BIT(P6NCS, 0)
#define P61_Enable_NCS                            CLR_BIT(P6NCS, 1)
#define P62_Enable_NCS                            CLR_BIT(P6NCS, 2)
#define P63_Enable_NCS                            CLR_BIT(P6NCS, 3)
#define P64_Enable_NCS                            CLR_BIT(P6NCS, 4)
#define P65_Enable_NCS                            CLR_BIT(P6NCS, 5)
#define P66_Enable_NCS                            CLR_BIT(P6NCS, 6)
#define P67_Enable_NCS                            CLR_BIT(P6NCS, 7)

#define P70_Enable_NCS                            CLR_BIT(P7NCS, 0)
#define P71_Enable_NCS                            CLR_BIT(P7NCS, 1)
#define P72_Enable_NCS                            CLR_BIT(P7NCS, 2)
#define P73_Enable_NCS                            CLR_BIT(P7NCS, 3)
#define P74_Enable_NCS                            CLR_BIT(P7NCS, 4)
#define P75_Enable_NCS                            CLR_BIT(P7NCS, 5)
#define P76_Enable_NCS                            CLR_BIT(P7NCS, 6)
#define P77_Enable_NCS                            CLR_BIT(P7NCS, 7)

#define P00_Disable_NCS                            SET_BIT(P0NCS, 0)
#define P01_Disable_NCS                            SET_BIT(P0NCS, 1)
#define P02_Disable_NCS                            SET_BIT(P0NCS, 2)
#define P03_Disable_NCS                            SET_BIT(P0NCS, 3)
#define P04_Disable_NCS                            SET_BIT(P0NCS, 4)
#define P05_Disable_NCS                            SET_BIT(P0NCS, 5)
#define P06_Disable_NCS                            SET_BIT(P0NCS, 6)
#define P07_Disable_NCS                            SET_BIT(P0NCS, 7)

#define P10_Disable_NCS                            SET_BIT(P1NCS, 0)
#define P11_Disable_NCS                            SET_BIT(P1NCS, 1)
#define P12_Disable_NCS                            SET_BIT(P1NCS, 2)
#define P13_Disable_NCS                            SET_BIT(P1NCS, 3)
#define P14_Disable_NCS                            SET_BIT(P1NCS, 4)
#define P15_Disable_NCS                            SET_BIT(P1NCS, 5)
#define P16_Disable_NCS                            SET_BIT(P1NCS, 6)
#define P17_Disable_NCS                            SET_BIT(P1NCS, 7)

#define P20_Disable_NCS                            SET_BIT(P2NCS, 0)
#define P21_Disable_NCS                            SET_BIT(P2NCS, 1)
#define P22_Disable_NCS                            SET_BIT(P2NCS, 2)
#define P23_Disable_NCS                            SET_BIT(P2NCS, 3)
#define P24_Disable_NCS                            SET_BIT(P2NCS, 4)
#define P25_Disable_NCS                            SET_BIT(P2NCS, 5)
#define P26_Disable_NCS                            SET_BIT(P2NCS, 6)
#define P27_Disable_NCS                            SET_BIT(P2NCS, 7)

#define P30_Disable_NCS                            SET_BIT(P3NCS, 0)
#define P31_Disable_NCS                            SET_BIT(P3NCS, 1)
#define P32_Disable_NCS                            SET_BIT(P3NCS, 2)
#define P33_Disable_NCS                            SET_BIT(P3NCS, 3)
#define P34_Disable_NCS                            SET_BIT(P3NCS, 4)
#define P35_Disable_NCS                            SET_BIT(P3NCS, 5)
#define P36_Disable_NCS                            SET_BIT(P3NCS, 6)
#define P37_Disable_NCS                            SET_BIT(P3NCS, 7)

#define P40_Disable_NCS                            SET_BIT(P4NCS, 0)
#define P41_Disable_NCS                            SET_BIT(P4NCS, 1)
#define P42_Disable_NCS                            SET_BIT(P4NCS, 2)
#define P43_Disable_NCS                            SET_BIT(P4NCS, 3)
#define P44_Disable_NCS                            SET_BIT(P4NCS, 4)
#define P45_Disable_NCS                            SET_BIT(P4NCS, 5)
#define P46_Disable_NCS                            SET_BIT(P4NCS, 6)
#define P47_Disable_NCS                            SET_BIT(P4NCS, 7)

#define P50_Disable_NCS                            SET_BIT(P5NCS, 0)
#define P51_Disable_NCS                            SET_BIT(P5NCS, 1)
#define P52_Disable_NCS                            SET_BIT(P5NCS, 2)
#define P53_Disable_NCS                            SET_BIT(P5NCS, 3)
#define P54_Disable_NCS                            SET_BIT(P5NCS, 4)

#define P60_Disable_NCS                            SET_BIT(P6NCS, 0)
#define P61_Disable_NCS                            SET_BIT(P6NCS, 1)
#define P62_Disable_NCS                            SET_BIT(P6NCS, 2)
#define P63_Disable_NCS                            SET_BIT(P6NCS, 3)
#define P64_Disable_NCS                            SET_BIT(P6NCS, 4)
#define P65_Disable_NCS                            SET_BIT(P6NCS, 5)
#define P66_Disable_NCS                            SET_BIT(P6NCS, 6)
#define P67_Disable_NCS                            SET_BIT(P6NCS, 7)

#define P70_Disable_NCS                            SET_BIT(P7NCS, 0)
#define P71_Disable_NCS                            SET_BIT(P7NCS, 1)
#define P72_Disable_NCS                            SET_BIT(P7NCS, 2)
#define P73_Disable_NCS                            SET_BIT(P7NCS, 3)
#define P74_Disable_NCS                            SET_BIT(P7NCS, 4)
#define P75_Disable_NCS                            SET_BIT(P7NCS, 5)
#define P76_Disable_NCS                            SET_BIT(P7NCS, 6)
#define P77_Disable_NCS                            SET_BIT(P7NCS, 7)

//---------------- Define Port as HighSpeed mode -----------------
#define P00_Enable_HighSpeed                        CLR_BIT(P0SR, 0)
#define P01_Enable_HighSpeed                        CLR_BIT(P0SR, 1)
#define P02_Enable_HighSpeed                        CLR_BIT(P0SR, 2)
#define P03_Enable_HighSpeed                        CLR_BIT(P0SR, 3)
#define P04_Enable_HighSpeed                        CLR_BIT(P0SR, 4)
#define P05_Enable_HighSpeed                        CLR_BIT(P0SR, 5)
#define P06_Enable_HighSpeed                        CLR_BIT(P0SR, 6)
#define P07_Enable_HighSpeed                        CLR_BIT(P0SR, 7)

#define P10_Enable_HighSpeed                        CLR_BIT(P1SR, 0)
#define P11_Enable_HighSpeed                        CLR_BIT(P1SR, 1)
#define P12_Enable_HighSpeed                        CLR_BIT(P1SR, 2)
#define P13_Enable_HighSpeed                        CLR_BIT(P1SR, 3)
#define P14_Enable_HighSpeed                        CLR_BIT(P1SR, 4)
#define P15_Enable_HighSpeed                        CLR_BIT(P1SR, 5)
#define P16_Enable_HighSpeed                        CLR_BIT(P1SR, 6)
#define P17_Enable_HighSpeed                        CLR_BIT(P1SR, 7)

#define P20_Enable_HighSpeed                        CLR_BIT(P2SR, 0)
#define P21_Enable_HighSpeed                        CLR_BIT(P2SR, 1)
#define P22_Enable_HighSpeed                        CLR_BIT(P2SR, 2)
#define P23_Enable_HighSpeed                        CLR_BIT(P2SR, 3)
#define P24_Enable_HighSpeed                        CLR_BIT(P2SR, 4)
#define P25_Enable_HighSpeed                        CLR_BIT(P2SR, 5)
#define P26_Enable_HighSpeed                        CLR_BIT(P2SR, 6)
#define P27_Enable_HighSpeed                        CLR_BIT(P2SR, 7)

#define P30_Enable_HighSpeed                        CLR_BIT(P3SR, 0)
#define P31_Enable_HighSpeed                        CLR_BIT(P3SR, 1)
#define P32_Enable_HighSpeed                        CLR_BIT(P3SR, 2)
#define P33_Enable_HighSpeed                        CLR_BIT(P3SR, 3)
#define P34_Enable_HighSpeed                        CLR_BIT(P3SR, 4)
#define P35_Enable_HighSpeed                        CLR_BIT(P3SR, 5)
#define P36_Enable_HighSpeed                        CLR_BIT(P3SR, 6)
#define P37_Enable_HighSpeed                        CLR_BIT(P3SR, 7)

#define P40_Enable_HighSpeed                        CLR_BIT(P4SR, 0)
#define P41_Enable_HighSpeed                        CLR_BIT(P4SR, 1)
#define P42_Enable_HighSpeed                        CLR_BIT(P4SR, 2)
#define P43_Enable_HighSpeed                        CLR_BIT(P4SR, 3)
#define P44_Enable_HighSpeed                        CLR_BIT(P4SR, 4)
#define P45_Enable_HighSpeed                        CLR_BIT(P4SR, 5)
#define P46_Enable_HighSpeed                        CLR_BIT(P4SR, 6)
#define P47_Enable_HighSpeed                        CLR_BIT(P4SR, 7)

#define P50_Enable_HighSpeed                        CLR_BIT(P5SR, 0)
#define P51_Enable_HighSpeed                        CLR_BIT(P5SR, 1)
#define P52_Enable_HighSpeed                        CLR_BIT(P5SR, 2)
#define P53_Enable_HighSpeed                        CLR_BIT(P5SR, 3)
#define P54_Enable_HighSpeed                        CLR_BIT(P5SR, 4)

#define P60_Enable_HighSpeed                        CLR_BIT(P6SR, 0)
#define P61_Enable_HighSpeed                        CLR_BIT(P6SR, 1)
#define P62_Enable_HighSpeed                        CLR_BIT(P6SR, 2)
#define P63_Enable_HighSpeed                        CLR_BIT(P6SR, 3)
#define P64_Enable_HighSpeed                        CLR_BIT(P6SR, 4)
#define P65_Enable_HighSpeed                        CLR_BIT(P6SR, 5)
#define P66_Enable_HighSpeed                        CLR_BIT(P6SR, 6)
#define P67_Enable_HighSpeed                        CLR_BIT(P6SR, 7)

#define P70_Enable_HighSpeed                        CLR_BIT(P7SR, 0)
#define P71_Enable_HighSpeed                        CLR_BIT(P7SR, 1)
#define P72_Enable_HighSpeed                        CLR_BIT(P7SR, 2)
#define P73_Enable_HighSpeed                        CLR_BIT(P7SR, 3)
#define P74_Enable_HighSpeed                        CLR_BIT(P7SR, 4)
#define P75_Enable_HighSpeed                        CLR_BIT(P7SR, 5)
#define P76_Enable_HighSpeed                        CLR_BIT(P7SR, 6)
#define P77_Enable_HighSpeed                        CLR_BIT(P7SR, 7)

#define P00_Disable_HighSpeed                        SET_BIT(P0SR, 0)
#define P01_Disable_HighSpeed                        SET_BIT(P0SR, 1)
#define P02_Disable_HighSpeed                        SET_BIT(P0SR, 2)
#define P03_Disable_HighSpeed                        SET_BIT(P0SR, 3)
#define P04_Disable_HighSpeed                        SET_BIT(P0SR, 4)
#define P05_Disable_HighSpeed                        SET_BIT(P0SR, 5)
#define P06_Disable_HighSpeed                        SET_BIT(P0SR, 6)
#define P07_Disable_HighSpeed                        SET_BIT(P0SR, 7)

#define P10_Disable_HighSpeed                        SET_BIT(P1SR, 0)
#define P11_Disable_HighSpeed                        SET_BIT(P1SR, 1)
#define P12_Disable_HighSpeed                        SET_BIT(P1SR, 2)
#define P13_Disable_HighSpeed                        SET_BIT(P1SR, 3)
#define P14_Disable_HighSpeed                        SET_BIT(P1SR, 4)
#define P15_Disable_HighSpeed                        SET_BIT(P1SR, 5)
#define P16_Disable_HighSpeed                        SET_BIT(P1SR, 6)
#define P17_Disable_HighSpeed                        SET_BIT(P1SR, 7)

#define P20_Disable_HighSpeed                        SET_BIT(P2SR, 0)
#define P21_Disable_HighSpeed                        SET_BIT(P2SR, 1)
#define P22_Disable_HighSpeed                        SET_BIT(P2SR, 2)
#define P23_Disable_HighSpeed                        SET_BIT(P2SR, 3)
#define P24_Disable_HighSpeed                        SET_BIT(P2SR, 4)
#define P25_Disable_HighSpeed                        SET_BIT(P2SR, 5)
#define P26_Disable_HighSpeed                        SET_BIT(P2SR, 6)
#define P27_Disable_HighSpeed                        SET_BIT(P2SR, 7)

#define P30_Disable_HighSpeed                        SET_BIT(P3SR, 0)
#define P31_Disable_HighSpeed                        SET_BIT(P3SR, 1)
#define P32_Disable_HighSpeed                        SET_BIT(P3SR, 2)
#define P33_Disable_HighSpeed                        SET_BIT(P3SR, 3)
#define P34_Disable_HighSpeed                        SET_BIT(P3SR, 4)
#define P35_Disable_HighSpeed                        SET_BIT(P3SR, 5)
#define P36_Disable_HighSpeed                        SET_BIT(P3SR, 6)
#define P37_Disable_HighSpeed                        SET_BIT(P3SR, 7)

#define P40_Disable_HighSpeed                        SET_BIT(P4SR, 0)
#define P41_Disable_HighSpeed                        SET_BIT(P4SR, 1)
#define P42_Disable_HighSpeed                        SET_BIT(P4SR, 2)
#define P43_Disable_HighSpeed                        SET_BIT(P4SR, 3)
#define P44_Disable_HighSpeed                        SET_BIT(P4SR, 4)
#define P45_Disable_HighSpeed                        SET_BIT(P4SR, 5)
#define P46_Disable_HighSpeed                        SET_BIT(P4SR, 6)
#define P47_Disable_HighSpeed                        SET_BIT(P4SR, 7)

#define P50_Disable_HighSpeed                        SET_BIT(P5SR, 0)
#define P51_Disable_HighSpeed                        SET_BIT(P5SR, 1)
#define P52_Disable_HighSpeed                        SET_BIT(P5SR, 2)
#define P53_Disable_HighSpeed                        SET_BIT(P5SR, 3)
#define P54_Disable_HighSpeed                        SET_BIT(P5SR, 4)

#define P60_Disable_HighSpeed                        SET_BIT(P6SR, 0)
#define P61_Disable_HighSpeed                        SET_BIT(P6SR, 1)
#define P62_Disable_HighSpeed                        SET_BIT(P6SR, 2)
#define P63_Disable_HighSpeed                        SET_BIT(P6SR, 3)
#define P64_Disable_HighSpeed                        SET_BIT(P6SR, 4)
#define P65_Disable_HighSpeed                        SET_BIT(P6SR, 5)
#define P66_Disable_HighSpeed                        SET_BIT(P6SR, 6)
#define P67_Disable_HighSpeed                        SET_BIT(P6SR, 7)

#define P70_Disable_HighSpeed                        SET_BIT(P7SR, 0)
#define P71_Disable_HighSpeed                        SET_BIT(P7SR, 1)
#define P72_Disable_HighSpeed                        SET_BIT(P7SR, 2)
#define P73_Disable_HighSpeed                        SET_BIT(P7SR, 3)
#define P74_Disable_HighSpeed                        SET_BIT(P7SR, 4)
#define P75_Disable_HighSpeed                        SET_BIT(P7SR, 5)
#define P76_Disable_HighSpeed                        SET_BIT(P7SR, 6)
#define P77_Disable_HighSpeed                        SET_BIT(P7SR, 7)

//----------------- Define Port as HighDrive mode ----------------
#define P00_Enable_HighDrive                        CLR_BIT(P0DR, 0)
#define P01_Enable_HighDrive                        CLR_BIT(P0DR, 1)
#define P02_Enable_HighDrive                        CLR_BIT(P0DR, 2)
#define P03_Enable_HighDrive                        CLR_BIT(P0DR, 3)
#define P04_Enable_HighDrive                        CLR_BIT(P0DR, 4)
#define P05_Enable_HighDrive                        CLR_BIT(P0DR, 5)
#define P06_Enable_HighDrive                        CLR_BIT(P0DR, 6)
#define P07_Enable_HighDrive                        CLR_BIT(P0DR, 7)

#define P10_Enable_HighDrive                        CLR_BIT(P1DR, 0)
#define P11_Enable_HighDrive                        CLR_BIT(P1DR, 1)
#define P12_Enable_HighDrive                        CLR_BIT(P1DR, 2)
#define P13_Enable_HighDrive                        CLR_BIT(P1DR, 3)
#define P14_Enable_HighDrive                        CLR_BIT(P1DR, 4)
#define P15_Enable_HighDrive                        CLR_BIT(P1DR, 5)
#define P16_Enable_HighDrive                        CLR_BIT(P1DR, 6)
#define P17_Enable_HighDrive                        CLR_BIT(P1DR, 7)

#define P20_Enable_HighDrive                        CLR_BIT(P2DR, 0)
#define P21_Enable_HighDrive                        CLR_BIT(P2DR, 1)
#define P22_Enable_HighDrive                        CLR_BIT(P2DR, 2)
#define P23_Enable_HighDrive                        CLR_BIT(P2DR, 3)
#define P24_Enable_HighDrive                        CLR_BIT(P2DR, 4)
#define P25_Enable_HighDrive                        CLR_BIT(P2DR, 5)
#define P26_Enable_HighDrive                        CLR_BIT(P2DR, 6)
#define P27_Enable_HighDrive                        CLR_BIT(P2DR, 7)

#define P30_Enable_HighDrive                        CLR_BIT(P3DR, 0)
#define P31_Enable_HighDrive                        CLR_BIT(P3DR, 1)
#define P32_Enable_HighDrive                        CLR_BIT(P3DR, 2)
#define P33_Enable_HighDrive                        CLR_BIT(P3DR, 3)
#define P34_Enable_HighDrive                        CLR_BIT(P3DR, 4)
#define P35_Enable_HighDrive                        CLR_BIT(P3DR, 5)
#define P36_Enable_HighDrive                        CLR_BIT(P3DR, 6)
#define P37_Enable_HighDrive                        CLR_BIT(P3DR, 7)

#define P40_Enable_HighDrive                        CLR_BIT(P4DR, 0)
#define P41_Enable_HighDrive                        CLR_BIT(P4DR, 1)
#define P42_Enable_HighDrive                        CLR_BIT(P4DR, 2)
#define P43_Enable_HighDrive                        CLR_BIT(P4DR, 3)
#define P44_Enable_HighDrive                        CLR_BIT(P4DR, 4)
#define P45_Enable_HighDrive                        CLR_BIT(P4DR, 5)
#define P46_Enable_HighDrive                        CLR_BIT(P4DR, 6)
#define P47_Enable_HighDrive                        CLR_BIT(P4DR, 7)

#define P50_Enable_HighDrive                        CLR_BIT(P5DR, 0)
#define P51_Enable_HighDrive                        CLR_BIT(P5DR, 1)
#define P52_Enable_HighDrive                        CLR_BIT(P5DR, 2)
#define P53_Enable_HighDrive                        CLR_BIT(P5DR, 3)
#define P54_Enable_HighDrive                        CLR_BIT(P5DR, 4)

#define P60_Enable_HighDrive                        CLR_BIT(P6DR, 0)
#define P61_Enable_HighDrive                        CLR_BIT(P6DR, 1)
#define P62_Enable_HighDrive                        CLR_BIT(P6DR, 2)
#define P63_Enable_HighDrive                        CLR_BIT(P6DR, 3)
#define P64_Enable_HighDrive                        CLR_BIT(P6DR, 4)
#define P65_Enable_HighDrive                        CLR_BIT(P6DR, 5)
#define P66_Enable_HighDrive                        CLR_BIT(P6DR, 6)
#define P67_Enable_HighDrive                        CLR_BIT(P6DR, 7)

#define P70_Enable_HighDrive                        CLR_BIT(P7DR, 0)
#define P71_Enable_HighDrive                        CLR_BIT(P7DR, 1)
#define P72_Enable_HighDrive                        CLR_BIT(P7DR, 2)
#define P73_Enable_HighDrive                        CLR_BIT(P7DR, 3)
#define P74_Enable_HighDrive                        CLR_BIT(P7DR, 4)
#define P75_Enable_HighDrive                        CLR_BIT(P7DR, 5)
#define P76_Enable_HighDrive                        CLR_BIT(P7DR, 6)
#define P77_Enable_HighDrive                        CLR_BIT(P7DR, 7)

#define P00_Disable_HighDrive                        SET_BIT(P0DR, 0)
#define P01_Disable_HighDrive                        SET_BIT(P0DR, 1)
#define P02_Disable_HighDrive                        SET_BIT(P0DR, 2)
#define P03_Disable_HighDrive                        SET_BIT(P0DR, 3)
#define P04_Disable_HighDrive                        SET_BIT(P0DR, 4)
#define P05_Disable_HighDrive                        SET_BIT(P0DR, 5)
#define P06_Disable_HighDrive                        SET_BIT(P0DR, 6)
#define P07_Disable_HighDrive                        SET_BIT(P0DR, 7)

#define P10_Disable_HighDrive                        SET_BIT(P1DR, 0)
#define P11_Disable_HighDrive                        SET_BIT(P1DR, 1)
#define P12_Disable_HighDrive                        SET_BIT(P1DR, 2)
#define P13_Disable_HighDrive                        SET_BIT(P1DR, 3)
#define P14_Disable_HighDrive                        SET_BIT(P1DR, 4)
#define P15_Disable_HighDrive                        SET_BIT(P1DR, 5)
#define P16_Disable_HighDrive                        SET_BIT(P1DR, 6)
#define P17_Disable_HighDrive                        SET_BIT(P1DR, 7)

#define P20_Disable_HighDrive                        SET_BIT(P2DR, 0)
#define P21_Disable_HighDrive                        SET_BIT(P2DR, 1)
#define P22_Disable_HighDrive                        SET_BIT(P2DR, 2)
#define P23_Disable_HighDrive                        SET_BIT(P2DR, 3)
#define P24_Disable_HighDrive                        SET_BIT(P2DR, 4)
#define P25_Disable_HighDrive                        SET_BIT(P2DR, 5)
#define P26_Disable_HighDrive                        SET_BIT(P2DR, 6)
#define P27_Disable_HighDrive                        SET_BIT(P2DR, 7)

#define P30_Disable_HighDrive                        SET_BIT(P3DR, 0)
#define P31_Disable_HighDrive                        SET_BIT(P3DR, 1)
#define P32_Disable_HighDrive                        SET_BIT(P3DR, 2)
#define P33_Disable_HighDrive                        SET_BIT(P3DR, 3)
#define P34_Disable_HighDrive                        SET_BIT(P3DR, 4)
#define P35_Disable_HighDrive                        SET_BIT(P3DR, 5)
#define P36_Disable_HighDrive                        SET_BIT(P3DR, 6)
#define P37_Disable_HighDrive                        SET_BIT(P3DR, 7)

#define P40_Disable_HighDrive                        SET_BIT(P4DR, 0)
#define P41_Disable_HighDrive                        SET_BIT(P4DR, 1)
#define P42_Disable_HighDrive                        SET_BIT(P4DR, 2)
#define P43_Disable_HighDrive                        SET_BIT(P4DR, 3)
#define P44_Disable_HighDrive                        SET_BIT(P4DR, 4)
#define P45_Disable_HighDrive                        SET_BIT(P4DR, 5)
#define P46_Disable_HighDrive                        SET_BIT(P4DR, 6)
#define P47_Disable_HighDrive                        SET_BIT(P4DR, 7)

#define P50_Disable_HighDrive                        SET_BIT(P5DR, 0)
#define P51_Disable_HighDrive                        SET_BIT(P5DR, 1)
#define P52_Disable_HighDrive                        SET_BIT(P5DR, 2)
#define P53_Disable_HighDrive                        SET_BIT(P5DR, 3)
#define P54_Disable_HighDrive                        SET_BIT(P5DR, 4)

#define P60_Disable_HighDrive                        SET_BIT(P6DR, 0)
#define P61_Disable_HighDrive                        SET_BIT(P6DR, 1)
#define P62_Disable_HighDrive                        SET_BIT(P6DR, 2)
#define P63_Disable_HighDrive                        SET_BIT(P6DR, 3)
#define P64_Disable_HighDrive                        SET_BIT(P6DR, 4)
#define P65_Disable_HighDrive                        SET_BIT(P6DR, 5)
#define P66_Disable_HighDrive                        SET_BIT(P6DR, 6)
#define P67_Disable_HighDrive                        SET_BIT(P6DR, 7)

#define P70_Disable_HighDrive                        SET_BIT(P7DR, 0)
#define P71_Disable_HighDrive                        SET_BIT(P7DR, 1)
#define P72_Disable_HighDrive                        SET_BIT(P7DR, 2)
#define P73_Disable_HighDrive                        SET_BIT(P7DR, 3)
#define P74_Disable_HighDrive                        SET_BIT(P7DR, 4)
#define P75_Disable_HighDrive                        SET_BIT(P7DR, 5)
#define P76_Disable_HighDrive                        SET_BIT(P7DR, 6)
#define P77_Disable_HighDrive                        SET_BIT(P7DR, 7)

//---------------- Define Port as DigitalInput mode --------------
#define P00_Enable_DigitalInput                        SET_BIT(P0IE, 0)
#define P01_Enable_DigitalInput                        SET_BIT(P0IE, 1)
#define P02_Enable_DigitalInput                        SET_BIT(P0IE, 2)
#define P03_Enable_DigitalInput                        SET_BIT(P0IE, 3)
#define P04_Enable_DigitalInput                        SET_BIT(P0IE, 4)
#define P05_Enable_DigitalInput                        SET_BIT(P0IE, 5)
#define P06_Enable_DigitalInput                        SET_BIT(P0IE, 6)
#define P07_Enable_DigitalInput                        SET_BIT(P0IE, 7)

#define P10_Enable_DigitalInput                        SET_BIT(P1IE, 0)
#define P11_Enable_DigitalInput                        SET_BIT(P1IE, 1)
#define P12_Enable_DigitalInput                        SET_BIT(P1IE, 2)
#define P13_Enable_DigitalInput                        SET_BIT(P1IE, 3)
#define P14_Enable_DigitalInput                        SET_BIT(P1IE, 4)
#define P15_Enable_DigitalInput                        SET_BIT(P1IE, 5)
#define P16_Enable_DigitalInput                        SET_BIT(P1IE, 6)
#define P17_Enable_DigitalInput                        SET_BIT(P1IE, 7)

#define P30_Enable_DigitalInput                        SET_BIT(P3IE, 0)
#define P31_Enable_DigitalInput                        SET_BIT(P3IE, 1)
#define P32_Enable_DigitalInput                        SET_BIT(P3IE, 2)
#define P33_Enable_DigitalInput                        SET_BIT(P3IE, 3)
#define P34_Enable_DigitalInput                        SET_BIT(P3IE, 4)
#define P35_Enable_DigitalInput                        SET_BIT(P3IE, 5)
#define P36_Enable_DigitalInput                        SET_BIT(P3IE, 6)
#define P37_Enable_DigitalInput                        SET_BIT(P3IE, 7)

#define P00_Disable_DigitalInput                CLR_BIT(P0IE, 0)
#define P01_Disable_DigitalInput                CLR_BIT(P0IE, 1)
#define P02_Disable_DigitalInput                CLR_BIT(P0IE, 2)
#define P03_Disable_DigitalInput                CLR_BIT(P0IE, 3)
#define P04_Disable_DigitalInput                CLR_BIT(P0IE, 4)
#define P05_Disable_DigitalInput                CLR_BIT(P0IE, 5)
#define P06_Disable_DigitalInput                CLR_BIT(P0IE, 6)
#define P07_Disable_DigitalInput                CLR_BIT(P0IE, 7)

#define P10_Disable_DigitalInput                CLR_BIT(P1IE, 0)
#define P11_Disable_DigitalInput                CLR_BIT(P1IE, 1)
#define P12_Disable_DigitalInput                CLR_BIT(P1IE, 2)
#define P13_Disable_DigitalInput                CLR_BIT(P1IE, 3)
#define P14_Disable_DigitalInput                CLR_BIT(P1IE, 4)
#define P15_Disable_DigitalInput                CLR_BIT(P1IE, 5)
#define P16_Disable_DigitalInput                CLR_BIT(P1IE, 6)
#define P17_Disable_DigitalInput                CLR_BIT(P1IE, 7)

#define P30_Disable_DigitalInput                CLR_BIT(P3IE, 0)
#define P31_Disable_DigitalInput                CLR_BIT(P3IE, 1)
#define P32_Disable_DigitalInput                CLR_BIT(P3IE, 2)
#define P33_Disable_DigitalInput                CLR_BIT(P3IE, 3)
#define P34_Disable_DigitalInput                CLR_BIT(P3IE, 4)
#define P35_Disable_DigitalInput                CLR_BIT(P3IE, 5)
#define P36_Disable_DigitalInput                CLR_BIT(P3IE, 6)
#define P37_Disable_DigitalInput                CLR_BIT(P3IE, 7)
回复 支持 1 反对 1

使用道具 举报

发表于 2021-1-19 23:35:35 来自手机浏览器 | 显示全部楼层
官方有个小工具,叫setio还是什么,虽然麻烦点,比自己算简单点
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-1-20 11:43:09 | 显示全部楼层
freemancn 发表于 2021-1-19 23:20
#define SET_BIT(R, BIT)                        (R |= (1

我没记错的话,这个应该是新塘提供的BSP中的代码:giggle:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-20 11:44:44 | 显示全部楼层
桃源客 发表于 2021-1-19 22:23
好东西,下载来用下了.封成头文件可能好用点.

是的,可以直接粘贴到STC的寄存器头文件中去,例如 STC15.H中
回复 支持 反对

使用道具 举报

发表于 2021-1-20 14:19:06 | 显示全部楼层
一只咸鱼 发表于 2021-1-20 11:43
我没记错的话,这个应该是新塘提供的BSP中的代码

对的,这个语法风格是不错的.所以按这个风格自己写了一个STC8H的寄存器操作,已经几乎覆盖所有寄存器了,包括USB部分.
回复 支持 反对

使用道具 举报

发表于 2021-1-21 09:05:58 | 显示全部楼层
freemancn 发表于 2021-1-20 14:19
对的,这个语法风格是不错的.所以按这个风格自己写了一个STC8H的寄存器操作,已经几乎覆盖所有寄存器了,包 ...

能共享不了?
回复 支持 反对

使用道具 举报

发表于 2021-1-21 10:33:39 | 显示全部楼层
P1M0 = 0XAA;
P1M1 = 0X00;
两行就能初始化8个口,用你这个不是得8行?
51本来寄存器就不多,还是用寄存器了。
回复 支持 反对

使用道具 举报

发表于 2021-1-21 16:43:36 | 显示全部楼层
上官梦舞 发表于 2021-1-21 10:33
P1M0 = 0XAA;
P1M1 = 0X00;
两行就能初始化8个口,用你这个不是得8行?

这样这个Port 设置是问题不大,但是同一个Port 的不同引脚需要设置成不同的模式就要写一下二进制,再转16进制了,不然就要多次位移和与或运算了。
回复 支持 反对

使用道具 举报

发表于 2021-1-21 16:46:15 | 显示全部楼层
高手,绝对的高手。
回复 支持 反对

使用道具 举报

发表于 2021-1-27 08:37:43 | 显示全部楼层
本帖最后由 hewayking 于 2021-1-27 08:39 编辑
flishmen 发表于 2021-1-21 16:43
这样这个Port 设置是问题不大,但是同一个Port 的不同引脚需要设置成不同的模式就要写一下二进制,再转16 ...

//让keil C语言编辑支持二进制数据格式
//在头文件中利用宏定义代替十六进制数据


#ifndef BIN
#define BIN

#define B00000000 0x00
#define B00000001 0x01
#define B00000010 0x02
#define B00000011 0x03
#define B00000100 0x04
#define B00000101 0x05
#define B00000110 0x06
#define B00000111 0x07
#define B00001000 0x08
#define B00001001 0x09
#define B00001010 0x0A
#define B00001011 0x0B
#define B00001100 0x0C
#define B00001101 0x0D
#define B00001110 0x0E
#define B00001111 0x0F
#define B00010000 0x10
#define B00010001 0x11
#define B00010010 0x12
#define B00010011 0x13
#define B00010100 0x14
#define B00010101 0x15
#define B00010110 0x16
#define B00010111 0x17
#define B00011000 0x18
#define B00011001 0x19
#define B00011010 0x1A
#define B00011011 0x1B
#define B00011100 0x1C
#define B00011101 0x1D
#define B00011110 0x1E
#define B00011111 0x1F
#define B00100000 0x20
#define B00100001 0x21
#define B00100010 0x22
#define B00100011 0x23
#define B00100100 0x24
#define B00100101 0x25
#define B00100110 0x26
#define B00100111 0x27
#define B00101000 0x28
#define B00101001 0x29
#define B00101010 0x2A
#define B00101011 0x2B
#define B00101100 0x2C
#define B00101101 0x2D
#define B00101110 0x2E
#define B00101111 0x2F
#define B00110000 0x30
#define B00110001 0x31
#define B00110010 0x32
#define B00110011 0x33
#define B00110100 0x34
#define B00110101 0x35
#define B00110110 0x36
#define B00110111 0x37
#define B00111000 0x38
#define B00111001 0x39
#define B00111010 0x3A
#define B00111011 0x3B
#define B00111100 0x3C
#define B00111101 0x3D
#define B00111110 0x3E
#define B00111111 0x3F
#define B01000000 0x40
#define B01000001 0x41
#define B01000010 0x42
#define B01000011 0x43
#define B01000100 0x44
#define B01000101 0x45
#define B01000110 0x46
#define B01000111 0x47
#define B01001000 0x48
#define B01001001 0x49
#define B01001010 0x4A
#define B01001011 0x4B
#define B01001100 0x4C
#define B01001101 0x4D
#define B01001110 0x4E
#define B01001111 0x4F
#define B01010000 0x50
#define B01010001 0x51
#define B01010010 0x52
#define B01010011 0x53
#define B01010100 0x54
#define B01010101 0x55
#define B01010110 0x56
#define B01010111 0x57
#define B01011000 0x58
#define B01011001 0x59
#define B01011010 0x5A
#define B01011011 0x5B
#define B01011100 0x5C
#define B01011101 0x5D
#define B01011110 0x5E
#define B01011111 0x5F
#define B01100000 0x60
#define B01100001 0x61
#define B01100010 0x62
#define B01100011 0x63
#define B01100100 0x64
#define B01100101 0x65
#define B01100110 0x66
#define B01100111 0x67
#define B01101000 0x68
#define B01101001 0x69
#define B01101010 0x6A
#define B01101011 0x6B
#define B01101100 0x6C
#define B01101101 0x6D
#define B01101110 0x6E
#define B01101111 0x6F
#define B01110000 0x70
#define B01110001 0x71
#define B01110010 0x72
#define B01110011 0x73
#define B01110100 0x74
#define B01110101 0x75
#define B01110110 0x76
#define B01110111 0x77
#define B01111000 0x78
#define B01111001 0x79
#define B01111010 0x7A
#define B01111011 0x7B
#define B01111100 0x7C
#define B01111101 0x7D
#define B01111110 0x7E
#define B01111111 0x7F
#define B10000000 0x80
#define B10000001 0x81
#define B10000010 0x82
#define B10000011 0x83
#define B10000100 0x84
#define B10000101 0x85
#define B10000110 0x86
#define B10000111 0x87
#define B10001000 0x88
#define B10001001 0x89
#define B10001010 0x8A
#define B10001011 0x8B
#define B10001100 0x8C
#define B10001101 0x8D
#define B10001110 0x8E
#define B10001111 0x8F
#define B10010000 0x90
#define B10010001 0x91
#define B10010010 0x92
#define B10010011 0x93
#define B10010100 0x94
#define B10010101 0x95
#define B10010110 0x96
#define B10010111 0x97
#define B10011000 0x98
#define B10011001 0x99
#define B10011010 0x9A
#define B10011011 0x9B
#define B10011100 0x9C
#define B10011101 0x9D
#define B10011110 0x9E
#define B10011111 0x9F
#define B10100000 0xA0
#define B10100001 0xA1
#define B10100010 0xA2
#define B10100011 0xA3
#define B10100100 0xA4
#define B10100101 0xA5
#define B10100110 0xA6
#define B10100111 0xA7
#define B10101000 0xA8
#define B10101001 0xA9
#define B10101010 0xAA
#define B10101011 0xAB
#define B10101100 0xAC
#define B10101101 0xAD
#define B10101110 0xAE
#define B10101111 0xAF
#define B10110000 0xB0
#define B10110001 0xB1
#define B10110010 0xB2
#define B10110011 0xB3
#define B10110100 0xB4
#define B10110101 0xB5
#define B10110110 0xB6
#define B10110111 0xB7
#define B10111000 0xB8
#define B10111001 0xB9
#define B10111010 0xBA
#define B10111011 0xBB
#define B10111100 0xBC
#define B10111101 0xBD
#define B10111110 0xBE
#define B10111111 0xBF
#define B11000000 0xC0
#define B11000001 0xC1
#define B11000010 0xC2
#define B11000011 0xC3
#define B11000100 0xC4
#define B11000101 0xC5
#define B11000110 0xC6
#define B11000111 0xC7
#define B11001000 0xC8
#define B11001001 0xC9
#define B11001010 0xCA
#define B11001011 0xCB
#define B11001100 0xCC
#define B11001101 0xCD
#define B11001110 0xCE
#define B11001111 0xCF
#define B11010000 0xD0
#define B11010001 0xD1
#define B11010010 0xD2
#define B11010011 0xD3
#define B11010100 0xD4
#define B11010101 0xD5
#define B11010110 0xD6
#define B11010111 0xD7
#define B11011000 0xD8
#define B11011001 0xD9
#define B11011010 0xDA
#define B11011011 0xDB
#define B11011100 0xDC
#define B11011101 0xDD
#define B11011110 0xDE
#define B11011111 0xDF
#define B11100000 0xE0
#define B11100001 0xE1
#define B11100010 0xE2
#define B11100011 0xE3
#define B11100100 0xE4
#define B11100101 0xE5
#define B11100110 0xE6
#define B11100111 0xE7
#define B11101000 0xE8
#define B11101001 0xE9
#define B11101010 0xEA
#define B11101011 0xEB
#define B11101100 0xEC
#define B11101101 0xED
#define B11101110 0xEE
#define B11101111 0xEF
#define B11110000 0xF0
#define B11110001 0xF1
#define B11110010 0xF2
#define B11110011 0xF3
#define B11110100 0xF4
#define B11110101 0xF5
#define B11110110 0xF6
#define B11110111 0xF7
#define B11111000 0xF8
#define B11111001 0xF9
#define B11111010 0xFA
#define B11111011 0xFB
#define B11111100 0xFC
#define B11111101 0xFD
#define B11111110 0xFE
#define B11111111 0xFF
#endi
//我前天为了 keil直接用2进制做的头文件:loveliness:
回复 支持 反对

使用道具 举报

发表于 2021-2-1 22:18:32 | 显示全部楼层
hewayking 发表于 2021-1-27 08:37
//让keil C语言编辑支持二进制数据格式
//在头文件中利用宏定义代替十六进制数据

如果你用SDCC的话,是可以用二进制常量表达的.
回复 支持 反对

使用道具 举报

发表于 2021-2-3 09:40:46 来自手机浏览器 | 显示全部楼层
本来两条语句就搞定的事情,给弄出数十条,更加的烧脑。
回复 支持 反对

使用道具 举报

发表于 2021-2-3 16:55:27 | 显示全部楼层
很不错!支持楼主,谢谢分享。
各有各的优点,传统的使用PxM0和PxM1固然是好,如果只在初始化操作这样写两行确实方便。但是要频繁切换IO口状态呢?各有优点,目的都是实现自己的要求,能有更方便的路不走,非要兜一大圈去在哪计算一个IO口的状态。
回复 支持 1 反对 0

使用道具 举报

发表于 2021-2-8 13:08:22 | 显示全部楼层
STC官网早有库函数,含GPIO等多种函数!:)
stc-lib-gpio.jpg

STC15-SOFTWARE-LIB-V1.0.rar

2.25 MB, 下载次数: 2, 下载积分: 家元 -55

STC8G-STC8H-LIB-DEMO-CODE-20201231kw.zip

4.52 MB, 下载次数: 0, 下载积分: 家元 -55

回复 支持 反对

使用道具 举报

发表于 2023-4-29 14:28:12 | 显示全部楼层


STC-ISP V6.91N版 右侧有很多程序自动生成工具
image.png
回复 支持 1 反对 0

使用道具 举报

发表于 2023-4-30 10:05:57 | 显示全部楼层
钟山风雨起苍黄 发表于 2023-4-29 14:28
STC-ISP V6.91N版 右侧有很多程序自动生成工具

回复 支持 反对

使用道具 举报

发表于 2023-4-30 10:38:41 | 显示全部楼层
不错!先下载收藏。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 18:29 , Processed in 0.296401 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表