機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
MSP430 24C64控制程序
MSP430 24C64控制程序
 更新時(shí)間:2008-7-26 20:34:34  點(diǎn)擊數(shù):4
【字體: 字體顏色
#ifndef _I2C_H
#define _I2C_H

#define SDA_1       P4OUT|=0x02               //SDA = 1
#define SDA_0       P4OUT&=~0x02              //SDA = 0
#define SCL_1       P4OUT|=0x01               //SCL = 1
#define SCL_0       P4OUT&=~0x01              //SCL = 0
#define SDA_IN      P4DIR&=~0x02;             //I/O口為輸入
#define SDA_OUT     P4DIR|=0x02               //I/0口為輸出
#define J_SDA_1_or_0   (P4IN&0x02)==0x02
//--------------------------------------------
//--------以下為24C64讀寫子函數(shù)
//DELAY 函數(shù)程序//功能:延時(shí)子程序
//==========================================
static void Delay(unsigned int n)
{
while(n!=0)
{n--;}
}
//=========================================
//START 函數(shù)程序
//功能:開始閃存操作
//==========================================
void Start(void)
{
  SDA_OUT;
  SDA_1;
  Delay(10);
  SCL_1;
  Delay(10);
  SDA_0;
  Delay(10);
  SCL_0;
  Delay(10);
}

//=========================================
//STOP 函數(shù)程序
//功能:停止閃存操作
//==========================================
void Stop(void)
{
  SDA_0;
  Delay(10);
  SCL_1;
  Delay(10);
  SDA_1;
  Delay(10);
}



void TX_Byte(unsigned char WriteData)
{
  unsigned char i,j;
  j=WriteData;
  SDA_OUT;
  for (i=0; i<8; i++)
  {
    if ((j&0x80)==0)
    { SDA_0;}
    else
    { SDA_1;}
    j <<=1;
    Delay(10);
    SCL_1;
    Delay(10);
    SCL_0;
    Delay(10);
  }
}



unsigned char RX_Byte(void)
{
  unsigned char i;
  unsigned char TempData = 0;
  SDA_IN;
  for (i=0; i<8; i++)
  {
    Delay(10);
    SCL_1;
    Delay(10);
    TempData <<= 1;
    if (J_SDA_1_or_0)
    { TempData++; }
    SCL_0;
    Delay(10);
  }
  SDA_OUT;
  return(TempData);
}
//=========================================
//ACK 函數(shù)程序
//功能:掛高電平表示閃存時(shí)鐘信號(hào)
//==========================================
void ReceiveAck(void)
{
  SDA_IN;
  SCL_1;
  Delay(10);
  while (J_SDA_1_or_0)
  {  }
  SCL_0;
  SDA_OUT;
  Delay(10);
}



unsigned char ReadWord(unsigned long int unit/*address*/)
{
  unsigned char LowAdd  = 0;
  unsigned char HighAdd = 0;
  unsigned char  TempData = 0;
  LowAdd  = (unsigned char)unit;
  HighAdd = (unsigned char)(unit >> 8);
  SDA_OUT;
  Start();
  TX_Byte(0xa0);
  ReceiveAck();
  TX_Byte(HighAdd);
  ReceiveAck();
  TX_Byte(LowAdd);
  ReceiveAck();
  Start();
  TX_Byte(0xa1);
  ReceiveAck();
  TempData  = RX_Byte();  
  Stop();
  Delay(8000);  
  return(TempData);
}


void WriteWord(unsigned long int unit/*address*/, unsigned char WriteData)
{
  unsigned char LowAdd  = 0;
  unsigned char HighAdd = 0;
  LowAdd  = (unsigned char)unit;
  HighAdd = (unsigned char)(unit >> 8);
  Start();
  TX_Byte(0xa0);
  ReceiveAck();
  TX_Byte(HighAdd);
  ReceiveAck();
  TX_Byte(LowAdd);
  ReceiveAck();
  TX_Byte(WriteData);
  ReceiveAck();
  Stop();
  Delay(8000);
}

#endif
  • 上一篇: MSP430液晶SED1335控制器程序
  • 下一篇: 用MSP430實(shí)現(xiàn)的嵌入式因特網(wǎng)終端設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1