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

📄 wpca1pwm16.c

📁 C8051F系列单片机外围电路功能模块程序
💻 C
字号:
//参考程序B:WPCA1pwm16.C 程序实现PCA模块1的16位PWM输出,输出脚CEX1配置在P0.1脚。输出方波占空比为1/2     
 #include <c8051f020.h>	/*SFR定义*/
// Function PROTOTYPES
void PORT_Init (void);
void PCA_Init (void);
void PCA_ISR (void);
void main (void) {
   WDTCN = 0xde;        /*关看门狗*/
   WDTCN = 0xad;
   PORT_Init ();		/*初始化IO口*/
   PCA_Init ();			/*PCA初始化成16位脉宽调置方式*/
   EA = 1;				/*开总中断*/
   while (1) {       
   }
}
void PORT_Init (void)
{
   XBR0 = 0x20;	/*CEX0-->P0.0,CEX1-->P0.1,CEX2-->P0.2,CEX3-->P0.3*/
   XBR2    = 0x40;      /*使能交叉开关和弱上拉*/
}
void PCA_Init (void)
{
EIE1 = 0x08;	/*允许PCA0申请中断*/	
OSCICN=0x17;    /*采用内部时钟作系统时钟,频率为16MHZ*/
PCA0MD = 0x09;	/*PCA方式选择:使用系统时钟,允许	CCF1申请中断*/
PCA0L	 = 0x00;/*定时/计数器初值为0000H*/
PCA0H	 = 0x00;
PCA0CPM1 = 0xcb;/*PCA模块1为16位PWM方式,当CCF1=1时,允许CFF1中断申请*/
PCA0CPL1 = 0x00;	/*置比较/捕捉寄存器初值为8000H*/
PCA0CPH1 = 0x80;
PCA0CN = 0x40;		/*允许PCA定时器/计数器,*/
}
/*PCA中断子程序*/
void PCA_ISR (void) interrupt 9
{
	CF   = 0;			/*清溢出中断标志*/
	CCF1= 1;			/*清匹配中断标志*/
}           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -