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.

521 lines
22 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
///增加了
//
//////////////////////////////////////////////////////////////////////////
#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
/////////////////////////////////////////////////
#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) P_SW2 |= 0x80;BITN_0(P0DR,BITNx);
#define D_PDR_P0(BITNx) P_SW2 |= 0x80;BITN_1(P0DR,BITNx);
#define D_PHDR_P1(BITNx) P_SW2 |= 0x80;BITN_0(P1DR,BITNx);
#define D_PDR_P1(BITNx) P_SW2 |= 0x80;BITN_1(P1DR,BITNx);
#define D_PUON_P0(BITNx) P_SW2 |= 0x80;BITN_1(P0PU,BITNx);
#define D_PUOFF_P0(BITNx) P_SW2 |= 0x80;BITN_0(P0PU,BITNx);
#define D_PUON_P1(BITNx) P_SW2 |= 0x80;BITN_1(P1PU,BITNx);
#define D_PUOFF_P1(BITNx) P_SW2 |= 0x80;BITN_0(P1PU,BITNx);
#define D_PUON_P2(BITNx) P_SW2 |= 0x80;BITN_1(P2PU,BITNx);
#define D_PUOFF_P2(BITNx) P_SW2 |= 0x80;BITN_0(P2PU,BITNx);
#define D_PUON_P3(BITNx) P_SW2 |= 0x80;BITN_1(P3PU,BITNx);
#define D_PUOFF_P3(BITNx) P_SW2 |= 0x80;BITN_0(P3PU,BITNx);
#define D_PUON_P4(BITNx) P_SW2 |= 0x80;BITN_1(P4PU,BITNx);
#define D_PUOFF_P4(BITNx) P_SW2 |= 0x80;BITN_0(P4PU,BITNx);
#define D_PUON_P5(BITNx) P_SW2 |= 0x80;BITN_1(P5PU,BITNx);
#define D_PUOFF_P5(BITNx) P_SW2 |= 0x80;BITN_0(P5PU,BITNx);
#define D_stdIO_P0_ALL() P0M1=0;P0M0=0;
#define D_HighI_P0_ALL() P0M1=0;P0M0=0XFF;
#define D_HighR_P0_ALL() P0M1=0XFF;P0M0=0;
#define D_OpenD_P0_ALL() P0M1=0XFF;P0M0=0XFF;
#define D_stdIO_P1_ALL() P1M1=0;P1M0=0;
#define D_HighI_P1_ALL() P1M1=0;P1M0=0XFF;
#define D_HighR_P1_ALL() P1M1=0XFF;P1M0=0;
#define D_OpenD_P1_ALL() P1M1=0XFF;P1M0=0XFF;
#define D_stdIO_P2_ALL() P2M1=0; P2M0=0;
#define D_HighI_P2_ALL() P2M1=0; P2M0=0XFF;
#define D_HighR_P2_ALL() P2M1=0XFF;P2M0=0;
#define D_OpenD_P2_ALL() P2M1=0XFF;P2M0=0XFF
#define D_stdIO_P3_ALL() P3M1=0; P3M0=0;
#define D_HighI_P3_ALL() P3M1=0; P3M0=0XFF;
#define D_HighR_P3_ALL() P3M1=0XFF;P3M0=0;
#define D_OpenD_P3_ALL() P3M1=0XFF;P3M0=0XFF
#define D_stdIO_P4_ALL() P4M1=0; P4M0=0;
#define D_HighI_P4_ALL() P4M1=0; P4M0=0XFF;
#define D_HighR_P4_ALL() P4M1=0XFF;P4M0=0;
#define D_OpenD_P4_ALL() P4M1=0XFF;P4M0=0XFF
#define D_stdIO_P5_ALL() P5M1=0; P5M0=0;
#define D_HighI_P5_ALL() P5M1=0; P5M0=0XFF;
#define D_HighR_P5_ALL() P5M1=0XFF;P5M0=0;
#define D_OpenD_P5_ALL() P5M1=0XFF;P5M0=0XFF;
#define D_stdIO_P0(BITNx) P_SW2 |= 0x80;BITN_0(P0M1,BITNx);BITN_0(P0M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P0(BITNx) P_SW2 |= 0x80;BITN_0(P0M1,BITNx);BITN_1(P0M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P0(BITNx) P_SW2 |= 0x80;BITN_1(P0M1,BITNx);BITN_0(P0M0,BITNx); /////////10 高阻
#define D_OpenD_P0(BITNx) P_SW2 |= 0x80;BITN_1(P0M1,BITNx);BITN_1(P0M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P1(BITNx) P_SW2 |= 0x80;BITN_0(P1M1,BITNx);BITN_0(P1M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P1(BITNx) P_SW2 |= 0x80;BITN_0(P1M1,BITNx);BITN_1(P1M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P1(BITNx) P_SW2 |= 0x80;BITN_1(P1M1,BITNx);BITN_0(P1M0,BITNx); /////////10 高阻
#define D_OpenD_P1(BITNx) P_SW2 |= 0x80;BITN_1(P1M1,BITNx);BITN_1(P1M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P2(BITNx) P_SW2 |= 0x80;BITN_0(P2M1,BITNx);BITN_0(P2M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P2(BITNx) P_SW2 |= 0x80;BITN_0(P2M1,BITNx);BITN_1(P2M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P2(BITNx) P_SW2 |= 0x80;BITN_1(P2M1,BITNx);BITN_0(P2M0,BITNx); /////////10 高阻
#define D_OpenD_P2(BITNx) P_SW2 |= 0x80;BITN_1(P2M1,BITNx);BITN_1(P2M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P3(BITNx) P_SW2 |= 0x80;BITN_0(P3M1,BITNx);BITN_0(P3M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P3(BITNx) P_SW2 |= 0x80;BITN_0(P3M1,BITNx);BITN_1(P3M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P3(BITNx) P_SW2 |= 0x80;BITN_1(P3M1,BITNx);BITN_0(P3M0,BITNx); /////////10 高阻
#define D_OpenD_P3(BITNx) P_SW2 |= 0x80;BITN_1(P3M1,BITNx);BITN_1(P3M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P4(BITNx) P_SW2 |= 0x80;BITN_0(P4M1,BITNx);BITN_0(P4M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P4(BITNx) P_SW2 |= 0x80;BITN_0(P4M1,BITNx);BITN_1(P4M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P4(BITNx) P_SW2 |= 0x80;BITN_1(P4M1,BITNx);BITN_0(P4M0,BITNx); /////////10 高阻
#define D_OpenD_P4(BITNx) P_SW2 |= 0x80;BITN_1(P4M1,BITNx);BITN_1(P4M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P5(BITNx) P_SW2 |= 0x80;BITN_0(P5M1,BITNx);BITN_0(P5M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P5(BITNx) P_SW2 |= 0x80;BITN_0(P5M1,BITNx);BITN_1(P5M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P5(BITNx) P_SW2 |= 0x80;BITN_1(P5M1,BITNx);BITN_0(P5M0,BITNx); /////////10 高阻
#define D_OpenD_P5(BITNx) P_SW2 |= 0x80;BITN_1(P5M1,BITNx);BITN_1(P5M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P6(BITNx) P_SW2 |= 0x80;BITN_0(P6M1,BITNx);BITN_0(P6M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P6(BITNx) P_SW2 |= 0x80;BITN_0(P6M1,BITNx);BITN_1(P6M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P6(BITNx) P_SW2 |= 0x80;BITN_1(P6M1,BITNx);BITN_0(P6M0,BITNx); /////////10 高阻
#define D_OpenD_P6(BITNx) P_SW2 |= 0x80;BITN_1(P6M1,BITNx);BITN_1(P6M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
#define D_stdIO_P7(BITNx) P_SW2 |= 0x80;BITN_0(P7M1,BITNx);BITN_0(P7M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
#define D_HighI_P7(BITNx) P_SW2 |= 0x80;BITN_0(P7M1,BITNx);BITN_1(P7M0,BITNx); //////01 推挽输出 20mA 加限流
#define D_HighR_P7(BITNx) P_SW2 |= 0x80;BITN_1(P7M1,BITNx);BITN_0(P7M0,BITNx); /////////10 高阻
#define D_OpenD_P7(BITNx) P_SW2 |= 0x80;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
/// 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
#endif //__STC_ONLY_H_