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

📄 c8051f310_init.c

📁 keil c 开发的典型动态LED显示屏控制器,cpu为51系列
💻 C
字号:
/////////////////////////////////////
//  Generated Initialization File  //
/////////////////////////////////////

#include "C8051F310.h"

// Peripheral specific initialization functions,
// Called from the Init_Device() function
void Reset_Sources_Init()
{
    int i = 0;
    VDM0CN    = 0x80;
    for (i = 0; i < 350; i++);  // Wait 100us for initialization
    RSTSRC    = 0x06;
}

void PCA_Init()
{
    PCA0MD    &= ~0x40;
    PCA0MD    |= 0x04; /*0x00-系统sysclk/12  0x02-sysclk/4  0x04-定时器0溢出*/
	PCA0L	  = 0x00;                         
	PCA0CPL4  = 0x0f;	//T溢出=(256*PCA0CPL4)+(256-PCA0L) 1.024s溢出
	PCA0CPH4  = 0x00;
    PCA0MD    |= 0x40;
}

void Timer_Init()
{

	TMOD      = 0x21; // timer0 work at mode 1, timer1 at mode 2 for scon0 baudrate
    TCON      = 0x50; // startup timer0 and timer1
	CKCON     = 0x0c; // sysclk as timer0 and sysclk as timer1 soruce 
 
    TH0       = 0xe8;  // TH0_VALUE ((65536-25*245)/256)    /* 250us timer */
    TL0       = 0x13;  // TL0_VALUE ((65536-25*245)%256)

    TH1       = 0x96; // scon0  115200
}

void UART_Init()
{
    SCON0     = 0x10; // serial0 work at 8bit one start, one stop
}

// Peripheral specific initialization functions,
// Called from the Init_Device() function
void Port_IO_Init()
{
    // P0.0  -  Skipped,     Open-Drain, Digital
    // P0.1  -  Skipped,     Open-Drain, Digital
    // P0.2  -  Skipped,     Open-Drain, Digital
    // P0.3  -  Skipped,     Open-Drain, Digital
    // P0.4  -  TX0 (UART0), Open-Drain, Digital
    // P0.5  -  RX0 (UART0), Open-Drain, Digital
    // P0.6  -  Skipped,     Open-Drain, Digital
    // P0.7  -  Skipped,     Open-Drain, Digital

    // P1.0  -  Skipped,     Open-Drain, Digital
    // P1.1  -  Skipped,     Open-Drain, Digital
    // P1.2  -  Skipped,     Push-Pull,  Digital
    // P1.3  -  Skipped,     Push-Pull,  Digital
    // P1.4  -  Skipped,     Push-Pull,  Digital
    // P1.5  -  Skipped,     Push-Pull,  Digital
    // P1.6  -  Skipped,     Push-Pull,  Digital
    // P1.7  -  Skipped,     Push-Pull,  Digital
    // P2.0  -  Skipped,     Push-Pull,  Digital
    // P2.1  -  Skipped,     Push-Pull,  Digital
    // P2.2  -  Skipped,     Open-Drain, Digital
    // P2.3  -  Skipped,     Open-Drain, Digital

    P1MDOUT   = 0xFC;
    P2MDOUT   = 0x03;
    P0SKIP    = 0xCF;
    P1SKIP    = 0xFF;
    P2SKIP    = 0x0F;
    XBR0      = 0x01;
    XBR1      = 0x40;
}


void Oscillator_Init()
{
    OSCICN    = 0x83;
}

void Interrupts_Init()
{
    IP        = 0x10;
    IE        = 0x92;
}


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

void Clr_WDT(void)
{
    PCA0CPH4 = 0x00;
}

⌨️ 快捷键说明

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