新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機片內大容量EEPROM的一種巧妙應用

        單片機片內大容量EEPROM的一種巧妙應用

        作者: 時間:2011-05-27 來源:網絡 收藏

        引 言

        本文引用地址:http://www.104case.com/article/172734.htm

          MCS-51是目前國內最廣泛的一種型。全球各生產廠商在MCS-51內核基礎上,派生了大量的51內核系列單片機,極大地豐富了MCS-51的種群。其中STC公司推出了STC89系列單片機,增加了大量新功能,提高了51的性能,是MCS-51家族中的佼佼者。早期的單片機控制系統,采用單片機加片外配合,來存儲一些需要預置的重要參數,并在數碼管上顯示出來。由于單片機控制的整流器要求實時性很強,而早期的寫周期在10 ms左右,因此運行參數的預置是在整流器待機的情況下進行的。而很多情況下需要在運行的同時記錄數據,如用單片機控制的12脈波汽車電泳整流器要求在運行的同時實時記錄重要數據,而且在掉電時不丟失。由于在12脈波整流器中運行的單片機程序,其周期必須小于1.67 ms(交流電網的1個周期是20 ms,除以12就是l_67 ms),這就要求實時記錄的時間在1ms以下甚至更短(考慮到程序的執行時間)。經查閱資料發現,目前很多達不到這個要求[1],即使時間最短的AT89S8252單片機片內。EEP-ROM的寫周期也是2.5 ms。本文通過對EEPROM的,實現了整流器在線記錄數據的功能。

          1 尋找符合要求的單片機

          設備使用的是Atmel公司的AT89C52(40DIP封裝)單片機和EEPROM芯片2817A。要想在不改變原設備電路板的情況下完成要求的功能,就只能在兼容的MCS-51系列單片機中想辦法。AT89S8252片內含有2 KB的EEPROM,經編程測試發現,它雖然能實時記錄數據并且斷電不丟失,但是在向片內EEPROM中記錄1個數據時,能引起輸出電壓和電流的波動,不能滿足實際運行的需要。其原因是AT89S8252單片機片內EEPROM的寫周期為2.5 ms,超過了1.67 ms的程序的執行周期,從而影響了程序的正常運行。所以執行周期是解決問題的關鍵。

          由參考文獻[2-3]知:STC89C51RC/RD+系列單片機片內含有EEPROM(Data Flash),讀1個字節/編程1個字節/擦除1個扇區(512字節)的時間分別為10/μs/60μs/10 ms。編程1個字節的時間為60μs,遠小于AT89S8252片內EEPROM 2.5 ms的編程時間,這為解決問題提供了思路。

          2問題的解決

          單片機STC89C55RD+(40DIP封裝),其引腳、功能完全與AT89C52兼容,與MCS-51程序也兼容,片內含有20KB的Flash程序存儲器,16KB的EEPROM數據存儲器。把原用于AT89C52中的程序寫到STC89C255RD+中,放到原設備上運行,可長期穩定地運行。經修改的在整流器中運行的單片機程序,實時記錄一些數據到STC289C55RD+的EEPROM中,整流器可正常運行,但不能執行扇區擦除操作。執行扇區擦除操作將嚴重影響整流器的正常運行,引起輸出電壓和電流的很大波動。執行扇區擦除操作時,從示波器來看整流器的輸出間斷了20 ms,電壓電流顯示很大的波動。用示波器捕捉到了EEPROM寫時的波形,輸出波形暫停了20 ms,1個周波電壓,電壓波形如圖1所示,不執行扇區擦除操作時的波形如圖2所示。從圖中可以看出,問題得到了很好的解決。

        1.jpg


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 陆河县| 长武县| 酉阳| 济南市| 绩溪县| 麟游县| 龙岩市| 五华县| 鸡西市| 图们市| 莒南县| 博白县| 永顺县| 嘉鱼县| 梁山县| 绥棱县| 保定市| 柞水县| 堆龙德庆县| 二连浩特市| 永济市| 阿瓦提县| 道孚县| 郴州市| 中阳县| 疏勒县| 商城县| 太原市| 娄底市| 鄂伦春自治旗| 阿合奇县| 鹤壁市| 吉木萨尔县| 安阳县| 灵山县| 精河县| 尖扎县| 米泉市| 九龙城区| 铅山县| 石柱|