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

📄 新建 文本文档.txt

📁 一个对看门狗芯片x25045的读写程序
💻 TXT
字号:
 /*******************************************************************************************
 功能描述:写EEPROM阵列
*******************************************************************************************/
void byte_write(void)
{
  uchar a;
  if(dog_addr>255)
    {
      a=10;
      dog_addr=dog_addr-256;
    }
   else
     { a=2;}
    SCK_25045=0;   
  CS_25045=0;
  outbyt(6);
    SCK_25045=0;
  CS_25045=1; 
    SCK_25045=0;   
  CS_25045=0;
  outbyt(a);
  outbyt(dog_addr);
  outbyt(dog_rw_data);
     SCK_25045=0;
  CS_25045=1;
  wip_poll();    
  
  
}

/*******************************************************************************************
 功能描述:读EPPROM阵列
*******************************************************************************************/
void byte_read(void)
{
   uchar a,i;
   uchar b;
   if(dog_addr>255)
     {
      a=11;
      dog_addr=dog_addr-256;
     }
   else
     {a=3;}
     SCK_25045=0;
   CS_25045=0;
   outbyt(a);
   outbyt(dog_addr);
  
   for(i=0;i<8;i++)
    {
      b=0x00;
      SCK_25045=0;
      b=(uchar)(SO_25045);
    
      SCK_25045=1;
      dog_rw_data=(dog_rw_data<<1)+b;
  
      
    }
   SCK_25045=0;  
   CS_25045=1;  
}

/*******************************************************************************************
 功能描述:输出一个数据到25045,此数据可能为地址,先导字,写入的数据等
********************************************************************************************/
void outbyt(uchar aa)
{
  uchar i;
  SCK_25045=0;
  for(i=0;i<8;i++)
     {
    
       SI_25045=(bit)(aa&0x80);
       SCK_25045=1;
       aa=aa<<1;
       SCK_25045=0;
     }
  SI_25045=0;   

}

/*******************************************************************************************
 功能描述:检测写入的过程是否结束
********************************************************************************************/
void wip_poll(void)
{
     	uchar jj,ii,ctmp1,ctmp2;
   	
   	for (jj=1;jj<200;jj++)
 	{
  		SCK_25045=0;
 		CS_25045=0;
 		outbyt(5);
 		for (ii=8;ii>0;ii--)
 		{
   			ctmp1=0x00;
	   		SCK_25045=0;
   			ctmp1=(uchar)(SO_25045);
   			SCK_25045=1;
	   		ctmp2=(ctmp2<<1)+ctmp1;  
 		}
	 	SCK_25045=0;
 		CS_25045=1;
		if ((ctmp2&0x01)==0) 
  		{jj=200;}
 	}
}

/*******************************************************************************************
 函数名: Watchdog
 调用子函数: outbyt,wip_poll()
 输入参数: 
 输出参数: 
 功能描述:25045看门狗作用
*******************************************************************************************/
void Watchdog(void)
{
  CS_25045=0;
  outbyt(6);
  CS_25045=1;
  _nop_();
  CS_25045=0;
  outbyt(1);
  outbyt(0x10);
  CS_25045=1;
  wip_poll();
  CS_25045=0;
  outbyt(4);
  CS_25045=1;
       
}

⌨️ 快捷键说明

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