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

📄 ml-330.c

📁 c8051f330系统
💻 C
字号:

#include "c8051f330.h"
#include "uart.h"
//#include "ml-330.h"


char ch,rxch;

unsigned Count1,Count2; 
char Bufferdata[50];

void DelayMs(unsigned int n)//延时(n)MS
{
	unsigned int i;
	for(;n>0;n--)
	{
		for(i=2211;i>0;i--);
	}
}

void SysClkInit(void)//配置系统时钟
{
   OSCICN |= 0x83;
   OSCICL = 0x00;//设置片内振荡器为22.1184MHZ
}

void WatchDogInit(void)//系统配置
{
	PCA0MD&=~0x40;//禁止看门狗定时器
	EA=0;
}
//SPIO增强型串行外设
void Spio(void)
{
  //从配置
  
  SPI0CFG  =  0x10;
  SPIEN    =  0x01;//Enable the SPIO
  NSSMD0   =  0x00;
  NSSMD1   =  0x00; // 选择4线主方式
     
  //主配置
 /* SPI0CFG  =  0x70;
  SPIEN    =  0x01;//Enable the SPIO
  NSSMD0   =  0x01;
  NSSMD1   =  0x01; // 选择传输方式为3线主方式
 // SPI0CFG &=~ 0x20;
  SPI0CKR  =  0x31;//Fck = SYSCL*/

}

void PortInit(void)//端口配置
{
   
	//P0MDIN = 0x05;//配置输出方式
      //P0 =   0xFF;
	P0MDOUT= 0xFA;
    //P0SKIP = 0x00; 
     
    XBR0 = 0x03;//设置交叉开关 打开spio和uart0端口引脚
    XBR1 = 0x40;
   
   
}



void SystemInit(void)
{   
    
    
	WatchDogInit();//系统配置
	SysClkInit();//配置系统时钟 
	PortInit();//端口配置
	Uart0_Init(115200);//串口配置
    Spio();

    
}	//Count1 = 0;
void main ()
{  
  unsigned char BufLen;
  unsigned char buf[20];   
  SystemInit();
  IE = 0xD0; //打开中断uart和spi0中断
  while(1)
  {                        
	 /*if(0)
       { 
	    DelayMs(2);
	      SPI0DAT = 0x05;
          SPIEN    =  0x00;
		 SPIEN    =  0x01;
       } */
	  
	 BufLen = UART_Read(0,buf);
     if (BufLen > 0)
  		{	
         UART_Send(0,buf,BufLen);
        } 
  }
}

void SPI0_ISR (void) interrupt 6 using 1
{
   if(SPIF == 0x01)        // 数据传输完毕
  { 
     SPIF =0x00;
     rxch = SPI0DAT;
      SPI0DAT = 0x00;
	 if (Count1 == 50)
	 {
	   Count1 = 0;
	 }
     Bufferdata[Count1] =  rxch;
       Count1 ++;
	// SPI0DAT = 0x05;
  }
  if(WCOL == 0x01) //数据传输期间执行写操作 将被忽略
  { 
    //SPIEN = 0x00;
    WCOL =0x00;	
    //SPIEN = 0x00;
  }
  if(MODF == 0x01)//方式错误标志
  {
    MODF  = 0x00;
    //SPI0CFG |= 0x40;//MSTEN = 0x00;
    //SPIEN  = 0X00;
  }
  if(RXOVRN == 0x01) //接受溢出标志
  {
    RXOVRN = 0x00;
    
  }
  
}

⌨️ 快捷键说明

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