亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? i2c.c

?? 51單片機的內(nèi)存優(yōu)化和中斷的有用知識
?? C
字號:
/*************************版權(quán)信息**************************   
  
  /*************************版權(quán)信息**************************   
  *CopyRight(c)         
  *All   rights   reserved   
  *   
  *文件名稱:     i2c.c   
  *當(dāng)前版本:       
  *作者:               
  *完成日期:   
  *摘要:             24c02操作定義文件,注意I2C總線的數(shù)據(jù)格式   
  *                       先讀寫數(shù)據(jù)高位后低位   
  ************************************************************/   
  //************************頭文件****************************   
  #include   <reg51.h>   
  #include   <intrins.h>
  #include "stdio.h"   
  #include   "i2c.h"   
  //***********************函數(shù)定義***************************   
  /***************************************   
  *函數(shù)名稱:       void   Start(void)   
  *功能描述:       讀寫開始   
  *輸入:               無   
  *輸出:               無   
  *全局變量:       I2C_SCL,I2C_SDA   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  void   Start(void)   
  {   
          I2C_SDA   =   1;           //起始條件的數(shù)據(jù)信號   
          _nop_();   
          I2C_SCL   =   1;           //起始條件時鐘信號   
          _nop_();                   //信號建立時間>4.7us   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();   
          I2C_SDA   =   0;           //起始信號   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();                   
          _nop_();   
          I2C_SCL   =   0;           //鉗住I2C總線,   準備發(fā)送或者接受數(shù)據(jù)   
          _nop_();   
          _nop_();   
  }   
  /***************************************   
  *函數(shù)名稱:       void   Stop(void)   
  *功能描述:       讀寫結(jié)束   
  *輸入:               無   
  *輸出:               無   
  *全局變量:       I2C_SCL,I2C_SDA   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  void   Stop(void)   
  {   
          I2C_SDA   =   0;             //結(jié)束條件的數(shù)據(jù)信號   
          _nop_();   
          I2C_SCL   =   1;             //結(jié)束條件的時鐘信號   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();                   
          _nop_();   
          I2C_SDA   =   1;             //結(jié)束信號   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();                   
  }   
  /***************************************   
  *函數(shù)名稱:       void   Ack(void)   
  *功能描述:       正確應(yīng)答,讀一個字節(jié)后必須應(yīng)答   
  *輸入:               無   
  *輸出:               無   
  *全局變量:       I2C_SCL,I2C_SDA   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  void   Ack(void)   
  {   
          I2C_SDA   =   0;   
          _nop_();   
          _nop_();           
          I2C_SCL   =   1;   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();           
          I2C_SCL   =   0;   
          _nop_();   
          _nop_();   
  }   
  /***************************************   
  *函數(shù)名稱:       void   NoAck(void)   
  *功能描述:       無應(yīng)答   
  *輸入:               無   
  *輸出:               無   
  *全局變量:       I2C_SCL,I2C_SDA   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  void   NoAck(void)   
  {   
          I2C_SDA   =   1;   
          _nop_();   
          _nop_();   
          I2C_SCL   =   1;   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();   
          _nop_();   
          I2C_SCL   =   0;   
          _nop_();   
          _nop_();   
  }   
  /***************************************   
  *函數(shù)名稱:       void   TestAck(void)   
  *功能描述:       讀寫錯誤測試,寫一個字節(jié)應(yīng)該測試應(yīng)答信號   
  *輸入:               無   
  *輸出:               返回一個位   
  *全局變量:       I2C_SCL,I2C_SDA   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  void   TestAck(void)   
  {         
          I2C_SDA   =   1;   
          _nop_();   
          _nop_();   
          I2C_SCL   =   1;   
          _nop_();   
          _nop_();   
          _nop_();   
          ErrorBit   =   I2C_SDA;   
          I2C_SCL   =   0;   
          _nop_();   
          _nop_();           
  }   
  /***************************************   
  *函數(shù)名稱:       void   Write_I2c(uchar   date)   
  *功能描述:       寫I2C   
  *輸入:               待送數(shù)據(jù),高字節(jié)先送   
  *輸出:               無   
  *全局變量:       I2C_SCL,I2C_SDA   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  void   Write_I2c(uchar   date)   
  {   
          uchar   i;   
          for(i   =   0;   i   <   8;   i++)   
          {   
                  I2C_SDA   =   date   &   0x80;                 //送數(shù)據(jù)到數(shù)據(jù)線上   
                  date   <<=   1;   
                  _nop_();                   
                  I2C_SCL   =   1;                                     //置時鐘信號為高電平,使數(shù)據(jù)有效   
                  _nop_();   
                  _nop_();   
                  _nop_();   
                  _nop_();   
                  _nop_();           
                  I2C_SCL   =   0;   
                  _nop_();   
                  _nop_();                   
                    
          }   
  }   
  /***************************************   
  *函數(shù)名稱:       uchar   Read_I2c(void)   
  *功能描述:       讀I2C   
  *輸入:               無   
  *輸出:               返回一個字節(jié)的數(shù)據(jù),高字節(jié)在前   
  *全局變量:       I2C_SCL,I2C_SDA   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  uchar   Read_I2c(void)   
  {   
          uchar   i;   
          uchar   byte   =   0;   
          for(i   =   0;   i   <   8;   i++)   
          {   
                  I2C_SCL   =   0;                       //置時鐘為低電平,準備接受數(shù)據(jù)   
                  _nop_();   
                  _nop_();   
                  _nop_();   
                  _nop_();   
                  _nop_();   
                  I2C_SCL   =   1;                     //置時鐘為高電平,使數(shù)據(jù)線數(shù)據(jù)有效   
                  _nop_();   
                  _nop_();   
                  byte   <<=   1;   
                  byte   |=   I2C_SDA;   
                  _nop_();   
                  _nop_();   
                  I2C_SCL   =   0;   
          }   
          return(byte);   
  }   
  /***************************************   
  *函數(shù)名稱:       void   DelayMs(uchar   time)   
  *功能描述:       延時   
  *輸入:               延時時間   
  *輸出:               無   
  *全局變量:       無   
  *調(diào)用模塊:       無   
    
  ****************************************/   
  void   DelayMs(uchar   time)   
  {   
        uchar   i;   
        do   
        {   
                  for(i   =   0;   i   <   125   ;   i++);       //*延時   8us   x   125   =   1ms   
        }   
        while   (time--);   
    
  }   
  /***************************************   
  *函數(shù)名稱:       void     Write_Date(uchar   StartAddress,uchar   *date,uchar   bytes)   
  *功能描述:       寫數(shù)據(jù)   
  *輸入:               數(shù)據(jù)開始地址,保存數(shù)據(jù)指針,數(shù)據(jù)字節(jié)數(shù)   
  *輸出:               無   
  *全局變量:       無   
  *調(diào)用模塊:       Start(),Write_I2c(),Stop(),TestAck()   
  *注意事項:       調(diào)用之前,需要定義一個數(shù)組,用來存待發(fā)送的數(shù)據(jù)   
  ****************************************/   
  void   Write_Date(int   StartAddress,uchar   *date,uchar   bytes)   
  {   
          uchar   i   =   0;   
          Start();   
          Write_I2c(WR24C02);   
          TestAck();   
          Write_I2c(StartAddress);   
          TestAck();   
          for(i   =   0;i   <   bytes;   i++)   
          {   
                  Write_I2c(*date);   
                  TestAck();   
                  date++;   
          }   
          Stop();   
          DelayMs(20);   
  }   
  /***************************************   
  *函數(shù)名稱:       void     Read_Date(uchar   StartAddress,uchar   *date,uchar   bytes)   
  *功能描述:       讀數(shù)據(jù)   
  *輸入:               數(shù)據(jù)開始地址,讀取數(shù)據(jù)指針,數(shù)據(jù)字節(jié)數(shù)   
  *輸出:               無   
  *全局變量:       無   
  *調(diào)用模塊:       Start(),Write_I2c(),Read_I2c(),Ack(),NoAck(),Stop(),TestAck()   
  *注意事項:       調(diào)用之前,需要定義一個數(shù)組,用來存讀取的數(shù)據(jù)   
  ****************************************/   
  void   Read_Date(int   StartAddress,uchar   *date,uchar   bytes)   
  {   
          uchar   i;   
          Start();   
          Write_I2c(WR24C02);   
          TestAck();   
          Write_I2c(StartAddress);   
          TestAck();   
          Write_I2c(RD24C02);   
          TestAck();   
          for   (i   =   0;   i   <   bytes;   i++)   
          {   
                  *date   =   Read_I2c();   
                  Ack();   
                  date++;   
          }   
          NoAck();   
          Stop();   
          DelayMs(10);   
  } 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区视频在线观看 | 国产不卡一区视频| 久久久午夜电影| 91影院在线观看| 亚洲在线成人精品| 欧美成人一区二区三区在线观看 | 午夜精品免费在线观看| 日韩精品一区二区三区四区视频| 国产高清精品网站| 亚洲国产欧美在线| 久久久www成人免费毛片麻豆 | 亚洲国产日韩一区二区| 久久久久久免费网| 国产欧美一区二区在线观看| 成人免费看片app下载| 日韩毛片视频在线看| 欧美久久久久免费| 成人午夜电影久久影院| 亚洲国产成人av网| 337p粉嫩大胆噜噜噜噜噜91av | 精品久久人人做人人爽| 成年人国产精品| 日韩和的一区二区| 亚洲欧美一区二区视频| 日韩一区二区三区视频| 不卡一卡二卡三乱码免费网站| 三级亚洲高清视频| 亚洲日本中文字幕区| 久久久亚洲午夜电影| 欧美精品久久天天躁| www.色精品| 韩国中文字幕2020精品| 亚洲风情在线资源站| 综合电影一区二区三区| 久久视频一区二区| 日韩一区二区三区精品视频| 色婷婷av一区二区| av在线免费不卡| 国产制服丝袜一区| 免费观看日韩电影| 亚洲超碰精品一区二区| 精品国产乱码久久久久久免费 | 欧美日韩国产一二三| 成人免费观看视频| 国产精品综合二区| 免费在线看一区| 无码av中文一区二区三区桃花岛| 中文字幕一区二区三区乱码在线| 久久综合九色综合欧美亚洲| 777久久久精品| 欧美精品在线视频| 欧美主播一区二区三区美女| 91麻豆123| 色综合久久久久久久久| www.亚洲免费av| 99这里只有精品| 国产一区二区主播在线| 国内不卡的二区三区中文字幕| 日本欧美在线看| 欧美a一区二区| 欧美aⅴ一区二区三区视频| 婷婷成人综合网| 日本一区中文字幕| 免费亚洲电影在线| 欧美aaa在线| 看片的网站亚洲| 久久99精品久久久久| 久久不见久久见中文字幕免费| 亚洲va欧美va人人爽| 亚洲国产成人av网| 三级久久三级久久| 蜜桃久久av一区| 国产一区二区不卡在线| 成人在线视频首页| 色偷偷久久人人79超碰人人澡| 欧洲精品中文字幕| 3atv一区二区三区| 亚洲综合一区在线| 国产精品久久久爽爽爽麻豆色哟哟| 综合久久综合久久| 日本不卡高清视频| 99久久伊人网影院| 欧美一级日韩免费不卡| 国产精品视频一二三区| 亚洲高清中文字幕| 国产91精品入口| 欧美日韩黄色一区二区| 久久久国际精品| 亚洲va欧美va国产va天堂影院| 国产成人亚洲综合色影视| 欧美色视频在线观看| 久久人人97超碰com| 亚洲夂夂婷婷色拍ww47| 丰满放荡岳乱妇91ww| 欧美精品日韩精品| 亚洲欧洲精品一区二区三区 | 91麻豆福利精品推荐| 精品日韩av一区二区| 亚洲欧美日韩一区二区三区在线观看| 日本中文字幕一区二区视频 | 欧美一区二区黄| 综合激情成人伊人| 国产精品香蕉一区二区三区| 欧美日韩免费视频| 国产精品第13页| 激情av综合网| 91精品国产色综合久久ai换脸| 国产精品国产自产拍在线| 久久成人久久爱| 欧美狂野另类xxxxoooo| 亚洲欧美激情小说另类| 成人夜色视频网站在线观看| 精品免费一区二区三区| 午夜免费久久看| 一本大道久久a久久精二百| 欧美国产精品中文字幕| 精品一区精品二区高清| 欧美挠脚心视频网站| 亚洲综合免费观看高清完整版| 成人国产精品免费| 日本一区二区视频在线| 国产一区二区伦理片| 欧美一级一区二区| 日韩av不卡一区二区| 欧美精品亚洲一区二区在线播放| 一区二区三区国产精品| 91视频在线看| 亚洲天堂福利av| 99精品久久只有精品| 国产精品色呦呦| 成人毛片在线观看| 国产蜜臀av在线一区二区三区| 国产精品综合在线视频| 久久精品亚洲乱码伦伦中文| 国产在线精品免费| 国产亚洲欧美一级| 国产.欧美.日韩| 国产欧美日韩另类视频免费观看| 国产专区综合网| 国产日韩欧美激情| 成人免费视频网站在线观看| 中文字幕不卡一区| 97se亚洲国产综合自在线| 国产精品盗摄一区二区三区| 99视频精品免费视频| 日韩美女视频一区二区 | 欧美精品xxxxbbbb| 日韩在线一区二区三区| 欧美一区二区在线播放| 精品无码三级在线观看视频| 精品国产制服丝袜高跟| 国产精品综合av一区二区国产馆| 国产嫩草影院久久久久| 97精品国产露脸对白| 亚洲自拍偷拍欧美| 91精品国产免费久久综合| 久久国产成人午夜av影院| 久久久噜噜噜久久中文字幕色伊伊| 国产高清久久久| 亚洲免费在线视频| 欧美三级日韩三级| 老司机午夜精品99久久| 国产日韩欧美亚洲| 91网页版在线| 日韩高清在线电影| 久久免费午夜影院| 91丨porny丨户外露出| 亚洲电影视频在线| 日韩女优av电影| 成人免费视频一区| 亚洲r级在线视频| 国产午夜一区二区三区| 色视频一区二区| 精品一区二区三区免费播放| 国产精品入口麻豆原神| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日本成人在线一区| 国产精品毛片无遮挡高清| 欧美日韩aaaaaa| 国产传媒日韩欧美成人| 伊人一区二区三区| 精品国产一二三| 91精彩视频在线观看| 麻豆成人免费电影| 午夜a成v人精品| 久久精品欧美日韩精品| 在线观看国产日韩| 国产成人免费在线观看| 亚洲成a人片综合在线| 久久精品在这里| 6080午夜不卡| 99久久99精品久久久久久| 麻豆国产欧美一区二区三区| 一区二区中文字幕在线| 日韩免费观看高清完整版| 色狠狠桃花综合| 激情久久久久久久久久久久久久久久| 亚洲精品美国一| 欧美—级在线免费片| 欧美一区二区三区思思人|