久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6307|回復: 0
打印 上一主題 下一主題
收起左側

單片機I2C通信程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:108615 發表于 2016-3-13 16:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
I2C 總線是一雙線串行總線, 它提供一小型網絡系統,為總線上的電路共享公共的總線。總線上的器件有單片機、LCD 驅動器以及上E2PROM 器等等。自從菲利普公司提出I2C總 線規范以來,I2C器件得到了廣泛的應用。I2C器件的應用大大減少了電路間連線,減小了電路板尺寸,降低了硬件成本,并提高了系統可靠性。


I2C通信的起始程序
void Delay(void)
{
        _nop_; _nop_; _nop_;_nop_;//此函數的頭文件為intrins.h
        _nop_; _nop_; _nop_;_nop_;
}

void I2Cstart(void)
{
        SDA =1;
        Delay();        //延時函數
        SCL = 1;   //主要的就是在時鐘信號為高電平的時候,
        Delay();        //數字信號有一個從高到底的跳變
        SDA =0;
        Delay();
        SCL = 0;
}
void I2Cstop(void)
{
        SCL = 0;
        Delay();        //延時函數
         SDA =0;  //主要的就是在時鐘信號為高電平的時候,
        Delay();        //數字信號有一個從低到高的跳變
        SCL = 1;
        Delay();
        SDA =1;
        Delay();
}
void ack(void)         //主要的是主機給重機發送數據后,檢測重機得應答。
{
        uchar i;
        SCL = 1; //將時鐘信號拉高準備接受,應答!
        Delay();
        while(SDA == 1&&i<250)//防止時間長時間的等待因此增加i<250
        {
                i++;
        }
        SCL = 0;  //釋放時鐘總線準備下一次數據的傳輸
        Delay();
}
void nack(void)    //主要的是主機讀取重機得數據,讀到最后一個字符的時候
{
        SDA = 0;  //重機回復的非應答
        Delay();
        SCL = 1;
        Delay();
        SCL = 0;
}
void iicwrite(uchar dat)
{
        uchar i;
        for(i=0;i<8;i++)
        {
           SCL = 0;//釋放時鐘信號  讓數據總線變化
           Delay();
           if(dat&&0x80)   //將數據從高位到底位依次的付給SDA
           {
                   SDA = 1;
           }       
           else
           {
                   SDA = 0;
           }
           dat = dat << 1;
           Delay();
           SCL = 1;//將數據從高位到底位依次的發送出去
           Delay();
        }
        SDA = 1;
                 Delay();
}
uchar iicread(void)
{
         uchar i,dat;
         for(i=0;i<8;i++)
         {
                SCL = 0;
                        SDA = 1;
                         Delay();
                  SCL = 1;
                         Delay();
                 dat = dat << 1;
                 if(SDA)
                 {
                          dat++;
                 }
         }
         return dat;
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产色婷婷精品综合在线播放 | 在线日韩精品视频 | 99福利视频| 日韩视频免费看 | 久久精品国产99国产 | 自拍偷拍中文字幕 | 欧美 日韩 综合 | 国产精品毛片一区二区三区 | 欧美日韩91| 国产精品不卡 | 精品91av| 亚洲伊人精品酒店 | 午夜丁香视频在线观看 | 色频 | 亚洲一区精品视频 | 国产日韩精品一区二区 | 黄色片在线观看网址 | 欧美激情在线精品一区二区三区 | 成人动慢 | 亚洲成人免费视频在线观看 | 毛片一级片 | 国产精品视频www | 成人在线中文字幕 | 国产一区二 | 国产午夜在线观看 | 一区二区三区四区av | 欧美天堂在线观看 | 91精品www | 亚洲一区二区三区国产 | 精品欧美乱码久久久久久 | 黄色一级毛片免费看 | 欧洲一区二区在线 | 成人久草 | 一二三区av| 亚洲国产欧美国产综合一区 | 久久精品一区二区三区四区 | 九九综合 | 国产亚洲精品久久19p | 韩日av片| 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 99精品久久99久久久久 |