如何解決串行E2PROM 24C02在應(yīng)用中的問題
(3)對寫入24C02子程序設(shè)置軟件口令,口令符合可以執(zhí)行寫入,否則拒絕寫入。具體做法是:設(shè)置寫口令寄存器EPSW,按正常CPU執(zhí)行程序的脈絡(luò),找出所有的數(shù)據(jù)寫入24C02前的必經(jīng)之路,比如,一般下在功能鍵按下后經(jīng)過一些數(shù)據(jù)處理,最終將要保存的參數(shù)寫入24C02,這時可以在鍵掃描子程序里,當(dāng)有鍵輸入時,對寫口令寄存器EPSW置數(shù)5AH,然后在寫24C02子程序中緊跟指令CLRWP后插入檢查口令語句,判斷EPSW值若為5AH,則允許繼續(xù)執(zhí)行,否則立即返回,不許執(zhí)行寫入數(shù)據(jù)。當(dāng)正確執(zhí)行完寫入24C02子程序后需對EPSW清0,并且在主程序適當(dāng)?shù)牡胤郊由螮PSW清0指令,反復(fù)冗余執(zhí)行。這樣程序受到干擾時,EPSW多數(shù)為0,即使EPSW數(shù)受到干擾時,也很少有機(jī)會剛好等于5AH,使錯誤數(shù)據(jù)非正常寫入24C02的機(jī)會大大減少。
數(shù)據(jù)寫入24C02子程序插入口令形式:
WRIT:CLRWP
MOVR1,#EPSW
MOVA,@R1
CJNEA,#5AH,WERR
……;
數(shù)據(jù)寫入24C02操作部分:
WERR:SETBWP
MOVR1,#EPSW
MOV@R1,#0
RET
4.保護(hù)24C02數(shù)據(jù)的硬件措施
在某些干擾特別嚴(yán)重的場合,24C02數(shù)據(jù)還是有可能被沖掉,最徹底的方法是利用硬件來干預(yù)寫入數(shù)據(jù)過程。一般情況下,是將WP引腳與CPU引腳斷開,而與功能鍵連接起來,功能鍵沒按下時,WP保持高電平,只有功能鍵按下時,WP才是低電平,允許寫操作。當(dāng)然,這樣一來對于某些過程量需要程控存入24C02時就辦不到了,這也是利用功能鍵同步保護(hù)24C02數(shù)據(jù)的一種不方便之處。
如果寫入24C02的數(shù)據(jù)跟2個按鍵有關(guān),則可以用二極管隔離,采用如圖2的形式。
這樣兩鍵本身互不影響,而任一鍵按下都能使WP變低,使數(shù)據(jù)寫入操作有效,對于多鍵關(guān)聯(lián),依此類推多放幾個二極管隔離就可以了。
5.結(jié)束語
以上所述的軟硬件措施在具體的單片機(jī)控制系統(tǒng)中可以靈活應(yīng)用,硬件聯(lián)鎖保護(hù)比較徹底,但是單獨通過程序修改24C02中的某些數(shù)據(jù)就不可能了;軟件保護(hù)比較靈活,可以隨時對控制過程中處理的數(shù)據(jù)存入24C02,以達(dá)到掉電保存的目的。在筆者設(shè)計的智能光照箱單片機(jī)控制系統(tǒng)中,由于日光燈起動和壓縮機(jī)起動及關(guān)斷時的電源高頻干擾,系統(tǒng)的溫度設(shè)定值及時間設(shè)定值曾經(jīng)經(jīng)常發(fā)生變化,采用上述軟硬件并用的措施后系統(tǒng)運行穩(wěn)定可靠,再也沒有發(fā)生設(shè)定數(shù)據(jù)被沖掉的現(xiàn)象。
評論