Ⅰ IIC匯流排器件有哪些除了AT24C01~16外還可以控制哪些器件51單片機中的IIC匯流排還能做什麼
我做功放數字音調時有用過一款,PT2314,是IIC匯流排控制的,用AT89C2050控制,能完成節主音量、低音、高音、平衡、話筒音量、混響級別等功能,想要資料聯系我
手機內存卡一般默認文件系統FAT32,若單個文件超過4GB,則選擇NTFS或exFAT文件系統。
通常內存卡默認使用的FAT32讀寫系統最大單為個文件為4GB,如果需要存儲高清視頻等單個超過4GB的文件,建議將其重新格式化,設置為NTFS或exFAT文件系統。
Ⅲ IIC存儲器是什麼,有什麼特點
IIC即I2C,一種匯流排結構.而IIC存儲器一般使用EEPROM實現,故可以在線讀取和寫入,寫入的數據保存時間也很長.IIC實現起來非常簡潔,只需很少的幾根線即可(片選,地址,數據).
Ⅳ IIC(I2C)匯流排上的設備其地址如何定義
IIC匯流排
一般串列數據通訊都有時鍾和數據之分,有非同步和同步之別.
有單線,雙線和三線等.
I2C肯定是2線的(不算地線).
I2C協議確實很科學,比3/4線的SPI要好,當然線多通訊速率相對就快了.
I2C的原則是:
在SCL=1(高電平)時,SDA千萬別忽悠!!!
否則,SDA下跳則"判罰"為"起始信號S",SDA上跳則"判罰"為"停止信號P".
在SCL=0(低電平)時,SDA隨便忽悠!!!(可別忽悠過火到SCL跳高)
每個位元組後應該由對方回送一個應答信號ACK做為對方在線的標志.
非應答信號一般在所有位元組的最後一個位元組後.一般要由雙方協議簽定.
SCL必須由主機發送,否則天下大亂.
首位元組是"片選信號",即7位從機地址加1位方向(讀寫)控制.
從機收到(聽到)自己的地址才能發送應答信號(必須應答!!!)表示自己在線.
其他地址的從機不允許忽悠!!!(當然群呼可以忽悠但只能聽不許說話)
讀寫是站在主機的立場上定義的.
"讀"是主機接收從機數據,"寫"是主機發送數據給從機.
重復位主要用於主機從發送模式到接收模式的轉換"信號",由於只有2線,
所以收發轉換肯定要比SPI復雜,因為SPI可用不同的邊沿來收發數據,而I2C不行.
在硬體I2C模塊,特別是MCU/ARM/DSP等每個階段都會得到一個准確的狀態碼,
根據這個狀態碼可以很容易知道現在在什麼狀態和什麼出錯信息.
7位I2C匯流排可以掛接127個不同地址的I2C設備,0號"設備"作為群呼地址.
10位I2C匯流排可以掛接更多的10位I2C設備.
總之,只要掌握I2C的忽悠記,一般很容易掌控... 第一個位元組(為slave address)由7位地址和一位R/W讀寫位組成的,這位元組是個器件地址。
首先,你要知道:常用IIC介面通用器件的器件地址是由種類型號,及定址碼組成的,共7位。
如格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
1-器件類型由:D7-D4 共4位決定的。這是由半導公司生產時就已固定此類型的了,也就是說這4位已是固定的。
2-用戶自定義地址碼:D3-D1共3位。這是由用戶自己設置的,通常的作法如EEPROM這些器件是由外部IC的3個引腳所組合電平決定的(用常用的名字如A0,A1,A2)。這也就是定址碼。
所以為什麼同一IIC匯流排上同一型號的IC只能最多共掛8片同種類晶元的原因了。
3-最低一位就是R/W位。這位不用我多說了。
在現代電子系統中,有為數眾多的IC需要進行相互之間以及與外界的通信。為了提供硬體的效率和簡化電路的設計,PHILIPS開發了一種用於內部IC控制的簡單的雙向兩線串列匯流排I2C。I2C匯流排支持任何一種IC製造工藝,並且PHILIPS和其他廠商提供了種類非常豐富的I2C兼容晶元。作為一個專利的控制匯流排,I2C已經成為世界性的工業標准。
每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅動器)或者可以接收也可以發送的器件(例如:存儲器)。發送器或接收器可以在主模式或從模式下操作,這取決於晶元是否必須啟動數據的傳輸還是僅僅被定址。I2C是一個多主匯流排,即它可以由多個連接的器件控制。
基本的I2C匯流排規范於20年前發布,其數據傳輸速率最高為100Kbits/s,採用7位定址。但是由於數據傳輸速率和應用功能的迅速增加,I2C匯流排也增強為快速模式(400Kbits/s)和10位定址以滿足更高速度和更大定址空間的需求。
I2C匯流排始終和先進技術保持同步,但仍然保持其向下兼容性。並且最近還增加了高速模式,其速度可達3.4Mbits/s。它使得I2C匯流排能夠支持現有以及將來的高速串列傳輸應用,例如EEPROM和Flash存儲器。 在現代電子系統中,有為數眾多的IC需要進行相互之間以及與外界的通信。為了提供硬體的效率和簡化電路的設計,PHILIPS開發了一種用於內部IC控制的簡單的雙向兩線串列匯流排I2C。I2C匯流排支持任何一種IC製造工藝,並且PHILIPS和其他廠商提供了種類非常豐富的I2C兼容晶元。作為一個專利的控制匯流排,I2C已經成為世界性的工業標准。
每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅動器)或者可以接收也可以發送的器件(例如:存儲器)。發送器或接收器可以在主模式或從模式下操作,這取決於晶元是否必須啟動數據的傳輸還是僅僅被定址。I2C是一個多主匯流排,即它可以由多個連接的器件控制。
基本的I2C匯流排規范於20年前發布,其數據傳輸速率最高為100Kbits/s,採用7位定址。但是由於數據傳輸速率和應用功能的迅速增加,I2C匯流排也增強為快速模式(400Kbits/s)和10位定址以滿足更高速度和更大定址空間的需求。
I2C匯流排始終和先進技術保持同步,但仍然保持其向下兼容性。並且最近還增加了高速模式,其速度可達3.4Mbits/s。它使得I2C匯流排能夠支持現有以及將來的高速串列傳輸應用,例如EEPROM和Flash存儲器。
Ⅳ 51單片機裡面怎麼用IIC匯流排存儲一個幾百的數值
用一個INT數值表示,方法有2種1:換可以直接以16位數據形式寫入的IIC存儲6器比如93C46這種
2:用拆分方式存儲,讀取後在重新還原
比如一個16位數據1234吧
高8位是12,低8位是34,你存儲的時候完全可以這樣
unsigned int i;
unsigned char H,L;
存儲時: H= i>>8;
L=i&0X00FF;
然後分別寫入2個連續的存儲空間比如0x00,0x01
讀出時:
先讀高,後讀低
然後i=H<<8;
i= H|L;
你試試
Ⅵ iic的應用
I2C匯流排是各種匯流排中使用信號線最少,並具有自動定址、多主機時鍾同步和仲裁等功能的匯流排。因此,使用I2C匯流排設計計算機系統十分方便靈活,體積也小,因而在各類實際應用中得到廣泛應用。下面舉二個應用示例。
I2C的運用比如在鐵電存儲器中,用鐵電存儲數據就是用的I2C匯流排協議。 目前,51、96系列的單片機應用很廣,但是由於它們都沒有I2C匯流排介面,從而限制了在這些系統中使用具有I2C匯流排介面的器件。通過對I2C匯流排時序的分析,可以用51單片機的兩根I/O線來實現I2C匯流排的功能。接I2C匯流排規定:SCL線和SDA線是各設備對應輸出狀態相「與」的結果,任一設備都可以用輸出低電平的方法來延長SCL的低電平時間,以迫使高速設備進入等待狀態,從而實現不同速度設備間的時鍾同步。因此,即使時鍾脈沖的高、低電平時間長短不一,也能實現數據的可靠傳送,可以用軟體控制I/O口做I2C介面。下面就是用GMS97C2051的通用I/O口來作為I2C匯流排介面,並由軟體控制實現數據傳送的例子,圖6為其連線圖。
在單主控器的系統中,時鍾線僅由主控器驅動,因此可以用51系列的一根I/O線作為SCL的信號線,將其設置為輸出方式,並由軟體控制來產生串列時鍾信號。在實際系統中使用了P1.3。另一根I/O線P1.2作為I2C匯流排的串列數據線,可在軟體控制下在時鍾的低電平期間讀取或輸出數據。系統傳輸數據的過程如下:先由單片機發出一個啟始數據信號,接著送出要訪問器件的7位地址數據,並等待被控器件的應答信號。當收到應答信號後,根據訪問要求進行相應的操作。如果是讀入數據,則數據線可一直設為輸入方式,中間不需要改變SDA線的工作方式,每讀入一個位元組均應依次檢測應答信號;如果是輸出數據,則首先將SDA設置為輸出方式,當發送完一個位元組後,需要改變SDA線為輸入方式,此時讀入被控器件的應答信號就完成了一個位元組的傳送。當所有數據傳輸完畢後,應向SDA發出一個停止信號,以結束該次數據傳輸。 下面給出51系列用匯編語言實現啟始、停止、讀、寫、應答的程序,讀者也可以根據I2C匯流排時序在96系列或其它單片機上實現I2C匯流排介面。
a.啟動位程序
ACK:CLR P1.3
NOP
NOP
SETB P1.2
NOP
NOP
NOP
CPL P1.3 ;P1.3=1
NOP
NOP
NOP
DENGDAI:JB P1.2,DENGDAI
RET
b.讀數據程序
讀位元組可以在當前地址讀(CURRENT
READ),也可以隨機讀(RANDOM READ),讀出數據的最後一個位元組後不用加應答信號。
READ:PUSH 0EH
CLR P1.4
LCALL BSTART ;START
MOV A,#0A0H ;SEND THE CNOTROL BYTE
LCALL SENDBYTE
LCALL ACK
MOV A,R1 ;SEND THE ADDRESS
LCALL SENDBYTE
LCALL ACK
LCALL BSTART ;START
MOV A,#0A1H ;SEND THE CNOTROL BYTE
LCALL SENDBYTE
LCALL ACK
LCALL READBYTE
LCALL BSTOP
POP 0EH
RET
送位元組程序:
SENDBYTE:PUSH 0EH
PUSH 00H
MOV R0,#08H
LOOP1:CLR P1.3
NOP
NOP
RLC A
MOV P1.2,C
CPL P1.3 ;P1.3=1
NOP
NOP
DJNZ R0,LOOP1
POP 00H
POP 0EH
RET
讀位元組子程序:
READBYTE:PUSH 0EH
PUSH 00H
MOV R0,#08H;READ THE CONTENT
CLR A
LOOP4:CLR P1.3
NOP
NOP
NOP
SETB P1.3 ;P1.3=1
MOV C,P1.2
RLC A
DJNZ R0,LOOP4
MOV R2,A
POP 00H
POP 0EH
RET
c.寫數據程序:
WRITE:PUSH 0EH
CLR P1.4
LCALL BSTART
MOV A,#0A0H
CLALL SENDBYTE ;SEND THE CONTROL BYTE
LCALL ACK
MOV A,R1 ;SEND THE ADDRESS
LCALL SENDBYTE
LCALL ACK
MOV A,R2 ;WRITE THE CONTENT
LCALL SENDBYTE
LCALL ACK
LCALL BSTOP
POP 0EH
RET
連續寫的兩個位元組之間最好是有10ms的延時。當然,也可以進行頁寫(PAGE
WRITE),即一次性連續寫8個位元組,但採用頁寫方式時每個位元組後要有一個應答信號。
d.停止位程序:
BSTOP:CLR P1.3
NOP
NOP
CLR P1.2
NOP
NOP
NOP
SETB P1.3
NOP
NOP
NOP
SETB P1.2
RET // IIC開始
void Start()
{
SDA=1;SCL=1;NOP4();SDA=0;NOP4();SCL=0;
}
// IIC 結束
void Stop()
{
SDA=0;SCL=0;NOP4();SCL=1;NOP4();SDA=1;
}
// IIC 讀取應答
void RACK()
{
SDA=1;NOP4();SCL=1;NOP4();SCL=0;
}
// IIC 發送非應答
void NO_ACK()
{
SDA=1;SCL=1;NOP4();SCL=0;SDA=0;
}
// IIC向從設備寫入一位元組數據
void Write_A_Byte(uchar b)
{
uchar i;
for(i=0;i<8;i++)
{
b<<=1;SDA=CY;_nop_();SCL=1;NOP4();SCL=0;
}
RACK();
}
// IIC 向從設備的指定地址寫入數據
void Write_IIC(uchar addr,uchar dat)
{
Start();
Write_A_Byte(0xa0);
Write_A_Byte(addr);
Write_A_Byte(dat);
Stop();
DelayMS(10);
}
// IIC 從從設備讀取數據
uchar Read_A_Byte()
{
uchar i,b;
for(i=0;i<8;i++)
{
SCL=1;b<<=1;B|=SDA;SCL=0;
}
return b;
}
// IIC 從從設備的當前地址讀取數據
uchar Read_Current()
{
uchar d;
Start();
Write_A_Byte(0xa1);
d=Read_A_Byte();
NO_ACK();
Stop();
return d;
}
// IIC 從從設備的任意地址讀取數據
uchar Random_Read(uchar addr)
{
Start();
Write_A_Byte(0xa0);
Write_A_Byte(addr);
Stop();
return Read_Current();
}
Ⅶ IIc晶元24c08怎麼實現連續的讀寫呀!
MC68HC908JB8是採用HCMOS工藝技術生產的高性能單片機晶元,具有片內256BRAM和8KB的Flash ROM結構,16位雙通道TIM模塊(每一通道配有輸入捕捉、輸出比較和PWM工作模式),以及兼容USB1.1協議低速通信功能。 JB8 的性能 68HC908JB8是一種高性能M68HC08結構,它和M6805、M146805及M68HC05族代碼兼容,3MHz內部匯流排頻率,256B的RAM和8129位元組的Flash存儲器,且在片內可編程。最多可達37個一般3.3V的I/O口。其中包括: ·因封裝不同有13或10個共享I/O腳 ·因封裝不同有24、22、8、或2個專用I/O腳 ·埠A有8個鍵盤中斷 ·6個10mA的驅動LED腳 ·2個25mA紅外LED腳 ·2個在USB模塊禁止情況下,對於PS/2連接有10mA的高電流驅動腳 16位雙通道TIM兼容USB1.1協議的低速器件,其中數據傳輸速率為1.5Mbps,內置3.3V的電壓調節器。Endpoint0 有8位元組的發射緩沖器和8位元組的接收緩沖器;Endpoint1 有8位元組的發射緩沖器;Endpoint2有8位元組的發射緩沖器及8位元組接收緩沖器。 系統保護特徵包括可選COP復位、可選LVI復位、非法代碼復位及非法地址復位。 低功耗設計有完全靜態STOP模式和WAIT模式,內部連接上拉電阻的主復位腳,以及上電復位和外部非同步中斷( IRQ)。 引腳功能 JB8單片機有44腳(QFP封裝)、42腳(SDIP封裝)、28腳(PDIP/SOIC封裝)及20腳(PDIP/SOIC封裝),現以44引腳晶元(如圖1)為例,說明各腳的功能。 VDD和VSS分別為電源和地引腳,VREG為3.3V輸出,其主要用於USB數據驅動的電壓調制,OSC1、OSC2為時鍾引腳,RST外部復位引腳,RST是雙向的,該引腳包含一個對VDD的上拉電阻;IRQ:外部非同步中斷引腳,它也可編程進入監控模式,該引腳包含一個對VDD的上拉電阻;PTE4/D-也可編程對IRQ1中斷進行觸發,也可編程為USB D-引腳;PTA7/KBA7~PTA0/KBA0:雙向I/O引腳,可編程作為外部鍵盤中斷引腳;PTB7~PTB0:雙向I/O引腳;PTC7~PTC0:雙向I/O引腳;PTD7~PTD0:雙向I/O引腳;引腳E是5位具有特殊功能的引腳,其中PTE4/D-、PTE3/D+同USB數據匯流排D-、D+共享,其他3個引腳同定時器模快連接。當USB模塊禁止時,PTE4,PTE3成為驅動電流10mA的引腳,且包含5KΩ的上拉電阻;當USB 模快使能時,PTE4/D-和PTE3/D+成為USB的D-和D+。PTE2/TCH1、PTE1/TCH0、PTE0/TCLK為共享引腳。 表1 68HC908JB8性能指標 MC68HC908JB8內部包含保護電路,但在使用時應盡量使電壓低於表1中所給的最大值,即VSS ≤VIN或 VOUT≤ VREG。當晶元工作時,不用的引腳要連接到適當的VSS 或VREG上。 USB模塊 JB8是根據USB1.1協議而設計的低速USB晶元,它支持控制及中斷數據兩種類型傳輸,Endpoint0可作為發射/接收控制端點;Endpoint1作為中斷發射端點;Endpoint2可作為發射/接收端點。 USB模塊功能 模塊功能包括和USB1.1協議兼容,1.5Mbps的數據速率,3.3V 電壓調制;其中Endpoint0有8位元組發射緩沖器和8位元組接收緩沖器,Endpoint1有8位元組發射緩沖器,Endpoint2有8位元組發射緩沖器和8位元組接收緩沖器。USB數據傳輸控制邏輯包括控制端點Endpoint0及中斷端點Endpoint1和Endpoint2;數據包的產生及解碼;CRC校驗碼的產生及校驗;NRZI碼的編碼/解碼以及在在傳輸中遇到連續6個1時的位插入;USB 復位有內部MCU產生的復位以及CPU中斷請求產生的復位。通過遠程喚醒支持suspend 和resume操作。USB產生的中斷有傳輸中斷驅動、Resume 中斷、數據包EOP中斷以及USB復位。 功能描述 USB模塊主要管理晶元和主機之間的通信,該功能塊可以分為三部分:雙功能的收發器;USB控制邏輯單元;端點寄存器(如圖2)。 USB協議 JB8MCU中的
Ⅷ 51單片機裡面怎麼用IIC匯流排存儲一個幾百的數值
用一個INT數值表示,方法有2種1:換可以直接以16位數據形式寫入的IIC存儲6器比如93C46這種
2:用拆分方式存儲,讀取後在重新還原
比如一個16位數據1234吧
高8位是12,低8位是34,你存儲的時候完全可以這樣
unsigned
int
i;
unsigned
char
H,L;
存儲時:
H=
i>>8;
L=i&0X00FF;
然後分別寫入2個連續的存儲空間比如0x00,0x01
讀出時:
先讀高,後讀低
然後i=H<<8;
i=
H|L;
你試試
Ⅸ IIC匯流排如何實現多組數據存儲
iic協議沒有規定匯流排上device最大數目,但是規定了匯流排電容不能超過400pF。
管腳都是有輸入電容的,PCB上也會有寄生電容,所以會有一個限制。實際設計中經驗值大概是不超過8個器件。
匯流排之所以規定電容大小是因為,iic的OD要求外部有電阻上拉,電阻和匯流排電容產生了一個RC延時效應,電容越大信號的邊沿就越緩,有可能帶來信號質量風險。
傳輸速度越快,信號的窗口就越小,上升沿下降沿時間要求更短更陡峭,所以RC乘積必須更小。