當前位置:首頁 » 存儲配置 » 鐵電存儲器和單片機

鐵電存儲器和單片機

發布時間: 2023-08-26 14:49:20

① 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();
}

② 單片機能存儲多大的數據

2M的數據在51單片機內是沒法保存的,只能外部擴展存儲器了。像用AT29C040這樣512KB的ROM需要4片,所以還是建議你考慮一下使用NandFlash吧,比如K9F1208晶元,64MB的容量足夠你用的吧?不過需要注意,K9F1208是3.3V工作的,那你需要使用3.3V的單片機來運行。

③ 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;
你試試

④ 問個弱智的問題,單片機的燒錄次數有隻能燒錄一次的說法嗎

單片機的燒錄次數有多少?

單片機能燒錄多少次是根據存儲器類型決定的!

不同存儲器類型燒錄擦寫次數、示例單片機:

  • 掩膜存儲器,1次,億義隆單片機;(一般工廠輔助燒錄,普通開發者接觸不到)

  • ROM,100-1000次,Atmel 的 51系列:AT89C51;

  • FLASH ,10000次,Atmel 的 AVR系列:ATMEGA8,國產宏晶的STC單片機等;

  • 鐵電存儲器,10W+,高檔CPU;

  • 不同壽命的,決定存儲器價格;

掩膜存儲器單片機應用舉例:

  • 合泰的觸摸按鍵晶元;

  • 小廠的語音晶元;

  • LED燈控制器;

  • ……

掩膜存儲器單片機開發必須使用廠家定製的開發板,成本比較高。小批量產品開發性價比不高,若是產量達到10K+,可以考慮使用。

熱點內容
b樹磁碟存儲 發布:2025-01-31 19:42:53 瀏覽:837
聯想小新air15怎麼配置環境 發布:2025-01-31 19:06:57 瀏覽:968
什麼配置玩3a 發布:2025-01-31 19:05:22 瀏覽:586
phpoa系統 發布:2025-01-31 18:58:42 瀏覽:10
值e的編程 發布:2025-01-31 18:57:06 瀏覽:977
安卓手機的軟體認證在哪裡 發布:2025-01-31 18:57:01 瀏覽:535
android彈出來 發布:2025-01-31 18:56:56 瀏覽:232
辦公室白領新解壓方法 發布:2025-01-31 18:55:23 瀏覽:558
摩斯密碼短長是什麼意思 發布:2025-01-31 18:50:17 瀏覽:587
類的訪問修飾 發布:2025-01-31 18:42:46 瀏覽:933