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

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

?? iic.c

?? IIC程序庫,MSP430中可以直接調用,里面的延時都要計算準確,添加即可使用....
?? C
字號:
//IIC總線模擬程序
//描述:微控設計網 www.microcontrol.cn MSP430單片機模擬IIC(Inter IC)總線程序.
//編寫:微控設計網 DC版主,如有問題,歡迎到微控技術論壇來討論.
//使用方式:以涵數方式調用,使用時程序關閉總中斷,使用完后打開總中斷.
//占用資源為:使用兩個IO口,本程序CPU主時鐘MCLK=800K.
//本程序已在微控MC430F14實驗板上驗證通過,也可以應到其它設計中.
//以下程序如有不明之處歡迎討論
#include <msp430x14x.h>
#include "IIC.h"

//小延時********************************
void nop_()
{_NOP();_NOP();}

void SomeNOP()
 {nop_();nop_();nop_();nop_();}
//**************************************
//起始信號
void I2CStart(void)
 {
 _DINT();               //關總中斷;
 SCLOUT;                //SCL口設為輸出-------后加
 SDAOUT;                //SDA口設為輸出
 SDA1;                   
 //SCLOUT;                //SCL口設為輸出
 SCL1;
 SomeNOP(); SomeNOP();            //INI
 SDA0;                   
 SomeNOP(); SomeNOP();           //START
 SCL0;        
 }
//**************************************
//結束信號
void I2CStop(void)
 {
  SCL0;  
  SDA0;                   
  SomeNOP();              //INI
  SCL1;                                  
  SomeNOP();
  SDA1;                  //STOP
  _EINT();               //EA=1;
 }
//**************************************
//等待從器件接收方的應答
unsigned char WaitAck(void)
 {
 unsigned char errtime=255;      //因故障接收方無ACK,超時值為255。
 SDA1;                 
 SomeNOP();
 SCL1;
 SomeNOP();
 SDAIN;                 //SDA口設為輸入
 while(SDA_STATE)       //SDA出現為0時,則為有應答
  { errtime--;
   if (!errtime)        //errtime是否為0
    {I2CStop();       
     return NO;}        //返回為0(失敗)
  }
 SDAOUT;                //SDA口設為輸出
 SCL0;
 return OK;             //返回為1(成功)
 }
//**************************************
//主器件為接收方,從器件為發送方時,單片機發出應答信號
//MCU Send to IC
void SendAck(void)
 {
 SDA0;                
 SomeNOP();
 SCL1;                
 SomeNOP();
 SCL0;        
 }
//**************************************
//主器件為接收方,從器件為發送方時,非應答信號
void SendNotAck(void)
 {
 SDA1;  
 SomeNOP();
 SCL1;                   
 SomeNOP();
 SCL0;
 }
//**************************************
//發送字節
 void I2CSendByte(unsigned char ch)
 {
  unsigned char i=8;
  while (i--)
  {
   SCL0;                //SCL=0;
   nop_();
   if(ch&0x80)
    SDA1;               //使SDA為1位
   else
    SDA0;               //使SDA為0位
   //---------------
   ch<<=1;
   SomeNOP();
   SCL1;          
   SomeNOP();
   }
  SCL0;        
 }
//**************************************
//接收字節
unsigned char I2CReceiveByte(void)
 {
 unsigned char i=8;   //接收8位
 unsigned char ddata,timp;
 ddata=0;
 SDA1;                 
 SDAIN;               //SDA口設為輸入
 while (i--)
 {
  ddata<<=1;           //將ddata位向高位移,于讓位0
  SCL0;
  SomeNOP();
  SCL1;
  SomeNOP();
 
  timp = SDA_STATE;     //讀入SDA,后加
  timp>>=SDA_MOV_BIT;   //將timp的SDA位數據移到位0
  ddata|=timp;          //將timp的SDA位數據移到ddata位0
 }
 SCL0;                  //SCL=0;
 SDAOUT;                //(附加)SDA口設回為輸出
 return  ddata;
 }
//**********************************************************************
//描述:微控設計網 www.microcontrol.cn MSP430單片機模擬IIC(Inter IC)總線程序
//編寫:微控設計網 DC 版主,如有問題,歡迎到微控技術論壇來討論
//正常操作時返回位值為0,有故障時返回位值為1.
//unsigned char *DataBuff數據緩沖區指針,char ByteQuantity字節數量,
//unsigned int Address IC片內地址,
//unsigned char ControlByte芯片控制字節-IC地址/讀寫位,
unsigned char IIC(unsigned char *DataBuff,char ByteQuantity,unsigned int Address,unsigned char ControlByte)
{
 unsigned char errorflag=error;      //錯誤標志位,1為錯誤,0為正確
 unsigned char i;              //i為允許本次操作的最大次數
  i=1;
 SCLOUT;                        //時鐘口長設為輸出
 while(i--)
 {
   I2CStart();
   //I2CSendByte(0x70);
   I2CSendByte(ControlByte&0xfe);//指定芯片,此次必定為寫
   if(!WaitAck())              //涵數返回一個1為成功
     continue;                      //結束寫操作,并i-1后,再來一次
   I2CSendByte((unsigned char)Address);      //發送片內地址
   if(!WaitAck())            //數返回一個1為成功                            
     continue;                    //結束寫操作,并i-1后,再來一次      
   
  //------------------------------已經選定好IC
   if(!(ControlByte&0x01))      //本次操作是讀還是寫
      {                         //寫操作
     errorflag=right;      //清錯誤標志位為0
     while(ByteQuantity--)   //操作j個數字節
          {
            I2CSendByte(*DataBuff++);//發送       
         if(WaitAck())           //涵數返回一個1為成功,涵數返回一個0為失敗
              continue;                  //成功,下一個數據循環(跳while)
         errorflag=error;          //不應答,失敗了. errorflag=1
         break;                  //退出寫操作
       }
     if(errorflag==error) //經過寫完后,如果最后errorflag標志為1,則表示有錯誤
           continue;                  //結束寫操作,并i-1后,再來一次
     break;                          //寫操作完成
      }  
   else                        //則為讀操作
     {  I2CStart();                  //開始       
        I2CSendByte(ControlByte);
        if(!WaitAck())                      //涵數返回一個1為成功
        {continue;}                      //結束此操作,并i-1后,再來一次
     while(--ByteQuantity)           //讀入ByteQuantity個數字節
           {*DataBuff++=I2CReceiveByte();//連續讀入ByteQuantity個數據
              SendAck();}              //主機向從機發出應答,表示主機已接收            
        *DataBuff=I2CReceiveByte();     //讀入最后個數據
     SendNotAck();                   //最后發出不應答信號(位),表示主機不再讀了.
     errorflag=right;                //向錯誤標志位寫0(right),表示讀數據正確.
     break;}                         //讀操作完成*/
     }
 I2CStop();                             //停止,結束IIC總線
 return(errorflag);                     //返回操作成敗標志
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情欧美一区二区三区在线观看| 成人一区在线观看| 99精品国产一区二区三区不卡| 欧美一区二区视频在线观看| 欧美mv日韩mv亚洲| 琪琪久久久久日韩精品| 欧美在线你懂的| 亚洲美女一区二区三区| 91首页免费视频| 亚洲三级免费观看| 日本道免费精品一区二区三区| 精品国产乱码久久久久久蜜臀 | 美女在线视频一区| 这里只有精品视频在线观看| 亚洲成av人片在线| 在线观看91精品国产麻豆| 亚洲国产一区在线观看| 不卡av在线网| 一区在线播放视频| av电影在线不卡| 亚洲伦在线观看| 欧美亚洲国产bt| 亚洲r级在线视频| 91精品国产一区二区三区蜜臀| 热久久久久久久| 日韩欧美国产wwwww| 国产一区二区三区免费在线观看| 26uuu国产在线精品一区二区| 国产大片一区二区| 中文字幕一区在线| 欧美天堂一区二区三区| 亚洲超丰满肉感bbw| 精品久久久久久久久久久久久久久久久 | 亚洲国产精品精华液2区45| 成人一级片在线观看| 亚洲激情欧美激情| 91麻豆精东视频| 亚洲成av人片在www色猫咪| 欧美mv日韩mv国产网站| 成人免费高清视频在线观看| 亚洲男人的天堂av| 在线免费观看不卡av| 麻豆免费精品视频| 国产精品三级久久久久三级| 欧美日韩一区二区在线视频| 黄色小说综合网站| 亚洲黄色免费电影| 日韩色视频在线观看| 成人手机在线视频| 亚洲视频每日更新| 日韩一级成人av| 成人黄动漫网站免费app| 亚洲一二三专区| 久久久精品人体av艺术| 欧美亚洲一区二区在线| 久久99九九99精品| 一区二区三区免费观看| 久久综合色之久久综合| 91久久人澡人人添人人爽欧美| 日韩高清不卡一区二区三区| 国产精品久久国产精麻豆99网站| 欧美日韩在线电影| 91在线视频在线| 国产一区二区三区日韩| 亚洲成人精品一区二区| 国产精品私人影院| 欧美日韩国产高清一区二区三区| 国产大片一区二区| 久久av中文字幕片| 亚洲韩国一区二区三区| 国产精品视频在线看| 日韩视频不卡中文| 欧美日韩国产精品成人| 91老司机福利 在线| 国产精品18久久久久久久久久久久| 亚洲一区二区三区小说| 中文字幕一区二区三区四区不卡| 日韩美女视频一区二区在线观看| 91香蕉国产在线观看软件| caoporen国产精品视频| 大陆成人av片| av中文字幕不卡| av网站免费线看精品| gogo大胆日本视频一区| 97se狠狠狠综合亚洲狠狠| 一本大道久久精品懂色aⅴ| 99久久99久久久精品齐齐| 成人免费三级在线| av不卡在线播放| 91蜜桃网址入口| 色综合久久久久久久久| 在线国产电影不卡| 欧美美女一区二区| 欧美一区二区性放荡片| 精品国产伦一区二区三区观看方式| 精品国内二区三区| 久久久久高清精品| 国产精品美女www爽爽爽| 最新国产成人在线观看| 亚洲乱码国产乱码精品精的特点 | 亚洲欧美日韩中文播放| 一区二区成人在线视频| 天堂va蜜桃一区二区三区| 久久精品国产亚洲5555| 国产精品一区在线观看乱码| www.一区二区| 欧美日韩午夜影院| 欧美mv日韩mv国产| 国产午夜亚洲精品午夜鲁丝片| 成人欧美一区二区三区小说| 亚洲综合视频网| 久久av中文字幕片| 97国产精品videossex| 在线成人高清不卡| 国产欧美一区二区在线| 亚洲va天堂va国产va久| 国产一区二区调教| 色美美综合视频| 日韩精品中文字幕在线不卡尤物| 国产午夜亚洲精品午夜鲁丝片| 中文字幕综合网| 秋霞午夜av一区二区三区| 国产凹凸在线观看一区二区| 91网页版在线| 日韩精品一区二区三区视频在线观看 | 亚洲午夜激情av| 国产在线播精品第三| 色狠狠一区二区| 欧美mv日韩mv国产网站| 亚洲综合成人在线| 国产精品亚洲综合一区在线观看| 色妞www精品视频| 欧美精品一区二区久久久| 亚洲国产精品久久久男人的天堂| 国产精品综合二区| 91精品在线观看入口| 亚洲精品五月天| 国内精品免费**视频| 欧美日韩国产综合草草| 亚洲色图清纯唯美| 国产精品资源网站| 欧美精品高清视频| 亚洲欧美日韩精品久久久久| 国产综合久久久久久鬼色| 欧美系列亚洲系列| 亚洲欧洲一区二区在线播放| 国产一区二区电影| 日韩欧美亚洲国产另类| 亚洲电影视频在线| 91免费观看视频在线| 国产日韩精品视频一区| 久久99久久99| 欧美一区二区福利在线| 亚洲午夜电影在线观看| 色综合久久综合网| 中文字幕一区二区三区不卡| 国产剧情在线观看一区二区| 91精品久久久久久久91蜜桃| 亚洲午夜电影网| 欧美性xxxxx极品少妇| 亚洲欧美经典视频| 99久久国产综合精品色伊| 国产日本欧洲亚洲| 国产成人精品影院| 欧美国产成人精品| 国产精品中文欧美| 久久女同性恋中文字幕| 国模少妇一区二区三区| 精品国产乱码久久久久久老虎| 日产国产欧美视频一区精品| 欧美电影一区二区| 免费精品99久久国产综合精品| 91精品国产乱| 麻豆91精品91久久久的内涵| 日韩视频一区二区三区| 欧美aaaaa成人免费观看视频| 欧美精品久久99| 日韩 欧美一区二区三区| 91麻豆精品国产| 国产精品人妖ts系列视频 | 99精品久久久久久| 亚洲情趣在线观看| 成人免费视频免费观看| 99re热这里只有精品免费视频| 亚洲欧美一区二区在线观看| 亚洲第一久久影院| 日韩精品1区2区3区| 国产欧美精品在线观看| 欧美巨大另类极品videosbest | 日韩不卡一区二区| 日韩伦理免费电影| 日韩一区日韩二区| 精品国产制服丝袜高跟| 欧美日韩一区二区三区在线看| 91视频精品在这里| 成人免费毛片app| 欧美精品18+| 国产美女久久久久| 国产精品久久毛片| 欧美色国产精品|