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

📄 24c04.h

📁 rs485、八位扫描显示、按键、数字编码器
💻 H
字号:
sbit scl=P2^6;
sbit sda=P2^7;
/*srom开始条件*/

void srsta(void)
{sda=1;
 scl=1;
 _nop_();_nop_();_nop_();_nop_();
 sda=0;
 _nop_();_nop_();_nop_();_nop_();
}
/*srom停止条件*/
void srstop(void)
{sda=0;
 scl=1;
  _nop_();_nop_();_nop_();_nop_();
 sda=1;
 _nop_();_nop_();_nop_();_nop_();
}
/*srom产生应答位*/
void srcak(void)
{sda=0;
 _nop_();_nop_();_nop_();_nop_();
 scl=1;
 _nop_();_nop_();_nop_();_nop_();
 scl=0;
}
/*srom产生~应答位*/
void srncak(void)
{sda=1;
 _nop_();_nop_();_nop_();_nop_();
 scl=1;
 _nop_();_nop_();_nop_();_nop_();
 scl=0;
}
/*字节写*/
void srwbt(unsigned char dat)
{unsigned char bitcon=8;
unsigned char temp;
 do
 {
  temp=dat;
  scl=0;
  _nop_();_nop_();_nop_();_nop_();
  if((temp&0x80)==0x80)
  sda=1;
  else
  sda=0;
  scl=1;
  temp=dat<<1;
  dat=temp;
  bitcon--;
  }while(bitcon);
  scl=0;
 }

unsigned char srrbt(void)
{
	unsigned char temp=0;
	unsigned char temp1=0;
	unsigned char bitcon=8;
	sda=1;
	do
	{
	 scl=0;
	 _nop_();_nop_();_nop_();_nop_();
	 scl=1;
	 _nop_();_nop_();_nop_();_nop_();
	 if(sda)
	 temp=temp|1;
	 else
	 temp=temp&0xfe;
	 if(bitcon-1)
	  {
	   temp1=temp<<1;
	   temp=temp1;		
	  }
	  bitcon--;
	}while(bitcon);
	return(temp);
}
/*多字节写SROM*/
/*void wrtorom(unsigned char Dat[],unsigned char Address,uchar Num)
{ unsigned char i;
  unsigned char *pDat;
unsigned char j,n;
  pDat=Dat;
  for(i=0;i<Num;i++)
  {
  srsta();
  srwbt(srwr);
  srcak();
  srwbt(Address+i);
  srcak();
  srwbt(*(pDat+i));
  srcak();
  srstop();
	for(j=20;j>0;j--)
	  {for(n=100;n>0;n--)
		{;}
	  }
  }
}
/*读多字节SROM*/
/*void rdfrrom(unsigned char Dat[],unsigned char Address,uchar Num)
{ unsigned char i;
  unsigned char *pDat;
  pDat=Dat;
  for(i=0;i<Num;i++)
  {
  srsta();
  srwbt(srwr);
  srcak();
  srwbt(Address+i);
  srcak();
  srsta();
  srwbt(srrd);
  srcak();
  *(pDat+i)=srrbt();
  scl=0;
  srncak();
  srstop();
  }
}*/
/*读单字*/
unsigned char rd_24c04(unsigned char r24_adh,unsigned char r24_add)
{ unsigned char retn_char;
  srsta();
  r24_adh<<=1;
  retn_char=0xa0+r24_adh;
  srwbt(retn_char);
  srcak();
  srwbt(r24_add);
  srcak();
  srsta();
  srwbt(0xa1);
  srcak();
  retn_char=srrbt();
  scl=0;
  srncak();
  srstop();
  return(retn_char);
}
/*写单字*/
void wr_24c04(unsigned char r24_adh,unsigned char w24_add,unsigned char w24_char)
{unsigned char wr_dlj,wr_dln;
  r24_adh=r24_adh<<1;
  srsta();
  srwbt(0xa0|r24_adh);
  srcak();
  srwbt(w24_add);
  srcak();
  srwbt(w24_char);
  srcak();
  srstop();
	for(wr_dlj=20;wr_dlj>0;wr_dlj--)
	  {for(wr_dln=100;wr_dln>0;wr_dln--)
		{;}
	  }
}

⌨️ 快捷键说明

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