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

📄 uart.c

📁 单片机读写U盘
💻 C
字号:


#include<reg51.h>
#include<intrins.h>

sfr  IAP_CONTR = 0xC7;
sbit MCU_Start_Led  = P1^7;
sbit Uart_Led  = P1^6;
sbit Over_Led  = P1^5;

#define  Self_Define_ISP_Download_Command   0x22
#define  RELOAD_COUNT  0xfb

char a1[]={0X3A,0X71,0X00};    //检测U盘
char a2[]={0X3A,0X65,0X06,0X5C,0X31,0X2E,0X54,0X58,0X54}; //新建文件
char a3[]={0X3A,0X7C,0X09,0X08,0X42,0X6C,0X75,0X65,0X66,0X69,0X76,0X65};//写入数据 
char a4[]={0X3A,0X67,0X00};    //关闭文件

void serial_port_initial();
void send_UART(unsigned char i);
void UART_Interrupt_Receive(void);
void soft_reset_to_ISP_Monitor(void);
void delayms(unsigned int i);
void delays(unsigned int i);
void display_MCU_Start_Led(void);
void CMD_DiskReady();
void CMD_FileCreate();
void CMD_ByteWrite();
void CMD_FileClose();



void main(void)
{
  unsigned char i = 0;
  unsigned char tempLed = 0;
  serial_port_initial();
  
	delays(100);
	display_MCU_Start_Led();
  	CMD_DiskReady();
	delays(400);
	
	CMD_FileCreate();
	delays(100);
	
	CMD_ByteWrite();
	delays(100);
	
	CMD_FileClose();
		
	
	delays(100);
	while(1)	
	{
	 //主程序
	  if(tempLed == 0 )
	    tempLed = 1;
	  else
	    tempLed = 0;
	  Over_Led = ! tempLed;	 
	  delayms(50);	
	}

}






void delayms(unsigned int i)
{
  unsigned int j,k;
  for (j =0; j < i; j++)
  {
    for(k = 0; k < 100; k++)
	  ;
  }

}
void delays(unsigned int i)
{
  unsigned int j,k,d;
  for(j=0;j<i;j++)
  {
    for(k=0;k<1000;k++)
	  {
	    for(d=0;d<100;d++)
		;
	  }	
  }

}


void serial_port_initial()
{
  SCON  =0x50;
  TMOD  =0x21;
  TH1   =RELOAD_COUNT;
  TL1   =RELOAD_COUNT;
  TR1  =1 ;
  ES  = 1;
  EA  = 1;
 
}


void send_UART(unsigned char i)
{
  ES = 0;
  TI = 0;
  SBUF = i;
  while(TI == 0);
  TI = 0;
  ES = 1;

}



void UART_Interrupt_Receive(void) interrupt 4
{
  unsigned char k = 0;
  if(RI == 1)
  {
    RI = 0;
	k = SBUF;
    // deel
	if(k == 0) 	
	   Uart_Led = !Uart_Led;

  }
  else
  {
    TI = 0;
  }

}


void soft_reset_to_ISP_Monitor(void)
{
  IAP_CONTR  = 0x60;
}


/*

void delay(void)
{
  unsigned int j =0;
  unsigned int g =0;
  for(j = 0; j <5;j++)
  {
    for(g = 0; g < 60000;g++)
	{
	  _nop_();
	  _nop_();
	  _nop_();
	  _nop_();
	  _nop_();
	}
  
  }

}
 */
void display_MCU_Start_Led(void)
{
  unsigned char i = 0;
  for(i = 0;i < 1;i++)
  {
    MCU_Start_Led = 0;
	delays(30);
	MCU_Start_Led = 1;
	delays(30);
	MCU_Start_Led = 0;
	delays(30);
  }

}




//检测U盘
void CMD_DiskReady()
{
  char i=0;
  for(i=0;i<3;i++)
  {
    send_UART(a1[i]);
	delayms(10);
  }
    delays(1);
}

//新建文件       123.TXT
void CMD_FileCreate()
{
  char j=0;
  for(j=0;j<9;j++)
  {
     send_UART(a2[j]);
	 delayms(10);
  }
     delays(1);
}


//写入数据 Bluefive
void CMD_ByteWrite()
{
  char d=0;
  for(d=0;d<12;d++)
  {
     send_UART(a3[d]);
	 delayms(10);
  }
     delays(1);
}


//关闭文件       123.TXT
void CMD_FileClose()
{
   char k=0;
   for(k=0;k<9;k++)
  {
     send_UART(a4[k]);
	 delayms(10);
  }
     delays(1);
}






⌨️ 快捷键说明

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