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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? i2c.c

?? 8563實時時鐘
?? C
字號:
/********************************************************************
    MCS-51單片機模擬I2C軟件包(V1.1)
    文件名:VI2C_C51.C
    相關文件:VI2C_C51.H,VI2C_C51.LIB
    功能說明:本模擬I2C軟件包包含了I2C操作的底層函數,如發送數據及接收
數據,應答位發送,并提供了幾個直接面對器件的操作函數,它很方便的與用戶程
序連接并擴展.....  
    注意:函數是采用軟件延時的方法產生SCL脈沖,固對高晶振頻率要作 一定的
修改....(本軟件包是1us機器周期,即晶振頻率要小于12MHZ)
    總線時序符合I2C標準模式,100Kbit/S。
********************************************************************/

#include <INIF.h>
bit ack;           //應答標志位
/*******************************************************************
                     起動總線函數               
函數原型: void  Start_I2c();  
功能:     啟動I2C總線,即發送I2C起始條件.  
********************************************************************/
void Start_I2c()
{
  SDA=1;    //發送起始條件的數據信號
  _Nop();
  SCL=1;
  _Nop();     //起始條件建立時間大于4.7us,延時
  _Nop();
  _Nop();
  _Nop();
  _Nop();    
  SDA=0;    //發送起始信號
  _Nop();     // 起始條件鎖定時間大于4μs
  _Nop();
  _Nop();
  _Nop();
  _Nop();       
  SCL=0;    //鉗住I2C總線,準備發送或接收數據
  _Nop();
  _Nop();
}
 

/*******************************************************************
                      結束總線函數               
函數原型: void  Stop_I2c();  
功能:     結束I2C總線,即發送I2C結束條件.  
********************************************************************/
void Stop_I2c()
{
  SDA=0;   //發送結束條件的數據信號
  _Nop();  //發送結束條件的時鐘信號
  SCL=1;   //結束條件建立時間大于4μs
  _Nop();
  _Nop();
  _Nop();
  _Nop();
  _Nop();
  SDA=1;   //發送I2C總線結束信號
  _Nop();
  _Nop();
  _Nop();
  _Nop();
}
 

/*******************************************************************
                 字節數據發送函數               
函數原型: void  SendByte(uchar c);
功能:     將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對
          此狀態位進行操作.(不應答或非應答都使ack=0)     
        發送數據正常,ack=1; ack=0表示被控器無應答或損壞。
********************************************************************/
void  SendByte(uchar c)
{
 uchar BitCnt;
 
 for(BitCnt=0;BitCnt<8;BitCnt++)  //要傳送的數據長度為8位
    {
     if((c<<BitCnt)&0x80)SDA=1;   //判斷發送位
       else  SDA=0;                
     _Nop();
     SCL=1;               //置時鐘線為高,通知被控器開始接收數據位
      _Nop(); 
      _Nop();             //保證時鐘高電平周期大于4μs
      _Nop();
      _Nop();
      _Nop();         
     SCL=0; 
    }
    
    _Nop();
    _Nop();
    SDA=1;                //8位發送完后釋放數據線,準備接收應答位
    _Nop();
    _Nop();   
    SCL=1;
    _Nop();
    _Nop();
    _Nop();
    if(SDA==1)ack=0;     
       else ack=1;        //判斷是否接收到應答信號
    SCL=0;
    _Nop();
    _Nop();
}
 
 

/*******************************************************************
                 字節數據接收函數               
函數原型: uchar  RcvByte();
功能:     用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號),
          發完后請用應答函數應答從機。  
********************************************************************/ 
uchar  RcvByte()
{
  uchar retc;
  uchar BitCnt;
  
  retc=0; 
  SDA=1;               //置數據線為輸入方式
  for(BitCnt=0;BitCnt<8;BitCnt++)
      {
        _Nop();           
        SCL=0;                  //置時鐘線為低,準備接收數據位
        _Nop();
        _Nop();                 //時鐘低電平周期大于4.7μs
        _Nop();
        _Nop();
        _Nop();
        SCL=1;                  //置時鐘線為高使數據線上數據有效
        _Nop();
        _Nop();
        retc=retc<<1;
        if(SDA==1)retc=retc+1;  //讀數據位,接收的數據位放入retc中
        _Nop();
        _Nop(); 
      }
  SCL=0;    
  _Nop();
  _Nop();
  return(retc);
}
 

/********************************************************************
                     應答子函數
函數原型:  void Ack_I2c(bit a);
功能:      主控器進行應答信號(可以是應答或非應答信號,由位參數a決定)
********************************************************************/
void Ack_I2c(bit a)
{
  
  if(a==0)SDA=0;           //在此發出應答或非應答信號
        else SDA=1;
  _Nop();
  _Nop();
  _Nop();      
  SCL=1;
  _Nop();
  _Nop();                    //時鐘低電平周期大于4μs
  _Nop();
  _Nop();
  _Nop();  
  SCL=0;                     //清時鐘線,鉗住I2C總線以便繼續接收
  _Nop();
  _Nop();    
}
 
/*******************************************************************
                 用戶接口函數                                   
*******************************************************************/
/*******************************************************************
                    向有子地址器件發送多字節數據函數               
函數原型: bit  ISendStr(uchar sla,uchar suba,ucahr *s,uchar no);  
功能:     從啟動總線到發送地址,子地址,數據,結束總線的全過程,從器件
          地址sla,子地址suba,發送內容是s指向的內容,發送no個字節。
          如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no)
{
   uchar i;
   Start_I2c();               //啟動總線
   SendByte(sla);             //發送器件地址
   if(ack==0)return(0);
   SendByte(suba);            //發送器件子地址
   if(ack==0)return(0);
   for(i=0;i<no;i++)
   {   
     SendByte(*s);            //發送數據
     if(ack==0)return(0);
     s++;
   } 
   Stop_I2c();                //結束總線
   return(1);
}

/*******************************************************************
                    向有子地址器件讀取多字節數據函數               
函數原型: bit  ISendStr(uchar sla,uchar suba,ucahr *s,uchar no);  
功能:     從啟動總線到發送地址,子地址,讀數據,結束總線的全過程,從器件
          地址sla,子地址suba,讀出的內容放入s指向的存儲區,讀no個字節。
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)
{
   uchar i;
   Start_I2c();                  //啟動總線
   SendByte(sla);                //發送器件地址
   if(ack==0)return(0);
   SendByte(suba);               //發送器件子地址
   if(ack==0)return(0);
   Start_I2c();    				//重新啟動總線
   SendByte(sla+1);
   if(ack==0)return(0);
   for(i=0;i<no-1;i++)
   {   
     *s=RcvByte();               //發送數據
      Ack_I2c(0);                //發送就答位  
     s++;
   } 
   *s=RcvByte();
   Ack_I2c(1);                   //發送非應位
   Stop_I2c();                   //結束總線 
   return(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费高清成人在线| 色综合av在线| 国产中文字幕精品| 麻豆91免费看| 久久精品999| 美国精品在线观看| 美女免费视频一区二区| 麻豆成人久久精品二区三区红 | 狠狠色丁香久久婷婷综合_中| 偷拍日韩校园综合在线| 亚洲成人自拍偷拍| 午夜精品久久久久久久久久久| 亚洲福利一区二区| 蜜臀精品一区二区三区在线观看 | 亚洲小说欧美激情另类| 一区二区高清免费观看影视大全| 亚洲人成在线观看一区二区| 1024国产精品| 亚洲精品自拍动漫在线| 亚洲综合无码一区二区| 亚洲gay无套男同| 日本欧美肥老太交大片| 久久精品久久久精品美女| 免费的国产精品| 国产一区在线观看视频| 国产成人免费视频精品含羞草妖精| 国产成人精品1024| 欧美刺激午夜性久久久久久久| 中文字幕不卡的av| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲三级电影网站| 亚洲激情在线激情| 日本视频免费一区| 国产精品一区久久久久| zzijzzij亚洲日本少妇熟睡| 欧美区一区二区三区| 欧美一区午夜精品| 国产片一区二区| 亚洲女人的天堂| 男女性色大片免费观看一区二区| 国产一区二区美女诱惑| av一区二区三区| 欧美性色综合网| 精品久久久久久最新网址| 中文子幕无线码一区tr| 一区二区三区国产豹纹内裤在线| 日韩av电影免费观看高清完整版在线观看 | 精品国产麻豆免费人成网站| 亚洲一级电影视频| 国产精品色呦呦| 亚洲在线免费播放| 国产综合色产在线精品| 99精品视频在线观看| 欧美一三区三区四区免费在线看| 中文字幕二三区不卡| 日日夜夜精品视频天天综合网| 国产盗摄一区二区三区| 97aⅴ精品视频一二三区| 久久激情综合网| 91麻豆国产福利在线观看| 精品国产乱码久久久久久图片| 成人欧美一区二区三区在线播放| 日本不卡一区二区三区| 99久久精品99国产精品| 日韩欧美国产一区二区在线播放| 亚洲美女在线一区| 黑人巨大精品欧美黑白配亚洲| 欧美性猛片aaaaaaa做受| 国产精品热久久久久夜色精品三区| 性做久久久久久久久| 不卡的av电影| 欧美精品一区二区不卡| 日韩精品亚洲一区| 丁香天五香天堂综合| 欧美日韩精品专区| 国产精品日日摸夜夜摸av| 午夜日韩在线电影| 99免费精品在线观看| 日韩区在线观看| 亚洲视频 欧洲视频| 秋霞影院一区二区| 91麻豆精品视频| 欧美精品在线一区二区| 国产精品久久久久aaaa| 亚洲一区二区高清| 国产成人免费网站| 欧美精品丝袜久久久中文字幕| 国产欧美日韩综合| 亚洲精品菠萝久久久久久久| 国产乱人伦偷精品视频免下载| 91精品国产麻豆| 亚洲精品免费在线| 99久久er热在这里只有精品15 | 欧美精品国产精品| 一区二区不卡在线播放| 成人午夜在线视频| 中文字幕不卡在线| 国产一区久久久| 久久婷婷色综合| 日本不卡1234视频| 日韩手机在线导航| 香蕉成人啪国产精品视频综合网| 在线观看免费视频综合| 国产精品国产精品国产专区不片| 国产91综合网| 亚洲精品一区二区三区香蕉| 美腿丝袜亚洲综合| 欧美色综合天天久久综合精品| 亚洲黄色av一区| 91视视频在线直接观看在线看网页在线看| 久久精品亚洲麻豆av一区二区| 美腿丝袜亚洲色图| 精品国产露脸精彩对白| 久久精品国产精品亚洲综合| 精品国产免费视频| 韩国女主播一区二区三区| 久久综合九色综合97婷婷女人| 日本视频在线一区| 久久久久久久电影| 国产成人aaa| 欧美激情一区不卡| 国产一区二区在线电影| 久久色.com| 成人18视频在线播放| 国产精品久久久一本精品| 色婷婷综合视频在线观看| 亚洲激情av在线| 欧美精品久久99| 久久精品国产澳门| 国产精品久久久久久久久久免费看| 国产成人午夜电影网| 亚洲色图在线播放| 色婷婷亚洲综合| 麻豆精品国产传媒mv男同 | 中文欧美字幕免费| 91亚洲国产成人精品一区二三 | 精品一区二区三区在线视频| 欧美va亚洲va| 成人黄色免费短视频| 亚洲欧美日韩成人高清在线一区| 欧美日韩在线直播| 男女男精品网站| 国产精品丝袜久久久久久app| 97se亚洲国产综合自在线观| 日本欧美一区二区三区| 91 com成人网| 高清av一区二区| 亚洲国产综合人成综合网站| 91精品久久久久久蜜臀| 国产91精品久久久久久久网曝门| 中文字幕日韩av资源站| 91精品国产福利| 成人性色生活片| 日日摸夜夜添夜夜添国产精品| 精品国产乱码久久久久久1区2区| 99视频有精品| 偷拍日韩校园综合在线| 中文字幕精品—区二区四季| 91免费在线看| 日本一不卡视频| 日韩美女视频19| 91麻豆精品国产| 97精品久久久久中文字幕| 午夜精品久久久久久久久| 国产精品美女久久久久aⅴ国产馆| 欧美性猛交一区二区三区精品| 国产一区二区三区国产| 亚洲精品va在线观看| 国产日本亚洲高清| 欧美性感一类影片在线播放| 国产成人亚洲综合a∨婷婷图片| 中文一区二区完整视频在线观看| 欧美高清视频不卡网| 99久免费精品视频在线观看 | 亚洲五码中文字幕| 久久久久88色偷偷免费| 欧美日韩你懂的| 丁香激情综合五月| 麻豆91在线播放免费| 亚洲精品中文字幕乱码三区| 国产三级精品三级| 欧美伦理电影网| 在线亚洲免费视频| 蜜桃视频一区二区三区在线观看| 亚洲黄色av一区| 亚洲三级在线观看| 精品日韩在线观看| 欧美一区二区三区四区视频| 99久久99久久精品免费观看| 成人性视频免费网站| 精品制服美女丁香| 久久精品国产一区二区| 亚洲成人免费在线| 一区二区三区成人| 综合网在线视频| 国产网站一区二区| 久久这里只有精品首页| 欧美高清精品3d| 91超碰这里只有精品国产| 91小视频免费观看|