📄 e2prom.c
字号:
#include <STDIO.H>
#include <STC12C5410AD.H>
#define cmd_E2PROM_Standby 0x00 //E2PROM待机模式
#define cmd_E2PROM_Read 0x01 //读取E2PROM数据
#define cmd_E2PROM_Write 0x02 //对E2PROM进行写操作
#define cmd_E2PROM_Erase 0x03 //对E2PROM扇区进行擦除
#define con_ISP_Enable 0x8C //E2PROM控制寄存器使能常数(根据晶振进行设置)
#define con_ISP_Disable 0x00 //E2PROM控制寄存器关闭常数
//函数声明
void E2PROM_Close(); //关闭E2PROM
unsigned char E2PROM_Read(unsigned char E2addrH,unsigned char E2addrL); //读E2PROM
void E2PROM_Write(unsigned char E2addrH,unsigned char E2addrL,unsigned char E2Data); //写E2PROM
void E2PROM_Erase(unsigned char E2addrH,unsigned char E2addrL); //擦除扇区
//关闭E2PROM
void E2PROM_Close()
{
ISP_CONTR=con_ISP_Disable;
}
//读E2PROM
unsigned char E2PROM_Read(unsigned char E2addrH,unsigned char E2addrL)
{
ISP_CONTR=con_ISP_Enable;
ISP_CMD=cmd_E2PROM_Read;
ISP_ADDRH=E2addrH;
ISP_ADDRL=E2addrL;
ISP_TRIG=0x46;
ISP_TRIG=0xB9;
return(ISP_DATA);
}
//写E2PROM
void E2PROM_Write(unsigned char E2addrH,unsigned char E2addrL,unsigned char E2Data)
{
ISP_CONTR=con_ISP_Enable;
ISP_CMD=cmd_E2PROM_Write;
ISP_DATA=E2Data;
ISP_ADDRH=E2addrH;
ISP_ADDRL=E2addrL;
ISP_TRIG=0x46;
ISP_TRIG=0xB9;
}
//擦除扇区
void E2PROM_Erase(unsigned char E2addrH,unsigned char E2addrL)
{
ISP_CONTR=con_ISP_Enable;
ISP_CMD=cmd_E2PROM_Erase;
ISP_ADDRH=E2addrH;
ISP_ADDRL=E2addrL;
ISP_TRIG=0x46;
ISP_TRIG=0xB9;
}
/*void main()
{
E2PROM_Erase(0x28,0x00);
E2PROM_Write(0x28,0x00,0x00);
E2PROM_Write(0x28,0x01,0x01);
E2PROM_Write(0x28,0x01,0x02);
E2PROM_Close();
while(1)
{;};
} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -