📄 c8051f310_init.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 + -