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

📄 test motor.c

📁 针对C8051F020
💻 C
字号:
/////////////////////////////////////
//  Generated Initialization File  //
/////////////////////////////////////

#include "C8051F020.h"

unsigned int delay_count;
  bit duty_direction =0;
sbit CM1=P2^5;
sbit CM2=P2^6;
sbit ENAL=P0^6;
sbit ENBR=P0^7;

// Peripheral specific initialization functions,
// Called from the Init_Device() function
void Reset_Sources_Init()
{
    WDTCN     = 0xDE;
    WDTCN     = 0xAD;
}

void PCA_Init()
{
    PCA0CN    = 0x40;
    PCA0MD    = 0x08;
    PCA0CPM0  = 0x42;
    PCA0CPM1  = 0x42;
    PCA0H     = 0x80;
    PCA0CPH0  = 0x80;
    PCA0CPH1  = 0x80;
}

void Port_IO_Init()
{
    // P0.0  -  TX0 (UART0), Open-Drain, Digital
    // P0.1  -  RX0 (UART0), Open-Drain, Digital
    // P0.2  -  SDA (SMBus), Open-Drain, Digital
    // P0.3  -  SCL (SMBus), Open-Drain, Digital
    // P0.4  -  CEX0 (PCA),  Push-Pull,  Digital
    // P0.5  -  CEX1 (PCA),  Push-Pull,  Digital
    // P0.6  -  Unassigned,  Push-Pull,  Digital
    // P0.7  -  Unassigned,  Push-Pull,  Digital

    // P1.0  -  Unassigned,  Open-Drain, Digital
    // P1.1  -  Unassigned,  Open-Drain, Digital
    // P1.2  -  Unassigned,  Open-Drain, Digital
    // P1.3  -  Unassigned,  Open-Drain, Digital
    // P1.4  -  Unassigned,  Open-Drain, Digital
    // P1.5  -  Unassigned,  Open-Drain, Digital
    // P1.6  -  Unassigned,  Open-Drain, Digital
    // P1.7  -  Unassigned,  Open-Drain, Digital

    // P2.0  -  Unassigned,  Open-Drain, Digital
    // P2.1  -  Unassigned,  Open-Drain, Digital
    // P2.2  -  Unassigned,  Open-Drain, Digital
    // P2.3  -  Unassigned,  Open-Drain, Digital
    // P2.4  -  Unassigned,  Open-Drain, Digital
    // P2.5  -  Unassigned,  Open-Drain, Digital
    // P2.6  -  Unassigned,  Open-Drain, Digital
    // P2.7  -  Unassigned,  Open-Drain, Digital

    // P3.0  -  Unassigned,  Open-Drain, Digital
    // P3.1  -  Unassigned,  Open-Drain, Digital
    // P3.2  -  Unassigned,  Open-Drain, Digital
    // P3.3  -  Unassigned,  Open-Drain, Digital
    // P3.4  -  Unassigned,  Open-Drain, Digital
    // P3.5  -  Unassigned,  Open-Drain, Digital
    // P3.6  -  Unassigned,  Open-Drain, Digital
    // P3.7  -  Unassigned,  Open-Drain, Digital

    XBR0      = 0x15;
    XBR2      = 0x40;
P0MDOUT   = 0xF0;
}

void Oscillator_Init()
{
    OSCICN    = 0x07;
}

void Interrupts_Init()
{
    IE        = 0x80;
    EIE1      = 0x08;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
    Reset_Sources_Init();
    PCA_Init();
    Port_IO_Init();
    Oscillator_Init();
    Interrupts_Init();
}

void main()
{
  Init_Device();
  
   CM1=0;
   CM2=0;
   ENAL=1;
   ENBR=1;

  while(1)
  {
    for (delay_count = 25000; delay_count >0; delay_count--);
	if(duty_direction == 1)
	{
	   if((PCA0CPM0&0x40)== 0x00)
	   {
	     PCA0CPM0 |=0x40;
	   }
	   else
	   {
	     PCA0CPH0--;
		 if(PCA0CPH0 == 0x00)
		 {
               duty_direction = 0;
		 }
	   }
	}
    else
	{
	    if (PCA0CPH0 == 0x80)
		{
		  PCA0CPM0 &= ~0x40;
		  duty_direction =1;
		}
		else
		{
		  PCA0CPH0++;
		}
	}
  };

}

⌨️ 快捷键说明

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