国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>C語言|源代碼>24c32/24c16/24c08讀寫程序

24c32/24c16/24c08讀寫程序

2008-10-07 | rar | 666 | 次下載 | 10積分

資料介紹

〖說明〗24Cxx I2C EEPROM字節(jié)讀寫驅動程序,芯片A0-A1-A2要接GND(24C65接VCC,具體看DataSheet)。
現(xiàn)缺頁寫、頁讀,和CRC校驗程序。以下程序經(jīng)過50臺驗證,批量的效果有待考察。
為了安全起見,程序中很多NOP是冗余的,希望讀者能進一步精簡,但必須經(jīng)過驗證。
Atmel 24C01 比較特殊,為簡約型,為其單獨編程.
51晶振為11.0592MHz
〖文件〗RW24CXX.c 2001/09/18
--------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------
調用方式:void WriteIIC_24CXX(enum EEPROMTYPE eepromtype,unsigned int address,unsigned char ddata) ﹫2001/09/18
函數(shù)說明:對于IIC芯片24CXX,在指定地址address寫入一個字節(jié)ddata
?

調用方式:unsigned char ReadIIC_24CXX(enum EEPROMTYPE eepromtype,unsigned int address) ﹫2001/09/18

函數(shù)說明:讀取IIC芯片24CXX,指定地址address的數(shù)據(jù)。
-----------------------------------------------------------------------------------*/

#include "reg51.h"
#include "intrins.h"

sbit SCL= P2^7;
sbit SDA= P2^6;

enum EEPROMTYPE {IIC24C01,IIC24C01A,IIC24C02,IIC24C04,IIC24C08,IIC24C16,IIC24C32,IIC24C64,IIC24C128,IIC24C256};
enum EEPROMTYPE eepromtype;
delay()
{
unsigned int i=1200;
while(i--);
}
/*----------------------------------------------------------------------------
調用方式:write_8bit(unsigned char ch) ﹫2001/03/23
函數(shù)說明:內函數(shù),私有,用戶不直接調用。
-------------------------------------------------------------------------------*/
void write_8bit(unsigned char ch)
{
unsigned char i=8;
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
while (i--)
{
SDA=(bit)(ch&0x80);
_nop_();_nop_();_nop_();_nop_();_nop_();
ch<<=1;
SCL=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
}
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
/*------------------------------------------------------------------------------
調用方式:void ACK(void) ﹫2001/03/23
函數(shù)說明:內函數(shù),私有,用戶不直接調用。
-------------------------------------------------------------------------------*/
void ACK(void)
{
unsigned char time_1;
SDA=1;
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=1;
time_1=5;
while(SDA) {if (!time_1) break;} //ACK
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
}
void WriteIIC_24C01(unsigned char address,unsigned char ddata)
{SCL=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //Tsu:STA
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
SCL=0; //START
write_8bit( (address<<1) & 0xfe); //寫頁地址和操作方式,對于24C32-24C256,page不起作用
ACK();
write_8bit(ddata); //發(fā)送數(shù)據(jù)
ACK();
SDA=0;
_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1; //STOP
delay();
}
/*---------------------------------------------------------------------------------------------------------------
調用方式:void WriteIIC_24CXX(enum EEPROMTYPE eepromtype,unsigned int address,unsigned char ddata) ﹫2001/09/18
函數(shù)說明:對于IIC芯片24CXX,在指定地址address寫入一個字節(jié)ddata
-----------------------------------------------------------------------------------------------------------------*/
void WriteIIC_24CXX(enum EEPROMTYPE eepromtype,unsigned int address,unsigned char ddata)
{ unsigned char page,address_in_page;

if(eepromtype==IIC24C01) //如果是24c01
{
WriteIIC_24C01(address,ddata);
return;
}
page=(unsigned char)(address>>8) & 0x07;
page=page<<1;
address_in_page=(unsigned char)(address);
SCL=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //Tsu:STA
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
SCL=0; //START
write_8bit(0xa0 | page); //寫頁地址和操作方式,對于24C32-24C256,page不起作用
ACK();
if(eepromtype>IIC24C16) //如果是24C01-24C16,地址為一字節(jié);24C32-24C256,地址為二字節(jié)
{
write_8bit(address>>8);
ACK();
}
write_8bit(address_in_page);
ACK();
write_8bit(ddata);
ACK();
SDA=0;
_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1; //STOP
delay();
}
unsigned char ReadIIC_24C01(unsigned char address)
{
unsigned char ddata=0;
unsigned char i=8;
SCL=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //Tsu:STA
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
SCL=0; //START
write_8bit( (address<<1) | 0x01); //寫頁地址和操作方式
ACK();
while (i--)
{
SDA=1;
ddata<<=1;
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=1;
if (SDA) ddata|=0x01;
}
SCL=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1; //STOP
delay();
return ddata;
}
/*----------------------------------------------------------------------------------------------------
調用方式:unsigned char ReadIIC_24CXX(enum EEPROMTYPE eepromtype,unsigned int address) ﹫2001/09/18
函數(shù)說明:讀取IIC芯片24CXX,指定地址address的數(shù)據(jù)。
------------------------------------------------------------------------------------------------------*/
unsigned char ReadIIC_24CXX(enum EEPROMTYPE eepromtype,unsigned int address)
{ unsigned char page,address_in_page;
unsigned char ddata=0;
unsigned char i=8;
if(eepromtype==IIC24C01)
{
return( ReadIIC_24C01(address) );
}
page=(unsigned char)(address>>8) & 0x07;
page=page<<1;
address_in_page=(unsigned char)(address);
SDA=0;_nop_();SCL=0; //START
write_8bit(0xa0 | page); //寫頁地址和操作方式,對于24C32-24C256,page不起作用
ACK();
if(eepromtype>IIC24C16) //如果是24C32-24C256,地址為二字節(jié),先送高位,后送低位
{
write_8bit(address>>8);
ACK();
}
//如果是24C01-24C16,地址為一字節(jié);
write_8bit(address_in_page);
ACK();//以上是一個“啞”寫操作,相當于設置當前地址
SCL=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Tsu:STA
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
SCL=0; //START
write_8bit(0xa1); //寫從地址,置為讀模式
ACK();
while (i--)
{
SDA=1;
ddata<<=1;
SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=1;
if (SDA) ddata|=0x01;
}
SCL=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1; //STOP
delay();
return ddata;
}
/*分析:
該芯片采用傳統(tǒng)的IIC口的規(guī)約形式,是一個標準的經(jīng)典IIC封裝。
注:使用該程序時注意改變芯片各個接口的修改。注意屏蔽主函數(shù)。
*/
main()
{
unsigned int i;
unsigned char kk,j[32];
delay();
kk=ReadIIC_24C01( 12 );
WriteIIC_24C01(12,0x67);
kk=ReadIIC_24C01(12);
for(i=0;i<32;i++) j[i]=ReadIIC_24CXX(IIC24C01,i);
for(i=0;i<32;i++) j[i]=i*2;

for(i=0;i<32;i++) WriteIIC_24CXX(IIC24C01,i,0x55);
for(i=0;i<32;i++) j[i]=0;
for(i=0;i<32;i++) j[i]=ReadIIC_24CXX(IIC24C02,i);
}

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1常用電子元器件集錦
  2. 1.72 MB   |  24485次下載  |  免費
  3. 2ssd1306單片 CMOS OLED/PLED 驅動芯片中文手冊
  4. 1.66 MB   |  4次下載  |  1 積分
  5. 3低壓降肖特基整流管SR340L數(shù)據(jù)手冊
  6. 0.78 MB   |  2次下載  |  免費
  7. 4高壓MOS管MDD12N65F/MDD12N65P數(shù)據(jù)手冊
  8. 2.36 MB   |  2次下載  |  免費
  9. 5FP6195 60V、800mA、480KHz異步降壓轉換器規(guī)格書
  10. 0.88 MB   |  2次下載  |  免費
  11. 6CPCI6310型復合視頻采集板資料
  12. 0.04 MB   |  1次下載  |  免費
  13. 7STM32F10xxx參考手冊
  14. 13.64 MB   |  1次下載  |  1 積分
  15. 8PC2456高壓浪涌抑制器控制器數(shù)據(jù)手冊
  16. 3.03 MB   |  1次下載  |  免費

本月

  1. 1常用電子元器件集錦
  2. 1.72 MB   |  24485次下載  |  免費
  3. 2三相逆變主電路的原理圖和PCB資料合集免費下載
  4. 27.35 MB   |  111次下載  |  1 積分
  5. 3運算放大器基本電路中文資料
  6. 1.30 MB   |  16次下載  |  免費
  7. 4蘋果iphone 11電路原理圖
  8. 4.98 MB   |  12次下載  |  5 積分
  9. 5常用電子元器件介紹
  10. 3.21 MB   |  10次下載  |  免費
  11. 6EMC電路設計工程師必備的EMC基礎
  12. 0.42 MB   |  6次下載  |  2 積分
  13. 7相關協(xié)議信號總結
  14. 0.94 MB   |  4次下載  |  免費
  15. 8ssd1306單片 CMOS OLED/PLED 驅動芯片中文手冊
  16. 1.66 MB   |  4次下載  |  1 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935130次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183345次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81591次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73816次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分