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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? i2c.c

?? msp430模擬iic程序,讀寫外部eeprom
?? C
字號:
#include "msp430x14x.h"
#include "i2c.h"

#define   add_max   0x7f  //EEPROM換頁判斷

extern void delay(unsigned int time);//延時子程序
/**********************************************************************/
//函數功能: Stop_I2總線,即發送I2C起始條件.
//函數原型: void Start_I2c(void);
//入口:無C();	//寫入完畢停止總線
//出口:無
/**********************************************************************/
void Start_I2C(void);
void Start_I2C(void)
{
  iic_port_ini(); //初始化SDA,SCL輸出高電平
  delay(250);
  CLR_SDA();   	  //發送起始信號
  delay(250);     //起始條件鎖定時間大于4μs
  CLR_SCL();   	  //鉗住I2C總線,準備發送或接收數據
  delay(100);
}
/**********************************************************************/
//函數功能: 結束I2C總線,即發送I2C結束條件.
//函數原型: void  Stop_I2c();
//入口:無
//出口:無
/**********************************************************************/
void Stop_I2C(void);
void Stop_I2C(void)
{
  SDA_OUT();
  CLR_SDA();  
  SET_SCL();  	//發送結束條件的時鐘信號,結束條件建立時間大于4μs
  delay(250);
  SET_SDA();  	//發送I2C總線結束信號
  delay(100);
}
/**********************************************************************/
//函數功能:將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對
//       此狀態位進行操作.(不應答或非應答都使ack=0)
//     	 發送數據正常,ack=1; ack=0表示被控器無應答或損壞。
//函數原型: void  SendByte(uchar c);
//入口:c--要發送的數據
//出口:返回0表示未接到應答,1表示接到應答
/**********************************************************************/
unsigned char SendByte(unsigned char cc);
unsigned char SendByte(unsigned char cc)
{
  unsigned char BitCnt;
  unsigned int i=0;
  
  SDA_OUT();
  CLR_SCL();//拉低時鐘
  for(BitCnt=0;BitCnt<8;BitCnt++)
  {
    CLR_SCL();//拉低時鐘
    if((cc&0x80)==0x80)
      SET_SDA();
    else
      CLR_SDA();
    delay(100);
    SET_SCL();
    delay(100);
    cc=cc<<1;
  }
  CLR_SCL();//8位發送完后釋放數據線,準備接收應答位
  delay(200);
  SDA_IN();
  SET_SCL();
  BitCnt = 0;
  while((SDA&IICPORTIN)==SDA)
  {
    i++;
    if(i>500)
    {
      BitCnt=1;
      break;
    }
  }
  CLR_SCL();
  SDA_OUT();
  return BitCnt;
}
/**********************************************************************/
//函數功能: 用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號),
//         發完后請用應答函數應答從機。
//函數原型: uchar  RcvByte();帶參數返回
//入口:無
//出口:返回讀取到的總線數據
/**********************************************************************/
unsigned char RcvByte(void);
unsigned char RcvByte(void)
{
  unsigned char retc;
  unsigned char BitCnt;
  
  retc=0;
  SDA_IN();                       //置數據線為輸入方式
  for(BitCnt=0;BitCnt<8;BitCnt++)
  {
      SET_SCL();//置時鐘線為高使數據線上數據有效
      delay(100);
      retc<<=1;
      if((SDA&IICPORTIN)==SDA)
        retc=retc+1;//讀數據位,接收的數據位放入retc中
      CLR_SCL();
      delay(100);
  }
  SDA_OUT();                   //置數據線為輸出方式
  return(retc);
}
/**********************************************************************/
//函數功能: 主控器進行應答信號(可以是應答或非應答信號,由參數a決定)
//      a=0不發送應答信號應答子函數
//函數原型:  void Ack_I2c(uchar a);
//入口:a--決定是否要發送應答信號,a=0不發送應答信號應答子函數
//出口:無
/**********************************************************************/
void Ack_I2c(unsigned char aa);
void Ack_I2c(unsigned char aa)
{
  SDA_OUT();
  CLR_SCL();
  if(aa==0) SET_SDA();     //在此發出應答或不發送應答信號
     else  CLR_SDA();
  delay(100);
  SET_SCL();
  delay(100);             //時鐘低電平周期大于4μs
  CLR_SCL();             //清時鐘線,鉗住I2C總線以便繼續接收
}
/**********************************************************************/
//函數功能:寫數據到EEPROM
//函數原型:void write_in(uint addr,uchar data)
//入口:eaddr-EEPROM片地址,addr--所要寫入數據的地址,wdata_addr--所要寫入的數據首地址,lenth所要寫入數據長度
//出口:無
/**********************************************************************/
void write_in(unsigned char eaddr,unsigned int addr,unsigned char *wdata_addr,unsigned int lenth);
void write_in(unsigned char eaddr,unsigned int addr,unsigned char *wdata_addr,unsigned int lenth)
{
  _DINT();
  Start_I2C();//啟動總線
  SendByte(0xa0+eaddr);//外部地址+控制數據
  SendByte(addr/256);//尋址EEPROM寫命令,寫入地址高低字節地址
  SendByte(addr%256);
  for(;lenth>0;lenth--)
  {
    SendByte(*wdata_addr);//寫入數據
    if((addr&add_max)==add_max)//換頁判斷
    {
         Stop_I2C();
         delay(20000);
         Start_I2C();//啟動總線
         SendByte(0xa0+eaddr);
         SendByte((addr+1)/256);//尋址EEPROM寫命令,寫入地址高低字節地址
         SendByte((addr+1)%256);
    }
    wdata_addr++;
    addr++;
  }
  Stop_I2C();
  delay(7000);
  _EINT();
}
/**********************************************************************/
//函數功能:從EEPROM某個地址讀出數據
//函數原型:void read_out(uint addr)
//入口:eaddr-EEPROM片地址,addr--所要讀出數據的地址,rdata_addr--RAM中存放數據的首地址,lenth--讀取數據的長度
//出口:無
/**********************************************************************/
void read_out(unsigned char eaddr,unsigned int addr,unsigned char *rdata_addr,unsigned int lenth);
void read_out(unsigned char eaddr,unsigned int addr,unsigned char *rdata_addr,unsigned int lenth)
{
  _DINT();
  Start_I2C(); //啟動總線
  SendByte(0xa0+eaddr);//外部地址+控制數據
  SendByte(addr/256);//尋址EEPROM寫命令,寫入地址高低字節地址
  SendByte(addr%256);
  Start_I2C(); //啟動總線
  SendByte(0xa0+eaddr+0x01);//尋址EEPROM讀命令
  for(;lenth>0;lenth--)
  {
      *rdata_addr=RcvByte();//讀取數據
      if(lenth==1)
        Ack_I2c(0);
      else
        Ack_I2c(1);
      rdata_addr++;
  }
  Stop_I2C();	//讀完停止總線
  _EINT();
}

/**********************************************************************/
//函數功能:寫數據到EEPROM
//函數原型:void write_in(uint addr,uchar data)
//入口:addr--所要寫入數據的地址,wdata_addr--所要寫入的數據首地址,lenth所要寫入數據長度
//出口:無
/**********************************************************************/
void write_in_byte(unsigned char eaddr,unsigned int addr,unsigned char dat);
void write_in_byte(unsigned char eaddr,unsigned int addr,unsigned char dat)
{
  _DINT();
  Start_I2C();//啟動總線
  SendByte(0xa0+eaddr);//外部地址+控制數據
  SendByte(addr/256);//尋址EEPROM寫命令,寫入地址高低字節地址
  SendByte(addr%256);
  SendByte(dat);
  Stop_I2C();
  delay(700);
  _EINT();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99麻豆久久久国产精品免费优播| 午夜久久福利影院| 成人午夜视频网站| 中文字幕精品一区二区三区精品| 亚洲视频每日更新| 国产精品白丝jk黑袜喷水| 欧美日韩精品系列| 天天做天天摸天天爽国产一区 | 国产精品视频在线看| 国产·精品毛片| 国产欧美日韩中文久久| 风间由美一区二区三区在线观看| 国产人久久人人人人爽| 成人午夜精品在线| 亚洲男人电影天堂| 欧美最新大片在线看| 丝袜诱惑亚洲看片| 欧美丰满高潮xxxx喷水动漫| 美腿丝袜一区二区三区| 精品国产3级a| 成人高清视频在线观看| 欧美一区二区视频网站| 日韩电影在线看| 色婷婷av一区| 男人的j进女人的j一区| 欧美精品一区二区精品网| 成人小视频免费在线观看| 一区二区三区四区精品在线视频| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲电影一区二区三区| 欧美一级高清大全免费观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美精品在线| 成人高清伦理免费影院在线观看| 综合中文字幕亚洲| 欧美裸体bbwbbwbbw| 国产在线播放一区二区三区| 国产精品视频免费看| 欧美久久高跟鞋激| 国产一区在线观看视频| 亚洲h动漫在线| 久久久久久久免费视频了| 99精品久久久久久| 久久99久国产精品黄毛片色诱| 国产喂奶挤奶一区二区三区| 欧洲国产伦久久久久久久| 午夜天堂影视香蕉久久| 久久久精品黄色| av电影一区二区| 亚洲一区二区三区四区五区黄| 国产欧美一区二区三区在线老狼| 欧美精品一卡两卡| 99免费精品在线| 国产一区二区三区在线观看免费视频 | 国产精品久久久久影院亚瑟 | 亚洲精品国产第一综合99久久 | 亚洲成人免费av| 国产日韩欧美精品电影三级在线| 欧美在线视频全部完| 国产美女视频91| 偷拍与自拍一区| 国产精品毛片a∨一区二区三区| 欧美精品一级二级三级| av资源站一区| 国产乱码精品一品二品| 日韩精品色哟哟| 亚洲资源中文字幕| 成人免费一区二区三区在线观看| 99精品黄色片免费大全| 国产精品一区二区黑丝| 久久99精品一区二区三区三区| 亚洲制服欧美中文字幕中文字幕| 亚洲精品一区二区在线观看| 欧美精品自拍偷拍动漫精品| 色综合激情五月| 天堂av在线一区| 亚洲精品一区二区精华| 日韩欧美综合在线| 91成人在线精品| 国产精品66部| 国产麻豆精品一区二区| 国产精品水嫩水嫩| 久久亚洲精华国产精华液 | 国产精品1区2区| 久久99深爱久久99精品| 污片在线观看一区二区| 日本欧美一区二区| 日韩高清不卡一区二区| 亚洲大尺度视频在线观看| 一区二区在线观看不卡| 一区二区在线观看视频在线观看| 亚洲黄色小视频| 伊人开心综合网| 亚洲午夜电影在线| 五月天一区二区| 夜夜精品视频一区二区| 亚洲天天做日日做天天谢日日欢| 欧美国产成人在线| 精品国产免费一区二区三区香蕉 | 亚洲国产精品精华液ab| 欧美tickle裸体挠脚心vk| 亚洲精品在线观看视频| 久久亚洲二区三区| 欧美国产日韩a欧美在线观看| 亚洲国产精品av| 国产精品―色哟哟| 亚洲精品欧美激情| 亚洲婷婷在线视频| 亚洲bt欧美bt精品| 麻豆91精品91久久久的内涵| 国产精品久久久久桃色tv| 久久蜜桃av一区精品变态类天堂| 日韩欧美综合在线| 欧美午夜精品一区| 亚洲国产欧美日韩另类综合| 国产日产亚洲精品系列| 亚洲va韩国va欧美va精品| 成人黄色av电影| 欧美tk—视频vk| 日韩在线a电影| 一本久久综合亚洲鲁鲁五月天| 久久美女艺术照精彩视频福利播放| 午夜免费久久看| 91麻豆.com| 国产精品久久久久久久久果冻传媒| 精品一区二区av| 欧美一区二区三区成人| 亚洲地区一二三色| 欧美在线你懂的| 洋洋成人永久网站入口| av激情亚洲男人天堂| 国产精品视频yy9299一区| 国产一区二区网址| 久久久久综合网| 国产一区二区三区日韩| 久久综合国产精品| 国产自产视频一区二区三区| 精品久久国产老人久久综合| 青娱乐精品视频| 日韩无一区二区| 日韩国产欧美在线观看| 91精品久久久久久蜜臀| 免费在线看成人av| 欧美一区二区不卡视频| 日本不卡视频在线观看| 日韩欧美一二三区| 九一久久久久久| 久久久99精品免费观看不卡| 韩国午夜理伦三级不卡影院| 亚洲精品一线二线三线无人区| 久久99九九99精品| 欧美激情一区不卡| 91在线观看一区二区| 亚洲精品成人在线| 3d成人动漫网站| 久久精工是国产品牌吗| 久久婷婷国产综合国色天香| 国产91丝袜在线播放0| 中文无字幕一区二区三区| 91在线视频免费观看| 一区二区激情小说| 欧美视频精品在线观看| 日韩 欧美一区二区三区| 欧美成人官网二区| 成人中文字幕合集| 亚洲乱码中文字幕| 91精品国产一区二区三区| 另类人妖一区二区av| 国产日产亚洲精品系列| 在线视频欧美区| 免费三级欧美电影| 国产免费观看久久| 色综合天天综合给合国产| 亚洲综合色丁香婷婷六月图片| 欧美日韩免费一区二区三区视频| 青青草国产精品97视觉盛宴| 久久精品亚洲一区二区三区浴池 | 69久久99精品久久久久婷婷| 久久精品999| 一区在线观看视频| 91精品国产91综合久久蜜臀| 国产一区二区视频在线播放| 亚洲综合成人在线| 久久综合一区二区| 91黄色免费网站| 国产最新精品免费| 夜夜爽夜夜爽精品视频| 久久九九99视频| 欧美日韩中字一区| 国产盗摄一区二区| 午夜视黄欧洲亚洲| 国产精品网曝门| 日韩一区二区三区四区五区六区| 成人激情文学综合网| 天天色天天操综合| 国产精品不卡视频| 欧美mv日韩mv| 在线观看日韩一区| 国产成人av在线影院| 强制捆绑调教一区二区|