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

📄 config.#3

📁 本源码是c8051f330使用spi口在spi模式下读写SD卡
💻 #3
字号:
/////////////////////////////////////
//  MCU初始化配置程序  //
/////////////////////////////////////

//#include "C8051F330.h"
#include "inc.h"

// Peripheral specific initialization functions,
// Called from the Init_Device() function
#define SYSCLK       24500000 / 8        //系统工作频率

sbit LED = P0^1;

sfr16 TMR2RL   = 0xca;                   
sfr16 TMR2     = 0xcc;              


void PCA_Init()
{
    PCA0MD    &= ~0x40;
    PCA0MD    = 0x00;
}

void SPI_Init()
{
    SPI0CFG   = 0x70;
    SPI0CN    = 0x01;
    SPI0CKR   = 0x04;										 //SPI0LCK为 300KHZ

}

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  -  SCK  (SPI0), Open-Drain, Digital
    // P0.5  -  MISO (SPI0), Open-Drain, Digital
    // P0.6  -  MOSI (SPI0), Open-Drain, Digital
    // P0.7  -  Unassigned,  Open-Drain, 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

    P0SKIP    = 0x0F;
    XBR0      = 0x02;
    XBR1      = 0x40;
	P0MDOUT |= 0xF2;

}


void Oscillator_Init()
{
   OSCICN = 0x80;                          // 系统时钟初始化为片内的 24.5MHz / 8                       
                                         
   RSTSRC = 0x04;                         // 使能时钟丢失检测器

}

// Initialization function for device,
// Call Init_Device() from your main program


void Timer2_Init (int counts)
{
   TMR2CN  = 0x00;                        // 禁止定时器2; 并清TF2标志位;
                                        
   CKCON  &= ~0x60;                      

   TMR2RL  = -counts;                     
   TMR2    = 0xffff;               
   ET2     = 1;                           // 使能定时器2中断
   TR2     = 1;                           // 启动定时器2
}


//-----------------------------------------------------------------------------
// 定时器2中断处理
//-----------------------------------------------------------------------------

void Timer2_ISR (void) interrupt 5
{
   TF2H = 0;                              // 清定时器2中断标志位
   LED = ~LED;                            // LED状态取反
}


void delay(uint8 v)
{
	uint8 i,j;
	
	for(i=0;i<v;i++)
		for(j=0;j<200;j++);
			
}



void Init_Device(void)
{
    PCA_Init();
    SPI_Init();
    Port_IO_Init();
    Oscillator_Init();
	Timer2_Init(SYSCLK / 12 / 10);
	EA = 1;

}

⌨️ 快捷键说明

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