串行EEPROM X24128及其與AT89C51的接口及編程
4.1按字節(jié)寫時序
給X24128內部存儲陣列中未加鎖定保護部分的某一單元寫一個字節(jié)的數(shù)據(jù)時,首先設置開始狀態(tài),再依次發(fā)送器件地址和數(shù)據(jù)地址的字節(jié)1和字節(jié) 0,X24128每次接收到一個8位地址字節(jié)后,利用第9個時鐘脈沖發(fā)出應答信號。CPU接收到第3個應答信號后,再發(fā)送8位數(shù)據(jù)和接收應答信號,最后設置結束狀態(tài)。X24128接收到結束信號后,開始將接收到的數(shù)據(jù)寫入EEPROM陣列的內部寫過程。在進行內部寫過程中,對外部輸入的任何信號都不作反應,SDA管腳輸出高阻態(tài)。
4.2按頁寫時序
由CPU給X24128寫數(shù)據(jù)時,可以按頁寫,每頁包括32字節(jié),按頁寫的方式在開始時如同按字節(jié)寫,只是每次寫完一個字節(jié)數(shù)據(jù)后,X24128內部地址指針自動加1后才可以繼續(xù)寫數(shù)據(jù),無需再次寫入地址。本頁的最高地址寫入后,地址指針自動返回到本頁的最低地址,如果繼續(xù)寫入數(shù)據(jù),則將已寫過的數(shù)據(jù)覆蓋,只有發(fā)送給X24128結束信號后,X24128才終止接收數(shù)據(jù),開始進行內部寫過程。
4.3讀當前地址數(shù)據(jù)
如果要讀X24128內部地址指針當前所指單元的數(shù)據(jù),只要發(fā)送給X24128開始信號、器件地址(位為1)和接收到應答信號后,即可接收X24128所發(fā)送的當前地址的數(shù)據(jù)。接收完畢,發(fā)送結束信號。X24128發(fā)送完數(shù)據(jù)后,地址指針自動加1。
4.4讀取任一地址的數(shù)據(jù)
先給X24128發(fā)送所要讀取數(shù)據(jù)的地址,使其成為當前地址指針所指地址。其中器件地址的位寫入0,再按讀當前地址數(shù)據(jù)的方式讀取數(shù)據(jù)。
4.5連續(xù)讀取數(shù)據(jù)
連續(xù)讀取數(shù)據(jù)如同讀取任一地址數(shù)據(jù),將所要連續(xù)讀取數(shù)據(jù)的首位地址設置成當前地址,在接收完第一字節(jié)的數(shù)據(jù)后,不是發(fā)送結束信號,而是發(fā)送應答信號,X24128接收到應答信號后繼續(xù)發(fā)送第二字節(jié)數(shù)據(jù)。只要CPU每次接收完一個字節(jié)的數(shù)據(jù)后所發(fā)送的是應答信號,X24128就會繼續(xù)發(fā)送下一字節(jié)的數(shù)據(jù),當發(fā)送完整個存儲陣列的最高地址的數(shù)據(jù)后,地址指針將返回到0000H單元。如果繼續(xù)發(fā)送應答信號,X24128將從0000H單元開始繼續(xù)發(fā)送數(shù)據(jù)。只有接收到結束信號才終止發(fā)送。
X24128與AT89C51的接口電路如圖2所示。在2線總線上最多可并接8片X24128。以P1.0口線作為時鐘信號輸出,P1.1口線作為數(shù)據(jù)輸入、輸出。總線接4.7kΩ的上拉電阻。下面以AT89C51寄存器R2的數(shù)據(jù)寫入X24128(1)的1000H地址中為例,假設1000H地址未加寫保護,則編程如下:
評論