<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 最新的MSP430普通IO模擬IIC程序!

          最新的MSP430普通IO模擬IIC程序!

          作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
          #include
          #include #include #include <msp430x41x.h>//------------------------------------------#define IicWpDirOut           P6DIR |=  BIT5#define IicWpLow              P6OUT &=~ BIT5           #define IicWpHig              P6OUT |=  BIT5#define IicSclDirOut          P6DIR |=  BIT6#define IicSclLow             P6OUT &=~ BIT6            #define IicSclHig             P6OUT |=  BIT6#define IicSdaDirOut          P6OUT &= ~BIT7#define IicSdaLow             P6DIR |=  BIT7            #define IicSdaHig             P6DIR &=~ BIT7#define IicSdaInSt            P6IN  &   BIT7bool AckErr;//------------------------------ *** - 時(shí)間延時(shí) - *** ------------------------------//void Delay(unsigned int count){unsigned int i;_NOP();_NOP();for(i=count; i>0; i--);}void IIcDelay(void){_NOP();}//-----***-IIC初始化-***-----//void IicInit(void){IicWpDirOut;IicSdaDirOut;IicSclDirOut;IicWpHig;IicSdaHig;IicSclHig;}//-----***-IIC啟示-***-----//void IicStart(void)                 {IicSdaHig;//IicSda=1;IIcDelay();IicSclHig;//IicScl=1;IIcDelay();IicSdaLow;//IicSda=0;IIcDelay();IicSclLow;//IicScl=0;IIcDelay();}//-----***-IIC停止-***-----//void IicStop(void)                 {IicSdaLow;//IicSda=0;IIcDelay();IicSclHig;//IicScl=1;IIcDelay();IicSdaHig;//IicSda=1;IIcDelay();}//-----***-IIC應(yīng)答-***-----//void SendAcknowledge(bool ack)               {IicSdaDirOut;if(ack)//IicSda=ack;{IicSdaHig;}else{IicSdaLow;}IIcDelay();IicSclHig;//IicScl=1;IIcDelay();IicSclLow;//IicScl=0;IIcDelay();}            //-----***-從slave端讀取一個(gè)數(shù)據(jù)-***-----//unsigned char IicReceiveByte(void){unsigned char i;unsigned char bytedata=0;IicSdaDirOut;IicSdaHig;//IicSda=1;for(i=0;i<8;i++){IicSclHig;//IicScl=1;IIcDelay();bytedata<<=1;if(IicSdaInSt){bytedata |=0x01;}else{bytedata &=0xfe;}IicSclLow;//IicScl=0;IIcDelay();}IicSdaDirOut;return bytedata;}//-----***-傳送一個(gè) Byte 數(shù)據(jù)到 slave-***-----//void IicSentByte(unsigned char DataByte)               {unsigned char i;for(i=0;i<8;i++){if(DataByte & 0x80){IicSdaHig;//IicSda=1;}else{IicSdaLow;//IicSda=0;}DataByte <<=1;IIcDelay();IicSclHig;//IicScl=1;IIcDelay();IicSclLow;//IicScl=0;IIcDelay();}IicSdaHig;//IicSda=1;-----Y------D---IicSdaDirInIIcDelay();IicSclHig;//IicScl=1;IIcDelay();IicSclLow;//IicScl=0;IIcDelay();}//-----***-無扇區(qū)讀---多字節(jié)-***-----////讀取指定器件無扇區(qū)指定地址多字節(jié)數(shù)據(jù)到指定地址//Device=器件地址---單字節(jié)//DataAdd=字節(jié)地址---單字節(jié)void IicMuchByteRead(unsigned char DataAdd,unsigned char *DataDptr,unsigned char DataLend){unsigned char i;_DINT();WDT();IicInit();IicStart();IicSentByte(0xa0);IicSentByte(DataAdd);IicStart();IicSentByte(0xa1);for(i=DataLend-1;i>0;i--){*DataDptr=IicReceiveByte();DataDptr++;SendAcknowledge(0);}*DataDptr=IicReceiveByte();SendAcknowledge(1);IicStop();WDT();Delay(500);_EINT();}//-----***-無扇區(qū)寫---多字節(jié)-***-----////寫入指定器件無扇區(qū)指定地址中的多字節(jié)數(shù)據(jù)//Device=器件地址---單字節(jié)//DataAdd=字節(jié)地址---雙字節(jié)//DataByte=被存放數(shù)據(jù)的地址//DataLend=被存放數(shù)據(jù)的長(zhǎng)度void IicMuchByteWrite(unsigned char DataAdd,unsigned char *DataDptr,unsigned char DataLend){unsigned char i;_DINT();WDT();IicInit();IicWpLow;IicStart();IicSentByte(0xa0);IicSentByte(DataAdd);for(i=DataLend;i>0;i--){IicSentByte(*DataDptr);DataDptr++;   }IicStop();WDT();Delay(3500);IicWpHig;_EINT();}//---特別說明//---利用430芯片來模擬IIC,是不能夠把SDA設(shè)置為輸出模式而是//---設(shè)置為輸入,然后利用方向控制器來輸出高或者低//---如下:#define IicSdaDirOut          P6OUT &= ~BIT7#define IicSdaLow             P6DIR |=  BIT7            #define IicSdaHig             P6DIR &=~ BIT7#define IicSdaInSt            P6IN  &   BIT7


          關(guān)鍵詞: MSP430普通IO模擬II

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();