欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> EDA開發(fā)應(yīng)用 >> Keilc >> 正文

AT24C01-AT24C256 的Keil C51讀寫程序

作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2016-10-13

/* 以下為AT24C01~AT24C256的讀寫程序,各人可根據(jù)自己的需要應(yīng)用。
在buf1中填入需要寫入的內(nèi)容,buf2的大小可根據(jù)需要定義。
addr可根據(jù)使用的芯片選擇,可從任何位置讀寫,只要在該芯片的范圍內(nèi)。
enumer=ATxxx,根據(jù)使用的芯片賦值。各函數(shù)中的形式參數(shù)不需改變。
本程序只要在調(diào)用的程序中定義實際參數(shù)即可,下述各子程序不必改動。*/

#include <reg52.h>
#include <intrins.h>
#define  ERROR 10     //允許ERROR的最大次數(shù)      
sbit     SDA=P3^0;
sbit     SCL=P3^1;
enum  eepromtype {AT2401,AT2402,AT2404,AT2408,AT2416,AT2432,AT2464,AT24128,AT24256};/*器件的型號*/
enum  eepromtype enumer;   //定義一個枚舉變量
unsigned char code buf1 []={1,3,5,7,9,10,11,12,13,15}; /* 發(fā)送緩沖區(qū) */
unsigned char buf2 [10]; /* 接收緩沖區(qū) */

/* 一個通用的24C01-24C256共9種EEPROM的字節(jié)讀寫操作程序,
此程序有五個入口條件,分別為讀寫數(shù)據(jù)緩沖區(qū)指針,
進行讀寫的字節(jié)數(shù),EEPROM首址,EEPROM控制字節(jié),
以及EEPROM類型。此程序結(jié)構(gòu)性良好,具有極好的容錯性,程序機器碼也不多:
DataBuff為讀寫數(shù)據(jù)輸入/輸出緩沖區(qū)的首址
Length 為要讀寫數(shù)據(jù)的字節(jié)數(shù)量
Addr 為EEPROM的片內(nèi)地址 AT24256為0~32767
Control 為EEPROM的控制字節(jié),具體形式為(1)(0)(1)(0)(A2)(A1)(A0)(R/W),其中R/W=1,
表示讀操作,R/W=0為寫操作,A2,A1,A0為EEPROM的頁選或片選地址;
enumer為枚舉變量,需為AT2401至AT24256中的一種,分別對應(yīng)AT24C01至AT24C256;
函數(shù)返回值為一個位變量,若返回1表示此次操作失效,0表示操作成功;
ERROR為允許最大次數(shù),若出現(xiàn)ERRORCOUNT次操作失效后,則函數(shù)中止操作,并返回1
SDA和SCL由用戶自定義,這里暫定義為P3^0和P3^1; */
/*對于1K位,2K位,4K位,8K位,16K位芯片采用一個8位長的字節(jié)地址碼,對于32K位以上
的采用2個8位長的字節(jié)地址碼直接尋址,而4K位,8K位,16K位配合頁面地址來尋址*/

/* -----  AT24C01~AT24C256 的讀寫程序 ------ */
bit   RW24xx(unsigned char *DataBuff,unsigned char Length,unsigned int Addr,
                     unsigned char Control,enum eepromtype enumer)
{ void Delay(unsigned char DelayCount);  /*   延時   */
  void Start(void);  /*   啟動總線   */
  void Stop(void);   /*   停止IIC總線   */
  bit  RecAck(void); /*   檢查應(yīng)答位   */
  void NoAck(void);  /*   不對IIC總線產(chǎn)生應(yīng)答   */
  void Ack(void);    /*   對IIC總線產(chǎn)生應(yīng)答   */
  unsigned char Receive(void); /*   從IIC總線上讀數(shù)據(jù)子程序  */
  void Send(unsigned char sendbyte); /*   向IIC總線寫數(shù)據(jù)   */
  unsigned char data j,i=ERROR;
  bit errorflag=1;  /*   出錯標志   */
  while(i--)
  { Start();  /*   啟動總線   */
    Send(Control & 0xfe); /*   向IIC總線寫數(shù)據(jù),器件地址 */
    if(RecAck()) continue; /*   如寫不正確結(jié)束本次循環(huán)   */
    if(enumer > AT2416)
    { Send((unsigned char)(Addr >> 8));//把整型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù):棄高取低,只取低8位.如果容量大于32K位,使用16位地址尋址,寫入高八位地址
      if(RecAck())  continue;
    }
    Send((unsigned char)Addr); /*   向IIC總線寫數(shù)據(jù)   */
    if(RecAck())  continue; /*   如寫正確結(jié)束本次循環(huán)   */
    if(!(Control & 0x01))   //判斷是讀器件還是寫器件
    { j=Length;
      errorflag=0;         /* 清錯誤特征位 */
      while(j--)
      { Send(*DataBuff++); /*   向IIC總線寫數(shù)據(jù)   */
        if(!RecAck()) continue; /*   如寫正確結(jié)束本次循環(huán)   */
        errorflag=1;
        break;
      }
      if(errorflag==1) continue;
      break;
    }
    else
    { Start();  /*   啟動總線   */
      Send(Control); /*   向IIC總線寫數(shù)據(jù)   */
      if(RecAck()) continue;//器件沒應(yīng)答結(jié)束本次本層循環(huán)
      while(--Length)  /*   字節(jié)長為0結(jié)束   */
      { *DataBuff ++= Receive();
        Ack();   /*   對IIC總線產(chǎn)生應(yīng)答   */
      }
      *DataBuff=Receive(); /* 讀最后一個字節(jié) */
      NoAck();  /*   不對IIC總線產(chǎn)生應(yīng)答   */
      errorflag=0;
      break;
    }
  }
  Stop();  /*   停止IIC總線   */
  if(!(Control & 0x01))
  { Delay(255); Delay(255); Delay(255); Delay(255);
  }
  return(errorflag);
}

/* * * * * 以下是對IIC總線的操作子程序 * * * * */
/* * * * * * 啟動總線 * * * * */
void Start(void)
{ SCL=0; /* SCL處于高電平時,SDA從高電平轉(zhuǎn)向低電平表示 */
  SDA=1; /* 一個"開始"狀態(tài),該狀態(tài)必須在其他命令之前執(zhí)行 */
  SCL=1;
  _nop_(); _nop_(); _nop_();
  SDA=0;
  _nop_(); _nop_(); _nop_(); _nop_();
  SCL=0;
  SDA=1;    
}

/* * * * * 停止IIC總線 * * * * */
void Stop(void)
{ SCL=0; /*SCL處于高電平時,SDA從低電平轉(zhuǎn)向高電平 */
  SDA=0; /*表示一個"停止"狀態(tài),該狀態(tài)終止所有通訊 */
  SCL=1;
  _nop_(); _nop_(); _nop_(); /* 空操作 */
  SDA=1;
  _nop_(); _nop_(); _nop_();
  SCL=0;
}

/* * * * * 檢查應(yīng)答位 * * * * */
bit RecAck(void)
{ SCL=0;
  SDA=1;
  SCL=1;
  _nop_(); _nop_(); _nop_(); _nop_();
  CY=SDA;     /* 因為返回值總是放在CY中的 */
  SCL=0;
  return(CY);
}

/* * * * *對IIC總線產(chǎn)生應(yīng)答 * * * * */
void Ack(void)
{ SDA=0; /* EEPROM通過在收到每個地址或數(shù)據(jù)之后, */
  SCL=1; /* 置SDA低電平的方式確認表示收到讀SDA口狀態(tài) */
  _nop_(); _nop_(); _nop_(); _nop_();
  SCL=0;
  _nop_();
  SDA=1;
}

/* * * * * * * * * 不對IIC總線產(chǎn)生應(yīng)答 * * * * */
void NoAck(void)
{ SDA=1;
  SCL=1;
  _nop_(); _nop_(); _nop_(); _nop_();
  SCL=0;
}

/* * * * * * * * * 向IIC總線寫數(shù)據(jù) * * * * */
void Send(unsigned char sendbyte)
{ unsigned char data j=8;
  for(;j>0;j--)
  { SCL=0;
    sendbyte <<= 1; /* 使CY=sendbyte^7; */
    SDA=CY; /* CY 進位標志位 */
    SCL=1;
  }
  SCL=0;
}

/* * * * * * * * * 從IIC總線上讀數(shù)據(jù)子程序 * * * * */
unsigned char Receive(void)
{ register receivebyte,i=8;
  SCL=0;
  while(i--)
  { SCL=1;
    receivebyte = (receivebyte <<1 ) | SDA;
    SCL=0;
  }
  return(receivebyte);
}

/* * * * * * * * 一個簡單延時程序 * * * * * * * * * * * * */
void Delay(unsigned char DelayCount)
{ while(DelayCount--);
}

/* -----  AT24C01~AT24C256 的讀寫程序 ------ */
void main()
{ unsigned char Control,*p1,*p2;
  unsigned char Length;
  unsigned int addr ; /* 24Cxx片內(nèi)地址 */
  p1=buf1;p2=buf2;
  addr=0; /* 片內(nèi)地址 AT24C256為0~32767 */
  Length=8; /* 讀寫長度 */
  enumer=AT24256; /* 讀寫AT24C256 */
  Control=0xa0; /* 寫操作 */
  RW24xx(p1,Length,addr,Control,enumer); /* 寫 */
  Control=0xa1; /* 讀操作 */
  RW24xx(p2,Length,addr,Control,enumer); /* 讀 */
}

Tags:keilC,24C01,24C256  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網(wǎng)友評論
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人
    欧洲国内综合视频| 国产精品一区二区在线观看不卡| 99久久综合99久久综合网站| 亚洲美女视频在线| 日韩欧美一区二区久久婷婷| 国产成人自拍网| 亚洲第一精品在线| 国产欧美一区二区三区在线看蜜臀| 国产 日韩 欧美大片| 亚洲国产裸拍裸体视频在线观看乱了| 精品国产一区二区三区久久影院| 91色婷婷久久久久合中文| 久久黄色级2电影| 亚洲一区二区欧美日韩| 国产人妖乱国产精品人妖| 欧美国产精品一区| 精品国产网站在线观看| 久久亚洲精华国产精华液| 欧美一级理论片| 欧美日韩在线三区| 91蜜桃传媒精品久久久一区二区| 色综合久久天天| 91丨九色丨蝌蚪富婆spa| 色哟哟一区二区三区| 欧美一二三区在线| 日本一区二区免费在线| 亚洲免费在线播放| 麻豆精品在线观看| 视频一区欧美精品| 亚洲国产综合在线| 久久福利视频一区二区| 成人av高清在线| 粉嫩欧美一区二区三区高清影视 | 美腿丝袜亚洲色图| 高清不卡在线观看| 欧美在线免费观看视频| 久久夜色精品国产噜噜av| 一区二区在线电影| 亚洲h在线观看| 成人av网址在线| 日韩欧美一级二级三级| 伊人色综合久久天天| 国产精品一区二区久激情瑜伽 | 婷婷综合另类小说色区| 亚洲国产裸拍裸体视频在线观看乱了| 久久国产视频网| 精品视频资源站| 亚洲人午夜精品天堂一二香蕉| 久草热8精品视频在线观看| 精品亚洲国内自在自线福利| 99精品偷自拍| 欧美男男青年gay1069videost | 欧美国产日韩a欧美在线观看| 亚洲国产成人91porn| 91在线视频观看| 91麻豆精品国产91久久久更新时间| 欧美午夜寂寞影院| 欧美岛国在线观看| 亚洲国产乱码最新视频| 91免费看`日韩一区二区| 国产亚洲精品中文字幕| 中文字幕综合网| 视频在线在亚洲| 欧美在线视频不卡| 一区二区三区蜜桃| 精品一区二区三区的国产在线播放| 欧美亚日韩国产aⅴ精品中极品| 亚洲色大成网站www久久九九| 韩日av一区二区| 色婷婷激情久久| 亚洲欧美日韩国产中文在线| 国产 欧美在线| 国产精品美女一区二区在线观看| 一区二区激情视频| 欧美亚洲高清一区二区三区不卡| 国产欧美日韩综合精品一区二区| 丝袜脚交一区二区| 这里只有精品视频在线观看| 日本不卡一二三区黄网| 成人亚洲精品久久久久软件| 欧美日韩三级视频| 亚洲福利电影网| 91精品国产综合久久精品| 亚洲婷婷综合色高清在线| 99久久国产综合精品麻豆| 亚洲美女免费在线| 3d动漫精品啪啪1区2区免费 | eeuss鲁一区二区三区| 亚洲视频一区二区在线| 欧美性猛交xxxx黑人交| 免费观看一级特黄欧美大片| 欧美成人高清电影在线| 亚洲午夜精品17c| 欧美精品123区| 亚洲一区二区视频在线观看| 欧美剧在线免费观看网站 | 狠狠色狠狠色综合| 国产精品少妇自拍| 欧洲av在线精品| 麻豆91在线播放免费| 国产亚洲1区2区3区| 色系网站成人免费| 欧美aaa在线| 国产拍欧美日韩视频二区| aaa亚洲精品一二三区| 日本免费在线视频不卡一不卡二| 91久久奴性调教| 夜夜操天天操亚洲| 精品日产卡一卡二卡麻豆| 成人动漫av在线| 日本中文一区二区三区| 国产精品久99| 99久久国产综合精品女不卡| 另类成人小视频在线| 亚洲私人黄色宅男| 久久这里只有精品视频网| 欧美无砖专区一中文字| 99在线精品视频| 国产精品一区2区| 免费人成在线不卡| 亚洲一卡二卡三卡四卡无卡久久| 久久久久久久久一| 91性感美女视频| 国产成人亚洲综合a∨猫咪| 人人超碰91尤物精品国产| 亚洲激情校园春色| 国产精品成人在线观看| 2023国产精华国产精品| 91精品免费观看| 欧美精品色一区二区三区| 日本伦理一区二区| 99久久久久久| 成人午夜av在线| 成人综合激情网| 国产福利视频一区二区三区| 久久精品国产免费| 老汉av免费一区二区三区| 亚洲成人av福利| 亚洲一区二区三区视频在线播放| 亚洲欧美偷拍另类a∨色屁股| 国产精品视频在线看| 亚洲国产成人午夜在线一区| 精品国产伦理网| 久久精品在线观看| 日本一区二区不卡视频| 日本一区二区三级电影在线观看| 久久久久久久电影| 久久久亚洲午夜电影| 久久老女人爱爱| 国产欧美1区2区3区| 国产精品毛片久久久久久久| 亚洲国产精品激情在线观看| 国产精品进线69影院| 一区二区三区在线观看动漫| 一区二区三区四区中文字幕| 亚洲3atv精品一区二区三区| 日韩在线播放一区二区| 久久不见久久见免费视频7| 九九视频精品免费| 国产凹凸在线观看一区二区| 91影院在线免费观看| 欧美午夜理伦三级在线观看| 欧美酷刑日本凌虐凌虐| 日韩精品一区二区三区视频播放 | 日本亚洲一区二区| 亚洲成人免费影院| 免费成人av在线| 蜜臀av一区二区三区| 国产一区二区三区电影在线观看| 中文av一区二区| 亚洲婷婷国产精品电影人久久| 亚洲精品免费电影| 日韩高清一区在线| 国产福利精品一区| 欧美中文一区二区三区| 精品av综合导航| 一区二区三区四区av| 另类中文字幕网| 99视频国产精品| 日韩午夜电影av| 亚洲日本va午夜在线影院| 日本欧美韩国一区三区| 99久久精品免费看| 日韩欧美中文一区| 一区二区三区中文字幕在线观看| 久久成人免费日本黄色| 一本色道久久综合精品竹菊| 日韩一区二区视频| 亚洲精品视频观看| 高清成人免费视频| 欧美一区中文字幕| 亚洲乱码日产精品bd| 九九精品一区二区| 欧美日韩一区成人| 亚洲欧美成人一区二区三区| 看片网站欧美日韩| 欧美精品 日韩| 亚洲手机成人高清视频| 国产传媒一区在线| 8x8x8国产精品|