📄 stc12c2052ad.h
字号:
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
*/
sfr CCAP0H =0XFA; /* 当出现捕获或比较时,它们用来保存16 位的计数值。
当PCA 模块用在PWM 模式中时,它们用来控制输出的
占空比。CCAP0H.CCAP0L分别为高低8位,组合使用 */
sfr CCAP0L =0XEA;
sfr PCA_PWM0 =0XF2; /* PWM下9位数的最高位
PCA_PWM0^1(EPC0H)....在PWM模式下,与CCAP0H组成9位数
PCA_PWM0^0(EPC0L)....在PWM模式下,与CCAP0L组成9位数
*/
sfr CCAPM1 =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
*/
sfr CCAP1H =0XFB; /* 当出现捕获或比较时,它们用来保存16 位的计数值。
当PCA 模块用在PWM 模式中时,它们用来控制输出的
占空比。CCAP1H.CCAP1L分别为高低8位,组合使用 */
sfr CCAP1L =0XEB;
sfr PCA_PWM1 =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
------------------------------------------------*/
sbit IT0=TCON^0;
sbit IE0=TCON^1;
sbit IT1=TCON^2;
sbit IE1=TCON^3;
sbit TR0=TCON^4;
sbit TF0=TCON^5;
sbit TR1=TCON^6;
sbit TF1=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
------------------------------------------------*/
sbit P1_0= P1^0;
sbit P1_1= P1^1;
sbit P1_2= P1^2;
sbit P1_3= P1^3;
sbit P1_4= P1^4;
sbit P1_5= P1^5;
sbit P1_6= P1^6;
sbit P1_7= P1^7;
sbit ADC0= P1^0; /* + Analog input */
sbit ADC1= P1^1; /* + Analog input */
sbit ADC2= P1^2; /* + Analog input */
sbit ADC3= P1^3; /* + Analog input */
sbit ADC4= P1^4; /* + Analog input */
sbit ADC5= P1^5; /* + Analog input */
sbit ADC6= P1^6; /* + Analog input */
sbit ADC7= P1^7; /* + Analog input */
/* SPI 专用IO */
sbit SS = P1^4; /* 主从SPI选择,外部输入P1.4_atbit(0为从机*/
sbit MOSI= P1^5; /* 主输出/从输入 */
sbit MISO= P1^6; /* 主输入/从输出 */
sbit SCLK= P1^7; /* SPI时钟,主方输出,从方接收 */
/*------------------------------------------------
SCON Bit Registers
------------------------------------------------*/
sbit RI = SCON^0;
sbit TI = SCON^1;
sbit RB8 = SCON^2;
sbit TB8 = SCON^3;
sbit REN = SCON^4;
sbit SM2 = SCON^5;
sbit SM1 = SCON^6;
sbit SM0 = SCON^7;
/*------------------------------------------------
IE Bit Registers
------------------------------------------------*/
sbit EX0 = IE^0; /* 1_atbit(Enable External interrupt 0 */
sbit ET0 = IE^1; /* 1_atbit(Enable Timer 0 interrupt */
sbit EX1 = IE^2; /* 1_atbit(Enable External interrupt 1 */
sbit ET1 = IE^3; /* 1_atbit(Enable Timer 1 interrupt */
sbit ES = IE^4; /* 1_atbit(Enable Serial port interrupt */
sbit ET2 = IE^5; /* 1_atbit(Enable Timer 2 interrupt */
sbit EA = IE^7; /* 0_atbit(Disable all interrupts */
/*------------------------------------------------
P3 Bit Registers (Mnemonics & Ports)
------------------------------------------------*/
sbit P3_0= P3^0;
sbit P3_1= P3^1;
sbit P3_2= P3^2;
sbit P3_3= P3^3;
sbit P3_4= P3^4;
sbit P3_5= P3^5;
/* P3_6 Hardwired as AOUT */
sbit P3_7= P3^7;
sbit RXD = P3^0; /* Serial data input */
sbit TXD = P3^1; /* Serial data output */
sbit INT0= P3^2; /* External interrupt 0 */
sbit INT1= P3^3; /* External interrupt 1 */
sbit T0 = P3^4; /* Timer 0 外部时钟输入口P3.4 */
sbit ECI = P3^4; /* PCA计数器阵列的可选外部时钟输入口P3.4 */
sbit T1 = P3^5; /* Timer 1 外部时钟输入口P3.5 */
sbit CEX1= P3^5; /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/
sbit PWM1= P3^5; /* PWM方式时PWM1的输出口P3.5/PCA1反相输出*/
sbit CEX0= P3^7; /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/
sbit PWM0= P3^7; /* PWM方式时PWM0的输出口P3.7/PCA0反相输出*/
/*------------------------------------------------
IP 中断优先级寄存器低8位
------------------------------------------------*/
sbit PX0 = IP^0; /* 外部中断0 P3.2 */
sbit PT0 = IP^1; /* 定时计数器0中断 */
sbit PX1 = IP^2; /* 外部中断1 P3.3 */
sbit PT1 = IP^3; /* 定时计数器1中断 */
sbit PS = IP^4; /* 通信中断RI或TI */
/*------------------------------------------------
PSW Bit Registers
------------------------------------------------*/
sbit P = PSW^0;
sbit FL = PSW^1;
sbit OV = PSW^2;
sbit RS0 = PSW^3;
sbit RS1 = PSW^4;
sbit F0 = PSW^5;
sbit AC = PSW^6;
sbit CY = PSW^7;
/*------------------------------------------------
PCA 控制寄存器CCON Bit Registers
------------------------------------------------*/
sbit CCF0= CCON^0; /*PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。*/
sbit CCF1= CCON^1; /*PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。*/
sbit CR = CCON^6; /*PCA计数器阵列运行控制位。该位通过软件置位, 用来起
动PCA计数器阵列计数。该位通过软件清零, 用来关闭
PCA计数器。*/
sbit CF = CCON^7; /*PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。
如果CMOD寄存器的ECF位置位, CF标志可用来产生中断。
CF位可通过硬件或软件置位, 但只可通过软件清零。*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -