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