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

📄 新增ram.c

📁 用8031 读写24c51225612864 C语言编写
💻 C
字号:
#include <reg51.h>
#include <absacc.h>
#include <math.h>
#define unchar unsigned char
#define unint unsigned int
#define B8255PORTA XBYTE[0x5000]
#define B8255C XBYTE[0x5003]
#define READ 0xa1
#define WRITE 0xa0

sbit scl = P1^4;
sbit sda = P1^5;
sbit wp = P1^2;

 void delayus(unchar data us)		/*12M晶振下10us延时*/
{	unchar idata i;
	while(us)
	  {  	us--;i=1;i--;
		while(i){}   }
 }

///////////////////////////////////////////////////////////////////////////////////
  void delayms(unchar data MS)    				  /*延时程序,12M晶振时单位为毫秒*/
{
    unchar idata us,usn;
    while(MS!=0)
      { usn = 4;
        while(usn!=0)			
  	  {
		us=0xf0;
		while (us!=0){us--;};
		usn--;
			}
	MS--;
       }
}
////////////////////////////////////////////////////////////////////////////////////////////////////
void speaker()
{	
	B8255PORTA |=0x10;
	delayms(20);	
	B8255PORTA &=0xef;
}
void e2pjdg()
{
	unchar i;
	scl = 0;
//delayus(1);
	sda =1;
	scl =1;
	while(sda);
scl =0;

}

void e2psend(unchar temp)
{
	unchar i=8;
	while(i--)
	{	
		scl = 0;
		sda = temp&0x80;
		temp<<=1;
		scl = 1;

	}
}

void e2padd(unchar addh,unchar addl)
{
	start();
	e2psend(WRITE);

	e2pjdg();
	e2psend(addh);
	e2pjdg();
	e2psend(addl);
	e2pjdg();
}

unchar e2pread()
{
	unchar i=8,temp=0;
	while(i--)
	{
		scl = 0;
		sda = 1;

		temp<<=1;
		scl = 1;
		if(sda) temp+=1;	
	}
	return(temp);
}

start()
{
//	scl = 0;
	sda = 1;			//start
	scl = 1;
	sda = 0;
//	scl = 0;
}

stop()
{
	sda = 0;	
	scl = 1;
	sda = 1;			//start
}

main()
{
	unchar i;
	unchar idata t[8];

	B8255C = 0x80;
	B8255PORTA = 0x20;
	speaker();
	wp = 0;
	i=2;
	e2padd(0x01,0x05);
	while(i--)
	{
		e2psend(0x55);						//写数据
		e2pjdg();
	}


	stop();
delayms(10);

	start();
	e2padd(0x01,0x05);	
	start();
	e2psend(READ);
	e2pjdg();
	i=1;
	while(i--)
	{
		t[i] = e2pread();
		if(i) e2pjdg();
	}
	stop();

	while(1)
	{}
}

⌨️ 快捷键说明

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