微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机控制硬盘的C语言源码程序

51单片机控制硬盘的C语言源码程序

时间:11-28 来源:互联网 点击:

void main(void)

{

//Initialize

SCON=0x50; //串口初始化

TMOD=0x20; //波特率为57600bps

TCON=0x40;

PCON=0x80;

TH1=0xFf;

TL1=0xFf;

TR1=1;

send_string("IDE Control Demo. Power By DDDLZHUx0dx0a");//send welcome word

Rst=0; //IDE 复位

delay(50);

Rst=1;

delay(255);

send_string("Reset Driver OK...x0dx0a");

Init(); //初始化硬盘

send_string("Initialize Driver OK,Now Read IDx0dx0a");

send_string("HardDisk ID is ....x0dx0a");

DriverID(); //读硬盘id

send_string("Now Read The First Sector On this HardDiskx0dx0ax0dx0a");

delay(244);

delay(244);

delay(244);

delay(244);

WriteCHS(0,0,1,16); //写地址

WaitBSY();

WriteReg(_Status_Command,0x20); //发送读命令

SendData();

send_string("x0dx0ax0dx0a Read OK,Now Shut Down The HardDisk..x0dx0a");

SpinDown(); //硬盘停转

while(1);

}

//////////////////////////////////////////////////////////////////////////////串口子程序

void send_char(unsigned char word)

{

TI=0;

SBUF=word;

while(TI==0);

TI=0;

}

void send_string(unsigned char //word)

{

TI=0;

while(//word!=0)

{

SBUF=//word;

while(TI==0);

TI=0;

word++;

}

}

unsigned char get_char(void)

{

RI=0;

REN=1;

while(RI==0);

return(SBUF);

RI=0;

REN=0;

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top