91视频丝瓜-91视频完整版高清-91视频网-91视频网店-91视频网或将从此无大神-91视频网入口

您好,歡迎訪問上海現易電子元器件有限公司網站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機

?MSP430學習的第一個模擬I2C程序

文章出處:單片機 責任編輯:上海現易電子元器件有限公司 發表時間:2018-05-20

#include  
unsigned char I2CBUF;
unsigned char checkbit;
#define SCL_H   (P10OUT |= BIT2)      // P10.2為SCL
#define SCL_L   (P10OUT &= ~BIT2)
#define SDA_H   (P10OUT |= BIT1)     //p10.1為SDA
#define SDA_L   (P10OUT &= ~BIT1)
#define SDA_OUT  (P10DIR |= BIT1)
#define SDA_IN  (P10DIR &= ~ BIT1)
void I2C_Start(void)    //I2C開始信號
{
 SDA_OUT;
 SCL_L;
 SDA_H;
 __delay_cycles(5);
 SCL_H;
 __delay_cycles(5);
 SDA_L;
 __delay_cycles(5);
 SCL_L;
 __delay_cycles(5);
}
unsigned char testACK(void) {
 SDA_IN;
 __delay_cycles(5);
 SCL_H;
 __delay_cycles(5);
 checkbit = (P10IN & BIT1) >> 4;
 __delay_cycles(5);
 SCL_L;
 __delay_cycles(5);
 return (checkbit);
}
void I2C_ACK(void)                //應答信號
{
 SDA_OUT;
 SCL_L;
 SDA_L;
 __delay_cycles(5);
 SCL_H;
 __delay_cycles(5);
 SCL_L;
 __delay_cycles(5);
 SDA_H;
}
void I2C_NACK(void) {
 SDA_OUT;
 SDA_H;
 __delay_cycles(5);
 SCL_H;
 __delay_cycles(5);
 SCL_L;
 __delay_cycles(5);
}
void I2C_STOP(void)             //產生結束信號
{
 SCL_L;
 __delay_cycles(5);
 SDA_L;
 __delay_cycles(5);
 SCL_H;
 __delay_cycles(5);
 SDA_H;
 __delay_cycles(5);
}
void I2C_WRITE(unsigned char data)
{
 SDA_OUT;
 unsigned char i;
 for (i = 8; i > 0; i--)      //高位循環8次,發送1個字節數據
    {
  if (data & 0x80)   //判斷數據高位是0還是1
     {
   SDA_H;           //高位數據寫1
  }
  else
  {
   SDA_L;
  }
  SCL_H;
  __delay_cycles(5);  //發送數據
  SCL_L;
  __delay_cycles(5);
  data <<= 1;

 }
}
unsigned char I2C_READ(void)
{
 unsigned char j;
 unsigned char BUFFER = 0X00;
 SDA_IN;
 for (j = 8; j >0; j--)      //高位循環8次,發送1個字節數據
    {
  SCL_H;
  __delay_cycles(5);
  BUFFER <<= 1;
  if ((P10IN & BIT1) == BIT1)   //判斷數據高位是0還是1
  {
   BUFFER |= 0X01;         //高位數據寫1
  }
  else
  {
   BUFFER |= 0XFE;
  }
  __delay_cycles(5);  //發送數據
  SCL_L;
  __delay_cycles(5);
 }
 return BUFFER;
}
void C16_WRITEDATA(unsigned char address, unsigned char DATA)
{
 I2C_Start();
 I2C_WRITE(address);
 testACK();
 I2C_ACK();
 I2C_WRITE(0x00);
 testACK();
 I2C_ACK();
 I2C_WRITE(DATA);
 I2C_STOP();
}
unsigned char C16_READEDATA(unsigned char address)
{
 unsigned char READDATA;
 I2C_Start();
 I2C_WRITE(0XA1);
 testACK();
 I2C_ACK();
 I2C_WRITE(address);
 I2C_Start();
 testACK();
 I2C_ACK();
 I2C_WRITE(0XA1);
 READDATA = I2C_READ();
 I2C_STOP();
 return READDATA;
}
int main(void)
{
    const int DATA = 0X88;
 unsigned char READBUFFER;
 WDTCTL = WDTPW + WDTHOLD;
 P10DIR |= BIT1 + BIT2;
 P2DIR |= BIT0;
 P2OUT &= ~BIT0;
 C16_WRITEDATA(0X00, DATA);
 __delay_cycles(5);
 READBUFFER = C16_READEDATA(0X00);
 while (1)
 {
  if (READBUFFER == 0X88)
  {
   P2OUT |= BIT0;
  } else {
   P2OUT &= ~ BIT0;
  }
  __delay_cycles(15);
 }
}


上?,F易電子元器件有限公司 版權所有 未經授權禁止復制或鏡像

CopyRight 2020-2025 www.urqm.cn All rights reserved   滬ICP備2020031792號

友情鏈接:

電話

易經理

18019251567

微信

易經理

易經理

頂部

咨詢
主站蜘蛛池模板: 亚洲国产成人91精品 | 一个人看的www高清观看 | 人人牛牛 | 伊人综合在线 影院 | 丁香花成人电影 | 久久夜色精品国产飘飘 | 乳交高H糙汉宠文 | 色91视频| 97在线中文字幕观看视频 | 亚洲视频一区在线 | 欧美日本中文字幕 | 女人做爰高潮呻吟17分钟 | 黄色国产 | 苍井空a v免费视频 苍井空a 集在线观看网站 | 国产仑乱老女人 | 亚洲性夜色噜噜噜网站2258KK | 久久久精品色情天美 | 国产免费网站看v片在线 | 中文在线资源链接天堂 | 国产AV电影区二区三区曰曰骚网 | 蜜桃色欲AV久久无码精品软件 | 日本又色又爽又黄又免费网站 | 国产一级视频在线观看网站 | 国产成人高清精品免费软件 | 精品一区二区三区高清免费观看 | 亚洲欧美日韩中字视频三区 | 欧洲专线二三四区 | 丝袜诱惑在线视频 | 欧美激情一区二区三区视频 | 三妻四妾高清完整版在线观看免费 | 欧美日韩亚洲综合另类ac | 婷婷色九月综合激情丁香 | 欧美日韩精品无码免费看A片 | 一个人看www免费 | 午夜福利影院私人爽 | 麻豆国产96在线日韩麻豆 | 欧美女人的阴户毛茸茸的 | 日本最新中文字幕 | 激情射精爽到偷偷C视频无码 | 娇吟水荡浪妇 | 国产在线不卡 |