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

📄 pwm-8.c

📁 c8051f新华龙单片机开发运用程序
💻 C
字号:
//===================================================================================
//PCA工作在8位脉宽调制器工作方式,在PWM引脚输出一个占空比为0<-->0xfe的PWM
//信号且重复输出,可用示波器观察占空比变化。

//实验时短接J12的1,2引脚.
//-----------------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------------

#include <c8051f310.h>                 // SFR declarations
#include <INTRINS.H>
#include <stdio.h>

//------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
void PORT_Init (void);
void PCA_Init (void);
void PCA_ISR (void);
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main (void)
{	
	unsigned long b;
	 
   /*关看门狗*/
   PCA0MD &= ~0x40; // WDTE = 0 (watchdog timer enable bit)
   OSCICN |= 0x03; // Set internal oscillator to highest
                   // setting (24500000)
	
   	PORT_Init ();			/*初始化I/O口*/
   	PCA_Init ();				/*PCA初始化成8位脉宽调置方式*/
    EIE1= 0x10;
	EA=1;
	PCA0CPH0=0x20;
   	while (1)      
	{
		
		for(b=0;b>0xffffffff;b++)//延时
		{
			_nop_();
		}	
	}
}
//配置I/O端口
void PORT_Init (void)
{  P0SKIP =0xff;
   P1SKIP = 0x3f;
   XBR1 = 0x42;			/*CEX0-->P1.6*/

   P1MDOUT |= 0x40;     /*使能P0.0脚推挽输出*/
}
//配置PCA的CEX0输出8位PWM信号
void PCA_Init (void)
{
    PCA0CN    = 0x40;
    PCA0CPM0  = 0x42;
    PCA0CPL0  = 0x00;
    PCA0CPH0  = 0x00;
	PCA0CPL4  = 0x00;
	PCA0MD   &= 0x40;
	PCA0MD    = 0x01;
}
//-------------------------------
void PCA_ISR (void) interrupt 11
{     unsigned char a ;
      bit	PWM_PAC;
      CF = 0;
      if(PWM_PAC==0)			//占空比由0	>>0xfe
		{
			PCA0CPH0=a;
		 	a++;
		 	if(a==0xfe){PWM_PAC=1;}
		}
		else					//占空比由0xfe	>>0
		{
			PCA0CPH0=a;
		 	a--;
		 	if(a==0){PWM_PAC=0;}
		}
}

⌨️ 快捷键说明

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