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

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

?? m430iicbus.c

?? 基于MSP430的程序代碼
?? C
字號(hào):
//描述:微控設(shè)計(jì)網(wǎng) www.microcontrol.cn MSP430單片機(jī)模擬IIC(Inter IC)總線程序.
//編寫(xiě):微控設(shè)計(jì)網(wǎng) DC版主,如有問(wèn)題,歡迎到微控技術(shù)論壇來(lái)討論.
//使用方式:以涵數(shù)方式調(diào)用,使用時(shí)程序關(guān)閉總中斷,使用完后打開(kāi)總中斷.
//占用資源為:使用兩個(gè)IO口,本程序CPU主時(shí)鐘MCLK=800K.
//本程序已在微控MC430F14實(shí)驗(yàn)板上驗(yàn)證通過(guò),也可以應(yīng)到其它設(shè)計(jì)中.
//以下程序如有不明之處歡迎討論
#include<msp430x14x.h>
//--------------------------------------
//SDA 數(shù)據(jù)線定義
#define SDAOUT P5DIR |= BIT6
#define SDAIN  P5DIR &= ~BIT6
#define SDA1   P5OUT |= BIT6
#define SDA0   P5OUT &= ~BIT6
//SCL 時(shí)鐘線定義
#define SCLOUT P5DIR |= BIT5
#define SCL1   P5OUT |= BIT5
#define SCL0   P5OUT &= ~BIT5

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

//--------------------------------------
#define SDA_MOV_BIT 6           //SDA 數(shù)據(jù)調(diào)整移位

//從器件接收方的應(yīng)答返回標(biāo)志
#define OK 0x01                 //表示從器件有應(yīng)答
#define NO 0x00                 //表示從器件無(wú)應(yīng)答  

//IIC總線操作成失標(biāo)志
#define error 0x01              //錯(cuò)誤
#define right 0x00              //正確

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

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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲www啪成人一区二区麻豆| 精品国产免费久久| 日本午夜一区二区| 国产精品综合二区| 91免费视频大全| 91精品国产美女浴室洗澡无遮挡| 久久日韩粉嫩一区二区三区| 中文字幕在线播放不卡一区| 亚洲一二三四在线| 国产成人av电影在线播放| 欧美在线影院一区二区| 日韩欧美综合一区| 一区二区三区电影在线播| 国产一区三区三区| 欧美一区二区高清| 国产精品一区二区男女羞羞无遮挡| 国产日韩综合av| 毛片av一区二区| 91在线国产福利| 久久久久久一级片| 99久久综合狠狠综合久久| 久久久久亚洲综合| 91蜜桃婷婷狠狠久久综合9色| 亚洲综合清纯丝袜自拍| 日韩一区二区三区在线观看| 久久精品亚洲一区二区三区浴池| 国产精品二三区| 成人综合婷婷国产精品久久蜜臀| 日韩女优av电影| 亚洲电影欧美电影有声小说| 欧美大黄免费观看| 91在线免费看| 精品一区二区在线播放| 精品国产人成亚洲区| 91小视频在线免费看| 美女任你摸久久| 亚洲免费高清视频在线| aaa亚洲精品| 看国产成人h片视频| 久久亚洲综合色一区二区三区| 国产做a爰片久久毛片| 精品99999| 欧美三级电影网| 日韩成人dvd| 亚洲视频在线观看三级| 欧洲精品中文字幕| 国产成人综合视频| 亚洲婷婷综合色高清在线| 日韩欧美亚洲国产精品字幕久久久| 99久久国产免费看| 国产精品77777竹菊影视小说| 欧美成人精品福利| 亚洲欧美日韩国产手机在线| 欧美本精品男人aⅴ天堂| 在线观看亚洲专区| av福利精品导航| 国产成人三级在线观看| 久久丁香综合五月国产三级网站| 亚洲成人资源在线| 亚洲乱码国产乱码精品精98午夜| 91国产精品成人| 奇米影视7777精品一区二区| 日韩久久精品一区| 欧美精品色综合| 精品在线观看免费| 蜜臀精品一区二区三区在线观看| 亚洲午夜久久久久久久久电影院| 日韩欧美一二三| 91精品国产综合久久久久久久 | 不卡的电影网站| 亚洲网友自拍偷拍| 一区二区在线看| 亚洲啪啪综合av一区二区三区| 国产精品午夜久久| 91精品中文字幕一区二区三区| 在线观看免费亚洲| 欧美色图免费看| 亚洲国产日日夜夜| 精品免费国产二区三区| 欧美电影免费观看高清完整版在线 | 92精品国产成人观看免费| 国内精品免费**视频| 国产一区二区三区免费播放| 精品一区二区在线视频| 国内成人精品2018免费看| 精品一区免费av| 国产91在线看| 91视频国产资源| 欧美在线观看一区| 337p亚洲精品色噜噜| 日韩一级片网址| 久久久久久久久岛国免费| 国产亚洲人成网站| 亚洲欧洲日韩综合一区二区| 亚洲精品综合在线| 日韩国产一区二| 久久不见久久见免费视频7 | 制服丝袜中文字幕亚洲| 国产综合久久久久久鬼色| 日韩美女久久久| 亚洲国产综合色| 日本欧美肥老太交大片| 精品一区二区综合| 成人av网站在线观看| 94色蜜桃网一区二区三区| 欧美性受极品xxxx喷水| 国产v日产∨综合v精品视频| av福利精品导航| 在线播放日韩导航| 久久久久久影视| 亚洲一区在线观看免费观看电影高清 | 亚洲国产色一区| 精品写真视频在线观看| 成人激情小说网站| 欧美人体做爰大胆视频| 91看片淫黄大片一级| 欧美精品乱人伦久久久久久| 久久久噜噜噜久久中文字幕色伊伊| 国产精品进线69影院| 亚洲成a人片在线观看中文| 国内不卡的二区三区中文字幕| 91污片在线观看| 3atv在线一区二区三区| 日本一区二区综合亚洲| 亚洲国产欧美在线人成| 亚洲天堂av老司机| 国产精品―色哟哟| 日韩福利视频导航| 99国产精品一区| 欧美r级在线观看| 一区二区三区日韩| 国产91丝袜在线播放九色| 欧美日高清视频| 亚洲欧美日韩电影| 国产精品中文字幕一区二区三区| 91麻豆精品视频| 日本一区二区三级电影在线观看| 婷婷久久综合九色综合绿巨人| 亚洲国产另类av| 成人激情综合网站| 2023国产精品自拍| 亚洲国产一区二区a毛片| 成人理论电影网| 精品国产乱码久久| 日韩国产高清在线| 99免费精品在线观看| 久久久久久麻豆| 老司机免费视频一区二区| 在线免费视频一区二区| 国产精品久久一级| 国产精品18久久久| 久久综合九色综合欧美98| 石原莉奈在线亚洲三区| 九九视频精品免费| 欧美精品 日韩| 亚洲一区二区美女| 一本一道久久a久久精品| 欧美日韩国产在线观看| 天天综合网 天天综合色| 日韩免费在线观看| 日本色综合中文字幕| 欧美男同性恋视频网站| 亚洲综合无码一区二区| 91官网在线观看| 亚洲精品乱码久久久久| 99久久99久久精品国产片果冻 | 久久日一线二线三线suv| 日日噜噜夜夜狠狠视频欧美人 | 91精品国产aⅴ一区二区| 亚洲影院在线观看| 在线一区二区视频| 亚洲精品乱码久久久久久日本蜜臀| 成人99免费视频| 亚洲欧洲日产国码二区| 99久久久久久| 一区二区欧美国产| 欧美日韩一区精品| 亚洲五码中文字幕| 91精品久久久久久蜜臀| 免费av网站大全久久| 精品久久久久久久久久久久久久久久久 | 成人动漫中文字幕| 亚洲国产精品99久久久久久久久 | 性欧美大战久久久久久久久| 欧美亚洲国产一区在线观看网站| 亚洲国产一区二区视频| 奇米综合一区二区三区精品视频| 欧美日韩和欧美的一区二区| 午夜精品久久久久| 日韩精品一区二区三区视频 | 国产午夜精品一区二区三区四区| 高清国产午夜精品久久久久久| 国产精品国产三级国产aⅴ原创| 色呦呦网站一区| 婷婷国产v国产偷v亚洲高清| 欧美成人性战久久| 成人黄色在线网站| 亚洲国产一区二区a毛片| 欧美日韩免费电影| 日精品一区二区|