您的位置 首页 IC

一个24C读写函数,支撑检测器材类型

这个程序我检测过24C02,24C16,24C04,24C64,24C32,均未出错。也没有毁损器件内部数据的问题。可靠性比较好。在我的编程器中已经使用。此程

这个程序我检测过24C02,24C16,24C04,24C64,24C32,均未犯错。也没有毁损器材内部数据的问题。可靠性比较好。在我的编程器中现已运用。此程序write by 万致远,在sdcc v3.1.0中无过错/warning编译。死太惨89C52中经过。

上代码:

/* FILE 24C.CWrite by 万致远*/#include #include #include #include #include <24c.h>#define AT24C02_DeviceAdd_W 0xa0	//器材地址(写)#define AT24C02_DeviceAdd_R 0xa1	//器材地址(读)#define ADD_TYPE_8	0#define ADD_TYPE_16	1#define AT24C01		0#define AT24C02		1#define AT24C04		2#define AT24C08		3#define AT24C16		4#define AT24C32		5#define AT24C64		6#define AT24C128	7#define AT24C256	8#define AT24C512	9#define AT24C1024	10#define SCAN_ERROR	0xFFULONG __code Length_Chip[11]={0x7f,0xff,0x1ff,0x3ff,0xfff,0x7ff,0x1fff,0x3fff,0x7fff,0xffff,0x1ffff};//各类ROM的容量表~	BYTE __code TEST_DATA[2]={0xAA,0xBB};	//测验数据#define W_DELAY 4   //4 ms DELAY 		//----------------------------------------------//24C操作函数,页写。//IIC_ADDR器材地址//Address 16BIT地址//TYPE	地址形式//Data指针//Len长度//本函数不支持翻页,请自行翻页,操控IIC_AddrBOOL RW24(BYTE IIC_Addr,UINT Address,BOOL Type,BYTE *Data,BYTE Len){BYTE i=0;//----------------------------选中芯片程序开端-----------I2C_Start();	// 发动I2C总线I2C_Write8Bit(IIC_Addr & 0xFE);					// 发送器材地址(写)1111 1110if( I2C_Check_Ack() == 0 )                		// 检测从机应对{I2C_Stop();return 0;	  }if (Type==ADD_TYPE_8){//8位地址的话I2C_Write8Bit(Address);   				// 发送即将处理的数据的地址,8位}else{//16位地址的话I2C_Write8Bit(((Address & 0xFF00)>>8));			//发送高八位地址if( I2C_Check_Ack() == 0 )                		// 检测从机应对{I2C_Stop();return 0;	  }I2C_Write8Bit((Address & 0xFF));	//低八位地址发送}if( I2C_Check_Ack() == 0 )                		// 检测从机应对{I2C_Stop();return 0;	  }//---------------------------------完毕-------------------if((IIC_Addr & 0x01)==1){//是读操作*Data=0xFF;									//FF=NULLI2C_Start();				         		// 再次发动IIC总线I2C_Write8Bit(IIC_Addr);					//发送读出地址if( I2C_Check_Ack() == 0 )                // 检测从机应对{I2C_Stop();return 0;	  }*Data = I2C_Read8Bit();		         	   // 读取第一个数据Data++;for(i=1;i

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/255415.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部