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

📄 89f0x0.c

📁 51单片机操作89F0X0系列FLASH存储器的程序
💻 C
字号:
//  AT89F0X0操作程序
//  author:wacke
//  date: 2005/7/15
//
//    | P0(0~7)<-----------------------> DQ(0~7) | 
//    |        |->D(0~7) 373 Q(0~7) <->  A(0~7 ) | 
//    | ALE  -----> ALE.                         |
//    | P2(0~7)<-----------------------> A(8~15) | 89F0X0
// 51 | P2(0~7)<-> D(0~7) 373 Q(0~7) <-> A(16~23)| 
//    | P3.2 -----> LE.                          |
//    |                                          |
//
#include "89F0X0.h"

uchar Curpage;

struct Index Idx;


uchar ResetFlash(void)		//复位FLASH
{
	uchar xdata *p;
	SetPage(0);
	p = 0x0000;
	*p = 0xf0;
	return *p;	
}

uchar ReadFlash(struct FlashAddr addr)		//读FLASH
{
	uchar xdata *p;
	SetPage(addr.AddH);
	p = addr.AddL;
	return *p;
}

void WriteFlash(struct FlashAddr addr,uchar dat)	//写FALSE
{
	uchar xdata *p;
	SetPage(addr.AddH);
	p = 0x5555;
	*p = 0xaa;
	p = 0x2aaa;
	*p = 0x55;
	p = 0x5555;
	*p = 0xa0;
	p = addr.AddL;
	*p = dat;
}



void ErasePage(struct FlashAddr addr)		//擦除页
{
	uchar xdata *p;
	SetPage(addr.AddH);
	p = 0x5555;
	*p = 0xaa;
	p = 0x2aaa;
	*p = 0x55;
	p = 0x5555;
	*p = 0x80;
	*p = 0xaa;
	p = 0x2aaa;
	*p = 0x55;
	p = addr.AddL;
	*p = 0x30;
	delay(255);
	*p = 0xf0;
}

uchar GetPartID(void)				//获取零件号
{
	uchar PartID;
	uchar xdata *p;
	SetPage(0);
	p = 0x5555;
	*p = 0xaa;
	P = 0x2aaa;
	*p = 0x55;
	p = 0x5555;
	*p = 0x90;

	p = 0x0001;
	PartID = *p;

	p = 0x5555;
	*p = 0xaa;
	p = 0x2aaa;
	*p = 0x55;
	p = 0x5555;
	*p = 0xf0;
	return PartID;
}

uchar GetFactureID(void)			//获取功能号
{
	uchar PartID;
	uchar xdata *p;
	SetPage(0);
	p = 0x5555;
	*p = 0xaa;
	P = 0x2aaa;
	*p = 0x55;
	p = 0x5555;
	*p = 0x90;

	p = 0x0002;
	PartID = *p;

	p = 0x5555;
	*p = 0xaa;
	p = 0x2aaa;
	*p = 0x55;
	p = 0x5555;
	*p = 0xf0;
	return PartID;	
}

void SetPage(uchar Page)			//内部函数,设FALSH高位地址
{
    Curpage = Page&0x0f|0x08;
	ALE = 1;
	P2 = Curpage;
    ALE = 0;
}

void delay(uchar time)				//内部函数,延时用
{
      uchar i,j;
      for(i = 0; i < time; i++)
      for(j = 0; j < 0xff; j++);
}

⌨️ 快捷键说明

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