您的位置 首页 培训

怎么选用51单片机读写U盘

如何采用51单片机读写U盘-一个系统的学习能让你提高不少,按照硬件开发的基本流程来,这样学习采系统,每一个阶段都需要做一个这样的项目,才能逐渐提高自己的独立开发水品!

51单片机读写U盘,一个长辈们都玩剩余的东东了,暑假在家没事干,大学嘛没有暑假作业的,呵呵。故干脆也来玩玩如何用51单片机读写U盘,听出名 字真的感觉这么个东东有什么用呢,商场也没有,立异更不提了,可是我想劝诫学习单片机的朋友们,因为国内的方式看来,咱们只要一步一步的来,玩他人剩余的 东东来进步自己,硬件改一下,程序优化一下都是改善或许能够说是改进吧,要兢兢业业,不要想着直接开发一个多么有远景的项目之类的空想了!

一个体系的学习能让你进步不少,依照硬件开发的根本流程来,这样学习采体系,每一个阶段都需求做一个这样的项目,才干逐步进步自己的独立开发水品!体系很简单,可是程序比较复杂,呵呵硬件和软件是能够彼此补偿的嘛,这一点童鞋们应该都知道了吧。

#include “common.h”

#include “AT89X52.H”

#include “SL811.H”

#include “TPBULK.H”

#include “HAL.H”

#include “HPI.H”

//#include “common.h”

XXGFLAGS bdata bXXGFlags;

extern unsigned char xdata DBUF[BUFFER_LENGTH];

void Init_TImer0(void)

{

TMOD &= 0xF0; /* clear TImer 0 */

TMOD |= 0x1;

TL0 = 0x0; /* value set by user */

TH0 = 0x0; /* value set by user */

ET0 = 1; /* IE.1*/

TR0 = 1; /* TCON.4 start TImer */

// PT0 = 1;

}

void Init_SpecialInterrupts(void)

{

IT0 = 0;

EX0 = 1;

// PX0 = 0;

}

void Init_Port()

{

P0 = 0xFF;

P1 = 0xFF;

P2 = 0xFF;

P3 = 0xFF;

}

/*Serial Port */

/*Mode = 1 /8-bit UART

Serial Port Interrupt = Disabled */

/*Receive = Enabled */

/*Auto Addressing = Disabled */

void Init_COMM(void)

{

SCON = 0x53;

PCON = 0x80 | PCON;

//TMOD = 0x21;

// TCON = 0x69; /* TCON */

//TH1 = 0xfa; // 9600bps @ 11.0592MHz

//TR1 = 0;

T2CON=0x30;

RCAP2H=0xFF; // 57600 @ 24MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))

RCAP2L=0xF3;

TI=0;

RI=0;

TR2=1;

ES = 1;

}

void main(void)

{

unsigned char temp;

Init_Timer0();

Init_SpecialInterrupts();

Init_Port();

Init_COMM();

MCU_LED0=1;

MCU_LED1=1;

MCU_LED2=1;

MCU_LED3=0;

//temp=SL811_GetRev();

//for(temp=0;temp《2;temp++)

DelayMs(254);

//temp=SL811Read(CtrlReg);

//SL811Write(CtrlReg,0);

//temp=SL811Read(CtrlReg);

//temp=SL811Read(IntStatus);

//SL811Write(IntStatus,INT_CLEAR);

//temp=SL811Read(IntStatus);

bXXGFlags.bits.bUartInDone=0;

SL811_Init();

for(temp=0;temp《64;temp++)

DBUF[temp]=0;

ENABLE_INTERRUPTS;

while(TRUE)

{

if (bXXGFlags.bits.bTimer){

DISABLE_INTERRUPTS;

bXXGFlags.bits.bTimer = 0;

ENABLE_INTERRUPTS;

//if(bXXGFlags.bits.bConfiguration)

check_key_LED();

}

if (bXXGFlags.bits.bCOM_ERR){

bXXGFlags.bits.bCOM_ERR=0;

ComErrRsp(COMERC_CMDERR);

}

if(bXXGFlags.bits.SLAVE_FOUND){

DISABLE_INTERRUPTS;

bXXGFlags.bits.SLAVE_FOUND=FALSE;

for(temp=0;temp《4;temp++)

DelayMs(250);

//DelayMs(50);

if(EnumUsbDev(1)) // enumerate USB device, assign USB address = #1

{

bXXGFlags.bits.SLAVE_ENUMERATED = TRUE; // Set slave USB device enumerated flag

MCU_LED0=0;

}

ENABLE_INTERRUPTS;

}

if(bXXGFlags.bits.SLAVE_REMOVED){

DISABLE_INTERRUPTS;

bXXGFlags.bits.SLAVE_REMOVED=FALSE;

MCU_LED0=1;

MCU_LED1=1;

bXXGFlags.bits.SLAVE_ENUMERATED = FALSE;

bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;

//bXXGFlags.bits.bMassDevice=TRUE;

ENABLE_INTERRUPTS;

}

if(bXXGFlags.bits.bMassDevice){

DISABLE_INTERRUPTS;

bXXGFlags.bits.bMassDevice=FALSE;

if(EnumMassDev())

{

bXXGFlags.bits.SLAVE_IS_ATTACHED = TRUE;

MCU_LED1=0;

}

else

{

MCU_LED1=1;

bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;

}

ENABLE_INTERRUPTS;

}

if(bXXGFlags.bits.bUartInDone){

DISABLE_INTERRUPTS;

bXXGFlags.bits.bUartInDone=0;

UartHandler();

ENABLE_INTERRUPTS;

}

}

}
来历;21ic

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/344134.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部