基于PROG-100單片機(jī)讀寫24C01的應(yīng)用程序
該電路連接見下圖所示:89C51的P31腳(TXD)與24C01的SCL腳相連,作為時(shí)鐘輸入端。89C51的P30腳(RXD)與24C01的SDA腳相連,作為數(shù)據(jù)讀寫端。兩者都通過上拉電阻接5V電源。單片機(jī)其余連線照常,在此圖中略去。
串行EEPROM讀寫程序包括以下要點(diǎn):24C01在加電后或執(zhí)行停止(STOP)命令后處于備用狀態(tài),因此每次讀寫操作前需要單片機(jī)發(fā)送給EEPROM-個(gè)啟動(dòng)脈沖。要求是:在SCL時(shí)鐘端為高電平時(shí),在SDA腳上產(chǎn)生一個(gè)從高到低的跳變,使24C01進(jìn)入工作狀態(tài)。每次讀寫操作后發(fā)出停止命令(STOP)。要求是:在SCL時(shí)鐘端為高電平時(shí),在SDA腳上產(chǎn)生一個(gè)從低到高的跳變,使24C01進(jìn)入備用模式。
24COIEEPROM的讀寫操作分單字節(jié)讀寫和按頁讀寫兩種模式。
讀寫使用的7位地址前五位為頁面號(hào)。作單字節(jié)讀寫時(shí),每字節(jié)讀寫后發(fā)停止命令,否則作為頁面讀寫,可連續(xù)收發(fā)4個(gè)字節(jié)。讀寫操作的區(qū)別在于:讀出時(shí)發(fā)送給EEPROMD的7位字地址后的第八位應(yīng)為高電平(讀出位),而寫入時(shí)發(fā)送給EEPROMD的7位字地址后的第八位應(yīng)為低電平(寫入位)。故讀寫時(shí)均使用8位地址。(參見程序中ADDR子程序)。同時(shí)24C01在接收到地址或數(shù)據(jù)后的第九個(gè)脈沖期間SDA腳置為低電平,表示接收成功,這一應(yīng)答方式體現(xiàn)在子程序ACK上。
使用PROG100單片機(jī)專用編程器編寫的,讀寫24C01電可擦除可編程只讀存儲(chǔ)器的應(yīng)用程序如下:程序中使用了89C51中的寄存器:R028、R033、R037、R036、R000、R052、R010。程序以模塊方式給出,可供用戶調(diào)用。
1.寫數(shù)據(jù)子程序(EW)
入口參數(shù):首先將要寫入的EEPROM的地址傳送給R033,將要寫入的數(shù)據(jù)傳送給R036,然后調(diào)用EW子程序即可。
2.讀數(shù)據(jù)子程序(ER)
入口參數(shù):首先將要讀的EEPROM的地址傳送給R033,然后調(diào)用ER子程序,讀出的數(shù)據(jù)
3.其它有關(guān)子程序
以上程序經(jīng)過修改還可適用24C系列EEPROM中的其它型號(hào)。