📄 stc12c2052ad.h
字号:
CCAPM0^3(MAT0)......... 匹配。当MAT0= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将置位CCON寄存器的中断标志位CCF0。
CCAPM0^2(TOG0)......... 翻转。当TOG0= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将使CEXn脚翻转。(CEX0/P3.7)
CCAPM0^1(PWM0)......... 脉宽调节模式。当PWM0= 1时, 使能CEXn脚用作脉宽调
节输出。
CCAPM0^0(ECCF0)........ 使能CCF0中断。使能寄存器CCON的比较/捕获标志CCF0,
用来产生中断。
使用的机种基本模式组合:
ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 模块功能
0 0 0 0 0 0 0 无此操作
X 1 0 0 0 0 X 16位捕获模式,由CEX0的上升沿触发
X 0 1 0 0 0 X 16位捕获模式,由CEX0的下降沿触发
X 1 1 0 0 0 X 16位捕获模式,由CEX0的跳变触发
1 0 0 1 0 0 X 16位软件定时器
1 0 0 1 1 0 X 16位高速输出
1 0 0 0 0 1 0 8位PWM
*/
_sfrbyte CCAP0H _at( 0XFA ); /* 当出现捕获或比较时,它们用来保存16 位的计数值。
当PCA 模块用在PWM 模式中时,它们用来控制输出的
占空比。CCAP0H.CCAP0L分别为高低8位,组合使用 */
_sfrbyte CCAP0L _at( 0XEA );
_sfrbyte PCA_PWM0 _at( 0XF2 ); /* PWM下9位数的最高位
PCA_PWM0^1(EPC0H)....在PWM模式下,与CCAP0H组成9位数
PCA_PWM0^0(EPC0L)....在PWM模式下,与CCAP0L组成9位数
*/
_sfrbyte CCAPM1 _at( 0XDB ); /* PCA 比较/ 捕获模块寄存器1,支持位寻址定义在后面 */
/*
CCAPM1^7保留
CCAPM1^6(ECOM1)........ 使能比较器。ECOM1= 1时使能比较器功能。
CCAPM1^5(CAPP1)........ 正捕获。CAPP1= 1时使能上升沿捕获。
CCAPM1^4(CAPN1)........ 负捕获。CAPN1= 1时使能下降沿捕获。
CCAPM1^3(MAT1)......... 匹配。当MAT1= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将置位CCON寄存器的中断标志位CCF1。
CCAPM1^2(TOG1)......... 翻转。当TOG1= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将使CEXn脚翻转。(CEX1/P3.5)
CCAPM1^1(PWM1)......... 脉宽调节模式。当PWMn= 1时, 使能CEXn脚用作脉宽调
节输出。
CCAPM1^0(ECCF1)........ 使能CCF1中断。使能寄存器CCON的比较/捕获标志CCF1,
用来产生中断。
使用的机种基本模式组合:
ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 模块功能
0 0 0 0 0 0 0 无此操作
X 1 0 0 0 0 X 16位捕获模式,由CEX1的上升沿触发
X 0 1 0 0 0 X 16位捕获模式,由CEX1的下降沿触发
X 1 1 0 0 0 X 16位捕获模式,由CEX1的跳变触发
1 0 0 1 0 0 X 16位软件定时器
1 0 0 1 1 0 X 16位高速输出
1 0 0 0 0 1 0 8位PWM
*/
_sfrbyte CCAP1H _at( 0XFB ); /* 当出现捕获或比较时,它们用来保存16 位的计数值。
当PCA 模块用在PWM 模式中时,它们用来控制输出的
占空比。CCAP1H.CCAP1L分别为高低8位,组合使用 */
_sfrbyte CCAP1L _at( 0XEB );
_sfrbyte PCA_PWM1 _at( 0XF3 ); /* PWM下9位数的最高位
PCA_PWM1^1(EPC1H)....在PWM模式下,与CCAP1H组成9位数
PCA_PWM1^0(EPC1L)....在PWM模式下,与CCAP1L组成9位数
*/
/*------------------------------------------------
PCON Bit Values
------------------------------------------------*/
#define IDL_ 0x01
#define STOP_ 0x02
#define EWT_ 0x04
#define EPFW_ 0x08
#define WTR_ 0x10
#define PFW_ 0x20
#define POR_ 0x40
#define SMOD_ 0x80
/*------------------------------------------------
TCON Bit Registers
------------------------------------------------*/
_sfrbit IT0 _atbit(TCON, 0 );
_sfrbit IE0 _atbit(TCON, 1 );
_sfrbit IT1 _atbit(TCON, 2 );
_sfrbit IE1 _atbit(TCON, 3 );
_sfrbit TR0 _atbit(TCON, 4 );
_sfrbit TF0 _atbit(TCON, 5 );
_sfrbit TR1 _atbit(TCON, 6 );
_sfrbit TF1 _atbit(TCON, 7 );
/*------------------------------------------------
TMOD Bit Values
------------------------------------------------*/
#define T0_M0_ 0x01
#define T0_M1_ 0x02
#define T0_CT_ 0x04
#define T0_GATE_ 0x08
#define T1_M0_ 0x10
#define T1_M1_ 0x20
#define T1_CT_ 0x40
#define T1_GATE_ 0x80
#define T1_MASK_ 0xF0
#define T0_MASK_ 0x0F
/*------------------------------------------------
P1 Bit Registers
------------------------------------------------*/
_sfrbit P1_0 _atbit( P1, 0 );
_sfrbit P1_1 _atbit( P1, 1 );
_sfrbit P1_2 _atbit( P1, 2 );
_sfrbit P1_3 _atbit( P1, 3 );
_sfrbit P1_4 _atbit( P1, 4 );
_sfrbit P1_5 _atbit( P1, 5 );
_sfrbit P1_6 _atbit( P1, 6 );
_sfrbit P1_7 _atbit( P1, 7 );
_sfrbit ADC0 _atbit( P1, 0 ); /* + Analog input */
_sfrbit ADC1 _atbit( P1, 1 ); /* + Analog input */
_sfrbit ADC2 _atbit( P1, 2 ); /* + Analog input */
_sfrbit ADC3 _atbit( P1, 3 ); /* + Analog input */
_sfrbit ADC4 _atbit( P1, 4 ); /* + Analog input */
_sfrbit ADC5 _atbit( P1, 5 ); /* + Analog input */
_sfrbit ADC6 _atbit( P1, 6 ); /* + Analog input */
_sfrbit ADC7 _atbit( P1, 7 ); /* + Analog input */
/* SPI 专用IO */
_sfrbit SS _atbit( P1, 4 ); /* 主从SPI选择,外部输入P1.4_atbit(0为从机*/
_sfrbit MOSI _atbit( P1, 5 ); /* 主输出/从输入 */
_sfrbit MISO _atbit( P1, 6 ); /* 主输入/从输出 */
_sfrbit SCLK _atbit( P1, 7 ); /* SPI时钟,主方输出,从方接收 */
/*------------------------------------------------
SCON Bit Registers
------------------------------------------------*/
_sfrbit RI _atbit( SCON, 0 );
_sfrbit TI _atbit( SCON, 1 );
_sfrbit RB8 _atbit( SCON, 2 );
_sfrbit TB8 _atbit( SCON, 3 );
_sfrbit REN _atbit( SCON, 4 );
_sfrbit SM2 _atbit( SCON, 5 );
_sfrbit SM1 _atbit( SCON, 6 );
_sfrbit SM0 _atbit( SCON, 7 );
/*------------------------------------------------
IE Bit Registers
------------------------------------------------*/
_sfrbit EX0 _atbit( IE, 0 ); /* 1_atbit(Enable External interrupt 0 */
_sfrbit ET0 _atbit( IE, 1 ); /* 1_atbit(Enable Timer 0 interrupt */
_sfrbit EX1 _atbit( IE, 2 ); /* 1_atbit(Enable External interrupt 1 */
_sfrbit ET1 _atbit( IE, 3 ); /* 1_atbit(Enable Timer 1 interrupt */
_sfrbit ES _atbit( IE, 4 ); /* 1_atbit(Enable Serial port interrupt */
_sfrbit ET2 _atbit( IE, 5 ); /* 1_atbit(Enable Timer 2 interrupt */
_sfrbit EA _atbit( IE, 7 ); /* 0_atbit(Disable all interrupts */
/*------------------------------------------------
P3 Bit Registers (Mnemonics & Ports)
------------------------------------------------*/
_sfrbit P3_0 _atbit( P3, 0 );
_sfrbit P3_1 _atbit( P3, 1 );
_sfrbit P3_2 _atbit( P3, 2 );
_sfrbit P3_3 _atbit( P3, 3 );
_sfrbit P3_4 _atbit( P3, 4 );
_sfrbit P3_5 _atbit( P3, 5 );
/* P3_6 Hardwired as AOUT */
_sfrbit P3_7 _atbit( P3, 7 );
_sfrbit RXD _atbit( P3, 0 ); /* Serial data input */
_sfrbit TXD _atbit( P3, 1 ); /* Serial data output */
_sfrbit INT0 _atbit( P3, 2 ); /* External interrupt 0 */
_sfrbit INT1 _atbit( P3, 3 ); /* External interrupt 1 */
_sfrbit T0 _atbit( P3, 4 ); /* Timer 0 外部时钟输入口P3.4 */
_sfrbit ECI _atbit( P3, 4 ); /* PCA计数器阵列的可选外部时钟输入口P3.4 */
_sfrbit T1 _atbit( P3, 5 ); /* Timer 1 外部时钟输入口P3.5 */
_sfrbit CEX1 _atbit( P3, 5 ); /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/
_sfrbit PWM1 _atbit( P3, 5 ); /* PWM方式时PWM1的输出口P3.5/PCA1反相输出*/
_sfrbit CEX0 _atbit( P3, 7 ); /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/
_sfrbit PWM0 _atbit( P3, 7 ); /* PWM方式时PWM0的输出口P3.7/PCA0反相输出*/
/*------------------------------------------------
IP 中断优先级寄存器低8位
------------------------------------------------*/
_sfrbit PX0 _atbit( IP, 0 ); /* 外部中断0 P3.2 */
_sfrbit PT0 _atbit( IP, 1 ); /* 定时计数器0中断 */
_sfrbit PX1 _atbit( IP, 2 ); /* 外部中断1 P3.3 */
_sfrbit PT1 _atbit( IP, 3 ); /* 定时计数器1中断 */
_sfrbit PS _atbit( IP, 4 ); /* 通信中断RI或TI */
/*------------------------------------------------
PSW Bit Registers
------------------------------------------------*/
_sfrbit P _atbit( PSW, 0 );
_sfrbit FL _atbit( PSW, 1 );
_sfrbit OV _atbit( PSW, 2 );
_sfrbit RS0 _atbit( PSW, 3 );
_sfrbit RS1 _atbit( PSW, 4 );
_sfrbit F0 _atbit( PSW, 5 );
_sfrbit AC _atbit( PSW, 6 );
_sfrbit CY _atbit( PSW, 7 );
/*------------------------------------------------
PCA 控制寄存器CCON Bit Registers
------------------------------------------------*/
_sfrbit CCF0 _atbit( CCON, 0 ); /*PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。*/
_sfrbit CCF1 _atbit( CCON, 1 ); /*PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。*/
_sfrbit CR _atbit( CCON, 6 ); /*PCA计数器阵列运行控制位。该位通过软件置位, 用来起
动PCA计数器阵列计数。该位通过软件清零, 用来关闭
PCA计数器。*/
_sfrbit CF _atbit( CCON, 7 ); /*PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。
如果CMOD寄存器的ECF位置位, CF标志可用来产生中断。
CF位可通过硬件或软件置位, 但只可通过软件清零。*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -