e2prom.c

来自「AVR 门锁的程序 包含与模块通讯 密码按键」· C语言 代码 · 共 60 行

C
60
字号
#include "Include.h"

unsigned char PassWord[8]={0,0,0,0,0,1,5,9};//初始密码
unsigned char IfFirstLoad=1;//是否初始上电

//储存密码
void SavePassWord(void)
{
	unsigned char i=SREG;
	cli();
	eeprom_busy_wait();
	eeprom_write_block(PassWord,ADDR_PASSWORD,8);
	
	if(1==(i>>7))
	{
		sei();
	}
}

//读取密码
void LoadPassWord(void)
{
	unsigned char i=SREG;
	cli();
	eeprom_busy_wait();
	eeprom_read_block(PassWord,ADDR_PASSWORD,8);
	
	if(1==(i>>7))
	{
		sei();
	}
}

//密码初始化
void EEPOMInit(void)
{
	DelayNmS(100);//延时100ms 等待电源稳定

	eeprom_busy_wait();
	if(eeprom_read_byte(ADDR_IFFIRSTLOAD)!=1)
	{
		IfFirstLoad=1;
		eeprom_busy_wait();
		eeprom_write_byte(ADDR_IFFIRSTLOAD,1);
	}
	else
	{
		IfFirstLoad=0;
	}

	if(1==IfFirstLoad)
	{
		SavePassWord();//如果初次上电,保存密码
	}
	else
	{
		LoadPassWord();//否则,读取密码
	}
}

⌨️ 快捷键说明

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