《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 單片機片內大容量EEPROM的一種巧妙應用
單片機片內大容量EEPROM的一種巧妙應用
第六電子網
摘要: 結合上產的實際情況,在不改變原設備電路板的情況下,通過使用MCS-51系列兼容單片機STC89C55RD+,巧妙利用其片內EEPROM,實現了在整流器運行的同時記錄數據的功能,切掉點情況下不丟失數據。這種方法有效地提高了原設備的功能,給用戶的使用到來了極大的方便,并且通過實驗驗證了此方法是可行的。
Abstract:
Key words :

引  言

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


 

  究其原因,這與EEPROM的特點有關。STC89C5lRC/RD+系列單片機片內的EEPROM,與普通的EEPROM不同。普通的EEPROM有字節讀/寫功能,不需要擦除,在字節寫的時候自動擦除。而STC89C51RC/RD+系列單片機片內的EEPROM,具有Flash的特性,只能在擦除了扇區后進行字節寫,寫過的字節中不能重復寫,只有待扇區擦除后才能重新寫,而且沒有字節擦除功能,只能扇區擦除。
 

201011200157238.jpg


 

  3  EEPROM(Data FIash)的巧妙應用

  基于以上EEPROM(Data Flash)不易擦除的特點,可以寫后先不擦除。利用EEPROM(Data Flash)容易寫、時間短(字節寫只有60 μs)的特點,可以充分利用其寫的功能。根據汽車電泳整流器的特點:每泳1輛汽車,整流器的輸出電流就從0逐漸上升到最大電流,然后又逐漸回到0。從電流的變化可以準確地識別出電泳過的車的數量。每識別出1輛車,就在EEPROM(Data Flash)的1個字節中(起始地址為0000H)寫入#01H(也可以是其他數,但不能為#OFFH),然后地址自動加1,等待識別出下一輛車。這樣就通過EEPROM(Data Flash)字節地址的方式,間接記錄了汽車電泳整流器電泳過的車輛總數,并可在數碼管上顯示出來。16 KB的EEPROM(Data Flash)可記錄16 384輛車。待將計滿時,可按擦除按鈕擦除EEP-ROM(Data Flash)中的所有扇區,再重新計數。如按每10分鐘電泳1輛車,1天工作16小時,可連續記錄16 384/60/10×16)=170天。此種方法也可用于對電泳整流器連續工作時間的累計,如每10分鐘記錄1個數據,可連續記錄16 384/(60/10)=2 730小時。

  整流器停機斷電后,每次開機給單片機上電時,在初始化程序中,首先從地址#0000H讀片內EEPROM的數據,如果數據不為#OFFH,地址自動加1,再讀下一個字節,直到所讀數據為#OFFH為止。此時EEPROM的地址指針數據,即為前面累加的電泳車輛數(或累計電泳工作時間),可在數碼管上顯示出來。整流器工作后,按前述
 

201011200157658.jpg201011200157804.jpg
 

  結語

  結合上產的實際情況,在不改變原設備電路板的情況下,通過使用MCS-51系列兼容單片機STC89C55RD+,巧妙利用其片內EEPROM,實現了在整流器運行的同時記錄數據的功能,切掉點情況下不丟失數據。這種方法有效地提高了原設備的功能,給用戶的使用到來了極大的方便,并且通過實驗驗證了此方法是可行的。


 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 精品国自产拍天天拍2021| 99久久精品免费观看国产| 欧美人一级淫片a免费播放| 又爽又黄又无遮挡网站| 青青草原在线视频| 婷婷人人爽人人爽人人片| 久久精品无码一区二区三区不卡| 狠狠色狠狠色综合系列| 国产中文在线视频| 怡红院国产免费| 夫妇交换3中文字幕| 久久久久久久久久免免费精品| 欧美日韩三级在线观看| 免费能直接在线观看黄的视频| 韩国五感图r级无删减版| 国产精品青草久久久久福利99| 一二三高清区线路1| 日本乱妇bbwbbw| 亚洲mv国产精品mv日本mv| 狠狠入ady亚洲精品| 国产av激情无码久久| 欧美精品无需播放器在线观看| 在花轿里就开始圆房高辣h| 中文字幕在线播放视频| 机机对在一起30分钟软件下载| 亚洲精品视频在线观看免费| 精品无码成人片一区二区98| 国产卡一卡二卡3卡4卡无卡视频| 24小时日本电影免费看| 女的张开腿让男人桶爽30分钟| 久久99精品久久久久婷婷| 最近中文字幕mv免费高清电影| 亚洲男女性高爱潮网站| 精品人妻潮喷久久久又裸又黄 | 亚洲va中文字幕无码毛片| 灰色的乐园未增删樱花有翻译| 午夜福利视频合集1000| 阿娇囗交全套高清视频| 国产精品vⅰdeoXXXX国产| 91精品成人福利在线播放| 天天摸天天做天天爽水多|