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

📄 24c64.h

📁 proteus实例集锦
💻 H
字号:
#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#include "i2c.h"

#define uchar unsigned char
#define W_24C64 0xa0
#define R_24C64 0xa1

//******************24C64操作*********************//

void delay_8ms(void)
{
	uchar i;
	i = 1500;
	while(i--);
}

//写入24C64
void w_24c64_data(uchar addr_24c64_H,uchar addr_24c64_L,uchar data_w)
{
	I_start();
	if(I_send(W_24C64))
	{
		if(I_send(addr_24c64_H) && I_send(addr_24c64_L))
		{
				if(I_send(data_w))
				{
					I_stop();
				}
				else
				{
					I_stop();
				}
		}
		else
		{
			I_stop();
		}
	}
	else
	{
		I_stop();
	}
}	
//读24c64
void r_24c64_data(uchar addr_24c64_H,uchar addr_24c64_L,uchar *p_r)
{
	I_start();
	if(I_send(W_24C64))
	{
		if(I_send(addr_24c64_H) && I_send(addr_24c64_L))
		{
			I_start();
			if(I_send(R_24C64))
			{
				SDA = 1;
				*(p_r)=I_receive();
				I_clock();
				I_stop();
			}
			else
			{
				I_stop();
			}
		}
		else
		{
			I_stop();
		}
	}
	else
	{
		I_stop();
	}
}

//写入24c64序列
void w_24c64_serial(uchar addr_24c64_H,uchar addr_24c64_L,uchar *p_w)
{
	uchar i;
	I_start();
	if(I_send(W_24C64) && I_send(addr_24c64_H) && I_send(addr_24c64_L))
	{
		for(i=0;i<16;i++)
		{
			if(I_send(*(p_w+i)))
			{
				if(i==15)
				{
					I_stop();
					delay_8ms();
				}
			}
			else
			{
				I_stop();
			}
		}
	}
	else
	{
		I_stop();	
	}			
}

//读出24c64序列
void r_24c64_serial(uchar addr_24c64_H,uchar addr_24c64_L,uchar *p_r)
{
	uchar i;
	I_start();
	if(I_send(W_24C64) && I_send(addr_24c64_H) && I_send(addr_24c64_L))
	{
		I_start();
		if(I_send(R_24C64))
		{
			SDA = 1;
			for(i=0;i<16;i++)
			{
				*(p_r+i) = I_receive();
				if(i==15)
				{
					I_clock();
					I_stop();
				}
				else
				{
					I_Ack();
				}
			}
		}
		else
		{
			I_stop();
		}
	}
	else
	{
		I_stop();
	}
			
}

⌨️ 快捷键说明

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