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.
259 lines
8.9 KiB
259 lines
8.9 KiB
3 years ago
|
//////////////////////////////////////////////////////////////////////////
|
||
|
/// COPYRIGHT NOTICE
|
||
|
/// Copyright (c) 2022, 传控科技
|
||
|
/// All rights reserved.
|
||
|
///
|
||
|
/// @file __STC_ONLY_H_
|
||
|
/// @brief macro define 和cpu相关,STC独有的 使用stc系列单片机是使用
|
||
|
///
|
||
|
///(本文件实现的功能的详述)
|
||
|
///
|
||
|
/// @version 1.0 CCsens technology
|
||
|
/// @author CC
|
||
|
/// @date 20211226
|
||
|
|
||
|
//
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
|
||
|
#ifndef __STC_ONLY_H_
|
||
|
#define __STC_ONLY_H_
|
||
|
|
||
|
#include<intrins.h>
|
||
|
|
||
|
#define ET3 0x20
|
||
|
#define T3IF 0x02
|
||
|
|
||
|
///#define ES2 0x01
|
||
|
///#define ES3 0x08
|
||
|
|
||
|
#define S2TI 0x02
|
||
|
#define S2RI 0x01
|
||
|
#define S3TI 0x02
|
||
|
#define S3RI 0x01
|
||
|
#define ET4 0x40
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
///#define I2CTXD (*(unsigned char volatile xdata *)0xfE86)//423@ST8.PDF
|
||
|
|
||
|
///#define I2CRXD (*(unsigned char volatile xdata *)0xfE87)//423@ST8.PDF
|
||
|
|
||
|
|
||
|
|
||
|
///-------------------------------------
|
||
|
|
||
|
#define gRccUs01_H (*(unsigned char volatile data *)0xd2)
|
||
|
#define gRccUs01_L (*(unsigned char volatile data *)0xd3)
|
||
|
|
||
|
|
||
|
|
||
|
#define gRccUs01 (*(unsigned short volatile data *)0xd2)//226@ST8.PDF T4H定时器4的高字节 D2H T4H定时器4的低字节 D3H
|
||
|
#define gRccUs02 (*(unsigned short volatile data *)0xEA)//351@ST8.PDF CCAP0l CCAP1L EAH EBH
|
||
|
#define gRccUs03 (*(unsigned short volatile data *)0xEC)//351@ST8.PDF CCAP0l CCAP1L EAH EBH
|
||
|
//#define gRccUs03 s_task_GC032A.n
|
||
|
|
||
|
|
||
|
|
||
|
#define gRccUs04 (*(unsigned short volatile data *)0xFA)///351@ST8.PDF
|
||
|
#define gRccUs05 (*(unsigned short volatile data *)0xFC)///351@ST8.PD CCAP2H
|
||
|
|
||
|
/////////////////////////////////////////////////
|
||
|
|
||
|
#ifdef docasdfasdf
|
||
|
符号 地址 B7 B6 B5 B4 B3 B2 B1 B0
|
||
|
IE2 AFH EUSB ET4 ET3 ES4 ES3 ET2 ESPI ES2
|
||
|
|
||
|
EUSB∶USB中断允许位。
|
||
|
0∶禁止 USB中断1∶允许 USB中断
|
||
|
ET4∶定时/计数器T4的溢出中断允许位。
|
||
|
0∶禁止 T4中断1∶允许T4中断
|
||
|
ET3∶定时/计数器 T3的溢出中断允许位。
|
||
|
0∶禁止 T3中断1∶允许T3中断
|
||
|
ES4∶串行口4中断允许位。
|
||
|
0∶禁止串行口4中断1∶允许串行口 4中断ES3∶串行口3中断允许位。
|
||
|
0∶禁止串行口3中断1∶允许串行口3中断
|
||
|
ET2∶定时/计数器 T2的溢出中断允许位。
|
||
|
0∶禁止T2中断1∶允许T3中断ESPI∶SPI中断允许位。
|
||
|
0∶禁止 SPI中断1∶允许 SPI中断
|
||
|
ES2∶串行口 2中断允许位。
|
||
|
0∶禁止串行口2中断1∶允许串行口2中断
|
||
|
|
||
|
|
||
|
#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 "../clib/bit.h"
|
||
|
|
||
|
#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_P0(BITNx) BITN_0(P0M1,BITNx);BITN_0(P0M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P0(BITNx) BITN_0(P0M1,BITNx);BITN_1(P0M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P0(BITNx) BITN_1(P0M1,BITNx);BITN_0(P0M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P0(BITNx) BITN_1(P0M1,BITNx);BITN_1(P0M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
|
||
|
|
||
|
#define D_stdIO_P1(BITNx) BITN_0(P1M1,BITNx);BITN_0(P1M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P1(BITNx) BITN_0(P1M1,BITNx);BITN_1(P1M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P1(BITNx) BITN_1(P1M1,BITNx);BITN_0(P1M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P1(BITNx) BITN_1(P1M1,BITNx);BITN_1(P1M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
|
||
|
|
||
|
#define D_stdIO_P2(BITNx) BITN_0(P2M1,BITNx);BITN_0(P2M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P2(BITNx) BITN_0(P2M1,BITNx);BITN_1(P2M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P2(BITNx) BITN_1(P2M1,BITNx);BITN_0(P2M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P2(BITNx) BITN_1(P2M1,BITNx);BITN_1(P2M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
|
||
|
|
||
|
#define D_stdIO_P3(BITNx) BITN_0(P3M1,BITNx);BITN_0(P3M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P3(BITNx) BITN_0(P3M1,BITNx);BITN_1(P3M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P3(BITNx) BITN_1(P3M1,BITNx);BITN_0(P3M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P3(BITNx) BITN_1(P3M1,BITNx);BITN_1(P3M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
|
||
|
|
||
|
#define D_stdIO_P4(BITNx) BITN_0(P4M1,BITNx);BITN_0(P4M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P4(BITNx) BITN_0(P4M1,BITNx);BITN_1(P4M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P4(BITNx) BITN_1(P4M1,BITNx);BITN_0(P4M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P4(BITNx) BITN_1(P4M1,BITNx);BITN_1(P4M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
|
||
|
|
||
|
#define D_stdIO_P5(BITNx) BITN_0(P5M1,BITNx);BITN_0(P5M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P5(BITNx) BITN_0(P5M1,BITNx);BITN_1(P5M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P5(BITNx) BITN_1(P5M1,BITNx);BITN_0(P5M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P5(BITNx) BITN_1(P5M1,BITNx);BITN_1(P5M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
|
||
|
|
||
|
#define D_stdIO_P6(BITNx) BITN_0(P6M1,BITNx);BITN_0(P6M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P6(BITNx) BITN_0(P6M1,BITNx);BITN_1(P6M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P6(BITNx) BITN_1(P6M1,BITNx);BITN_0(P6M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P6(BITNx) BITN_1(P6M1,BITNx);BITN_1(P6M0,BITNx); /////11 开漏 open-Drain 内部上拉电阻断开 开漏模式既可以度外部状态也可以对外输出高低电平
|
||
|
|
||
|
#define D_stdIO_P7(BITNx) BITN_0(P7M1,BITNx);BITN_0(P7M0,BITNx); //////00 准双向口 灌电流20mA 拉电流270-150uS
|
||
|
#define D_HighI_P7(BITNx) BITN_0(P7M1,BITNx);BITN_1(P7M0,BITNx); //////01 推挽输出 20mA 加限流
|
||
|
#define D_HighR_P7(BITNx) BITN_1(P7M1,BITNx);BITN_0(P7M0,BITNx); /////////10 高阻
|
||
|
#define D_OpenD_P7(BITNx) 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);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif //__STC_ONLY_H_
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|