📄 eepromprc.c
字号:
/*******************************************************************/
/********* A8 = 0 *****************/
/** mo ren de system mi ma (system_code) ADDRESS 0x0a -0x0d **/
/** yong hu shezhi de dp_point weizhi ADDRESS 0x0e **/
/** xianzhai zhixiang page1 de zhizheng wei zhi ADDRESS 0x10 **/
/** bao jin shang xian (up_alarm_data) ADDRESS 0x12 - 0x14 **/
/** bao jin xia xian (down_alarm_data) ADDRESS 0x15 - 0x16 **/
/** liang cheng fan wei() ADDRESS 0x18 - 0x1b **/
/** lu bo zhi su (filter_data) ADDRESS 0x1c **/
/** xiao liu liang xin hao(cut_data) ADDRESS 0x1d **/
/** system_lchen ADDRESS 0x20-0x23 **/
/** system_dp ADDRESS 0x24 **/
/** system_gain ADDRESS 0x25 **/
/** pulse danliang ADDRESS 0x26--0x29 **/
/** pulse danliang dp ADDRESS 0x2a **/
/** sensor_k ADDRESS 0x30--0x33 **/
/** sensor_dp ADDRESS 0x34 **/
/** da_offset ADDRESS 0x35--0x37 **/
/** zero_offset ADDRESS 0x38--0x3c **/
/** zero_symbol ADDRESS 0x38 **/
/** zero_dp ADDRESS 0x3d **/
/************* A8 = 1 **********/
/** zhen xiang lei ji liu liang ADDRESS 0x10 (kaishi)-0x13 **/
/** fan xiang lei ji liu liang ADDRESS 0x14-0x17 **/
/** jing lei ji liu liang ADDRESS 0x18-0x1b **/
/*******************************************************************/
#include "reg52.h"
#include "typedef.h"
#include "function.h"
#include "define.h"
#include "varible.h"
sbit CS = P1^0 ;
sbit SO = P1^2 ;
sbit SK = P1^1 ;
sbit SI = P1^2 ;
/*********************************/
unsigned char Read(void);
void Write(unsigned char cdata);
unsigned char ReadSR(void);
//unsigned char WriteSR(unsigned char cdata);
void Write1B(unsigned char cdata,unsigned char ADDRESS,bit PAGE);
unsigned char Read1B(unsigned char ADDRESS, bit PAGE);
unsigned char Code_check(void);
void X25043_init(void);
void Save_dp_point(unsigned char addr);
void Set_watchdog_time(unsigned char time);
//void Delay_2us(void);
/*********************************/
/*********************************/
unsigned char Read(void)
{
bit b_data;
unsigned char i;
unsigned char cdata;
cdata = 0x00;
SO = 1 ;
for(i=0;i<8;i++)
{
SK = 1 ;
// Delay_2us();
SK = 0 ;
// Delay_2us();
;
b_data = SO ;
if(b_data)
cdata |= 0x01 ;
if(i<7)
cdata <<= 1;
}
return(cdata);
}
/*********************************/
/*********************************/
void Write( unsigned char cdata)
{
unsigned char i ;
//Delay_2us();
for(i=0;i<8;i++)
{ if((cdata &0x80) == 0)
SI = 0;
else
SI = 1 ;
// Delay_2us();
SK = 0;
;
// Delay_2us();
SK = 1 ;
// Delay_2us();
cdata <<= 1;
}
}
/*********************************/
/*********************************/
unsigned char ReadSR(void)
{
unsigned char cdata ;
CS = 0 ;
Write(RDSR) ;
cdata = Read();
CS = 1 ;
return(cdata);
}
/*********************************/
/*********************************/
/*
unsigned char WriteSR(unsigned char cdata)
{
unsigned char ctemp;
ctemp = ReadSR();
if((ctemp&0x01) == 1 ) //is writing now
return 0;
CS = 0 ;
Write(WREN);
CS = 1 ;
CS = 0 ;
Write(WRSR);
Write(cdata);
CS = 1;
return 1 ;
}
*/
/*********************************/
/*********************************/
void Write1B( unsigned char cdata, unsigned char ADDRESS,bit PAGE)
{
while((ReadSR()&0x01) == 1) //if is writing now,then wait
{
;
}
CS = 0 ;
// Delay_2us();
Write(WREN);
// Delay_2us();
CS = 1;
// Delay_2us();
CS = 0 ;
if(PAGE == 0)
Write(WRITE0);
else
Write(WRITE1);
Write(ADDRESS);
Write(cdata) ;
CS = 1 ;
}
/*********************************/
/*********************************/
unsigned char Read1B(unsigned char ADDRESS, bit PAGE)
{
unsigned char cdata ;
while((ReadSR()&0x01) == 1)
;
CS = 0 ;
if( PAGE == 0)
Write(READ0);
else
Write(READ1);
Write(ADDRESS);
cdata = Read();
CS = 1 ;
return(cdata);
}
/*********************************/
/*********************************/
void X25043_init(void)
{
CS = 1 ;
SI =1;
SK = 1 ;
}
/*********************************/
/*********************************/
/*********************************/
/*********************************/
unsigned char Code_check(void)
{
if((user_setdata.oneseg==Read1B(0x0d,0))&&(user_setdata.twoseg == Read1B(0x0c,0))
&&(user_setdata.thrseg == Read1B(0x0b,0))&&(user_setdata.fouseg == Read1B(0x0a,0)))
return 1;
else
return 0;
}
/*******************************/
/*******************************/
void Save_dp_point(unsigned char addr)
{
Write1B(dp_point,addr,0);
return;
}
/*******************************/
/**** set watchdog time 200ms **/
void Set_watchdog_time(unsigned char time)
{
while((ReadSR()&0x01) == 1) //wait write operation over
;
CS = 0 ;
Write(WREN);
CS = 1 ;
CS = 0 ;
Write(WRSR);
Write(time);
CS = 1;
return;
}
/******************************/
/***************************/
/*void Delay_2us(void)
{
unsigned char idata i;
for(i=0;i<2;i++)
;
return;
} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -