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

📄 pwm8_1.c

📁 C8051F020 PWM调制及控制
💻 C
字号:
//-----------------------------------------------------------------------------
// PWM8_1.c
//-----------------------------------------------------------------------------
/*

     两路 (p0.0,p0.1)      8位的调制脉宽
*/
#include <c8051f020.h>					// SFR declarations

//-----------------------------------------------------------------------------
// Global CONSTANTS
//-----------------------------------------------------------------------------

#define PWM				0x88				// Number of PCA clocks for waveform
#define PWM1            0x20
sbit Led=P1^6;
												// duty cycle = (256 - PWM) / 256
												// Note: this is an 8-bit value

//-----------------------------------------------------------------------------
// Function PROTOTYPES
//-----------------------------------------------------------------------------

void main (void);

//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------

void main (void)
 {
    int i=30000,j=3000,k=3000,l=3000;
	WDTCN = 0xde;							// Disable watchdog timer
	WDTCN = 0xad;

	OSCICN = 0x07;							// set SYSCLK to 16MHz, internal osc.
       XBR0 = 0x08;           //CEX0,CEX1连接到对应的端口
	//XBR0 = 0x10;           //CEX0,CEX1连接到对应的端口
	XBR2 = 0x40;	       // 弱上拉,交叉开关使能

//	P0MDOUT |= 0x04;       //      允许p0.0输出
	P0MDOUT |= 0x0f;       //      允许p0.0输出
	P1MDOUT |= 0x40;       // 允许P1.6(LED)
	
	// configure the PCA


  //**	P02=1;




	PCA0MD = 0x02;							// disable CF interrupt
												// PCA time base = SYSCLK / 4
        //配置CEX0
	PCA0CPL0 = PWM;						// initialize PCA PWM value			
	PCA0CPH0 = PWM;
	PCA0CPM0 = 0x42;						// CCM0 in 8-bit PWM mode
	PCA0CN = 0x40;							// enable PCA counter
	//配置CEX1
   	PCA0CPL1 = PWM1;						// initialize PCA PWM value			
	PCA0CPH1 = PWM1;
	PCA0CPM1 = 0x42;						// CCM0 in 8-bit PWM mode
	PCA0CN = 0x40;							// enable PCA counter

	while (1)
   {
	//	PCON |= 0x01;						// set IDLE mode
       
      while(i--)  ;
	  while(j--)  ;
	  while(k--)  ;
	  while(l--)  ;

      Led=~Led;
   
	}
}

⌨️ 快捷键说明

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