You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

926 lines
38 KiB

1 year ago
//////////////////////////////////////////////////////////////////////////
/// COPYRIGHT NOTICE
/// Copyright (c) 2022, 传控科技
/// All rights reserved.
///
/// @file __STC_ONLY_H_
/// @brief macro define 和cpu相关,STC独有的 使用stc系列单片机是使用
/// 该文件和cpu的系列和型号有限关联 至少C51的标准寄存器应该是一致的
///(本文件实现的功能的详述)
///
/// @version 1.0 CCsens technology
/// @author CC
/// @date 20211226
/// @version 1.1 CCsens technology
/// @author CC
/// @date 20220626_7517 CCmodify
///增加了
/// @version 1.2 CCsens technology
/// @author CC
/// @date 20230317_7517 CCmodify
///增加了D_P67_HighR
//
//////////////////////////////////////////////////////////////////////////
#ifndef __STC_ONLY_H_
#define __STC_ONLY_H_
#include<intrins.h>
#define T3IF 0x02
///#define ES2 0x01
///#define ES3 0x08
#define S2TI BITN1
#define S2RI BITN0
#define S3TI BITN1
#define S3RI BITN0
#define S4TI BITN1
#define S4RI BITN0
///#define I2CTXD (*(unsigned char volatile xdata *)0xfE86)//423@ST8.PDF
///#define I2CRXD (*(unsigned char volatile xdata *)0xfE87)//423@ST8.PDF
#if 0
#define PWM5T1 (*(unsigned int volatile xdata *)0xff38)
#define PWM5T1H (*(unsigned char volatile xdata *)0xff38)
#define PWM5T1L (*(unsigned char volatile xdata *)0xff39)
///-------------------------------------
#define PWM5T2 (*(unsigned int volatile xdata *)0xff3a)
#define PWM5T2H (*(unsigned char volatile xdata *)0xff3a)
#define PWM5T2L (*(unsigned char volatile xdata *)0xff3b)
#define PWM5CR (*(unsigned char volatile xdata *)0xff3c)
#define PWM5HLD (*(unsigned char volatile xdata *)0xff3d)
#define PWM6T1 (*(unsigned int volatile xdata *)0xff40)
#define PWM6T1H (*(unsigned char volatile xdata *)0xff40)
#define PWM6T1L (*(unsigned char volatile xdata *)0xff41)
#define PWM6T2 (*(unsigned int volatile xdata *)0xff42)
#define PWM6T2H (*(unsigned char volatile xdata *)0xff42)
#define PWM6T2L (*(unsigned char volatile xdata *)0xff43)
#define PWM6CR (*(unsigned char volatile xdata *)0xff44)
#define PWM6HLD (*(unsigned char volatile xdata *)0xff45)
#define PWM7T1 (*(unsigned int volatile xdata *)0xff48)
#define PWM7T1H (*(unsigned char volatile xdata *)0xff48)
#define PWM7T1L (*(unsigned char volatile xdata *)0xff49)
#define PWM7T2 (*(unsigned int volatile xdata *)0xff4a)
#define PWM7T2H (*(unsigned char volatile xdata *)0xff4a)
#define PWM7T2L (*(unsigned char volatile xdata *)0xff4b)
#define gRccUs03 DMA_SPI_TXA///(*(unsigned short volatile data *)0xEC)//351@ST8.PDF CCAP0l CCAP1L EAH EBH
#define gRccUs01 PWM7T1////(*(unsigned short volatile data *)0xd2)//226@ST8.PDF T4H定时器4的高字节 D2H T4H定时器4的低字节 D3H
#define gRccUs02 PWM6T2////(*(unsigned short volatile data *)0xEA)//351@ST8.PDF CCAP0l CCAP1L EAH EBH
//#define gRccUs03 s_task_GC032A.n
#define gRccUs01_H PWM7T1H////(*(unsigned char volatile data *)0xd2)/// 定时器 4 计数寄存器(T4L,T4H)
#define gRccUs01_L PWM7T1L///(*(unsigned char volatile data *)0xd3)
////20221112_94813 CCmodify
///根据调整
#define gRccUs04 PWM5T2///(*(unsigned short volatile data *)0xFA)///351@ST8.PDF
#define gRccUs05 PWM5T1///(*(unsigned short volatile data *)0xFC)///351@ST8.PD CCAP2H
#define gRccUs01 PWM7T1////(*(unsigned short volatile data *)0xd2)//226@ST8.PDF T4H定时器4的高字节 D2H T4H定时器4的低字节 D3H
#define gRccUs02
#endif
#define gRccUs03 DMA_SPI_TXA///(*(unsigned short volatile data *)0xEC)//351@ST8.PDF CCAP0l CCAP1L EAH EBH
#define gRccUs01 PWM7T1////(*(unsigned short volatile data *)0xd2)//226@ST8.PDF T4H定时器4的高字节 D2H T4H定时器4的低字节 D3H
#define gRccUs02 PWM6T2
#define gRccUs05 PWM5T1
#define D_EN_EREG(); P_SW2 |= 0x80;
/////////////////////////////////////////////////
#ifdef docasdfasdf
B7 B6 B5 B4 B3 B2 B1 B0
IE2 AFH EUSB ET4 ET3 ES4 ES3 ET2 ESPI ES2
EUSBUSB中断允许位
0 USB中断1 USB中断
ET4/T4的溢出中断允许位
0 T4中断1T4中断
ET3/ T3的溢出中断允许位
0 T3中断1T3中断
ES44
041 4ES33
0313
ET2/ T2的溢出中断允许位
0T2中断1T3中断ESPISPI中断允许位
0 SPI中断1 SPI中断
ES2 2
0212
#endif
/*******
#define ES4 BITN4
#define ES3 BITN3
#define ES2 BITN0
******/
/* P3 */
sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD = 0xB1;
sbit RXD = 0xB0;
///sfr AUXINTIF = 0xef;
#define T2IF 0x01
/***
#define INT4IF BITN6
#define INT3IF BITN5
#define INT2IF BITN4
****/
//#define T4IF BITN2
//#define T3IF BITN1
//#define T2IF BITN0
/// >>>>> add by cc
#include "c_bit.h"
////端口内部4.1K上拉电阻控制位(注:P3.0和P3.1口上的上拉电阻可能会略小一些)
////0:禁止端口内部的 4.1K 上拉电阻 1:使能端口内部的 4.1K 上拉电阻
#define D_PHDR_P0(BITNx) D_EN_EREG();BITN_0(P0DR,BITNx);
#define D_PDR_P0(BITNx) D_EN_EREG();BITN_1(P0DR,BITNx);
#define D_PHDR_P1(BITNx) D_EN_EREG();BITN_0(P1DR,BITNx);
#define D_PDR_P1(BITNx) D_EN_EREG();BITN_1(P1DR,BITNx);
#define D_PUON_P0(BITNx) D_EN_EREG();BITN_1(P0PU,BITNx);
#define D_PUOFF_P0(BITNx) D_EN_EREG();BITN_0(P0PU,BITNx);
#define D_PUON_P1(BITNx) D_EN_EREG();BITN_1(P1PU,BITNx);
#define D_PUOFF_P1(BITNx) D_EN_EREG();BITN_0(P1PU,BITNx);
#define D_PUON_P2(BITNx) D_EN_EREG();BITN_1(P2PU,BITNx);
#define D_PUOFF_P2(BITNx) D_EN_EREG();BITN_0(P2PU,BITNx);
#define D_PUON_P3(BITNx) D_EN_EREG();BITN_1(P3PU,BITNx);
#define D_PUOFF_P3(BITNx) D_EN_EREG();BITN_0(P3PU,BITNx);
#define D_PUON_P4(BITNx) D_EN_EREG();BITN_1(P4PU,BITNx);
#define D_PUOFF_P4(BITNx) D_EN_EREG();BITN_0(P4PU,BITNx);
#define D_PUON_P5(BITNx) D_EN_EREG();BITN_1(P5PU,BITNx);
#define D_PUOFF_P5(BITNx) D_EN_EREG();BITN_0(P5PU,BITNx);
#define D_PUON_P6(BITNx) D_EN_EREG();BITN_1(P6PU,BITNx);
#define D_PUOFF_P6(BITNx) D_EN_EREG();BITN_0(P6PU,BITNx);
#define D_PUON_P7(BITNx) D_EN_EREG();BITN_1(P7PU,BITNx);
#define D_PUOFF_P7(BITNx) D_EN_EREG();BITN_0(P7PU,BITNx);
#define D_stdIO_P0_ALL() D_EN_EREG();P0M1=0;P0M0=0;
#define D_HighI_P0_ALL() D_EN_EREG();P0M1=0;P0M0=0XFF;
#define D_HighR_P0_ALL() D_EN_EREG();P0M1=0XFF;P0M0=0;
#define D_OpenD_P0_ALL() D_EN_EREG();P0M1=0XFF;P0M0=0XFF;
#define D_stdIO_P1_ALL() D_EN_EREG();P1M1=0;P1M0=0;
#define D_HighI_P1_ALL() D_EN_EREG();P1M1=0;P1M0=0XFF;
#define D_HighR_P1_ALL() D_EN_EREG();P1M1=0XFF;P1M0=0;
#define D_OpenD_P1_ALL() D_EN_EREG();P1M1=0XFF;P1M0=0XFF;
#define D_stdIO_P2_ALL() D_EN_EREG();P2M1=0; P2M0=0;
#define D_HighI_P2_ALL() D_EN_EREG();P2M1=0; P2M0=0XFF;
#define D_HighR_P2_ALL() D_EN_EREG();P2M1=0XFF;P2M0=0;
#define D_OpenD_P2_ALL() D_EN_EREG();P2M1=0XFF;P2M0=0XFF
#define D_stdIO_P3_ALL() D_EN_EREG();P3M1=0; P3M0=0;
#define D_HighI_P3_ALL() D_EN_EREG();P3M1=0; P3M0=0XFF;
#define D_HighR_P3_ALL() D_EN_EREG();P3M1=0XFF;P3M0=0;
#define D_OpenD_P3_ALL() D_EN_EREG();P3M1=0XFF;P3M0=0XFF
#define D_stdIO_P4_ALL() D_EN_EREG();P4M1=0; P4M0=0;
#define D_HighI_P4_ALL() D_EN_EREG();P4M1=0; P4M0=0XFF;
#define D_HighR_P4_ALL() D_EN_EREG();P4M1=0XFF;P4M0=0;
#define D_OpenD_P4_ALL() D_EN_EREG();P4M1=0XFF;P4M0=0XFF
#define D_stdIO_P5_ALL() D_EN_EREG();P5M1=0; P5M0=0;
#define D_HighI_P5_ALL() D_EN_EREG();P5M1=0; P5M0=0XFF;
#define D_HighR_P5_ALL() D_EN_EREG();P5M1=0XFF;P5M0=0;
#define D_OpenD_P5_ALL() D_EN_EREG();P5M1=0XFF;P5M0=0XFF;
#define D_stdIO_P0(BITNx) D_EN_EREG();BITN_0(P0M1,BITNx);BITN_0(P0M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P0(BITNx) D_EN_EREG();BITN_0(P0M1,BITNx);BITN_1(P0M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P0(BITNx) D_EN_EREG();BITN_1(P0M1,BITNx);BITN_0(P0M0,BITNx); /////////10 高阻
#define D_OpenD_P0(BITNx) D_EN_EREG();BITN_1(P0M1,BITNx);BITN_1(P0M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P1(BITNx) D_EN_EREG();BITN_0(P1M1,BITNx);BITN_0(P1M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P1(BITNx) D_EN_EREG();BITN_0(P1M1,BITNx);BITN_1(P1M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P1(BITNx) D_EN_EREG();BITN_1(P1M1,BITNx);BITN_0(P1M0,BITNx); /////////10 高阻
#define D_OpenD_P1(BITNx) D_EN_EREG();BITN_1(P1M1,BITNx);BITN_1(P1M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P2(BITNx) D_EN_EREG();BITN_0(P2M1,BITNx);BITN_0(P2M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P2(BITNx) D_EN_EREG();BITN_0(P2M1,BITNx);BITN_1(P2M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P2(BITNx) D_EN_EREG();BITN_1(P2M1,BITNx);BITN_0(P2M0,BITNx); /////////10 高阻
#define D_OpenD_P2(BITNx) D_EN_EREG();BITN_1(P2M1,BITNx);BITN_1(P2M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P3(BITNx) D_EN_EREG();BITN_0(P3M1,BITNx);BITN_0(P3M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P3(BITNx) D_EN_EREG();BITN_0(P3M1,BITNx);BITN_1(P3M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P3(BITNx) D_EN_EREG();BITN_1(P3M1,BITNx);BITN_0(P3M0,BITNx); /////////10 高阻
#define D_OpenD_P3(BITNx) D_EN_EREG();BITN_1(P3M1,BITNx);BITN_1(P3M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P4(BITNx) D_EN_EREG();BITN_0(P4M1,BITNx);BITN_0(P4M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P4(BITNx) D_EN_EREG();BITN_0(P4M1,BITNx);BITN_1(P4M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P4(BITNx) D_EN_EREG();BITN_1(P4M1,BITNx);BITN_0(P4M0,BITNx); /////////10 高阻
#define D_OpenD_P4(BITNx) D_EN_EREG();BITN_1(P4M1,BITNx);BITN_1(P4M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P5(BITNx) D_EN_EREG();BITN_0(P5M1,BITNx);BITN_0(P5M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P5(BITNx) D_EN_EREG();BITN_0(P5M1,BITNx);BITN_1(P5M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P5(BITNx) D_EN_EREG();BITN_1(P5M1,BITNx);BITN_0(P5M0,BITNx); /////////10 高阻
#define D_OpenD_P5(BITNx) D_EN_EREG();BITN_1(P5M1,BITNx);BITN_1(P5M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P6(BITNx) D_EN_EREG();BITN_0(P6M1,BITNx);BITN_0(P6M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P6(BITNx) D_EN_EREG();BITN_0(P6M1,BITNx);BITN_1(P6M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P6(BITNx) D_EN_EREG();BITN_1(P6M1,BITNx);BITN_0(P6M0,BITNx); /////////10 高阻
#define D_OpenD_P6(BITNx) D_EN_EREG();BITN_1(P6M1,BITNx);BITN_1(P6M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P7(BITNx) D_EN_EREG();BITN_0(P7M1,BITNx);BITN_0(P7M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P7(BITNx) D_EN_EREG();BITN_0(P7M1,BITNx);BITN_1(P7M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P7(BITNx) D_EN_EREG();BITN_1(P7M1,BITNx);BITN_0(P7M0,BITNx); /////////10 高阻
#define D_OpenD_P7(BITNx) D_EN_EREG();BITN_1(P7M1,BITNx);BITN_1(P7M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
/***
#define P0_conf_in(n) BITN_1(P0M1,n);BITN_0(P0M0,n);
#define P1_conf_in(n) BITN_1(P1M1,n);BITN_0(P1M0,n);
#define P2_conf_in(n) BITN_1(P2M1,n);BITN_0(P2M0,n);
#define P2_conf_port(n) BITN_0(P2M1,n);BITN_0(P2M0,n);
#define P3_conf_in(n) BITN_1(P3M1,n);BITN_0(P3M0,n);
#define P3_conf_port(n) BITN_0(P3M1,n);BITN_0(P3M0,n);
#define P4_conf_in(n) BITN_1(P4M1,n);BITN_0(P4M0,n);
#define P5_conf_in(n) BITN_1(P5M1,n);BITN_0(P5M0,n);
***/
////#define NOP() _nop_()
#define L0_INT4_OPEN() BITN_1(INT_CLKO, INT_EX4)
#define L0_INT4_CLOSE() BITN_0(INT_CLKO, INT_EX4)
#define L0_INT4_AT() BITN_G(INT_CLKO, INT_EX4)
#define L0_INT4_CLEAR() BITN_0(AUXINTIF, INT4IF)
#define L0_INT3_CLEAR() BITN_0(AUXINTIF, INT3IF)
#define L0_INT2_CLEAR() BITN_0(AUXINTIF, INT2IF)
//////
#define L0_INT3_OPEN() BITN_1(INT_CLKO, INT_EX3);
#define L0_INT3_CLOSE() BITN_0(INT_CLKO, INT_EX3);
#define L0_INT2_OPEN() BITN_1(INT_CLKO, INT_EX2);
#define L0_INT2_CLOSE() BITN_0(INT_CLKO, INT_EX2);
#define L0_INT1_OPEN() EX1 = 1;
#define L0_INT1_CLOSE() EX1 = 0;
#define L0_INT0_OPEN() EX0 = 1;
#define L0_INT0_CLOSE() EX0 = 0;
#if 0
#define L0_TIMER1_start() TR1 = 1;
#define L0_TIMER1_end() TR1 = 0;
#define L0_TIMER1_isr_OPEN() ET1 = 1;
#define L0_TIMER1_isr_CLOSE() ET1 = 0;
#else
#define L0_TIMER1_start() ET1 = 1;
#define L0_TIMER1_end() ET1 = 0;
#define L0_TIMER1_isr_OPEN() TR1 = 1;
#define L0_TIMER1_isr_CLOSE() TR1 = 0;
#endif
#define L0_IAP_enter_ISP(); NOPN(10);IAP_CONTR = BITN6|BITN5;
#define L0_IAP_Hot_restart(); NOPN(10);IAP_CONTR = BITN5;
/// fixme 颠倒定义会让c51锁死#define _nop_() NOP()
///#define L0_INT3_OPEN() BITN_1(INT_CLKO,INT_EX3); //使能INT3中断
///#define L0_INT3_CLOSE() BITN_0(INT_CLKO,INT_EX3);
#define D_P07_IN() D_OpenD_P0(BITN7)
#define D_P06_IN() D_OpenD_P0(BITN6)
#define D_P05_IN() D_OpenD_P0(BITN5)
#define D_P04_IN() D_OpenD_P0(BITN4)
#define D_P03_IN() D_OpenD_P0(BITN3)
#define D_P02_IN() D_OpenD_P0(BITN2)
#define D_P01_IN() D_OpenD_P0(BITN1)
#define D_P00_IN() D_OpenD_P0(BITN0)
#define D_P07_OUT() D_stdIO_P0(BITN7)
#define D_P06_OUT() D_stdIO_P0(BITN6)
#define D_P05_OUT() D_stdIO_P0(BITN5)
#define D_P04_OUT() D_stdIO_P0(BITN4)
#define D_P03_OUT() D_stdIO_P0(BITN3)
#define D_P02_OUT() D_stdIO_P0(BITN2)
#define D_P01_OUT() D_stdIO_P0(BITN1)
#define D_P00_OUT() D_stdIO_P0(BITN0)
#define D_P17_IN() D_OpenD_P1(BITN7)
#define D_P16_IN() D_OpenD_P1(BITN6)
#define D_P15_IN() D_OpenD_P1(BITN5)
#define D_P14_IN() D_OpenD_P1(BITN4)
#define D_P13_IN() D_OpenD_P1(BITN3)
#define D_P12_IN() D_OpenD_P1(BITN2)
#define D_P11_IN() D_OpenD_P1(BITN1)
#define D_P10_IN() D_OpenD_P1(BITN0)
#define D_P17_OUT() D_stdIO_P1(BITN7)
#define D_P16_OUT() D_stdIO_P1(BITN6)
#define D_P15_OUT() D_stdIO_P1(BITN5)
#define D_P14_OUT() D_stdIO_P1(BITN4)
#define D_P13_OUT() D_stdIO_P1(BITN3)
#define D_P12_OUT() D_stdIO_P1(BITN2)
#define D_P11_OUT() D_stdIO_P1(BITN1)
#define D_P10_OUT() D_stdIO_P1(BITN0)
#define D_P27_IN() D_OpenD_P2(BITN7)
#define D_P26_IN() D_OpenD_P2(BITN6)
#define D_P25_IN() D_OpenD_P2(BITN5)
#define D_P24_IN() D_OpenD_P2(BITN4)
#define D_P23_IN() D_OpenD_P2(BITN3)
#define D_P22_IN() D_OpenD_P2(BITN2)
#define D_P21_IN() D_OpenD_P2(BITN1)
#define D_P20_IN() D_OpenD_P2(BITN0)
#define D_P27_OUT() D_stdIO_P2(BITN7)
#define D_P26_OUT() D_stdIO_P2(BITN6)
#define D_P25_OUT() D_stdIO_P2(BITN5)
#define D_P24_OUT() D_stdIO_P2(BITN4)
#define D_P23_OUT() D_stdIO_P2(BITN3)
#define D_P22_OUT() D_stdIO_P2(BITN2)
#define D_P21_OUT() D_stdIO_P2(BITN1)
#define D_P20_OUT() D_stdIO_P2(BITN0)
#define D_P37_IN() D_OpenD_P3(BITN7)
#define D_P36_IN() D_OpenD_P3(BITN6)
#define D_P35_IN() D_OpenD_P3(BITN5)
#define D_P34_IN() D_OpenD_P3(BITN4)
#define D_P33_IN() D_OpenD_P3(BITN3)
#define D_P32_IN() D_OpenD_P3(BITN2)
#define D_P31_IN() D_OpenD_P3(BITN1)
#define D_P30_IN() D_OpenD_P3(BITN0)
#define D_P37_OUT() D_stdIO_P3(BITN7)
#define D_P36_OUT() D_stdIO_P3(BITN6)
#define D_P35_OUT() D_stdIO_P3(BITN5)
#define D_P34_OUT() D_stdIO_P3(BITN4)
#define D_P33_OUT() D_stdIO_P3(BITN3)
#define D_P32_OUT() D_stdIO_P3(BITN2)
#define D_P31_OUT() D_stdIO_P3(BITN1)
#define D_P30_OUT() D_stdIO_P3(BITN0)
#define D_P47_IN() D_OpenD_P4(BITN7)
#define D_P46_IN() D_OpenD_P4(BITN6)
#define D_P45_IN() D_OpenD_P4(BITN5)
#define D_P44_IN() D_OpenD_P4(BITN4)
#define D_P43_IN() D_OpenD_P4(BITN3)
#define D_P42_IN() D_OpenD_P4(BITN2)
#define D_P41_IN() D_OpenD_P4(BITN1) /// D_opend_P4(BITN1)
#define D_P40_IN() D_OpenD_P4(BITN0)
#define D_P47_OUT() D_stdIO_P4(BITN7)
#define D_P46_OUT() D_stdIO_P4(BITN6)
#define D_P45_OUT() D_stdIO_P4(BITN5)
#define D_P44_OUT() D_stdIO_P4(BITN4)
#define D_P43_OUT() D_stdIO_P4(BITN3)
#define D_P42_OUT() D_stdIO_P4(BITN2)
#define D_P41_OUT() D_stdIO_P4(BITN1)
#define D_P40_OUT() D_stdIO_P4(BITN0)
#define D_P57_IN() D_OpenD_P5(BITN7)
#define D_P56_IN() D_OpenD_P5(BITN6)
#define D_P55_IN() D_OpenD_P5(BITN5)
#define D_P54_IN() D_OpenD_P5(BITN4)
#define D_P53_IN() D_OpenD_P5(BITN3)
#define D_P52_IN() D_OpenD_P5(BITN2)
#define D_P51_IN() D_OpenD_P5(BITN1)
#define D_P50_IN() D_OpenD_P5(BITN0)
#define D_P57_OUT() D_stdIO_P5(BITN7)
#define D_P56_OUT() D_stdIO_P5(BITN6)
#define D_P55_OUT() D_stdIO_P5(BITN5)
#define D_P54_OUT() D_stdIO_P5(BITN4)
#define D_P53_OUT() D_stdIO_P5(BITN3)
#define D_P52_OUT() D_stdIO_P5(BITN2)
#define D_P51_OUT() D_stdIO_P5(BITN1)
#define D_P50_OUT() D_stdIO_P5(BITN0)
#define D_P67_IN() D_OpenD_P6(BITN7)
#define D_P66_IN() D_OpenD_P6(BITN6)
#define D_P65_IN() D_OpenD_P6(BITN5)
#define D_P64_IN() D_OpenD_P6(BITN4)
#define D_P63_IN() D_OpenD_P6(BITN3)
#define D_P62_IN() D_OpenD_P6(BITN2)
#define D_P61_IN() D_OpenD_P6(BITN1)
#define D_P60_IN() D_OpenD_P6(BITN0)
#define D_P67_OUT() D_stdIO_P6(BITN7)
#define D_P66_OUT() D_stdIO_P6(BITN6)
#define D_P65_OUT() D_stdIO_P6(BITN5)
#define D_P64_OUT() D_stdIO_P6(BITN4)
#define D_P63_OUT() D_stdIO_P6(BITN3)
#define D_P62_OUT() D_stdIO_P6(BITN2)
#define D_P61_OUT() D_stdIO_P6(BITN1)
#define D_P60_OUT() D_stdIO_P6(BITN0)
#define D_SERVE_INT0 interrupt INT0_VECTOR /// 01 00
#define D_SERVE_TIMER0 interrupt TMR0_VECTOR /// 02 01
#define D_SERVE_INT1 interrupt INT1_VECTOR /// 03 02
#define D_SERVE_TIMER1 interrupt TMR1_VECTOR /// 04 03
#define D_SERVE_UART interrupt UART1_VECTOR /// 05 04
#define D_SERVE_ADC interrupt ADC_VECTOR /// 06 05
#define D_SERVE_LVD interrupt LVD_VECTOR /// 07 06
#define D_SERVE_PCA interrupt PCA_VECTOR /// 08 07
#define D_SERVE_UART2 interrupt UART2_VECTOR /// 09 08
#define D_SERVE_SPI interrupt SPI_VECTOR /// 10 09
#define D_SERVE_INT2 interrupt INT2_VECTOR /// 11 10
#define D_SERVE_INT3 interrupt INT3_VECTOR /// 12 11
#define D_SERVE_TIMER2 interrupt TMR2_VECTOR /// 13 12
#define D_SERVE_INT4 interrupt INT4_VECTOR /// 14 13
#define D_SERVE_UART3 interrupt UART3_VECTOR /// 15 14
#define D_SERVE_UART4 interrupt UART4_VECTOR /// 16 15
#define D_SERVE_TIMER3 interrupt TMR3_VECTOR /// 17 16
#define D_SERVE_TIMER4 interrupt TMR4_VECTOR /// 18 17
#define D_SERVE_CMP interrupt CMP_VECTOR /// 19 18
#define D_SERVE_PWM interrupt PWM_VECTOR /// 20 19
#define D_SERVE_PWMFD interrupt PWMFD_VECTOR /// 21 20
#define D_SERVE_I2C interrupt I2C_VECTOR /// 22 21
#define D_SERVE_P0INT interrupt P0INT_VECTOR /// 24 23
#define D_SERVE_P1INT interrupt P1INT_VECTOR /// 25 24
#define D_SERVE_P2INT interrupt P2INT_VECTOR /// 26 25
#define D_SERVE_P3INT interrupt P3INT_VECTOR /// 27 26
#define D_SERVE_P4INT interrupt P4INT_VECTOR /// 28 27
#define D_SERVE_P5INT interrupt P5INT_VECTOR /// 29 28
#define D_SERVE_P6INT interrupt P6INT_VECTOR /// 30 29
#define D_SERVE_P7INT interrupt P7INT_VECTOR /// 31 30
#define D_SERVE_M2MDMA interrupt M2MDMA_VECTOR /// 32 31
#define D_SERVE_ADCDMA interrupt ADCDMA_VECTOR /// 33 32
#define D_SERVE_SPIDMA interrupt SPIDMA_VECTOR /// 34 33
#define D_SERVE_U1TXDMA interrupt U1TXDMA_VECTOR /// 35 34
#define D_SERVE_U1RXDMA interrupt U1RXDMA_VECTOR /// 36 35
#define D_SERVE_U2TXDMA interrupt U2TXDMA_VECTOR /// 37 36
#define D_SERVE_U2RXDMA interrupt U2RXDMA_VECTOR /// 38 37
#define D_SERVE_U3TXDMA interrupt U3TXDMA_VECTOR /// 39 38
#define D_SERVE_U3RXDMA interrupt U3RXDMA_VECTOR /// 40 39
#define D_SERVE_U4TXDMA interrupt U4TXDMA_VECTOR /// 41 40
#define D_SERVE_U4RXDMA interrupt U4RXDMA_VECTOR /// 42 41
#define D_SERVE_LCMDMA interrupt LCMDMA_VECTOR /// 43 42
#define D_SERVE_LCM interrupt LCM_VECTOR /// 44 43
#define D_P07_OpenD() D_OpenD_P0(BITN7)
#define D_P06_OpenD() D_OpenD_P0(BITN6)
#define D_P05_OpenD() D_OpenD_P0(BITN5)
#define D_P04_OpenD() D_OpenD_P0(BITN4)
#define D_P03_OpenD() D_OpenD_P0(BITN3)
#define D_P02_OpenD() D_OpenD_P0(BITN2)
#define D_P01_OpenD() D_OpenD_P0(BITN1)
#define D_P00_OpenD() D_OpenD_P0(BITN0)
#define D_P07_stdIO() D_stdIO_P0(BITN7)
#define D_P06_stdIO() D_stdIO_P0(BITN6)
#define D_P05_stdIO() D_stdIO_P0(BITN5)
#define D_P04_stdIO() D_stdIO_P0(BITN4)
#define D_P03_stdIO() D_stdIO_P0(BITN3)
#define D_P02_stdIO() D_stdIO_P0(BITN2)
#define D_P01_stdIO() D_stdIO_P0(BITN1)
#define D_P00_stdIO() D_stdIO_P0(BITN0)
#define D_P07_HighI() D_HighI_P0(BITN7)
#define D_P06_HighI() D_HighI_P0(BITN6)
#define D_P05_HighI() D_HighI_P0(BITN5)
#define D_P04_HighI() D_HighI_P0(BITN4)
#define D_P03_HighI() D_HighI_P0(BITN3)
#define D_P02_HighI() D_HighI_P0(BITN2)
#define D_P01_HighI() D_HighI_P0(BITN1)
#define D_P00_HighI() D_HighI_P0(BITN0)
#define D_P07_HighR() D_HighR_P0(BITN7)
#define D_P06_HighR() D_HighR_P0(BITN6)
#define D_P05_HighR() D_HighR_P0(BITN5)
#define D_P04_HighR() D_HighR_P0(BITN4)
#define D_P03_HighR() D_HighR_P0(BITN3)
#define D_P02_HighR() D_HighR_P0(BITN2)
#define D_P01_HighR() D_HighR_P0(BITN1)
#define D_P00_HighR() D_HighR_P0(BITN0)
#define D_P17_OpenD() D_OpenD_P1(BITN7)
#define D_P16_OpenD() D_OpenD_P1(BITN6)
#define D_P15_OpenD() D_OpenD_P1(BITN5)
#define D_P14_OpenD() D_OpenD_P1(BITN4)
#define D_P13_OpenD() D_OpenD_P1(BITN3)
#define D_P12_OpenD() D_OpenD_P1(BITN2)
#define D_P11_OpenD() D_OpenD_P1(BITN1)
#define D_P10_OpenD() D_OpenD_P1(BITN0)
#define D_P17_stdIO() D_stdIO_P1(BITN7)
#define D_P16_stdIO() D_stdIO_P1(BITN6)
#define D_P15_stdIO() D_stdIO_P1(BITN5)
#define D_P14_stdIO() D_stdIO_P1(BITN4)
#define D_P13_stdIO() D_stdIO_P1(BITN3)
#define D_P12_stdIO() D_stdIO_P1(BITN2)
#define D_P11_stdIO() D_stdIO_P1(BITN1)
#define D_P10_stdIO() D_stdIO_P1(BITN0)
#define D_P17_HighI() D_HighI_P1(BITN7)
#define D_P16_HighI() D_HighI_P1(BITN6)
#define D_P15_HighI() D_HighI_P1(BITN5)
#define D_P14_HighI() D_HighI_P1(BITN4)
#define D_P13_HighI() D_HighI_P1(BITN3)
#define D_P12_HighI() D_HighI_P1(BITN2)
#define D_P11_HighI() D_HighI_P1(BITN1)
#define D_P10_HighI() D_HighI_P1(BITN0)
#define D_P17_HighR() D_HighR_P1(BITN7)
#define D_P16_HighR() D_HighR_P1(BITN6)
#define D_P15_HighR() D_HighR_P1(BITN5)
#define D_P14_HighR() D_HighR_P1(BITN4)
#define D_P13_HighR() D_HighR_P1(BITN3)
#define D_P12_HighR() D_HighR_P1(BITN2)
#define D_P11_HighR() D_HighR_P1(BITN1)
#define D_P10_HighR() D_HighR_P1(BITN0)
#define D_P27_OpenD() D_OpenD_P2(BITN7)
#define D_P26_OpenD() D_OpenD_P2(BITN6)
#define D_P25_OpenD() D_OpenD_P2(BITN5)
#define D_P24_OpenD() D_OpenD_P2(BITN4)
#define D_P23_OpenD() D_OpenD_P2(BITN3)
#define D_P22_OpenD() D_OpenD_P2(BITN2)
#define D_P21_OpenD() D_OpenD_P2(BITN1)
#define D_P20_OpenD() D_OpenD_P2(BITN0)
#define D_P27_stdIO() D_stdIO_P2(BITN7)
#define D_P26_stdIO() D_stdIO_P2(BITN6)
#define D_P25_stdIO() D_stdIO_P2(BITN5)
#define D_P24_stdIO() D_stdIO_P2(BITN4)
#define D_P23_stdIO() D_stdIO_P2(BITN3)
#define D_P22_stdIO() D_stdIO_P2(BITN2)
#define D_P21_stdIO() D_stdIO_P2(BITN1)
#define D_P20_stdIO() D_stdIO_P2(BITN0)
#define D_P27_HighI() D_HighI_P2(BITN7)
#define D_P26_HighI() D_HighI_P2(BITN6)
#define D_P25_HighI() D_HighI_P2(BITN5)
#define D_P24_HighI() D_HighI_P2(BITN4)
#define D_P23_HighI() D_HighI_P2(BITN3)
#define D_P22_HighI() D_HighI_P2(BITN2)
#define D_P21_HighI() D_HighI_P2(BITN1)
#define D_P20_HighI() D_HighI_P2(BITN0)
#define D_P27_HighR() D_HighR_P2(BITN7)
#define D_P26_HighR() D_HighR_P2(BITN6)
#define D_P25_HighR() D_HighR_P2(BITN5)
#define D_P24_HighR() D_HighR_P2(BITN4)
#define D_P23_HighR() D_HighR_P2(BITN3)
#define D_P22_HighR() D_HighR_P2(BITN2)
#define D_P21_HighR() D_HighR_P2(BITN1)
#define D_P20_HighR() D_HighR_P2(BITN0)
#define D_P37_OpenD() D_OpenD_P3(BITN7)
#define D_P36_OpenD() D_OpenD_P3(BITN6)
#define D_P35_OpenD() D_OpenD_P3(BITN5)
#define D_P34_OpenD() D_OpenD_P3(BITN4)
#define D_P33_OpenD() D_OpenD_P3(BITN3)
#define D_P32_OpenD() D_OpenD_P3(BITN2)
#define D_P31_OpenD() D_OpenD_P3(BITN1)
#define D_P30_OpenD() D_OpenD_P3(BITN0)
#define D_P37_stdIO() D_stdIO_P3(BITN7)
#define D_P36_stdIO() D_stdIO_P3(BITN6)
#define D_P35_stdIO() D_stdIO_P3(BITN5)
#define D_P34_stdIO() D_stdIO_P3(BITN4)
#define D_P33_stdIO() D_stdIO_P3(BITN3)
#define D_P32_stdIO() D_stdIO_P3(BITN2)
#define D_P31_stdIO() D_stdIO_P3(BITN1)
#define D_P30_stdIO() D_stdIO_P3(BITN0)
#define D_P37_HighI() D_HighI_P3(BITN7)
#define D_P36_HighI() D_HighI_P3(BITN6)
#define D_P35_HighI() D_HighI_P3(BITN5)
#define D_P34_HighI() D_HighI_P3(BITN4)
#define D_P33_HighI() D_HighI_P3(BITN3)
#define D_P32_HighI() D_HighI_P3(BITN2)
#define D_P31_HighI() D_HighI_P3(BITN1)
#define D_P30_HighI() D_HighI_P3(BITN0)
#define D_P37_HighR() D_HighR_P3(BITN7)
#define D_P36_HighR() D_HighR_P3(BITN6)
#define D_P35_HighR() D_HighR_P3(BITN5)
#define D_P34_HighR() D_HighR_P3(BITN4)
#define D_P33_HighR() D_HighR_P3(BITN3)
#define D_P32_HighR() D_HighR_P3(BITN2)
#define D_P31_HighR() D_HighR_P3(BITN1)
#define D_P30_HighR() D_HighR_P3(BITN0)
#define D_P47_OpenD() D_OpenD_P4(BITN7)
#define D_P46_OpenD() D_OpenD_P4(BITN6)
#define D_P45_OpenD() D_OpenD_P4(BITN5)
#define D_P44_OpenD() D_OpenD_P4(BITN4)
#define D_P43_OpenD() D_OpenD_P4(BITN3)
#define D_P42_OpenD() D_OpenD_P4(BITN2)
#define D_P41_OpenD() D_OpenD_P4(BITN1)
#define D_P40_OpenD() D_OpenD_P4(BITN0)
#define D_P47_stdIO() D_stdIO_P4(BITN7)
#define D_P46_stdIO() D_stdIO_P4(BITN6)
#define D_P45_stdIO() D_stdIO_P4(BITN5)
#define D_P44_stdIO() D_stdIO_P4(BITN4)
#define D_P43_stdIO() D_stdIO_P4(BITN3)
#define D_P42_stdIO() D_stdIO_P4(BITN2)
#define D_P41_stdIO() D_stdIO_P4(BITN1)
#define D_P40_stdIO() D_stdIO_P4(BITN0)
#define D_P47_HighI() D_HighI_P4(BITN7)
#define D_P46_HighI() D_HighI_P4(BITN6)
#define D_P45_HighI() D_HighI_P4(BITN5)
#define D_P44_HighI() D_HighI_P4(BITN4)
#define D_P43_HighI() D_HighI_P4(BITN3)
#define D_P42_HighI() D_HighI_P4(BITN2)
#define D_P41_HighI() D_HighI_P4(BITN1)
#define D_P40_HighI() D_HighI_P4(BITN0)
#define D_P47_HighR() D_HighR_P4(BITN7)
#define D_P46_HighR() D_HighR_P4(BITN6)
#define D_P45_HighR() D_HighR_P4(BITN5)
#define D_P44_HighR() D_HighR_P4(BITN4)
#define D_P43_HighR() D_HighR_P4(BITN3)
#define D_P42_HighR() D_HighR_P4(BITN2)
#define D_P41_HighR() D_HighR_P4(BITN1)
#define D_P40_HighR() D_HighR_P4(BITN0)
#define D_P57_OpenD() D_OpenD_P5(BITN7)
#define D_P56_OpenD() D_OpenD_P5(BITN6)
#define D_P55_OpenD() D_OpenD_P5(BITN5)
#define D_P54_OpenD() D_OpenD_P5(BITN4)
#define D_P53_OpenD() D_OpenD_P5(BITN3)
#define D_P52_OpenD() D_OpenD_P5(BITN2)
#define D_P51_OpenD() D_OpenD_P5(BITN1)
#define D_P50_OpenD() D_OpenD_P5(BITN0)
#define D_P57_stdIO() D_stdIO_P5(BITN7)
#define D_P56_stdIO() D_stdIO_P5(BITN6)
#define D_P55_stdIO() D_stdIO_P5(BITN5)
#define D_P54_stdIO() D_stdIO_P5(BITN4)
#define D_P53_stdIO() D_stdIO_P5(BITN3)
#define D_P52_stdIO() D_stdIO_P5(BITN2)
#define D_P51_stdIO() D_stdIO_P5(BITN1)
#define D_P50_stdIO() D_stdIO_P5(BITN0)
#define D_P57_HighI() D_HighI_P5(BITN7)
#define D_P56_HighI() D_HighI_P5(BITN6)
#define D_P55_HighI() D_HighI_P5(BITN5)
#define D_P54_HighI() D_HighI_P5(BITN4)
#define D_P53_HighI() D_HighI_P5(BITN3)
#define D_P52_HighI() D_HighI_P5(BITN2)
#define D_P51_HighI() D_HighI_P5(BITN1)
#define D_P50_HighI() D_HighI_P5(BITN0)
#define D_P57_HighR() D_HighR_P5(BITN7)
#define D_P56_HighR() D_HighR_P5(BITN6)
#define D_P55_HighR() D_HighR_P5(BITN5)
#define D_P54_HighR() D_HighR_P5(BITN4)
#define D_P53_HighR() D_HighR_P5(BITN3)
#define D_P52_HighR() D_HighR_P5(BITN2)
#define D_P51_HighR() D_HighR_P5(BITN1)
#define D_P50_HighR() D_HighR_P5(BITN0)
#define D_P67_OpenD() D_OpenD_P6(BITN7)
#define D_P66_OpenD() D_OpenD_P6(BITN6)
#define D_P65_OpenD() D_OpenD_P6(BITN5)
#define D_P64_OpenD() D_OpenD_P6(BITN4)
#define D_P63_OpenD() D_OpenD_P6(BITN3)
#define D_P62_OpenD() D_OpenD_P6(BITN2)
#define D_P61_OpenD() D_OpenD_P6(BITN1)
#define D_P60_OpenD() D_OpenD_P6(BITN0)
#define D_P67_stdIO() D_stdIO_P6(BITN7)
#define D_P66_stdIO() D_stdIO_P6(BITN6)
#define D_P65_stdIO() D_stdIO_P6(BITN5)
#define D_P64_stdIO() D_stdIO_P6(BITN4)
#define D_P63_stdIO() D_stdIO_P6(BITN3)
#define D_P62_stdIO() D_stdIO_P6(BITN2)
#define D_P61_stdIO() D_stdIO_P6(BITN1)
#define D_P60_stdIO() D_stdIO_P6(BITN0)
#define D_P67_HighI() D_HighI_P6(BITN7)
#define D_P66_HighI() D_HighI_P6(BITN6)
#define D_P65_HighI() D_HighI_P6(BITN5)
#define D_P64_HighI() D_HighI_P6(BITN4)
#define D_P63_HighI() D_HighI_P6(BITN3)
#define D_P62_HighI() D_HighI_P6(BITN2)
#define D_P61_HighI() D_HighI_P6(BITN1)
#define D_P60_HighI() D_HighI_P6(BITN0)
#define D_P67_HighR() D_HighR_P6(BITN7)
#define D_P66_HighR() D_HighR_P6(BITN6)
#define D_P65_HighR() D_HighR_P6(BITN5)
#define D_P64_HighR() D_HighR_P6(BITN4)
#define D_P63_HighR() D_HighR_P6(BITN3)
#define D_P62_HighR() D_HighR_P6(BITN2)
#define D_P61_HighR() D_HighR_P6(BITN1)
#define D_P60_HighR() D_HighR_P6(BITN0)
#define D_P77_OpenD() D_OpenD_P7(BITN7)
#define D_P76_OpenD() D_OpenD_P7(BITN6)
#define D_P75_OpenD() D_OpenD_P7(BITN5)
#define D_P74_OpenD() D_OpenD_P7(BITN4)
#define D_P73_OpenD() D_OpenD_P7(BITN3)
#define D_P72_OpenD() D_OpenD_P7(BITN2)
#define D_P71_OpenD() D_OpenD_P7(BITN1)
#define D_P70_OpenD() D_OpenD_P7(BITN0)
#define D_P77_stdIO() D_stdIO_P7(BITN7)
#define D_P76_stdIO() D_stdIO_P7(BITN6)
#define D_P75_stdIO() D_stdIO_P7(BITN5)
#define D_P74_stdIO() D_stdIO_P7(BITN4)
#define D_P73_stdIO() D_stdIO_P7(BITN3)
#define D_P72_stdIO() D_stdIO_P7(BITN2)
#define D_P71_stdIO() D_stdIO_P7(BITN1)
#define D_P70_stdIO() D_stdIO_P7(BITN0)
#define D_P77_HighI() D_HighI_P7(BITN7)
#define D_P76_HighI() D_HighI_P7(BITN6)
#define D_P75_HighI() D_HighI_P7(BITN5)
#define D_P74_HighI() D_HighI_P7(BITN4)
#define D_P73_HighI() D_HighI_P7(BITN3)
#define D_P72_HighI() D_HighI_P7(BITN2)
#define D_P71_HighI() D_HighI_P7(BITN1)
#define D_P70_HighI() D_HighI_P7(BITN0)
#define D_P77_HighR() D_HighR_P7(BITN7)
#define D_P76_HighR() D_HighR_P7(BITN6)
#define D_P75_HighR() D_HighR_P7(BITN5)
#define D_P74_HighR() D_HighR_P7(BITN4)
#define D_P73_HighR() D_HighR_P7(BITN3)
#define D_P72_HighR() D_HighR_P7(BITN2)
#define D_P71_HighR() D_HighR_P7(BITN1)
#define D_P70_HighR() D_HighR_P7(BITN0)
#define D_P07_PUON() D_PUON_P0(BITN7)
#define D_P06_PUON() D_PUON_P0(BITN6)
#define D_P05_PUON() D_PUON_P0(BITN5)
#define D_P04_PUON() D_PUON_P0(BITN4)
#define D_P03_PUON() D_PUON_P0(BITN3)
#define D_P02_PUON() D_PUON_P0(BITN2)
#define D_P01_PUON() D_PUON_P0(BITN1)
#define D_P00_PUON() D_PUON_P0(BITN0)
#define D_P17_PUON() D_PUON_P1(BITN7)
#define D_P16_PUON() D_PUON_P1(BITN6)
#define D_P15_PUON() D_PUON_P1(BITN5)
#define D_P14_PUON() D_PUON_P1(BITN4)
#define D_P13_PUON() D_PUON_P1(BITN3)
#define D_P12_PUON() D_PUON_P1(BITN2)
#define D_P11_PUON() D_PUON_P1(BITN1)
#define D_P10_PUON() D_PUON_P1(BITN0)
#define D_P27_PUON() D_PUON_P2(BITN7)
#define D_P26_PUON() D_PUON_P2(BITN6)
#define D_P25_PUON() D_PUON_P2(BITN5)
#define D_P24_PUON() D_PUON_P2(BITN4)
#define D_P23_PUON() D_PUON_P2(BITN3)
#define D_P22_PUON() D_PUON_P2(BITN2)
#define D_P21_PUON() D_PUON_P2(BITN1)
#define D_P20_PUON() D_PUON_P2(BITN0)
#define D_P37_PUON() D_PUON_P3(BITN7)
#define D_P36_PUON() D_PUON_P3(BITN6)
#define D_P35_PUON() D_PUON_P3(BITN5)
#define D_P34_PUON() D_PUON_P3(BITN4)
#define D_P33_PUON() D_PUON_P3(BITN3)
#define D_P32_PUON() D_PUON_P3(BITN2)
#define D_P31_PUON() D_PUON_P3(BITN1)
#define D_P30_PUON() D_PUON_P3(BITN0)
#define D_P37_PUON() D_PUON_P3(BITN7)
#define D_P47_PUON() D_PUON_P4(BITN7)
#define D_P46_PUON() D_PUON_P4(BITN6)
#define D_P45_PUON() D_PUON_P4(BITN5)
#define D_P44_PUON() D_PUON_P4(BITN4)
#define D_P43_PUON() D_PUON_P4(BITN3)
#define D_P42_PUON() D_PUON_P4(BITN2)
#define D_P41_PUON() D_PUON_P4(BITN1)
#define D_P40_PUON() D_PUON_P4(BITN0)
#define D_P57_PUON() D_PUON_P5(BITN7)
#define D_P56_PUON() D_PUON_P5(BITN6)
#define D_P55_PUON() D_PUON_P5(BITN5)
#define D_P54_PUON() D_PUON_P5(BITN4)
#define D_P53_PUON() D_PUON_P5(BITN3)
#define D_P52_PUON() D_PUON_P5(BITN2)
#define D_P51_PUON() D_PUON_P5(BITN1)
#define D_P50_PUON() D_PUON_P5(BITN0)
#define D_P67_PUON() D_PUON_P6(BITN7)
#define D_P66_PUON() D_PUON_P6(BITN6)
#define D_P65_PUON() D_PUON_P6(BITN5)
#define D_P64_PUON() D_PUON_P6(BITN4)
#define D_P63_PUON() D_PUON_P6(BITN3)
#define D_P62_PUON() D_PUON_P6(BITN2)
#define D_P61_PUON() D_PUON_P6(BITN1)
#define D_P60_PUON() D_PUON_P6(BITN0)
#define D_P77_PUON() D_PUON_P7(BITN7)
#define D_P76_PUON() D_PUON_P7(BITN6)
#define D_P75_PUON() D_PUON_P7(BITN5)
#define D_P74_PUON() D_PUON_P7(BITN4)
#define D_P73_PUON() D_PUON_P7(BITN3)
#define D_P72_PUON() D_PUON_P7(BITN2)
#define D_P71_PUON() D_PUON_P7(BITN1)
#define D_P70_PUON() D_PUON_P7(BITN0)
#define D_P07_PUOFF() D_PUOFF_P0(BITN7)
#define D_P06_PUOFF() D_PUOFF_P0(BITN6)
#define D_P05_PUOFF() D_PUOFF_P0(BITN5)
#define D_P04_PUOFF() D_PUOFF_P0(BITN4)
#define D_P03_PUOFF() D_PUOFF_P0(BITN3)
#define D_P02_PUOFF() D_PUOFF_P0(BITN2)
#define D_P01_PUOFF() D_PUOFF_P0(BITN1)
#define D_P00_PUOFF() D_PUOFF_P0(BITN0)
#define D_P17_PUOFF() D_PUOFF_P1(BITN7)
#define D_P16_PUOFF() D_PUOFF_P1(BITN6)
#define D_P15_PUOFF() D_PUOFF_P1(BITN5)
#define D_P14_PUOFF() D_PUOFF_P1(BITN4)
#define D_P13_PUOFF() D_PUOFF_P1(BITN3)
#define D_P12_PUOFF() D_PUOFF_P1(BITN2)
#define D_P11_PUOFF() D_PUOFF_P1(BITN1)
#define D_P10_PUOFF() D_PUOFF_P1(BITN0)
#define D_P27_PUOFF() D_PUOFF_P2(BITN7)
#define D_P26_PUOFF() D_PUOFF_P2(BITN6)
#define D_P25_PUOFF() D_PUOFF_P2(BITN5)
#define D_P24_PUOFF() D_PUOFF_P2(BITN4)
#define D_P23_PUOFF() D_PUOFF_P2(BITN3)
#define D_P22_PUOFF() D_PUOFF_P2(BITN2)
#define D_P21_PUOFF() D_PUOFF_P2(BITN1)
#define D_P20_PUOFF() D_PUOFF_P2(BITN0)
#define D_P37_PUOFF() D_PUOFF_P3(BITN7)
#define D_P36_PUOFF() D_PUOFF_P3(BITN6)
#define D_P35_PUOFF() D_PUOFF_P3(BITN5)
#define D_P34_PUOFF() D_PUOFF_P3(BITN4)
#define D_P33_PUOFF() D_PUOFF_P3(BITN3)
#define D_P32_PUOFF() D_PUOFF_P3(BITN2)
#define D_P31_PUOFF() D_PUOFF_P3(BITN1)
#define D_P30_PUOFF() D_PUOFF_P3(BITN0)
#define D_P37_PUOFF() D_PUOFF_P3(BITN7)
#define D_P47_PUOFF() D_PUOFF_P4(BITN7)
#define D_P46_PUOFF() D_PUOFF_P4(BITN6)
#define D_P45_PUOFF() D_PUOFF_P4(BITN5)
#define D_P44_PUOFF() D_PUOFF_P4(BITN4)
#define D_P43_PUOFF() D_PUOFF_P4(BITN3)
#define D_P42_PUOFF() D_PUOFF_P4(BITN2)
#define D_P41_PUOFF() D_PUOFF_P4(BITN1)
#define D_P40_PUOFF() D_PUOFF_P4(BITN0)
#define D_P57_PUOFF() D_PUOFF_P5(BITN7)
#define D_P56_PUOFF() D_PUOFF_P5(BITN6)
#define D_P55_PUOFF() D_PUOFF_P5(BITN5)
#define D_P54_PUOFF() D_PUOFF_P5(BITN4)
#define D_P53_PUOFF() D_PUOFF_P5(BITN3)
#define D_P52_PUOFF() D_PUOFF_P5(BITN2)
#define D_P51_PUOFF() D_PUOFF_P5(BITN1)
#define D_P50_PUOFF() D_PUOFF_P5(BITN0)
#define D_P67_PUOFF() D_PUOFF_P6(BITN7)
#define D_P66_PUOFF() D_PUOFF_P6(BITN6)
#define D_P65_PUOFF() D_PUOFF_P6(BITN5)
#define D_P64_PUOFF() D_PUOFF_P6(BITN4)
#define D_P63_PUOFF() D_PUOFF_P6(BITN3)
#define D_P62_PUOFF() D_PUOFF_P6(BITN2)
#define D_P61_PUOFF() D_PUOFF_P6(BITN1)
#define D_P60_PUOFF() D_PUOFF_P6(BITN0)
#define D_P77_PUOFF() D_PUOFF_P7(BITN7)
#define D_P76_PUOFF() D_PUOFF_P7(BITN6)
#define D_P75_PUOFF() D_PUOFF_P7(BITN5)
#define D_P74_PUOFF() D_PUOFF_P7(BITN4)
#define D_P73_PUOFF() D_PUOFF_P7(BITN3)
#define D_P72_PUOFF() D_PUOFF_P7(BITN2)
#define D_P71_PUOFF() D_PUOFF_P7(BITN1)
#define D_P70_PUOFF() D_PUOFF_P7(BITN0)
#endif //__STC_ONLY_H_