⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eepromprc.c

📁 电磁流量计的源程序。将流体流量用电磁转换方式变换成弱电信号
💻 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 + -