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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機學習中,學到IIC總線,不知道它具體有什么作用,我們用它去做什么

  [復制鏈接]
跳轉到指定樓層
樓主
ID:654651 發表于 2019-12-3 20:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:67199 發表于 2019-12-3 21:06 | 只看該作者
可以與IIC相關的硬件通信  ,沒別的用。
回復

使用道具 舉報

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

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

每個器件都有一個唯一的地址識別(無論是微控制器——MCU、LCD 驅動器、存儲器或鍵盤接口),而且都可以作為一個發送器或接收器(由器件的功能決定)。LCD 驅動器只能作為接收器,而存儲器則既可以接收又可以發送數據。
回復

使用道具 舉報

地板
ID:25310 發表于 2019-12-3 21:25 | 只看該作者
沒買學習用的配套資料嗎?一般會有個24C02講解這一課的吧,
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

10#
ID:376767 發表于 2019-12-3 22:30 | 只看該作者
IIC總線可以掛接多個外部設備,僅通過兩根信號線即可與其他設備進行雙向通信,實現系統功能,節省IO資源。
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

14#
ID:475993 發表于 2019-12-4 12:12 | 只看該作者
你拿個陀螺儀用一下就知道了,然后學會怎么用之后。
回復

使用道具 舉報

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

請問下IIC通信協議對于對于51單片機來說有什么用嗎?
回復

使用道具 舉報

16#
ID:844772 發表于 2021-2-2 16:28 | 只看該作者
北辰凌朔 發表于 2021-2-2 10:21
請問下IIC通信協議對于對于51單片機來說有什么用嗎?

正好我小孩給51寫了一個DS3231的頭文件,你看看READ和WRITE 兩個函數,就明白IIC通訊過程了,不過寫的風格不好,看樣子是半抄半寫的。
#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          //狀態寄存器
#define DS3231_TEMPERATUREH 0x11 //溫度高字節
#define DS3231_TEMPERATUREL 0x12 //溫度低字節

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; //判斷發送位
   else
   DS3231_SDA=0;
   delay(1);
   DS3231_SCL=1; //置高,通知接收數據位
   delay(5);
   DS3231_SCL=0;
   }
  delay(2);
  DS3231_SDA=1; //釋放總線,接收應答信號
  delay(2);
  DS3231_SCL=1;
  delay(3);
  //我寫的
  if (DS3231_SDA==1)
    ack=0;
        else
          ack=1; //是否接到應答信號
  DS3231_SCL=0;
  delay(2);
  
}

uchar RcvByte()
{
  uchar n=0;
  uchar i,retc=0;
  DS3231_SDA=1; //設為輸入方式
  for(i=0;i<8;i++)
  {
    delay(1);
    DS3231_SCL=0; //置低,準備接收數據
    delay(5);
    DS3231_SCL=1; //使數據有效
    delay(3);
    retc<<=1;
    if(DS3231_SDA==1)
        retc+=1;
    delay(2);
  }
   DS3231_SCL=0;
   delay(2);
   return(retc);
}
//我寫的
void Ack_I2C(bit a)
{
if (a==0)
  DS3231_SDA=0;         //應答或非應答信號
  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
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人人干 | 日日操av| 另类 综合 日韩 欧美 亚洲 | 日韩91在线 | 日日干日日操 | 欧美成视频在线观看 | 亚洲欧美精| 在线黄av| 亚洲精品一级 | 精品国产青草久久久久福利 | 中文在线视频 | 精品久久久久久久久亚洲 | 国产在线观看一区二区三区 | 免费看黄色片 | 精品国产99 | 欧美一区二区三区的 | 欧美在线视频二区 | 亚洲精品乱码久久久久久黑人 | 欧美一区二区黄 | 日韩精品一区二区三区在线播放 | 人人干人人玩 | 久久99蜜桃综合影院免费观看 | 精品久久久久久 | 中文字幕在线看人 | 成人免费网站视频 | 在线中文字幕视频 | 国内久久 | 中文在线播放 | 亚洲欧美日韩久久久 | 国产精品久久久久久久久久东京 | 女女百合av大片一区二区三区九县 | 中文字幕日韩欧美一区二区三区 | 欧美影院| 中文字幕一区二区三区四区五区 | 99久久日韩精品免费热麻豆美女 | 高清av在线 | 国产三级网站 | 久久亚洲一区二区三 | 亚洲成人三级 | 一级欧美 | 99久久精品免费 |