新聞中心

        EEPW首頁 > 手機(jī)與無線通信 > 牛人業(yè)話 > 例說單片機(jī)數(shù)據(jù)通信之模擬IIC通信

        例說單片機(jī)數(shù)據(jù)通信之模擬IIC通信

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

          void writeByte(unsigned char dat)

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

          {

          unsigned char i = 0;

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

          {

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

          if(dat & 0x80) set();

          else clr();

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

          dat <<= 1;

          }

          clrSCL();

          }

          unsigned char readByte()

          {

          unsigned char i = 0,tmp = 0;

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

          {

          clrSCL(); //拉低時鐘線

          tmp <<= 1; //準(zhǔn)備讀取數(shù)據(jù)

          setSCL(); //拉高時鐘線

          if(SDA) tmp |= 0x01;

          }

          clrSCL();

          return tmp;

          }

          AT24C02讀寫操作

          void writeAT24XX(unsigned char addr,unsigned char dat)

          {

          startbit(); //起始信號

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

          respond();

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

          respond();

          writeByte(dat); //數(shù)據(jù)

          respond();

          stopbit(); //停止

          }

          unsigned char readAT24XX(unsigned char addr)

          {

          unsigned char dat;

          startbit(); //起始信號

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

          respond();

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

          respond();

          startbit(); //起始信號

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

          respond();

          dat = readByte(); //數(shù)據(jù)

          stopbit(); //停止

          return dat;

          }

          主函數(shù)部分內(nèi)容以及程序運(yùn)行效果:

          void main()

          {

          unsigned char dat;

          initUart();

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

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

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

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

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

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

          sendByte(dat + '0');

          while(1);

          }

        模擬信號相關(guān)文章:什么是模擬信號


        51單片機(jī)相關(guān)文章:51單片機(jī)教程


        pic相關(guān)文章:pic是什么


        單片機(jī)相關(guān)文章:單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)視頻教程


        單片機(jī)相關(guān)文章:單片機(jī)工作原理


        數(shù)字通信相關(guān)文章:數(shù)字通信原理


        通信相關(guān)文章:通信原理



        上一頁 1 2 下一頁

        關(guān)鍵詞: IIC 單片機(jī) SDA

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 金乡县| 新兴县| 开阳县| 宣汉县| 朔州市| 承德县| 齐齐哈尔市| 福清市| 张家界市| 上林县| 建宁县| 闽清县| 根河市| 乌审旗| 炎陵县| 获嘉县| 凉山| 晋宁县| 杨浦区| 化隆| 西充县| 乳山市| 凉山| 嫩江县| 镇安县| 睢宁县| 年辖:市辖区| 泾源县| 邹平县| 盈江县| 读书| 绍兴县| 象山县| 锦州市| 连江县| 闵行区| 大厂| 清新县| 白玉县| 南丰县| 孝感市|