a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 手機與無線通信 > 牛人業話 > 例說單片機數據通信之模擬IIC通信

例說單片機數據通信之模擬IIC通信

作者:Liklon 時間:2014-06-25 來源:電子產品世界 收藏

  void writeByte(unsigned char dat)

本文引用地址:http://www.j9360.com/article/248808.htm

  {

  unsigned char i = 0;

  for(i = 0;i < 8;i++)

  {

  clrSCL(); //拉低時鐘線,改變線的電平

  if(dat & 0x80) set();

  else clr();

  setSCL(); //SDA電平穩定后,拉高時鐘線

  dat <<= 1;

  }

  clrSCL();

  }

  unsigned char readByte()

  {

  unsigned char i = 0,tmp = 0;

  for(i = 0;i < 8;i++)

  {

  clrSCL(); //拉低時鐘線

  tmp <<= 1; //準備讀取數據

  setSCL(); //拉高時鐘線

  if(SDA) tmp |= 0x01;

  }

  clrSCL();

  return tmp;

  }

  AT24C02讀寫操作

  void writeAT24XX(unsigned char addr,unsigned char dat)

  {

  startbit(); //起始信號

  writeByte(0xa0); //器件地址

  respond();

  writeByte(addr); //器件內部地址

  respond();

  writeByte(dat); //數據

  respond();

  stopbit(); //停止

  }

  unsigned char readAT24XX(unsigned char addr)

  {

  unsigned char dat;

  startbit(); //起始信號

  writeByte(0xa0); //器件地址

  respond();

  writeByte(addr); //器件內部地址

  respond();

  startbit(); //起始信號

  writeByte(0xa1); //器件地址

  respond();

  dat = readByte(); //數據

  stopbit(); //停止

  return dat;

  }

  主函數部分內容以及程序運行效果:

  void main()

  {

  unsigned char dat;

  initUart();

  sendString("UART INIT OK!!!n"); //串口通信初始化

  sendString("write 0x05 --> addr 0x00 n");//寫入5到期間內部地址0

  writeAT24XX(0x00,0x05); //寫入數據

  sendString("read dat <-- addr 0x00 n"); //讀出寫入數據

  dat = readAT24XX(0x00); //讀出數據

  sendString("dat-->"); //打印

  sendByte(dat + '0');

  while(1);

  }

模擬信號相關文章:什么是模擬信號


51單片機相關文章:51單片機教程


pic相關文章:pic是什么


單片機相關文章:單片機教程


單片機相關文章:單片機視頻教程


單片機相關文章:單片機工作原理


數字通信相關文章:數字通信原理


通信相關文章:通信原理



上一頁 1 2 下一頁

關鍵詞: IIC 單片機 SDA

評論


相關推薦

技術專區

關閉