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

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

?? eeprom.h

?? 430讀寫(xiě)IIC總線以及中斷控制程序
?? H
字號(hào):
#ifndef EEPROM_H
#define EEPROM_H

#include <msp430x41x.h>

#define SDA_1  P2OUT |=BIT3   //==SDA 接P2.3 ;  SCL接 P2.4 ;     WP接 地;    電源接P2.5;
#define SDA_0  P2OUT &= ~BIT3 
#define SCL_1  P2OUT |=BIT4
#define SCL_0  P2OUT &=~BIT4

#define ee_on  P2OUT ^= BIT5      //FM24CL02供電
#define ee_off P2OUT &=~BIT5      //FM24CL02斷電
#define uint unsigned int
#define uchar unsigned char
#define ulint unsigned long 
#define SENDCOM  0xa0
#define RECCOM   0Xa1 
uchar ack;
//***********************************************************************************
void Start_I2c(void);
void Stop_I2c(void);
void  SendByte(unsigned char  c);
unsigned char  RcvByte(void);
void Ack_I2c(unsigned char a);
unsigned char IRcvStr(uchar suba1,uchar *s1,uchar length);
unsigned char ISendStr(uchar suba,uchar *s,uchar length);
unsigned char TestAck(void);
/*******************************************************************
                     起動(dòng)總線函數(shù)               
函數(shù)原型: void  Start_I2c();  
功能:       啟動(dòng)I2C總線,即發(fā)送I2C起始條件.
  
********************************************************************/
void Start_I2c(void)
{
  _NOP();
  _NOP();
  _NOP();
  SDA_1;   /*發(fā)送起始條件的數(shù)據(jù)信號(hào)*/
  _NOP();
  SCL_1;
  _NOP();    /*起始條件建立時(shí)間大于4.7us,延時(shí)*/
  _NOP();
  _NOP();
  _NOP();
  _NOP();    
  SDA_0;   /*發(fā)送起始信號(hào)*/
  _NOP();    /* 起始條件鎖定時(shí)間大于4μs*/
  _NOP();
  _NOP();
  _NOP();
  _NOP();       
  SCL_0;   /*鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) */
  _NOP();
  _NOP();
}
/*******************************************************************
                      結(jié)束總線函數(shù)               
函數(shù)原型: void  Stop_I2c();  
功能:       結(jié)束I2C總線,即發(fā)送I2C結(jié)束條件.
  
********************************************************************/
void Stop_I2c(void)
{
   _NOP();
  _NOP();
  _NOP();  
  SDA_0;  /*發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào)*/
  _NOP();   /*發(fā)送結(jié)束條件的時(shí)鐘信號(hào)*/
  SCL_1;  /*結(jié)束條件建立時(shí)間大于4μs*/
  _NOP();
  _NOP();
  _NOP();
  _NOP();
  _NOP();
  SDA_1;  /*發(fā)送I2C總線結(jié)束信號(hào)*/
  _NOP();
  _NOP();
  _NOP();
  _NOP();
  _NOP();
 
}
/*******************************************************************
                 字節(jié)數(shù)據(jù)傳送函數(shù)               
函數(shù)原型: void  SendByte(uchar c);
功能:  將數(shù)據(jù)c發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待應(yīng)答,并對(duì)
     此狀態(tài)位進(jìn)行操作.(不應(yīng)答或非應(yīng)答都使ack=0 假)     
     發(fā)送數(shù)據(jù)正常,ack=1; ack=0表示被控器無(wú)應(yīng)答或損壞。
********************************************************************/
void  SendByte(unsigned char  c)
{
 unsigned char  BitCnt;
 
 for(BitCnt=0;BitCnt<8;BitCnt++)  /*要傳送的數(shù)據(jù)長(zhǎng)度為8位*/
    {
     if((c<<BitCnt)&0x80) SDA_1;   /*判斷發(fā)送位*/
       else  SDA_0;                
     _NOP();
     SCL_1;               /*置時(shí)鐘線為高,通知被控器開(kāi)始接收數(shù)據(jù)位*/
      _NOP(); 
      _NOP();               /*保證時(shí)鐘高電平周期大于4μs*/
      _NOP();
      _NOP();
      _NOP();         
      SCL_0; 
    }
    
    _NOP();
    _NOP();
    SDA_1;               /*8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位*/
    _NOP();
    _NOP();   
    SCL_1;
    _NOP();
    _NOP();
    _NOP();
    SCL_0;
    _NOP();
    _NOP();
}
/*******************************************************************
                 字節(jié)數(shù)據(jù)傳送函數(shù)               
函數(shù)原型: uchar  RcvByte();
功能:  用來(lái)接收從器件傳來(lái)的數(shù)據(jù),并判斷總線錯(cuò)誤(不發(fā)應(yīng)答信號(hào)),
     發(fā)完后請(qǐng)用應(yīng)答函數(shù)。  
********************************************************************/	
unsigned char  RcvByte(void)
{
  unsigned char  retc;
  unsigned char BitCnt;
  
  retc=0; 
  SDA_1;             /*置數(shù)據(jù)線為輸入方式*/
  for(BitCnt=0;BitCnt<8;BitCnt++)
      {
        _NOP();           
        SCL_0;       /*置時(shí)鐘線為低,準(zhǔn)備接收數(shù)據(jù)位*/
        _NOP();
        _NOP();         /*時(shí)鐘低電平周期大于4.7μs*/
        _NOP();
        _NOP();
        _NOP();
        SCL_1;       /*置時(shí)鐘線為高使數(shù)據(jù)線上數(shù)據(jù)有效*/
        _NOP();
        _NOP();
        retc=retc<<1;
        if(TestAck()) retc=retc+1; /*讀數(shù)據(jù)位,接收的數(shù)據(jù)位放入retc中 */
        _NOP();
        _NOP(); 
      }
  SCL_0;    
  _NOP();
  _NOP();
  return(retc);
}

/********************************************************************
                     應(yīng)答子函數(shù)
原型:  void Ack_I2c(bit a);
 
功能:主控器進(jìn)行應(yīng)答信號(hào),(可以是應(yīng)答或非應(yīng)答信號(hào))
********************************************************************/
void Ack_I2c(uchar a)
{
  
  if(a==0) SDA_0;     /*在此發(fā)出應(yīng)答或非應(yīng)答信號(hào) */
        else  SDA_1;
  _NOP();
  _NOP();
  _NOP();      
  SCL_1;
    _NOP();
    _NOP();              /*時(shí)鐘低電平周期大于4μs*/
    _NOP();
    _NOP();
    _NOP();  
 SCL_0;                /*清時(shí)鐘線,鉗住I2C總線以便繼續(xù)接收*/
    _NOP();
    _NOP();    
}

unsigned char TestAck(void)
{
 unsigned char a;
 P2DIR &= ~BIT3;  //P2.3設(shè)為輸入
 a=P2IN &BIT3;
 P2DIR |= BIT3;  //P2.3恢復(fù)為輸出
 return(a); 
}
/*******************************************************************
                    向有子地址器件發(fā)送多字節(jié)數(shù)據(jù)函數(shù)               
函數(shù)原型: bit  ISendStr(uchar SENDCOM,uchar suba,ucahr *s,uchar length);  
功能:     從啟動(dòng)總線到發(fā)送地址,子地址,數(shù)據(jù),結(jié)束總線的全過(guò)程,從器件
          地址sla,子地址suba,發(fā)送內(nèi)容是s指向的內(nèi)容,發(fā)送no個(gè)字節(jié)。
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結(jié)束總線。
********************************************************************/
unsigned char ISendStr(uchar suba,uchar *s,uchar length)
{
   unsigned i;
   P2DIR|=BIT3+BIT4+BIT5;
   P2OUT|=BIT5;
   Start_I2c();               /*啟動(dòng)總線*/
   SendByte(SENDCOM);             /*發(fā)送器件地址*/
   SendByte(suba);            /*發(fā)送器件子地址*/

   for(i=0;i<length;i++)
    {   
     SendByte(*s);            /*發(fā)送數(shù)據(jù)*/
     s++;
    } 
 Stop_I2c();                  /*結(jié)束總線*/ 
 _NOP();
  _NOP();              
  _NOP();
  _NOP();
  _NOP();  
  P2OUT&=~BIT5;
  P2OUT&=~(BIT3+BIT4);
  return(1);
}
/*******************************************************************
                    向有子地址器件讀取多字節(jié)數(shù)據(jù)函數(shù)               
函數(shù)原型: bit  ISendStr(uchar RECCOM,uchar suba,ucahr *s,uchar no);  
功能:     從啟動(dòng)總線到發(fā)送地址,子地址,讀數(shù)據(jù),結(jié)束總線的全過(guò)程,從器件
          地址RECCOM,子地址suba,讀出的內(nèi)容放入s指向的存儲(chǔ)區(qū),讀no個(gè)字節(jié)。
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結(jié)束總線。
********************************************************************/
unsigned char  IRcvStr(uchar suba1,uchar *s1,uchar length)
{
   unsigned char i;
   P2DIR|=BIT3+BIT4+BIT5;
   P2OUT|=BIT5;

   Start_I2c();               /*啟動(dòng)總線*/
   SendByte(SENDCOM);            /*發(fā)送器件地址*/
   SendByte(suba1);            /*發(fā)送器件子地址*/
   Start_I2c();
   
   SendByte(RECCOM);            //D0=1為讀命令

   for(i=0;i<length;i++)
    {   
     *s1=RcvByte();               //發(fā)送數(shù)據(jù)
      Ack_I2c(0);                //發(fā)送就答位  
      s1++;
    } 
   *s1=RcvByte();
  Stop_I2c();                    //結(jié)束總線 
  _NOP();
  _NOP();              
  _NOP();
  _NOP();
  _NOP();  
  P2OUT&=~BIT5;
  P2OUT&=~(BIT3+BIT4);
  return(1);
}
#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色国产精品网站大全在线免费观看 | 国产精品一卡二卡在线观看| 欧美激情综合在线| 欧美午夜影院一区| 成人免费看的视频| 青青草国产精品97视觉盛宴| 国产精品久久久久永久免费观看| 91.xcao| 99国产精品久久久久| 久久精品国产色蜜蜜麻豆| 亚洲激情校园春色| 国产精品免费免费| 欧美成人a视频| 欧美日韩在线不卡| 色av成人天堂桃色av| 国产丶欧美丶日本不卡视频| 日本最新不卡在线| 亚洲午夜私人影院| 亚洲免费av在线| 国产精品毛片大码女人| 亚洲精品一区二区三区香蕉| 欧美另类变人与禽xxxxx| 91麻豆蜜桃一区二区三区| 国产精品亚洲第一| 精品在线观看免费| 秋霞午夜鲁丝一区二区老狼| 亚洲国产精品久久人人爱蜜臀 | 99久久久久免费精品国产| 国产综合久久久久影院| 日产精品久久久久久久性色| 亚洲免费在线看| 国产精品理论在线观看| 久久久久亚洲蜜桃| 精品对白一区国产伦| 日韩欧美在线123| 宅男噜噜噜66一区二区66| 欧美日韩在线亚洲一区蜜芽| 91蜜桃传媒精品久久久一区二区| 成人小视频免费在线观看| 国产精品主播直播| 国产精品资源在线看| 国产成人午夜精品影院观看视频| 国产麻豆视频一区二区| 极品少妇一区二区三区精品视频 | 亚洲女人的天堂| 最新日韩av在线| 自拍视频在线观看一区二区| 亚洲日本成人在线观看| 亚洲黄一区二区三区| 一区二区三区四区精品在线视频 | 国产精品天干天干在线综合| 国产无遮挡一区二区三区毛片日本| 久久亚洲一区二区三区四区| 久久久.com| 国产精品女上位| 亚洲视频一区二区免费在线观看| 亚洲精品写真福利| 婷婷夜色潮精品综合在线| 天天av天天翘天天综合网色鬼国产| 日韩专区欧美专区| 精东粉嫩av免费一区二区三区| 国产高清在线精品| jizzjizzjizz欧美| 欧美色国产精品| 欧美大黄免费观看| 欧美经典三级视频一区二区三区| 中文字幕永久在线不卡| 亚洲网友自拍偷拍| 韩国三级中文字幕hd久久精品| 国产福利精品一区| 欧美在线免费视屏| 欧美成人精品高清在线播放| 国产日韩精品一区二区三区在线| 亚洲日本在线看| 日本成人在线网站| 成人一级片在线观看| 在线欧美日韩国产| 欧美精品一区二区在线播放| 国产精品拍天天在线| 亚洲国产精品一区二区久久| 老司机午夜精品| 99精品热视频| 欧美一区二区免费视频| 国产喷白浆一区二区三区| 亚洲综合视频网| 韩日欧美一区二区三区| 91极品美女在线| 26uuu亚洲综合色| 亚洲自拍都市欧美小说| 麻豆成人91精品二区三区| 成人av电影在线观看| 日韩一区二区免费高清| 1024国产精品| 国产一区二区三区精品视频| 色偷偷88欧美精品久久久| 欧美mv日韩mv国产网站app| 亚洲视频综合在线| 国内精品久久久久影院一蜜桃| 91黄视频在线| 久久九九久精品国产免费直播| 亚洲成av人片| 不卡的av电影| 欧美www视频| 亚洲一区二区精品久久av| 国产成人在线视频网站| 欧美电影影音先锋| 亚洲精品自拍动漫在线| 国产91丝袜在线播放九色| 欧美一区欧美二区| 亚洲综合色婷婷| 波多野结衣欧美| 久久久精品人体av艺术| 日本午夜一本久久久综合| 欧美自拍偷拍一区| 亚洲欧洲av在线| 国产99一区视频免费| wwwwxxxxx欧美| 日本欧美在线观看| 欧美日韩国产中文| 亚洲一区国产视频| 91网站视频在线观看| 国产精品欧美经典| 国产精品一区免费在线观看| 欧美成人猛片aaaaaaa| 日韩高清不卡在线| 欧美亚洲图片小说| 悠悠色在线精品| 一本色道亚洲精品aⅴ| 国产精品欧美一区喷水| 国产成人免费av在线| 精品国产不卡一区二区三区| 日本91福利区| 欧美一级午夜免费电影| 日韩精品视频网| 欧美日韩欧美一区二区| 亚洲图片一区二区| 欧美日韩一区三区四区| 一区二区三区在线视频观看| 99久久精品国产精品久久| 中文字幕在线播放不卡一区| av中文一区二区三区| 亚洲欧美一区二区在线观看| 99久久精品国产精品久久| 亚洲色图视频免费播放| 91国偷自产一区二区三区观看| 国产精品第五页| 在线视频一区二区三区| 亚洲一级电影视频| 宅男在线国产精品| 久久av老司机精品网站导航| 亚洲精品在线三区| 国产成人精品网址| 中文字幕制服丝袜一区二区三区| 91在线丨porny丨国产| 中文字幕一区二区三区蜜月| 色老汉av一区二区三区| 亚洲国产综合91精品麻豆| 欧美一区二区三区在线观看 | 欧美自拍偷拍一区| 亚洲成人av福利| 91麻豆精品国产| 国产在线看一区| 综合分类小说区另类春色亚洲小说欧美| 91丝袜美女网| 天天综合天天做天天综合| 欧美一区二区日韩一区二区| 国产资源在线一区| 亚洲欧美韩国综合色| 欧美精品九九99久久| 国产麻豆精品在线| 亚洲免费在线视频一区 二区| 欧美精品亚洲二区| 国产乱子伦视频一区二区三区| 日韩一区在线免费观看| 欧美另类z0zxhd电影| 国产精品白丝av| 亚洲一区二区三区视频在线| 精品久久久久久久人人人人传媒| 成人激情动漫在线观看| 午夜影院久久久| 国产日韩欧美精品综合| 欧美日韩在线精品一区二区三区激情 | 欧美一区二区三区精品| 成人性生交大片免费看视频在线| 亚洲一区二区四区蜜桃| 久久久99免费| 欧美三级一区二区| 国产麻豆一精品一av一免费| 一区二区高清在线| 久久精品男人天堂av| 欧美日韩在线播| 成人av在线网站| 丝袜诱惑制服诱惑色一区在线观看| 久久精品人人做人人爽人人| 欧美三日本三级三级在线播放| 国产suv一区二区三区88区| 三级欧美韩日大片在线看| 国产精品久久久久久亚洲伦| 日韩美女一区二区三区| 色噜噜狠狠色综合中国|