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

📄 eeprom.c

📁 单片机C源程序+HEX文件。配合实验板。需要的话加Q:394011495.并注明。
💻 C
字号:
//利用EEPROM点亮数码管

#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 delay1(uint x)
{
	uint a,b;
	for(a=x;a>0;a--)
		for(b=100;b>0;b--);
}
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();	
}

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();
}

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_date(uchar date)
{
	start();
	write_type(0xa0);	//写操作
	ack();
	write_type(1);	 //写入的地址
	ack();
	write_type(date);		 
	ack();
	stop();	
}

uchar read_date()
{
	start();
	write_type(0xa0);				   
	ack();
	write_type(1);		   //读取地址
	ack();
	start();
	write_type(0xa1);		 //读操作
	ack();
	k=read_type();
	stop();
	return k;	
}

void display(uchar date)	   //显示函数
{
	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;
		date=date<<1;
		ser=CY;
		srclk=1;
	}
	rclk=0;
	rclk=1;	
}

void main()
{
	init();
	write_date(0x3f);  //写入的数据
	delay1(100);
	k=read_date();
	display(k);
	while(1);
	

}



⌨️ 快捷键说明

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