eeprom.c

来自「多功能智能充电器」· C语言 代码 · 共 58 行

C
58
字号
#include "reg5410.h"

		 

unsigned char read(unsigned char ADDRH,unsigned char ADDRL);
void write(unsigned char ADDRH,unsigned char *p,unsigned char k);
void erase(unsigned char ADDRH);

void Delay0(unsigned int n)
{
	unsigned char i,j;
	for(i=0;i<n;i++)
		for(j=0;j<100;j++);
}

///////////////////eprom start
void write(unsigned char ADDRH,unsigned char *p,unsigned char k)
{    
	unsigned char i;  									
	erase(ADDRH);
	ISP_ADDRH=ADDRH;                                    		//擦除
	ISP_ADDRL=0x00;
    for(i=0;i<k;i++)                                    
	{	
		ISP_DATA=p[i];
        ISP_CONTR=0x8b;	         					
		ISP_CMD=2;																							
		ISP_TRIG=0x46;									   		//触发ISP/IAP 	
		ISP_TRIG=0xb9;	
		ISP_ADDRL++; 											//地址+1;  		
		Delay0(5);
	}
}

unsigned char read(unsigned char ADDRH,unsigned char ADDRL)   	//ADDRH 范围0x28-0x2f  ADDL"0-255"
{      
	ISP_ADDRH=ADDRH; 											//ISP/IAP控制寄存器
 	ISP_ADDRL=ADDRL;	
	ISP_CONTR=0x8b;	
	ISP_CMD=1;													//送字节读命令
	ISP_TRIG=0x46;											
	ISP_TRIG=0xb9;												//触发ISP/IAP 
    Delay0(5);
	return ISP_DATA;
}

/***********擦除**************/
void erase(unsigned char ADDRH)                                 
{
	ISP_ADDRH=ADDRH;
	ISP_ADDRL=0x00;
	ISP_CONTR=0x8b;	
	ISP_CMD=3;
	ISP_TRIG=0x46;												//触发ISP/IAP 
	ISP_TRIG=0xb9;											
    Delay0(5);
}
///////////////////eprom end

⌨️ 快捷键说明

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