⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stc12c2052ad.h

📁 直流电机的PWM速度控制程序?绷鞯缁腜WM速度控制程序?绷鞯缁腜WM速度控制程序?绷鞯缁腜WM速度控制程序
💻 H
📖 第 1 页 / 共 2 页
字号:
	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 + -