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

QQ登錄

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

搜索
查看: 5686|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)學(xué)習(xí)中,學(xué)到IIC總線,不知道它具體有什么作用,我們用它去做什么

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:654651 發(fā)表于 2019-12-3 20:52 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:67199 發(fā)表于 2019-12-3 21:06 | 只看該作者
可以與IIC相關(guān)的硬件通信  ,沒(méi)別的用。
回復(fù)

使用道具 舉報(bào)

板凳
ID:155507 發(fā)表于 2019-12-3 21:16 | 只看該作者
I2C總線是各種總線中使用信號(hào)線最少,并具有自動(dòng)尋址、多主機(jī)時(shí)鐘同步和仲裁等功能的總線。因此,使用I2C總線設(shè)計(jì)計(jì)算機(jī)系統(tǒng)十分方便靈活,體積也小,因而在各類實(shí)際應(yīng)用中得到廣泛應(yīng)用。

I2C的運(yùn)用比如有很多傳感器或者存儲(chǔ)芯片都有I2C接口用于數(shù)據(jù)傳輸,比如AM2311溫濕度傳感器,AT24C01A型EEPROM就是I2C總線接口的。

每個(gè)器件都有一個(gè)唯一的地址識(shí)別(無(wú)論是微控制器——MCU、LCD 驅(qū)動(dòng)器、存儲(chǔ)器或鍵盤接口),而且都可以作為一個(gè)發(fā)送器或接收器(由器件的功能決定)。LCD 驅(qū)動(dòng)器只能作為接收器,而存儲(chǔ)器則既可以接收又可以發(fā)送數(shù)據(jù)。
回復(fù)

使用道具 舉報(bào)

地板
ID:25310 發(fā)表于 2019-12-3 21:25 | 只看該作者
沒(méi)買學(xué)習(xí)用的配套資料嗎?一般會(huì)有個(gè)24C02講解這一課的吧,
回復(fù)

使用道具 舉報(bào)

5#
ID:655496 發(fā)表于 2019-12-3 21:59 | 只看該作者
IIC是一種串行通信方式,就像TTL、USB等通信道理一樣的,有些芯片的通信方式就是IIC,一些單片機(jī)或arm等主控也具有IIC通信方式,就可以使二者進(jìn)行通信,比如常見(jiàn)的存儲(chǔ)器24C02/08/16...都是采用IIC方式。
回復(fù)

使用道具 舉報(bào)

6#
ID:235200 發(fā)表于 2019-12-3 22:03 | 只看該作者
傳遞數(shù)據(jù)的方式,可以用這總線方式在CPU與外設(shè)之間傳遞數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

7#
ID:647528 發(fā)表于 2019-12-3 22:05 | 只看該作者
IIC總線由一根數(shù)據(jù)線SDA和一根時(shí)鐘線SCL構(gòu)成,每個(gè)器件有一個(gè)唯一的地址識(shí)別。目前有很多半導(dǎo)體集成電路上都集成了IIC接口。利用51單片機(jī)可模擬IIC總線協(xié)議。
回復(fù)

使用道具 舉報(bào)

8#
ID:647528 發(fā)表于 2019-12-3 22:07 | 只看該作者
主要的優(yōu)點(diǎn)是其簡(jiǎn)單性,與外圍器件連接占用接口少,但不失有效性
回復(fù)

使用道具 舉報(bào)

9#
ID:437615 發(fā)表于 2019-12-3 22:22 來(lái)自手機(jī) | 只看該作者
llc為短距離數(shù)據(jù)傳輸,有很多的傳感器用的就是ii c總線,比如說(shuō)24c02,oLED,mpu6050等,總的說(shuō)來(lái)還是非常重要的
回復(fù)

使用道具 舉報(bào)

10#
ID:376767 發(fā)表于 2019-12-3 22:30 | 只看該作者
IIC總線可以掛接多個(gè)外部設(shè)備,僅通過(guò)兩根信號(hào)線即可與其他設(shè)備進(jìn)行雙向通信,實(shí)現(xiàn)系統(tǒng)功能,節(jié)省IO資源。
回復(fù)

使用道具 舉報(bào)

11#
ID:635687 發(fā)表于 2019-12-3 22:41 | 只看該作者
跟外部芯片通信的接口,比如感溫芯片18B20就是用IIC總線跟單片機(jī)通信的.
回復(fù)

使用道具 舉報(bào)

12#
ID:635687 發(fā)表于 2019-12-3 23:03 | 只看該作者
與單片機(jī)通信的接口,比如感溫芯片18B20就是通過(guò)IIC接口和單片機(jī)的.
回復(fù)

使用道具 舉報(bào)

13#
ID:584814 發(fā)表于 2019-12-4 07:46 | 只看該作者
IIC(Inter-Integrated Circuit)總線是一種由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。 IIC總線最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此IIC總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本?偩的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。IIC總線的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering), 其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。7位IIC總線可以掛接127個(gè)不同地址的IIC設(shè)備,0號(hào)"設(shè)備"作為群呼地址;10位IIC總線可以掛接更多的10位IIC設(shè)備......
如果各器件是汽車,它就是高速公路的樣子罷。
回復(fù)

使用道具 舉報(bào)

14#
ID:475993 發(fā)表于 2019-12-4 12:12 | 只看該作者
你拿個(gè)陀螺儀用一下就知道了,然后學(xué)會(huì)怎么用之后。
回復(fù)

使用道具 舉報(bào)

15#
ID:882237 發(fā)表于 2021-2-2 10:21 | 只看該作者
899976025 發(fā)表于 2019-12-3 22:05
IIC總線由一根數(shù)據(jù)線SDA和一根時(shí)鐘線SCL構(gòu)成,每個(gè)器件有一個(gè)唯一的地址識(shí)別。目前有很多半導(dǎo)體集成電路上 ...

請(qǐng)問(wèn)下IIC通信協(xié)議對(duì)于對(duì)于51單片機(jī)來(lái)說(shuō)有什么用嗎?
回復(fù)

使用道具 舉報(bào)

16#
ID:844772 發(fā)表于 2021-2-2 16:28 | 只看該作者
北辰凌朔 發(fā)表于 2021-2-2 10:21
請(qǐng)問(wèn)下IIC通信協(xié)議對(duì)于對(duì)于51單片機(jī)來(lái)說(shuō)有什么用嗎?

正好我小孩給51寫(xiě)了一個(gè)DS3231的頭文件,你看看READ和WRITE 兩個(gè)函數(shù),就明白IIC通訊過(guò)程了,不過(guò)寫(xiě)的風(fēng)格不好,看樣子是半抄半寫(xiě)的。
#ifndef _DS3231_H_
#define _DS3231_H_
sbit DS3231_SDA=P0^5;
sbit DS3231_SCL=P0^6;
sbit DS3231_SQW=P0^7;
bit ack;
#define DS3231_Write 0xD0
#define DS3231_Read 0xD1
#define DS3231_SECOND 0x00
#define DS3231_MINUTE 0x01
#define DS3231_HOUR 0x02
#define DS3231_WEEK 0x03
#define DS3231_DAY 0x04
#define DS3231_MONTH 0x05
#define DS3231_YEAR 0x06
#define DS3231_CONTROL 0x0E          //控制寄存器
#define DS3231_STATUS 0x0F          //狀態(tài)寄存器
#define DS3231_TEMPERATUREH 0x11 //溫度高字節(jié)
#define DS3231_TEMPERATUREL 0x12 //溫度低字節(jié)

void delay(uint us)
{
  while (us--);
}

void Start_I2C()
{
  DS3231_SDA=1;
  delay(1);
  DS3231_SCL=1;
  delay(5);
  DS3231_SDA=0;
  delay(5);
  DS3231_SCL=0;
  delay(2);
}

void Stop_I2C()
{
  DS3231_SDA=0;
  delay(1);
  DS3231_SCL=1;
  delay(5);
  DS3231_SDA=1;
  delay(4);
}

void SendByte(uchar c)
{
  uchar i;
  for(i=0;i<8;i++)  
  {
   if((c<<i)&0x80)
   DS3231_SDA=1; //判斷發(fā)送位
   else
   DS3231_SDA=0;
   delay(1);
   DS3231_SCL=1; //置高,通知接收數(shù)據(jù)位
   delay(5);
   DS3231_SCL=0;
   }
  delay(2);
  DS3231_SDA=1; //釋放總線,接收應(yīng)答信號(hào)
  delay(2);
  DS3231_SCL=1;
  delay(3);
  //我寫(xiě)的
  if (DS3231_SDA==1)
    ack=0;
        else
          ack=1; //是否接到應(yīng)答信號(hào)
  DS3231_SCL=0;
  delay(2);
  
}

uchar RcvByte()
{
  uchar n=0;
  uchar i,retc=0;
  DS3231_SDA=1; //設(shè)為輸入方式
  for(i=0;i<8;i++)
  {
    delay(1);
    DS3231_SCL=0; //置低,準(zhǔn)備接收數(shù)據(jù)
    delay(5);
    DS3231_SCL=1; //使數(shù)據(jù)有效
    delay(3);
    retc<<=1;
    if(DS3231_SDA==1)
        retc+=1;
    delay(2);
  }
   DS3231_SCL=0;
   delay(2);
   return(retc);
}
//我寫(xiě)的
void Ack_I2C(bit a)
{
if (a==0)
  DS3231_SDA=0;         //應(yīng)答或非應(yīng)答信號(hào)
  else
   DS3231_SDA=1;
delay(3);
DS3231_SCL=1;
delay(5);
DS3231_SCL=0;
delay(2);
}
uchar write1(uchar addr,uchar write_data)
{
  Start_I2C();
  SendByte(DS3231_Write);
  if (!ack)
   {
     return 0;
        }
  delay(1);
  SendByte(addr);
  if  (!ack)
   {
     return 0;
        }
  delay(1);
  SendByte(write_data);
  if  (!ack)
   {
     return 0;
        }
  Stop_I2C();
  delay(10);
  return 1;
}

uchar read1()
{
uchar read_data;
Start_I2C();
SendByte(DS3231_Read);
if (!ack)
   {
     return 0;
        }
delay(1);
read_data = RcvByte();
if (!ack)
   {
     return 0;
        }
Ack_I2C(1);
Stop_I2C();
return read_data;
}

uchar read2(uchar add)
{
  Start_I2C();
  SendByte(DS3231_Write);
  if (!ack)
   {
     return 0;
        }
  delay(1);
  SendByte(add);
  if (!ack)
   {
     return 0;
        }
  return(read1());
}
#endif
回復(fù)

使用道具 舉報(bào)

17#
ID:146782 發(fā)表于 2021-2-2 19:13 | 只看該作者
與IIC相關(guān)的硬件通信,如24c02、pcf8591、oLED、mpu6050、DS3231等,是電子硬件里很重要的一部分
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表