<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一個(gè)24C讀寫(xiě)函數(shù),支持檢測(cè)器件型號(hào)

          一個(gè)24C讀寫(xiě)函數(shù),支持檢測(cè)器件型號(hào)

          作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 收藏
          這個(gè)程序我檢測(cè)過(guò)24C02,24C16,24C04,24C64,24C32,均未出錯(cuò)。也沒(méi)有毀損器件內(nèi)部數(shù)據(jù)的問(wèn)題??煽啃员容^好。在我的編程器中已經(jīng)使用。此程序write by 萬(wàn)致遠(yuǎn),在sdcc v3.1.0中無(wú)錯(cuò)誤/warning編譯。死太慘89C52中通過(guò)。

          上代碼:

          本文引用地址:http://www.ex-cimer.com/article/201611/323429.htm
          /* FILE 24C.CWrite by 萬(wàn)致遠(yuǎn)*/#include #include #include #include #include <24c.h>#define AT24C02_DeviceAdd_W 0xa0	//器件地址(寫(xiě))#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};//各類(lèi)ROM的容量表~	BYTE __code TEST_DATA[2]={0xAA,0xBB};	//測(cè)試數(shù)據(jù)#define W_DELAY 4   //4 ms DELAY 		//----------------------------------------------//24C操作函數(shù),頁(yè)寫(xiě)。//IIC_ADDR器件地址//Address 16BIT地址//TYPE	地址模式//Data指針//Len長(zhǎng)度//本函數(shù)不支持翻頁(yè),請(qǐng)自行翻頁(yè),控制IIC_AddrBOOL RW24(BYTE IIC_Addr,UINT Address,BOOL Type,BYTE *Data,BYTE Len){BYTE i=0;//----------------------------選中芯片程序開(kāi)始-----------I2C_Start();	// 啟動(dòng)I2C總線(xiàn)I2C_Write8Bit(IIC_Addr & 0xFE);					// 發(fā)送器件地址(寫(xiě))1111 1110if( I2C_Check_Ack() == 0 )                		// 檢測(cè)從機(jī)應(yīng)答{I2C_Stop();return 0;	  }if (Type==ADD_TYPE_8){//8位地址的話(huà)I2C_Write8Bit(Address);   				// 發(fā)送將要處理的數(shù)據(jù)的地址,8位}else{//16位地址的話(huà)I2C_Write8Bit(((Address & 0xFF00)>>8));			//發(fā)送高八位地址if( I2C_Check_Ack() == 0 )                		// 檢測(cè)從機(jī)應(yīng)答{I2C_Stop();return 0;	  }I2C_Write8Bit((Address & 0xFF));	//低八位地址發(fā)送}if( I2C_Check_Ack() == 0 )                		// 檢測(cè)從機(jī)應(yīng)答{I2C_Stop();return 0;	  }//---------------------------------結(jié)束-------------------if((IIC_Addr & 0x01)==1){//是讀操作*Data=0xFF;									//FF=NULLI2C_Start();				         		// 再次啟動(dòng)IIC總線(xiàn)I2C_Write8Bit(IIC_Addr);					//發(fā)送讀出地址if( I2C_Check_Ack() == 0 )                // 檢測(cè)從機(jī)應(yīng)答{I2C_Stop();return 0;	  }*Data = I2C_Read8Bit();		         	   // 讀取第一個(gè)數(shù)據(jù)Data++;for(i=1;i
          				
                      
                          
          			
          							
          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();