热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页

51單片機控制硬盤資料及電路

2016-07-05 15:37

51單片機控制硬盤資料及電路

#include

/**************************************************
*????????????????? HardDisk Control Demo
*???? Power BY DDDLZHU
*??? 編譯環境 : KEIL C51 V7.07??? 支持器件 : AT89C51??????
*??????????????????? COPYRIGHT (C) 2004???????????????????????

?

***************************************************/

#define byte unsigned char
#define uint unsigned int
/*************************************************
//線路連接定義。如電路有變直接修改就可以了
*************************************************/

#define DataH P1??????????????
#define DataL P0
#define RegAddr P2
#define Read P3_4
#define Write P3_3
#define Rst P3_2

/*************************************************
//線路連接定義。如電路有變直接修改就可以了
*************************************************/

//寄存器地址定義
#define _Status_Control 0x16
#define _Data 0x8
#define _Err_Features 0x9
#define _SecCount 0xa
#define _SecNum 0xb
#define _CylinderL 0xc
#define _CylinderH 0xd
#define _DeviceAndHead 0xe
#define _Status_Command 0xf

//**************************************************************************************/
/*這里為初始化硬盤的重要參數,每個硬盤的參數都不盡相同。若不正確則讀不了盤中的數據。計算方法如下:
先看清楚你的 硬盤表面標簽中的數據,里面有三個重要參數:
1。柱面數(Cylinder)
2。磁頭數(Head)
3。磁道數(Sector)
其中 _MaxHead=0xA+Head
???? _MaxSector=Sector
例如我的130M硬盤(很老吧,哈哈),磁頭數為15,十六進制為0xf,所以_MaxHead=0xAF,磁道數為17,所以_MaxSector=0x11
*/
#define _MaxHead 0xAF
#define _MaxSector 0x11

//************************************************************************************
byte bdata Status=0x00;
sbit ERR=Status^0;
sbit IDX=Status^1;
sbit CORR=Status^2;
sbit DRQ=Status^3;
sbit DSC=Status^4;
sbit DF=Status^5;
sbit DRDY=Status^6;
sbit BSY=Status^7;

//************************************************************
* D7?? D6?? D5?? D4?? D3?? D2??? D1?? D0??????????????????? *
BSY DRDY DWF DSC DRQ CORR IDX?? ERR?????????????????? *
BSY:驅動器忙;???????????????????????????????????????????? *
DRDY:驅動器準備好;??????????????????????????????????????? *
DWF:驅動器寫失??;???????????????????????????????????????? *
DSC:尋道結束;????????????????????????????????????????????? *
DRQ:請求服務,驅動器希望通過數據寄存器與CPU交換一字節數據;*
CORR:當可以糾正的讀錯誤發生時,該位置1,數據傳輸將繼續進行 *
IDX:收到綜引信號;???????????????????????????????????????? *
ERR:命令執行出錯。???????????????????????????????????????? *
*************************************************************/

byte Data_bufferH=0x0;
byte Data_bufferL=0x0;

//***************串口子程序
void send_string(unsigned char *word);
void send_char(unsigned char word);
unsigned char get_char(void);

/*******************************************************
:延遲函數??????????????????????????????????
********************************************************/???
void delay(byte ms)
{ byte i,j;
for(i=0;i ???? for(j=0;j<255;j++);
}

/*******************************************************
*讀寄存器
********************************************************/
byte ReadReg(byte Addr)
{
RegAddr=Addr;
DataL=0xff;
Read=0;
Status=DataL;
Read=1;
return Status;
}

/*******************************************************
*等待BSY信號
********************************************************/
byte WaitBSY(void)
{
byte timeOut=0;
do{
ReadReg(_Status_Command);
timeOut++;
// if(timeOut>=254) return(0xff);
}while(BSY);
return(1);
}

/*****************************************************
*寫寄存器值
********************************************************/
void WriteReg(byte Addr,byte Data)
{
RegAddr=Addr;
Write=0;
DataL=Data;
Write=1;
}

/*******************************************************
讀數據儲存器中數據
********************************************************/
void ReadData(void)
{
DataH=0xff;
DataL=0xff;
RegAddr=_Data;
Read=0;
Data_bufferL=DataL;
Data_bufferH=DataH;
Read=1;
}

/*******************************************************
寫數據寄存器中數據
********************************************************/
void WriteData(void)
{
RegAddr=_Data;
Write=0;
DataL=Data_bufferL;
DataH=Data_bufferH;
Write=1;
}

/**********************************************************
初始化硬盤????????????????????????????????????????? *
***********************************************************/
void Init(void)
{ do{
WriteReg(_DeviceAndHead,0xa0);
???? ReadReg(_Status_Command);??????
}while(!DRDY|BSY);
??? WriteReg(_DeviceAndHead,_MaxHead);
??? WriteReg(_SecCount,_MaxSector);
??? WriteReg(_Status_Command,0x91);
WaitBSY();
??? WriteReg(_Status_Command,0x10);
WaitBSY();
}

/**********************************************************
讀硬盤參數
***********************************************************/
void DriverID(void)
{
unsigned int i=512;
//send_string("Starting read driver ID\n");
WaitBSY();
//send_string("Now can read driver ID \n");
WriteReg(_Status_Command,0xec);
//send_string("Waiting.. ");
do{ReadReg(_Status_Command);}while(BSY|!DRQ);
//send_string("Now Sending \n");
while(i){
ReadData();
send_char(Data_bufferH);
send_char(Data_bufferL);
i-=2;
}
}

/*********************************************************
硬盤尋址
**********************************************************/
WriteCHS(byte head,uint cylinder,byte sector,byte read_count)
{
WaitBSY();
WriteReg(_DeviceAndHead,0xa0|head);
WriteReg(_CylinderH,(char)(cylinder>>8));
WriteReg(_CylinderL,(char)(cylinder&0x00ff));
WriteReg(_SecNum,sector);
WriteReg(_SecCount,read_count);
}

/**********************************************************
*用途:將硬盤的返回數據讀入BUFFER數組
***********************************************************/
void SendData()
{ uint i;
i=512*15;
do{ReadReg(_Status_Command);}while(BSY|!DRQ);
if(ERR){
send_string("\x0d\x0a Error\x0d\x0a");
??? }
while(i){ReadData();send_char(Data_bufferL);send_char(Data_bufferH);i-=2;}
}

// 激活硬盤(轉動)
void SpinUP()
{
WaitBSY();
WriteReg(_Status_Command,0xE1);
}
// 讓硬盤休眠(停轉)/
void SpinDown()
{
WaitBSY();
WriteReg(_Status_Command,0xE0);
}

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 DDDLZHU\x0d\x0a");//send welcome word
Rst=0; //IDE 復位
delay(50);
Rst=1;
delay(255);
send_string("Reset Driver OK...\x0d\x0a");
Init();?? //初始化硬盤
send_string("Initialize Driver OK,Now Read ID\x0d\x0a");
send_string("HardDisk ID is ....\x0d\x0a");
DriverID(); //讀硬盤id
send_string("\n\nNow Read The First Sector On this HardDisk\x0d\x0a\x0d\x0a");
delay(244);
delay(244);
delay(244);
delay(244);
WriteCHS(0,0,1,16); //寫地址
WaitBSY();
WriteReg(_Status_Command,0x20);?? //發送讀命令
SendData();
send_string("\x0d\x0a\x0d\x0a Read OK,Now Shut Down The HardDisk..\x0d\x0a");
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;
}

热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩精品免费| 国际精品欧美精品| 国产精品成人在线| 久久九九免费| 中国成人黄色视屏| 国产精品久久久久久久浪潮网站| 欧美日韩1区2区| 亚洲一二三四久久| 狼人社综合社区| 欧美性理论片在线观看片免费| 欧美日韩一区二区三区| 欧美久久99| 国产精品成人观看视频免费| 国产午夜精品美女视频明星a级| 亚洲精品欧美一区二区三区| 亚洲精品精选| 一本久久知道综合久久| 国内精品视频久久| 欧美视频一区在线| 日韩视频一区二区三区| 久久综合色天天久久综合图片| 亚洲日本一区二区三区| 狠狠色丁香久久婷婷综合丁香| 亚洲人www| 国产精品永久免费| 欧美一区在线直播| 国产亚洲综合精品| 国内一区二区三区在线视频| 国产亚洲福利| 欧美午夜宅男影院在线观看| 国产九九视频一区二区三区| 你懂的国产精品| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品久久久久久久电影| 葵司免费一区二区三区四区五区| 亚洲欧美国产精品va在线观看| 国产精品美女久久久浪潮软件| 亚洲一区二区在线| 国产亚洲va综合人人澡精品| 欧美日韩国语| 欧美日本亚洲韩国国产| 一区二区三区视频在线看| 亚洲欧美三级伦理| 欧美日韩国产小视频| 裸体一区二区三区| 亚洲国产一区在线| 国产欧美一区二区精品性| 国产一区二区三区不卡在线观看| 99在线精品观看| 欧美成人精品三级在线观看| 国产欧美日韩在线播放| 亚洲欧美日韩国产精品| 国产精品久久久久国产精品日日| 中文亚洲免费| 亚洲人成在线观看网站高清| 久久久久国产精品www| 国产伦精品一区二区三区高清版| 欧美成人精品三级在线观看| 黄网动漫久久久| 久久国产精品99国产精| 免费视频一区二区三区在线观看| 久久综合九色综合网站| 国产亚洲精品bt天堂精选| 欧美日韩高清在线播放| 伊人成年综合电影网| 免费国产自线拍一欧美视频| 中文精品一区二区三区| 国产亚洲欧美一区二区三区| 欧美日韩成人一区| 国产亚洲精久久久久久| 一区二区免费在线视频| 亚洲在线观看视频| 国产精品视频免费| 亚洲精品在线三区| 最新国产成人在线观看| 亚洲国产一区二区精品专区| 久久国产加勒比精品无码| 久久精品夜色噜噜亚洲a∨| 国产一区二区三区成人欧美日韩在线观看| 欧美a级片一区| 99v久久综合狠狠综合久久| 欧美日韩亚洲国产精品| 欧美一区二区三区视频| 久久久www成人免费精品| 久久精品视频在线看| 欧美在线视频观看| 国产农村妇女精品一区二区| 欧美人与性禽动交情品| 亚洲欧美在线一区二区| 亚洲欧美日韩精品久久奇米色影视| 亚洲一区免费视频| 国产精品美女久久久久aⅴ国产馆| 欧美精品一区二| 午夜精品影院在线观看| 伊人狠狠色丁香综合尤物| 国产精品久久久久久久免费软件| 午夜亚洲精品| 欧美怡红院视频一区二区三区| 欧美在线免费观看亚洲| 欧美精品在线免费| 国产一区亚洲| 久久综合色婷婷| 亚洲日本成人| 精品动漫av| 免费在线播放第一区高清av| 欧美日韩另类国产亚洲欧美一级| 久久精品一级爱片| 国产精品国产三级国产专区53| 美日韩精品免费| 免费91麻豆精品国产自产在线观看| 国产拍揄自揄精品视频麻豆| 亚洲婷婷综合久久一本伊一区| 极品尤物av久久免费看| 日韩亚洲在线观看| 黄色成人精品网站| 日韩午夜视频在线观看| 欧美日韩免费精品| 国产日韩成人精品| 麻豆精品一区二区av白丝在线| 久久高清一区| 欧美不卡福利| 久久综合精品国产一区二区三区| 亚洲国产成人在线播放| 欧美日韩一区二区三区免费看| 欧美日韩成人在线观看| 久久久久久久一区二区三区| 另类酷文…触手系列精品集v1小说| 性欧美暴力猛交另类hd| 亚洲综合色激情五月| 欧美日韩视频不卡| 久久成人av少妇免费| 欧美日韩中文精品| 99热精品在线观看| 亚洲国产日韩欧美在线动漫| 久久大香伊蕉在人线观看热2| 久久久99免费视频| 激情久久综合| 亚洲第一色中文字幕| 亚洲一区二区视频在线观看| 欧美视频三区在线播放| 99热在这里有精品免费| 国产精品久在线观看| 欧美亚州在线观看| 国模私拍一区二区三区| 欧美成人精品高清在线播放| 欧美成人有码| 欧美精品麻豆| 蜜臀av性久久久久蜜臀aⅴ| 亚洲视频在线视频| 亚洲黄色精品| 亚洲国产精品ⅴa在线观看| 久久久精品午夜少妇| 羞羞色国产精品| 欧美电影美腿模特1979在线看| 国产亚洲精品综合一区91| 亚洲国产精品电影在线观看| 久久久午夜电影| 欧美一区1区三区3区公司| 亚洲一级特黄| 久久久久久日产精品| 欧美一区午夜视频在线观看| 欧美电影在线观看| 亚洲综合欧美日韩| 亚洲国产天堂久久综合网| 美女脱光内衣内裤视频久久网站| 日韩视频免费观看高清完整版| 国产精品一区三区| 狠狠v欧美v日韩v亚洲ⅴ| 久久av免费一区| 国产美女精品人人做人人爽| 快she精品国产999| 亚洲国产乱码最新视频| 欧美激情一区二区三区蜜桃视频| 一区二区三区日韩| 亚洲欧美在线网| 国产一区视频在线观看免费| 99国产精品视频免费观看| 亚洲欧美日韩一区在线观看| 国产亚洲一二三区| 国产精品亚洲美女av网站| 亚洲国产精品视频| 国内精品久久久久久久影视蜜臀| 欧美chengren| 国产精品盗摄一区二区三区| 亚洲欧美日韩在线一区| 亚洲片区在线| 亚洲综合成人婷婷小说| 欧美福利视频一区| 亚洲精品日韩激情在线电影| 国产精品亚洲а∨天堂免在线| 亚洲人午夜精品| 久久精品国语| 久久99伊人| 欧美日韩日日夜夜| 狠狠色丁香婷婷综合| 亚洲视频导航| 激情另类综合| 国产精品久久久久7777婷婷| 欧美日本一道本在线视频| 最新国产拍偷乱拍精品| 亚洲欧美伊人| 亚洲精品免费在线播放| 国产精品一卡二卡| 欧美性做爰毛片| 欧美成人精品高清在线播放| 老司机aⅴ在线精品导航| 国产精品99免视看9| 国产婷婷一区二区| 亚洲国产天堂久久国产91| 国产精品久久久久久久午夜| 含羞草久久爱69一区| 亚洲欧洲视频| 欧美精品啪啪| 久久综合伊人77777尤物| 久久午夜电影| 亚洲视频播放| 久久久美女艺术照精彩视频福利播放| 国产麻豆午夜三级精品| 韩日欧美一区二区三区| 欧美在线一二三区| 亚洲一区二区三区精品在线| 欧美一区久久| 国产精品黄页免费高清在线观看| 韩国免费一区| 免费在线观看日韩欧美| 国产精品海角社区在线观看| 亚洲高清中文字幕| 欧美一区二区视频网站| 久久精品中文字幕一区二区三区| 老司机久久99久久精品播放免费| 亚洲最黄网站| 欧美一区二区三区在线观看| 国产精品久久久久久久app| 欧美亚洲一区在线| 国产日韩欧美在线视频观看| 久久久久99| 国产视频一区二区在线观看| 在线性视频日韩欧美| 99视频在线精品国自产拍免费观看| 欧美精品一区二区三| 精品动漫3d一区二区三区免费| 亚洲日本理论电影| 国产精品私房写真福利视频| 日韩亚洲一区在线播放| 欧美午夜无遮挡| 欧美一级欧美一级在线播放| 久久国产精品久久国产精品| 亚洲精品乱码久久久久久黑人| 欧美精品福利| 原创国产精品91| 久久久久国产免费免费| 国产欧美日韩免费看aⅴ视频| 国产精品美女久久久久久久| 久久精品国产96久久久香蕉| 亚洲一区二区三区在线播放| 亚洲黄色av| 激情成人av在线| 在线亚洲精品福利网址导航| 一本综合精品| 欧美日产一区二区三区在线观看| 亚洲一区二区综合| 国产精品欧美久久久久无广告| 在线播放日韩专区| 欧美日韩一本到| 麻豆freexxxx性91精品| 欧美日本精品一区二区三区| 亚洲一区在线视频| 久久亚洲电影| 在线观看av一区| 国产美女精品| 久久久久www| 国产精品久久久久久av下载红粉| 亚洲乱码国产乱码精品精可以看| 香蕉av福利精品导航| 精品999成人| 久久婷婷国产综合精品青草| 国产精品久久久久久久久动漫| 狂野欧美激情性xxxx欧美| 日韩一级在线观看| 99精品国产高清一区二区| 国产亚洲在线观看| 新狼窝色av性久久久久久| 国产精品区二区三区日本| 亚洲社区在线观看| 亚洲精品久久视频| 亚洲综合精品| 国内精品久久久久久久影视蜜臀| 亚洲网站在线| 亚洲电影免费观看高清完整版| 久久精品国内一区二区三区| 欧美在线视频导航| 久久久久免费| 国产欧美精品日韩区二区麻豆天美| 欧美三级网址| 欧美大片一区| 亚洲视频网在线直播| 精品va天堂亚洲国产| 欧美日韩美女一区二区| 国产精品久久久久久久久果冻传媒| 国产在线乱码一区二区三区| 国产精品一区二区久久| 欧美成人嫩草网站| 亚洲精品国产拍免费91在线| 亚洲欧美色婷婷| 亚洲一区二区三区四区在线观看| 国产美女精品视频| 免费日韩av片| 亚洲欧美日韩国产一区| 午夜精品视频在线观看一区二区| 一区电影在线观看| 国产裸体写真av一区二区| 国产亚洲精品自拍| 欧美久久久久久蜜桃| 91久久亚洲| 国产三级欧美三级| 狠狠久久亚洲欧美专区| 日韩视频久久| 国产精品久久久久毛片大屁完整版| 国产精品丝袜久久久久久app| 久久国产精品99国产| 一本色道久久综合亚洲精品按摩| 欧美视频日韩视频在线观看| 91久久久久久久久久久久久| 欧美日韩不卡| 久久精品久久综合| 欧美高清视频在线观看| 欧美日本网站| 欧美激情偷拍|