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

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

?? i2c.c

?? 51控制STA013實(shí)現(xiàn)MP3音頻解碼
?? C
字號(hào):
//iic.c
#include <reg51.h>
#include <intrins.h>
#include "I2C.H"

bit gAck;//應(yīng)答標(biāo)志位

//短延時(shí)
void I2C_Delay(long lDly)
{
    while ( lDly ) lDly--;
}

void I2C_Init()
{
	SCL = 1;
        I2C_Delay(10);
	SDA = 1;
        I2C_Delay(10);
}

/*******************************************************************
                     起動(dòng)總線函數(shù)
函數(shù)原型: void  I2C_Start();
功能:     啟動(dòng)I2C總線,即發(fā)送I2C起始條件

********************************************************************/
void I2C_Start()
{
  SDA = 1;   	  //發(fā)送起始條件的數(shù)據(jù)信號(hào)
  I2C_Delay(1);
  SCL = 1;
  I2C_Delay(10);  //起始條件建立時(shí)間大于4.7us,延時(shí)

  SDA = 0;   	  //發(fā)送起始信號(hào)
  I2C_Delay(10);  // 起始條件鎖定時(shí)間大于4μs

  SCL = 0;   	//鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù)
  I2C_Delay(2);
}

/*******************************************************************
                       結(jié)束總線函數(shù)
函數(shù)原型: void  Stop_I2c();
功能:     結(jié)束I2C總線,即發(fā)送I2C結(jié)束條件.
********************************************************************/
void I2C_Stop()
{
  SDA = 0;  	//發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào)
  I2C_Delay(1); //發(fā)送結(jié)束條件的時(shí)鐘信號(hào)
  SCL = 1;  	//結(jié)束條件建立時(shí)間大于4μs
  I2C_Delay(10);
  SDA = 1;  	//發(fā)送I2C總線結(jié)束信號(hào)
  I2C_Delay(10);
}

/*******************************************************************
                 字節(jié)數(shù)據(jù)發(fā)送函數(shù)
函數(shù)原型: void  I2C_SendByte(uchar uchData);
功能:     將數(shù)據(jù)c發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待應(yīng)答,并對(duì)
          此狀態(tài)位進(jìn)行操作.(不應(yīng)答或非應(yīng)答都使ack=0)
     	  發(fā)送數(shù)據(jù)正常,ack=1; ack=0表示被控器無(wú)應(yīng)答或損壞。
********************************************************************/
void  I2C_SendByte(unsigned char uchData)
{
 unsigned char uchBitCnt;

 for(uchBitCnt = 0;uchBitCnt < 8;uchBitCnt ++)  /*要傳送的數(shù)據(jù)長(zhǎng)度為8位*/
 {
     if( (uchData << uchBitCnt) & 0x80)
        SDA = 1;                //判斷發(fā)送位
     else
        SDA = 0;
     I2C_Delay(1);
     SCL = 1;                     //置時(shí)鐘線為高,通知被控器開(kāi)始接收數(shù)據(jù)
     I2C_Delay(10);               //保證時(shí)鐘高電平周期大于4μs
     SCL = 0;
  }
  I2C_Delay(2);
  SDA = 1;                //8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位
  I2C_Delay(10);          //
  SCL = 1;
  I2C_Delay(10);          //
  if(SDA == 1)
     gAck=0;
  else
     gAck=1;        //判斷是否接收到應(yīng)答信號(hào)
  SCL = 0;
  I2C_Delay(5);
}

/*******************************************************************
                 字節(jié)數(shù)據(jù)接收函數(shù)
函數(shù)原型: unsigned char  I2C_RcvByte();
功能:  	  用來(lái)接收從器件傳來(lái)的數(shù)據(jù),并判斷總線錯(cuò)誤(不發(fā)應(yīng)答信號(hào)),
          發(fā)完后請(qǐng)用應(yīng)答函數(shù)應(yīng)答從機(jī)。
********************************************************************/
unsigned char  I2C_RcvByte()
{
  unsigned char uchRetc;
  unsigned char uchBitCnt;

  uchRetc = 0;
  SDA = 1;             		       //置數(shù)據(jù)線為輸入方式
  for(uchBitCnt = 0;uchBitCnt < 8;uchBitCnt ++)
  {
        I2C_Delay(1);;
        SCL = 0;                       //置時(shí)鐘線為低,準(zhǔn)備接收數(shù)據(jù)位
        I2C_Delay(5);                 //時(shí)鐘低電平周期大于4.7μs

        SCL = 1;                       //置時(shí)鐘線為高使數(shù)據(jù)線上數(shù)據(jù)有效
        I2C_Delay(5);
        uchRetc = uchRetc << 1;
        if(SDA == 1)
           uchRetc = uchRetc + 1;      //讀數(shù)據(jù)位,接收的數(shù)據(jù)位放入retc中
        I2C_Delay(5);
   }
  SCL = 0;
  I2C_Delay(2);
  return uchRetc;
}

/********************************************************************
                     應(yīng)答子函數(shù)
函數(shù)原型:  void Ack_I2c(bit a);
功能:      主控器進(jìn)行應(yīng)答信號(hào)(可以是應(yīng)答或非應(yīng)答信號(hào),由位參數(shù)a決定)
********************************************************************/
void I2C_Ack(bit bData)
{

  if(bData == 0)
     SDA=0;     	       //在此發(fā)出應(yīng)答或非應(yīng)答信號(hào)
  else
     SDA=1;
  I2C_Delay(5);
  SCL = 1;
  I2C_Delay(5);              //時(shí)鐘低電平周期大于4μs

  SCL = 0;                    //清時(shí)鐘線,鉗住I2C總線以便繼續(xù)接收
  I2C_Delay(5);
}

/*******************************************************************
                    向有子地址器件發(fā)送多字節(jié)數(shù)據(jù)函數(shù)
函數(shù)原型: bit I2C_SendStr(unsigned char uchSlaveAddr,unsigned char uchSubAddr,unsigned char uchSize,unsigned char *pBuf);
功能:     從啟動(dòng)總線到發(fā)送地址,子地址,數(shù)據(jù),結(jié)束總線的全過(guò)程,從器件
          地址sla,子地址suba,發(fā)送內(nèi)容是s指向的內(nèi)容,發(fā)送no個(gè)字節(jié)。
          如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結(jié)束總線。
********************************************************************/
bit I2C_SendStr(unsigned char uchSlaveAddr,unsigned char uchSubAddr,unsigned char uchSize,unsigned char *pSendBuf)
{
   unsigned char i;

   I2C_Start();                            //啟動(dòng)總線
   I2C_SendByte(uchSlaveAddr);             //發(fā)送器件地址
   if(gAck == 0)
      return(0);
   I2C_SendByte(uchSubAddr);               //發(fā)送器件子地址
   if(gAck == 0)
      return(0);

   for(i = 0;i < uchSize;i++)
   {
     I2C_SendByte(*pSendBuf);                  //發(fā)送數(shù)據(jù)
     if(gAck == 0)
        return(0);
     pSendBuf++;
   }
   I2C_Stop();                             //結(jié)束總線

   return(1);
}

/*******************************************************************
                    向有子地址器件讀取多字節(jié)數(shù)據(jù)函數(shù)
函數(shù)原型: bit  ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no);
功能:     從啟動(dòng)總線到發(fā)送地址,子地址,讀數(shù)據(jù),結(jié)束總線的全過(guò)程,從器件
          地址sla,子地址suba,讀出的內(nèi)容放入s指向的存儲(chǔ)區(qū),讀no個(gè)字節(jié)。
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結(jié)束總線。
********************************************************************/
bit I2C_RcvStr(unsigned char uchSlaveAddr,unsigned char uchSubAddr,unsigned char uchSize,unsigned char *pRcvBuf)
{
   unsigned char i;

   I2C_Start();                               //啟動(dòng)總線
   I2C_SendByte(uchSlaveAddr);                //發(fā)送器件地址
   if(gAck == 0)
      return(0);
   I2C_SendByte(uchSubAddr);                  //發(fā)送器件子地址
   if(gAck == 0)
      return(0);

   I2C_Start();			              //重新啟動(dòng)總線
   I2C_SendByte(uchSlaveAddr + 1);
   if(gAck == 0)
      return(0);

   for(i = 0;i < uchSize - 1;i++)
   {
     *pRcvBuf = I2C_RcvByte();                //發(fā)送數(shù)據(jù)
      I2C_Ack(0);                             //發(fā)送數(shù)據(jù)應(yīng)答位
     pRcvBuf ++;
   }
   *pRcvBuf = I2C_RcvByte();

   I2C_Ack(1);                                //發(fā)送非應(yīng)位
   I2C_Stop();                                //結(jié)束總線

   return(1);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕乱码亚洲精品一区| 91免费在线看| 日韩视频免费观看高清完整版在线观看| 自拍偷拍国产精品| 欧美在线观看18| 亚洲福利一二三区| 日韩丝袜美女视频| 国产精品一二三区在线| 国产精品成人在线观看| 色呦呦网站一区| 蜜臀91精品一区二区三区| 精品国产欧美一区二区| 成人一区二区三区| 亚洲综合在线观看视频| 日韩欧美国产精品| 成人福利视频在线| 亚洲v日本v欧美v久久精品| 精品嫩草影院久久| 91亚洲精品久久久蜜桃| 日韩国产精品久久久| 欧美极品aⅴ影院| 欧美视频精品在线观看| 国产综合久久久久久久久久久久| 中文字幕在线观看一区二区| 欧美日韩国产精品成人| 国产精品影视天天线| 亚洲黄色免费电影| 精品99一区二区三区| 91色婷婷久久久久合中文| 日本伊人精品一区二区三区观看方式| 久久网站热最新地址| 在线视频综合导航| 国产麻豆成人精品| 亚洲v中文字幕| 亚洲国产成人在线| 日韩视频一区在线观看| 91亚洲男人天堂| 国模一区二区三区白浆| 亚洲国产精品嫩草影院| 国产日韩av一区| 欧美高清hd18日本| 一本一道久久a久久精品综合蜜臀| 日本不卡视频一二三区| 一区二区成人在线| 中文字幕一区二区三区av| 日韩欧美黄色影院| 欧美日韩国产综合视频在线观看 | 欧美精品一区二区三区蜜桃| 一本色道久久综合亚洲aⅴ蜜桃| 青青草原综合久久大伊人精品优势| 国产精品久久久久影院老司| 26uuu另类欧美| 欧美伦理电影网| 欧美亚洲国产bt| 99精品视频在线观看| 国产91精品精华液一区二区三区| 日本不卡在线视频| 日产国产欧美视频一区精品 | 欧日韩精品视频| 粗大黑人巨茎大战欧美成人| 蜜臀久久99精品久久久久久9 | 欧美一区二区三区视频免费 | 成人深夜福利app| 国产麻豆欧美日韩一区| 精品写真视频在线观看| 天堂在线一区二区| 性久久久久久久久久久久| 一区二区三区.www| 一二三四区精品视频| 中文字幕在线播放不卡一区| 国产精品国产三级国产aⅴ原创| 久久久久亚洲综合| 国产日韩欧美一区二区三区综合| 2020国产精品| 久久精品水蜜桃av综合天堂| 久久久久久久久久久久久女国产乱 | av网站免费线看精品| 高清beeg欧美| 成人免费电影视频| 成人黄色在线视频| 9l国产精品久久久久麻豆| 91网站在线播放| 色综合天天做天天爱| 色综合久久综合网| 91成人免费网站| 欧美日韩国产小视频在线观看| 欧美日韩国产成人在线免费| 欧美一区二区精美| 久久久久综合网| 国产精品嫩草影院com| ...av二区三区久久精品| 亚洲欧美激情小说另类| 亚洲高清视频的网址| 日韩av网站在线观看| 国产自产高清不卡| www.亚洲色图.com| 精品视频在线视频| 精品日韩成人av| 国产精品国产三级国产普通话99 | 亚洲一区二区av电影| 亚洲国产精品一区二区尤物区| 日韩**一区毛片| 懂色中文一区二区在线播放| 99精品久久99久久久久| 精品视频在线免费| 久久天天做天天爱综合色| 国产精品久久午夜夜伦鲁鲁| 亚洲亚洲人成综合网络| 九一久久久久久| 99精品视频免费在线观看| 欧美日韩第一区日日骚| 亚洲精品一区二区在线观看| 中文字幕视频一区二区三区久| 亚洲一区二区三区爽爽爽爽爽| 美女被吸乳得到大胸91| 99久久伊人网影院| 91精品麻豆日日躁夜夜躁| 欧美国产精品一区| 天堂av在线一区| 丁香婷婷深情五月亚洲| 欧美嫩在线观看| 中文字幕va一区二区三区| 日韩精品国产欧美| 91麻豆免费视频| www亚洲一区| 天天射综合影视| 成人在线综合网站| 日韩午夜在线观看| 一区二区三区在线看| 国产另类ts人妖一区二区| 在线视频一区二区三| 中文久久乱码一区二区| 美女网站一区二区| 色8久久精品久久久久久蜜| 久久无码av三级| 美女视频网站久久| 欧美少妇一区二区| 亚洲三级免费电影| 国产精品亚洲第一区在线暖暖韩国 | 日日骚欧美日韩| 91丨九色丨尤物| 欧美激情综合五月色丁香小说| 秋霞午夜av一区二区三区| 91福利在线导航| 亚洲欧洲av在线| 国产乱对白刺激视频不卡| 欧美电影免费观看高清完整版在线观看 | 欧美日韩在线播| 亚洲人快播电影网| 成人午夜视频免费看| 久久精品男人的天堂| 激情综合一区二区三区| 91精品国产综合久久蜜臀| 亚洲一区二区在线免费观看视频| 成人免费黄色大片| 国产精品毛片久久久久久久| 国产精品一二一区| 国产日韩影视精品| 国产精品一区一区| 精品国产乱码久久久久久免费| 老司机午夜精品99久久| 欧美一区二区三区爱爱| 日韩精品一级中文字幕精品视频免费观看 | 亚洲电影在线免费观看| 在线观看国产日韩| 亚洲国产精品一区二区www| 欧美性大战xxxxx久久久| 亚洲国产日韩精品| 欧美精品aⅴ在线视频| 日韩av一级电影| 日韩美女视频一区二区在线观看| 麻豆精品在线看| 久久先锋资源网| 成人一区二区视频| 国产精品传媒视频| 在线视频你懂得一区| 亚洲观看高清完整版在线观看| 欧美福利一区二区| 久久国产精品色| 久久久久久久综合色一本| 成人v精品蜜桃久久一区| 亚洲视频在线一区| 欧美日韩三级在线| 日韩中文字幕亚洲一区二区va在线 | 欧美性色综合网| 亚洲电影第三页| 日韩精品一区二区三区视频播放 | 成人国产亚洲欧美成人综合网| 国产精品色哟哟网站| 色8久久人人97超碰香蕉987| 亚洲成人综合在线| 2022国产精品视频| 成人v精品蜜桃久久一区| 亚洲午夜视频在线| 91精品久久久久久久久99蜜臂| 国产剧情在线观看一区二区| 中文字幕中文字幕一区| 精品视频一区三区九区| 美女网站一区二区| 亚洲视频一区二区在线观看|