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

📄 idebase.c

📁 Mp3的设计方案
💻 C
字号:


#include "c51core.h"
#include "compiler.h"
#include "extreg.h"
#include "externalbuffer.h"

uchar STATUS;//用于存放来自硬盘除数据寄存器之外的寄存器数据
uchar DATAH,DATAL;//用于存放硬盘的16位数据

sbit ARST=P5^3;//硬盘复位信号
sbit INTQ=P5^1;//硬盘中断信号

///////////////////位设置///////////////////////////
sbit BFLAG=ACC^7;
sbit BSY=ACC^7;
sbit DRDY=ACC^6;
sbit DRQ=ACC^3;
sbit ERR=ACC^0;

/************************************************************
* 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:命令执行出错。                                         *
*************************************************************/

/*读普通寄存器内容*/
void ReadReg(uchar FILE)
{ACC=FILE;
 STATUS=ACC;
 }

/*写普通寄存器内容*/
void WriteReg(uchar FILE,uchar DATA)
{FILE=DATA;}

/*读数据寄存器16位数据*/
void ReadData(void)
{DATAL=FILE0;
 DATAH=DAT16H;
 }

/*写数据寄存器16位数据*/
void WriteData(DATAH,DATAL)
{DAT16H=DATAH;
 FILE0=DATAL;
 }

/*写命令*/
WriteCommand(uchar command)
{do{ReadReg(FILE7);}while(BSY);
 WriteReg(FILE7,command);
}

/**********************************************************
*函数名称:GetData()                                       *
*用途:将硬盘的返回数据读入BUFFER数组                      *
***********************************************************/
void GetData()
{uint i=0;
 do{ReadReg(FILE7);}while(BSY|!DRQ);
 if(ERR){;//
         }
 while(i<512){ReadData();
          HddBuffer1[i++]=DATAL;
          HddBuffer1[i++]=DATAH;
          }
}

⌨️ 快捷键说明

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