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

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

?? iic.c

?? 是一個msp430做的電子鐘程序
?? C
字號:
//描述:微控設計網 www.microcontrol.cn MSP430單片機模擬IIC(Inter IC)總線程序.
//編寫:微控設計網 DC版主,如有問題,歡迎到微控技術論壇來討論.
//使用方式:以涵數方式調用,使用時程序關閉總中斷,使用完后打開總中斷.
//占用資源為:使用兩個IO口,本程序CPU主時鐘MCLK=800K.
//本程序已在微控MC430F14實驗板上驗證通過,也可以應到其它設計中.
//以下程序如有不明之處歡迎討論
#include<msp430x14x.h>
//--------------------------------------
//SDA 數據線定義
#define error 0x01              //錯誤
#define right 0x00              //正確
#define AT24_ADD      0xA0      //24c02芯片地址          
  
  /*第1區(qū)256b,ds=0xa0;第2區(qū)256b,ds=0xa2
    第3區(qū)256b,ds=0xa4;第4區(qū)256b,ds=0xa6
    第5區(qū)256b,ds=0xa8;第6區(qū)256b,ds=0xaa
    第7區(qū)256b,ds=0xac;第8區(qū)256b,ds=0xae
    24c16分區(qū)
  */
#define write          0x00     //寫
#define read           0x01     //讀

#define SDAOUT P3DIR |= BIT6
#define SDAIN  P3DIR &= ~BIT6
#define SDA1   P3OUT |= BIT6
#define SDA0   P3OUT &= ~BIT6
//SCL 時鐘線定義
#define SCLOUT P3DIR |= BIT5
#define SCL1   P3OUT |= BIT5
#define SCL0   P3OUT &= ~BIT5

#define SDA_STATE P3IN & BIT6   //讀入SDA狀態(tài)

//--------------------------------------
#define SDA_MOV_BIT 6           //SDA 數據調整移位

//從器件接收方的應答返回標志
#define OK 0x01                 //表示從器件有應答
#define NO 0x00                 //表示從器件無應答  

//IIC總線操作成失標志
#define error 0x01              //錯誤
#define right 0x00              //正確
unsigned char iic_check;   //檢查標志,可選的.

nop_()
{_NOP();_NOP();}

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出現(xiàn)為0時,則為有應答
  { errtime--; 
   if (!errtime)        //errtime是否為0
    {I2CStop();        
     return NO;}        //返回為0(失敗)
  }
 SDAOUT;                //SDA口設為輸出 
 SCL0; 
 return OK;             //返回為1(成功)
 }
//**************************************
//主器件為接收方,從器件為發(fā)送方時,單片機發(fā)出應答信號
//MCU Send to IC
void SendAck(void)
 {
 SDA0;                 
 SomeNOP();
 SCL1;                 
 SomeNOP();
 SCL0;         
 }
//**************************************
//主器件為接收方,從器件為發(fā)送方時,非應答信號
void SendNotAck(void)
 {
 SDA1;  
 SomeNOP();
 SCL1;                   
 SomeNOP();
 SCL0; 
 }
//**************************************
//發(fā)送字節(jié)
 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;         
 }
//**************************************
//接收字節(jié)
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數據緩沖區(qū)指針,char ByteQuantity字節(jié)數量,
//unsigned int Address IC片內地址,
//unsigned char ControlByte芯片控制字節(jié)-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(ControlByte&0xfe);//指定芯片,此次必定為寫
   if(!WaitAck())              //涵數返回一個1為成功
     continue;                      //結束寫操作,并i-1后,再來一次
   I2CSendByte((unsigned char)Address);      //發(fā)送片內地址
   if(!WaitAck())            //數返回一個1為成功                            
     continue;                    //結束寫操作,并i-1后,再來一次      
   
  //------------------------------已經選定好IC
   if(!(ControlByte&0x01))      //本次操作是讀還是寫
      {                         //寫操作
     errorflag=right;      //清錯誤標志位為0
     while(ByteQuantity--)   //操作j個數字節(jié)
          {
            I2CSendByte(*DataBuff++);//發(fā)送        
         if(WaitAck())           //涵數返回一個1為成功,涵數返回一個0為失敗
              continue;                  //成功,下一個數據循環(huán)(跳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個數字節(jié)
           {*DataBuff++=I2CReceiveByte();//連續(xù)讀入ByteQuantity個數據
              SendAck();}              //主機向從機發(fā)出應答,表示主機已接收            
        *DataBuff=I2CReceiveByte();     //讀入最后個數據
     SendNotAck();                   //最后發(fā)出不應答信號(位),表示主機不再讀了.
     errorflag=right;                //向錯誤標志位寫0(right),表示讀數據正確.
     break;}                         //讀操作完成*/
     }
 I2CStop();                             //停止,結束IIC總線
 return(errorflag);                     //返回操作成敗標志
}

//***********************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av网站在线观看免费| 狠狠色丁香久久婷婷综合_中| 91蝌蚪porny成人天涯| 亚洲国产综合视频在线观看| 91精品国产色综合久久ai换脸| 美腿丝袜亚洲色图| 精品久久久三级丝袜| 国产成人免费9x9x人网站视频| 亚洲裸体xxx| 正在播放亚洲一区| 成人动漫av在线| 午夜欧美大尺度福利影院在线看| 欧美日韩视频不卡| 成人久久视频在线观看| 五月天中文字幕一区二区| 欧美日韩国产精品自在自线| 韩国女主播一区| 亚洲综合在线电影| 精品捆绑美女sm三区| 色一情一伦一子一伦一区| 一区二区三区欧美| 国产欧美视频一区二区三区| 99综合影院在线| 日本欧美久久久久免费播放网| 中文字幕二三区不卡| 91国模大尺度私拍在线视频 | 在线免费观看日韩欧美| 亚洲国产精品天堂| 国产亚洲成aⅴ人片在线观看| 欧美日韩精品三区| 99久久精品99国产精品| 青青草国产成人av片免费| 亚洲欧洲成人自拍| 欧美va天堂va视频va在线| 欧美在线观看视频一区二区| 国产精品99久久久久久宅男| 婷婷亚洲久悠悠色悠在线播放| 国产欧美一区二区精品性色 | 亚洲人成网站影音先锋播放| 欧美成人一区二区三区| 欧美亚洲日本国产| 91婷婷韩国欧美一区二区| 国产久卡久卡久卡久卡视频精品| 亚洲女厕所小便bbb| 久久精品在线免费观看| 欧洲一区在线观看| 97久久超碰国产精品| 国产福利不卡视频| 久久99精品久久久久久国产越南| 亚洲一区二区视频| 亚洲国产成人高清精品| 天堂蜜桃91精品| 日本不卡的三区四区五区| 美国十次了思思久久精品导航| 另类成人小视频在线| 国产精品一区在线观看你懂的| 国产精品香蕉一区二区三区| 国产大片一区二区| 丁香另类激情小说| 97久久超碰国产精品电影| 欧美在线播放高清精品| 欧美男同性恋视频网站| 精品国精品自拍自在线| 久久久午夜精品理论片中文字幕| 中文字幕av一区二区三区免费看| 亚洲人亚洲人成电影网站色| 亚洲精品国产无天堂网2021| 日韩黄色一级片| 国精品**一区二区三区在线蜜桃| 国产成人精品亚洲午夜麻豆| 91一区二区在线| 精品视频123区在线观看| 精品蜜桃在线看| 中日韩免费视频中文字幕| 亚洲一区二区在线免费看| 老司机午夜精品| 99国产精品久久久| 在线不卡一区二区| 久久精品亚洲麻豆av一区二区| 中文字幕在线不卡视频| 亚洲一区自拍偷拍| 国产伦精品一区二区三区免费| 色域天天综合网| 日韩欧美一区在线| 国产精品久久网站| 青青草一区二区三区| 99久久免费精品| 日韩美女天天操| 亚洲免费电影在线| 国产一区二区三区四区五区美女 | 欧美电影免费观看高清完整版在 | 欧美女孩性生活视频| 国产日韩欧美精品电影三级在线 | 日韩精品午夜视频| 成人av在线播放网址| 51精品国自产在线| 中文字幕一区二区三区乱码在线| 午夜一区二区三区视频| 国产成a人无v码亚洲福利| 欧美日韩国产欧美日美国产精品| 亚洲国产岛国毛片在线| 秋霞午夜av一区二区三区| 99re在线视频这里只有精品| 日韩美女一区二区三区| 亚洲国产一区二区视频| gogogo免费视频观看亚洲一| 日韩精品中午字幕| 亚洲国产另类精品专区| 99re热视频精品| 久久亚洲综合av| 美国毛片一区二区三区| 欧美日韩国产不卡| 亚洲麻豆国产自偷在线| 成人av动漫网站| 久久蜜臀精品av| 美日韩一区二区| 欧美日韩二区三区| 一区二区三区精品久久久| 成人深夜在线观看| 久久欧美中文字幕| 日韩成人dvd| 欧美影院一区二区| 综合婷婷亚洲小说| 成人激情午夜影院| 国产欧美日本一区视频| 韩国成人在线视频| 精品理论电影在线| 捆绑调教美女网站视频一区| 欧美精品日韩一本| 午夜精品久久久久久久99水蜜桃 | 激情综合网av| 91麻豆精品国产91久久久资源速度 | 26uuu国产日韩综合| 午夜免费久久看| 精品视频免费看| 丝袜亚洲另类欧美| 欧美日本在线播放| 午夜精品爽啪视频| 欧美日韩国产一级片| 日日夜夜一区二区| 制服.丝袜.亚洲.另类.中文| 日韩高清不卡一区| 欧美成人三级在线| 国产在线一区观看| 国产欧美日本一区视频| 岛国一区二区在线观看| 久久综合色之久久综合| 国产精品夜夜嗨| 国产精品久久久久7777按摩| fc2成人免费人成在线观看播放| 国产亚洲欧美色| 成人看片黄a免费看在线| 亚洲色图丝袜美腿| 欧美综合一区二区| 天天色综合天天| 欧美成人一区二区三区| 国产米奇在线777精品观看| 国产清纯在线一区二区www| 成人涩涩免费视频| 亚洲欧美日韩国产综合| 99热这里都是精品| 亚洲成人精品一区二区| 日韩欧美视频在线| 成人国产精品免费观看视频| 亚洲日本在线视频观看| 欧美人妖巨大在线| 国产乱一区二区| 亚洲欧美日韩在线播放| 欧美日韩成人一区| 国产成人午夜视频| 亚洲免费av高清| 欧美一区二区三区公司| 国产成人免费视频网站高清观看视频| 国产精品日日摸夜夜摸av| 欧美亚洲动漫精品| 久久精品国产亚洲高清剧情介绍| 久久综合av免费| 色老汉一区二区三区| 午夜精品久久久久久久 | 欧美精品三级日韩久久| 国产美女视频91| 一区二区在线看| 日韩免费在线观看| 色噜噜狠狠一区二区三区果冻| 免费在线看一区| 国产精品三级在线观看| 欧美三级日韩三级国产三级| 韩国欧美国产1区| 亚洲专区一二三| 欧美韩国日本一区| 欧美精品1区2区| 成人a区在线观看| 日韩成人一区二区三区在线观看| 国产午夜亚洲精品理论片色戒| 欧美色图免费看| 豆国产96在线|亚洲| 日韩电影在线观看电影| 亚洲欧洲中文日韩久久av乱码| 欧美mv日韩mv| 欧美日韩国产高清一区二区|