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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 25271|回復(fù): 1
收起左側(cè)

51單片機(jī)I2C通信通信程序(帶詳細(xì)注釋?zhuān)?/span>

[復(fù)制鏈接]
ID:80436 發(fā)表于 2015-5-20 18:16 | 顯示全部樓層 |閱讀模式
I2C 總線(xiàn)是一雙線(xiàn)串行總線(xiàn), 它提供一小型網(wǎng)絡(luò)系統(tǒng),為總線(xiàn)上的電路共享公共的總線(xiàn)。總線(xiàn)上的器件有單片機(jī)、LCD 驅(qū)動(dòng)器以及上E2PROM 器等等。自從菲利普公司提出I2C總 線(xiàn)規(guī)范以來(lái),I2C器件得到了廣泛的應(yīng)用。I2C器件的應(yīng)用大大減少了電路間連線(xiàn),減小了電路板尺寸,降低了硬件成本,并提高了系統(tǒng)可靠性。


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

void I2Cstart(void)
{
        SDA =1;
        Delay();        //延時(shí)函數(shù)
        SCL = 1;   //主要的就是在時(shí)鐘信號(hào)為高電平的時(shí)候,
        Delay();        //數(shù)字信號(hào)有一個(gè)從高到底的跳變
        SDA =0;
        Delay();
        SCL = 0;
}
void I2Cstop(void)
{
        SCL = 0;
        Delay();        //延時(shí)函數(shù)
         SDA =0;  //主要的就是在時(shí)鐘信號(hào)為高電平的時(shí)候,
        Delay();        //數(shù)字信號(hào)有一個(gè)從低到高的跳變
        SCL = 1;
        Delay();
        SDA =1;
        Delay();
}
void ack(void)         //主要的是主機(jī)給重機(jī)發(fā)送數(shù)據(jù)后,檢測(cè)重機(jī)得應(yīng)答。
{
        uchar i;
        SCL = 1; //將時(shí)鐘信號(hào)拉高準(zhǔn)備接受,應(yīng)答!
        Delay();
        while(SDA == 1&&i<250)//防止時(shí)間長(zhǎng)時(shí)間的等待因此增加i<250
        {
                i++;
        }
        SCL = 0;  //釋放時(shí)鐘總線(xiàn)準(zhǔn)備下一次數(shù)據(jù)的傳輸
        Delay();
}
void nack(void)    //主要的是主機(jī)讀取重機(jī)得數(shù)據(jù),讀到最后一個(gè)字符的時(shí)候
{
        SDA = 0;  //重機(jī)回復(fù)的非應(yīng)答
        Delay();
        SCL = 1;
        Delay();
        SCL = 0;
}
void iicwrite(uchar dat)
{
        uchar i;
        for(i=0;i<8;i++)
        {
           SCL = 0;//釋放時(shí)鐘信號(hào)  讓數(shù)據(jù)總線(xiàn)變化
           Delay();
           if(dat&&0x80)   //將數(shù)據(jù)從高位到底位依次的付給SDA
           {
                   SDA = 1;
           }       
           else
           {
                   SDA = 0;
           }
           dat = dat << 1;
           Delay();
           SCL = 1;//將數(shù)據(jù)從高位到底位依次的發(fā)送出去
           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;
}


相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:871014 發(fā)表于 2021-1-29 11:00 | 顯示全部樓層
void iicwrite(uchar dat)里
if(dat&&0x80)  //將數(shù)據(jù)從高位到底位依次的付給SDA
應(yīng)該是 if(dat&0x80)  吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品永久 | 国产综合网址 | 精品中文视频 | 污污免费网站 | 99亚洲精品 | 久久久久久成人网 | 国产精品99久久久久久动医院 | 鸡毛片 | 日韩免 | 亚洲一区中文字幕 | 成人妇女免费播放久久久 | 欧美成人精品一区二区男人看 | www.久久| 99精品在线观看 | 青娱乐国产 | 日韩av一区二区在线观看 | 国产亚洲精品久久久久久豆腐 | www.狠狠干 | 久久国 | 国产激情在线播放 | 91高清视频在线观看 | 国产精品高清一区二区 | 韩国精品一区二区三区 | 涩涩视频在线播放 | 一本大道久久a久久精二百 国产成人免费在线 | 成人在线一区二区三区 | a在线观看| 在线观看欧美日韩视频 | 黄色大片网站 | 中文字幕第一页在线 | 99国产在线 | 在线视频h | 亚洲国产一区二区三区在线观看 | 国产精品视频不卡 | 国产精品成人久久久久 | 日本黄色免费片 | 在线视频亚洲 | 精品1区 | 天天干天天玩天天操 | 日韩日韩日韩日韩日韩日韩日韩 | 国产精品国产三级国产aⅴ浪潮 |