📄 lcd_eem.c
字号:
#include <cxfunc1.h>
#include <at8252.h>
#include <string.h>
#include <absacc.h>
#include <intrins.h>
#include <math.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <lcd_func.h>
#include <lcd_def.h>
#include <lcd_ext.h>
//将站号写入EEPROM
void wri_stat_eem(void)
{
unsigned char xdata loopC;
unsigned char xdata *vCP;
unsigned char xdata * eem_adrCP;
if(chk_event_flagI(SET_SADR_LIVE)){
eem_adrCP=(unsigned char xdata *)0x00;
vCP=(unsigned char xdata *)(&stat.adrC);
}
else if(chk_event_flagI(SET_DADR_LIVE)){
eem_adrCP=(unsigned char xdata *)0x02;
vCP=(unsigned char xdata *)(&stat.adrC);
}
for(loopC=0;loopC<2;loopC++){
wri_eem(*vCP++,eem_adrCP++);
}
}
//从EEPROM中读出站号
void read_stat_eem(void)
{
unsigned char xdata * eem_adrCP;
eem_adrCP=(unsigned char xdata *)0x00;
sadrS=(unsigned int)(read_eemC(eem_adrCP)<<8)
+(unsigned int)(read_eemC(eem_adrCP+1));
eem_adrCP=(unsigned char xdata *)0x02;
dadrS=(unsigned int)(read_eemC(eem_adrCP)<<8)
+(unsigned int)(read_eemC(eem_adrCP+1));
}
//将报警参数写入EEPROM
void wri_alarm_eem(void)
{
unsigned char xdata loopC;
unsigned char xdata * vCP;
unsigned char xdata * eem_adrCP;
if(alarm.set_cnt==1) eem_adrCP=(unsigned char xdata *)0x04;
else if(alarm.set_cnt==2) eem_adrCP=(unsigned char xdata *)0x0C;
else if(alarm.set_cnt==3) eem_adrCP=(unsigned char xdata *)0x14;
vCP=(unsigned char xdata *)(&alarm.parameter[alarm.set_cnt-1][0]);
for(loopC=0;loopC<8;loopC++){
wri_eem(*vCP++,eem_adrCP++);
}
}
//从EEPROM中读出报警参数
void read_alarm_eem(void)
{
unsigned char xdata lenC;
unsigned char xdata loopC;
unsigned char xdata * eem_adrCP;
eem_adrCP=(unsigned char xdata *)0x04;
for(lenC=0;lenC<3;lenC++){
for(loopC=0;loopC<4;loopC++){
alarm.parameter[lenC][loopC]=(unsigned int)(read_eemC(eem_adrCP++)<<8)
+(unsigned int)(read_eemC(eem_adrCP++));
}
}
}
unsigned char read_eemC(unsigned char xdata *eem_adrCP)
{
unsigned char back_eaC;
back_eaC=(unsigned char)EA;
EA = 0;
WMCON|=EEMEN_; //enable eeprom access
ACC=*eem_adrCP;
WMCON&=(~EEMEN_); //disable eeprom access
return(ACC);
EA=(bit)back_eaC;
}
void wri_eem(unsigned char datC,unsigned char xdata *eem_adrCP)
{
unsigned char back_eaC;
back_eaC=(unsigned char)EA;
EA = 0;
WMCON |= EEMEN_; //enable eeprom access
WMCON |= EEMWE_;
*eem_adrCP = datC;
while((WMCON&WDTRST_)){}
while(!(WMCON&WDTRST_)){}
WMCON &= (~EEMWE_);
WMCON &= (~EEMEN_); //disable eeprom access
eem_adrCP++;
EA=(bit)back_eaC;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -