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

📄 iceflash.h

📁 flash 读写程序,主要作为参考学习用,如有疑问可以参考质料
💻 H
字号:
//-------------------------------------------------------------------------------------------
#ifndef	__ICEflash_h__
#define	__ICEflash_h__


#endif
//-------------------------------------------------------------------------------------------
#ifdef	__ICEflash__

#include "w925c240.h"

//---Constant Define
#define		ICE_WREN		0x06			// Write Enable
#define		ICE_WRDI		0x04			// Write Disable
#define		ICE_RDSR		0x05			// Read Status Register
#define		ICE_WRSR		0x01			// Write Status Register
#define		ICE_READ		0x03			// Read Data Bytes
#define		ICE_PP			0x02			// Page Program
#define		ICE_SE			0xd8			// Sector Erase
#define		ICE_BE			0xc7			// Bulk Erase
#define		ICE_RDID		0x15			// Read Device ID

//Status Register Format
#define		SR_WIP			0x01			// Write In Process indicater
#define		SR_WEL			0x02			// Write Enable Latch
#define		SR_BP0			0x04			// The Block Protect(BP1,BP0) 
#define		SR_BP1			0x08			//
#define		SR_SRWD			0x80			// Status CRegister Write Disable bit

//---IO define
sbit		ioICE_Clock		= P1^0;			// Serial Clock
sbit		ioICE_DataIn	= P1^1;			// ICE Serial Data Input
sbit		ioICE_DataOut	= P1^2;			// ICE Serial Data Output
sbit		ioICE_CE		= P1^3;			// Chip Enable
//sbit		ioICE_WR		= P0^4;			// Write Protect
//sbit		ioICE_Hold		= P0^5;			// Hold

//---Macro define
#define		mICE_SetioClock_Output		P1IO &= (~0x01); P1H |=0x01;
#define		mICE_SetioDataIn_Output		P1IO &= (~0x02); P1H |=0x02;
#define		mICE_SetioDataOut_Input		P1IO |= 0x04;	 P1H |=0x04;
#define		mICE_SetioCE_Output			P1IO &= (~0x08); P1H |=0x08;
#define		mICE_SetioWR_Output
#define		mICE_SetioHold_Output

#define		mICE_ClockHigh		ioICE_Clock		= 1;
#define		mICE_ClockLow		ioICE_Clock		= 0;
#define		mICE_DataHigh		ioICE_DataIn	= 1;
#define		mICE_DataLow		ioICE_DataIn	= 0;
#define		mICE_ChipDisable	ioICE_CE		= 1;
#define		mICE_ChipEnable		ioICE_CE		= 0;

#define		mICE_OpStart		mICE_ClockLow mICE_DataLow mICE_ChipEnable
//#define		mICE_OpStop			mICE_ChipDisable mICE_ClockLow mICE_DataLow
#define		mICE_OpStop			mICE_ChipDisable mICE_ClockHigh mICE_DataHigh

#define		mICE_WriteDisable	//ioICE_WR		= 1;
#define		mICE_WriteEnable	//ioICE_WR		= 0;
#define		mICE_HoldOn			//ioICE_Hold		= 1;
#define		mICE_HoldOff		//ioICE_Hold		= 0;

//---internal function define 
void ICE_WriteData(unsigned char wdata);
unsigned char ICE_ReadData(void);

#endif
//-------------------------------------------------------------------------------------------
#ifdef	__ICEflash__
#define	ICE_EXTERN
#else
#define	ICE_EXTERN 	extern
#endif

ICE_EXTERN void ICE_FlashInit(void);
ICE_EXTERN void ICE_WriteCommand(unsigned char cmd);
ICE_EXTERN unsigned char ICE_ReadStatusRegister(void);
ICE_EXTERN void ICE_WriteStatusRegister(unsigned char wdata);
ICE_EXTERN void ICE_ReadByte(unsigned char addr, unsigned char len, unsigned char *rdata);
ICE_EXTERN void ICE_WriteByte(unsigned char addr, unsigned char len, unsigned char *wdata);

//-------------------------------------------------------------------------------------------

⌨️ 快捷键说明

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