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

📄 f34x_msd_cf_basic_functions.h

📁 C8051F340读写SD卡的程序
💻 H
字号:
//-----------------------------------------------------------------------------
// F34x_MSD_CF_Basic_Functions.h
//-----------------------------------------------------------------------------
// Copyright 2006 Silicon Laboratories, Inc.
// http://www.silabs.com
//
// Program Description:
//
// Header file with function prototypes relevant to F34x_CF_Basic_Functions.c
//
//
// FID:            34X000029
// Target:         C8051F34x
// Tool chain:     Keil
// Command Line:   See Readme.txt
// Project Name:   F34x_USB_MSD
//
// Release 1.1
//    -All changes by PKC
//    -09 JUN 2006
//    -Replaced SFR definitions file "c8051f320.h" with "c8051f340.h"
//
// Release 1.0
//    -Initial Release
//

//-----------------------------------------------------------------------------
// Header File Preprocessor Directive
//-----------------------------------------------------------------------------

#ifndef __CF_BASIC_H__
#define __CF_BASIC_H__

#include <intrins.h>
#include "c8051f340.h"

#define		CF_NO_CARD		0x01
sbit CF_RST = P1^0;
sbit CF_OE = P1^1;
sbit CF_CE1 = P1^2;
sbit CF_CD1 = P1^3;
sbit CF_RDY = P1^4;
sbit CF_WE = P1^6;


//-----------------------------------------------------------------------------
// Macro Prototypes
//-----------------------------------------------------------------------------

#define CF_SET_ADDR_LINE(value) {\
	P3 &= ~0xe0;\
	P3 |= (value << 5) & 0xe0;\
}

#define CF_WR_DATA(value) {\
	P4MDOUT = 0xFF;\
	P4 = value;\
}

#define CF_READ_DATA	P4

#define CF_WAIT_STATE {\
	_nop_ ();\
	_nop_ ();\
	_nop_ ();\
}

#define CF_READWRITE_IDLE {\
	P4MDOUT = 0x00;\
	P4 =0xff;\
	CF_OE = 1;\
	CF_WE = 1;\
}

#define CF_WRITE {\
	CF_OE = 1;\
	CF_WE = 0;\
}

#define CF_READ {\
	P4MDOUT = 0x00;\
	P4 =0xff;\
	CF_WE = 1;\
	CF_OE = 0;\
}


//-----------------------------------------------------------------------------
// Function Prototypes
//-----------------------------------------------------------------------------

char Dtct_Card(void);
void Wait_Drq();
void Wait_Busy();
char Identify_Drive(char* buffer);
char Init_CF();
char Write_Sector(unsigned long address, char* buffer);
char Read_Sector(unsigned long address, char* buffer);

//-----------------------------------------------------------------------------
// Macro Prototypes
//-----------------------------------------------------------------------------

//#define MACRO_CF_VERSIONS
#ifndef MACRO_CF_VERSIONS

//-----------------------------------------------------------------------------
// Function Prototypes
//-----------------------------------------------------------------------------

char CF_GET_REGISTER_VALUE(char addr);
void CF_SET_REGISTER_VALUE(char addr, char value);

#else
#define CF_GET_REGISTER_VALUE(addr,value) {\
	CF_SET_ADDR_LINE(addr);\
	CF_READ;\
	CF_WAIT_STATE;\
	value = CF_READ_DATA;\
	CF_READWRITE_IDLE;\
}
#define CF_SET_REGISTER_VALUE(addr,value) {\
	CF_SET_ADDR_LINE(addr);\
	CF_WR_DATA(value);\
	CF_WRITE;\
	CF_WAIT_STATE;\
	CF_READWRITE_IDLE;\
}
#endif

#endif

⌨️ 快捷键说明

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