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

📄 eeprom.h

📁 LCD显示电子计价秤方案 1. 该方案使用的传感器为20KG,灵敏度约为0.5mv/v,选用新传感器线性较好的一段(100g-15Kg),直接处理,没有做非线性修正,称重可能会有偏差. 2. 软件
💻 H
字号:
#include<def.h>
#define oneeprom	1
#define time 		1
#define	icaddress_w	0xa0
#define	icaddress_r	0xa1
#define	wordaddress	0x00
#define	parameter	0xaa
	//-----------------------------------------------发送开始信号-------------------------------------------------------------------
	void sendstart()
	{
		SDA=1;
		SCLK=1;
		_delay_us(time);
		SDA=0;
		_delay_us(time);
		SCLK=0;
		_delay_us(time);
	}
	//-----------------------------------------------发送结束信号-------------------------------------------------------------------
	void sendend()
	{
		SDA=0;
		SCLK=0;
		_delay_us(time);
		SCLK=1;
		_delay_us(time);
		SDA=1;
		_delay_us(time);
	}
	//-----------------------------------------------发送ACK信号--------------------------------------------------------------------
	void sendack_eeprom()
	{
		SDA=0;
		SCLK=0;
		_delay_us(time);
		SDA=1;			//释放数据线,交给24CO1控制
		while(SDA==1);	//等待SDA=0
		//发送一个时钟
		SCLK=1;
		_delay_us(time);
		SCLK=0;
		_delay_us(time);
	}
	//-----------------------------------------------发送8bit数据--------------------------------------------------------------------
	void sendbyte(uchar sdata)
	{
		uchar i;	//控制循环次数
		SCLK=0;
		SDA=0;
		_delay_us(time);
		for(i=1;i<=8;i++)
		{
			if((sdata&0x80)==0x80)	  	//高位在前
			{
				SDA=1;
				_delay_us(time);
				SCLK=1;
			}		
			else
			{
				SDA=0;
				_delay_us(time);					
				SCLK=1;
			}
			_delay_us(time);
			SCLK=0;
			_delay_us(time);
			SDA=0;			
			sdata=sdata<<1;
			_delay_us(time);
		}
	}
	//-----------------------------------------------读8bit数据--------------------------------------------------------------------
	uchar readbyte()
	{
		uchar i,sdata;	//i控制循环次数,sdata临时数据寄存器
		sdata=0;
		SCLK=0;
		SDA=0;
		_delay_us(time);
		SDA=1;		//释放数据线
		for(i=1;i<=8;i++)
		{	
			SCLK=1;
			_delay_us(time);				
			if(SDA==1)	  	//高位在前
			{
				sdata=sdata&&0xff;	
			}		
			else
			{
				sdata=sdata&&0xfe;
			}
			SCLK=0;
			_delay_us(time); 
			sdata=sdata<<1;
		}
		SCLK=0;
		SDA=0;
		return (sdata);
	}
	//------------------------------------------------读eeprom----------------------------------------------------------------
	void writeeeprom()
	{
		//写一字节数据到指定的地址单元
		sendstart();
		sendbyte(icaddress_w);
		sendack_eeprom();
		sendbyte(wordaddress);
		sendack_eeprom();
		sendbyte(parameter);
		sendack_eeprom();
		sendend();
	 	_delay_ms(10);
	}
	//------------------------------------------------写eeprom----------------------------------------------------------------
	uchar readeeprom()
	{
		uchar readdata=0;
		//从指定的地址单元读一字节数据
		sendstart();
		sendbyte(icaddress_w);
		sendack_eeprom();
		sendbyte(wordaddress);
		sendack_eeprom();
		sendstart();
		sendbyte(icaddress_r);
		sendack_eeprom();
		readdata=readbyte();
		sendend();
		return (readdata);
	}

⌨️ 快捷键说明

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