读eeprom.c

来自「单片机C源程序+HEX文件。配合实验板。需要的话加Q:394011495.并注明」· C语言 代码 · 共 144 行

C
144
字号
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit scl=P2^0;
sbit sda=P2^1;
sbit beep=P3^4;
sbit rclk=P1^4;
sbit srclk=P1^7;
sbit ser=P1^5;
uint i;
uchar k,j;

void delay()
{;;}
void init()		  // 初始化
{
	sda=1;
	delay();
	scl=1;
	delay();
	k=0xff;
	for(i=0;i<8;i++)
	{
		srclk=0;
		k=k<<1;
		ser=CY;
		srclk=1;
	}
	k=0x00;
	for(i=0;i<8;i++)
	{
		srclk=0;
		k=k<<1;
		ser=CY;
		srclk=1;
	}
	rclk=0;
	rclk=1;
}
void start()			//开始信号
{
	
	sda=1;
	delay();
	scl=1;
	delay();
	sda=0;
	delay();

}

void stop()					  //结束信号
{	
	sda=0;
	delay();
	scl=1;
	delay();	
	sda=1;
	delay();
}

void ack()			 //响应信号
{
	uchar i;
	scl=1;
	delay();
	while((sda==1)&&(i<200))
		i++;
	scl=0;
	delay();	
}
uchar read_type()				 //读数据
{
	uchar k,i,j;
	scl=0;
	delay();
	sda=1;
	delay();
	for(i=0;i<8;i++)
	{
		scl=1;
		delay();
		k=k<<1;
		j=sda;
		k=k|j;
		scl=0;
		delay();
	}
	return k;
}

void write_type(uchar date)			//写数据
{
	uchar k,i;
	k=date;
	for(i=0;i<8;i++)
	{
		k=k<<1;
		scl=0;
		delay();
		sda=CY;
		delay();
		scl=1;
		delay();
	}
	scl=0;
	delay();
	sda=1;
	delay();
}
void main()
{
	init();
	start();
	write_type(0xa0);
	ack();
	write_type(1);
	ack();
	start();
	write_type(0xa1);		 //读操作
	ack();
	k=read_type();
	stop();
	j=0x00;
	for(i=0;i<8;i++)
	{
		srclk=0;
		j=j<<1;
		ser=CY;
		srclk=1;
	}
	for(i=0;i<8;i++)
	{
		srclk=0;
		k=k<<1;
		ser=CY;
		srclk=1;
	}
	rclk=0;
	rclk=1;
	while(1);
	

}

⌨️ 快捷键说明

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