數(shù)據(jù)存儲在EEPROM中實(shí)現(xiàn)掉電不丟失
發(fā)布時(shí)間:2013/11/27 20:09:48 訪問次數(shù):4493
由于單片機(jī)的功能很強(qiáng), HMC207S8同時(shí)也有EEPROM,可以方便地存儲數(shù)據(jù),所以我設(shè)計(jì)了一個(gè)菜單來方便功能的設(shè)置,設(shè)置數(shù)據(jù)存儲在EEPROM中實(shí)現(xiàn)掉電不丟。
現(xiàn)在功能菜單也有了,就可以完全任憑自己的想象力來發(fā)揮了,因?yàn)镸CU擁有無限可能。我目前實(shí)現(xiàn)的功能有數(shù)據(jù)保持、串口發(fā)送測量值設(shè)定、工作頻設(shè)定、小數(shù)點(diǎn)位置設(shè)定、菜單超時(shí)退出和還原出廠設(shè)置等。未來要實(shí)現(xiàn)的功能有:開關(guān)短按功能設(shè)置、電壓超閾值報(bào)警、平均值計(jì)算、差值計(jì)算、軟件校準(zhǔn)蟻及自動控制等。板子上只設(shè)計(jì)了一個(gè)輕觸開關(guān),基本夠用了。長按按鍵進(jìn)入設(shè)置菜單,短按按鍵數(shù)據(jù)保持。以后要增加短按功能設(shè)置,可以更改短按的功能。這個(gè)程序也是我第一次使用定時(shí)器來進(jìn)行按鍵檢測,我沒有使用常用的件延時(shí)和中斷檢測法。因?yàn)?/span>單片機(jī)要不斷掃描數(shù)碼管,不能打斷掃描太長時(shí)間不然數(shù)字顯示會閃爍或中斷。
不使用中斷的原因是單片機(jī)外部中斷資比較有限,我想把中斷1端口預(yù)留給以后控制使用+另外程序編寫的循環(huán)很快,每次循環(huán)只掃描一個(gè)數(shù)碼管,這樣一次循環(huán)的時(shí)間就很短,不會影響到按鍵的判斷。程序也有向上位機(jī)發(fā)送測量結(jié)果的功能,如果設(shè)置打開了串口發(fā)送數(shù)據(jù),那么每次測量結(jié)束就會將測量結(jié)果以BCD碼通過串口發(fā)送出去。多參考單片機(jī)的數(shù)據(jù)手冊,再開動腦筋就可以做出很多很有意思的功能。編寫程序的時(shí)候要注意1/0口的工作模式,數(shù)據(jù)收要設(shè)為開漏,數(shù)據(jù)發(fā)送和發(fā)送接收口要設(shè)為準(zhǔn)雙向口,數(shù)碼管段驅(qū)動口要根選取的數(shù)碼管類型(共陰或共陽)設(shè)為推挽或開漏,數(shù)碼管位驅(qū)動口同樣,要設(shè)為開漏或推挽。
當(dāng)程序編寫調(diào)試完成后,在投入使用前最后一個(gè)重要工作就是對表頭進(jìn)行校準(zhǔn),以保證測量的準(zhǔn)確性。原則上應(yīng)該使用4i/2及以上住數(shù)的數(shù)字電壓表或萬用表,將其輸入端與表頭輸入端并聯(lián),并輸入一個(gè)1V左右穩(wěn)定的電壓,調(diào)節(jié)電位器,使二者顯示一致的方式來調(diào)整。但是考慮可能沒有4i/2或以上位數(shù)的儀表,也可以用精度良好的31/2或3%J位萬用表來簡單調(diào)整。
首先對表頭進(jìn)行自檢,記下讀數(shù)若自檢讀數(shù)低于9995就應(yīng)該考慮更換更優(yōu)質(zhì)的積分電容了。然后使用萬用表00.OmV或400.OmV量程電壓擋,將其入端與本機(jī)輸入端并聯(lián),并輸入一個(gè)100~200mV的穩(wěn)定電壓,調(diào)節(jié)電位器,使二者顯示一致即可。
最后就可以將表頭投入使用了。由于我沒有更好的積分電容,所以表頭度略差,實(shí)際滿量程誤差是正負(fù)十幾個(gè)字左右,整機(jī)耗電在30mA左右。目前工作正常,與上位機(jī)通信也很穩(wěn)定。
由于單片機(jī)的功能很強(qiáng), HMC207S8同時(shí)也有EEPROM,可以方便地存儲數(shù)據(jù),所以我設(shè)計(jì)了一個(gè)菜單來方便功能的設(shè)置,設(shè)置數(shù)據(jù)存儲在EEPROM中實(shí)現(xiàn)掉電不丟。
現(xiàn)在功能菜單也有了,就可以完全任憑自己的想象力來發(fā)揮了,因?yàn)镸CU擁有無限可能。我目前實(shí)現(xiàn)的功能有數(shù)據(jù)保持、串口發(fā)送測量值設(shè)定、工作頻設(shè)定、小數(shù)點(diǎn)位置設(shè)定、菜單超時(shí)退出和還原出廠設(shè)置等。未來要實(shí)現(xiàn)的功能有:開關(guān)短按功能設(shè)置、電壓超閾值報(bào)警、平均值計(jì)算、差值計(jì)算、軟件校準(zhǔn)蟻及自動控制等。板子上只設(shè)計(jì)了一個(gè)輕觸開關(guān),基本夠用了。長按按鍵進(jìn)入設(shè)置菜單,短按按鍵數(shù)據(jù)保持。以后要增加短按功能設(shè)置,可以更改短按的功能。這個(gè)程序也是我第一次使用定時(shí)器來進(jìn)行按鍵檢測,我沒有使用常用的件延時(shí)和中斷檢測法。因?yàn)?/span>單片機(jī)要不斷掃描數(shù)碼管,不能打斷掃描太長時(shí)間不然數(shù)字顯示會閃爍或中斷。
不使用中斷的原因是單片機(jī)外部中斷資比較有限,我想把中斷1端口預(yù)留給以后控制使用+另外程序編寫的循環(huán)很快,每次循環(huán)只掃描一個(gè)數(shù)碼管,這樣一次循環(huán)的時(shí)間就很短,不會影響到按鍵的判斷。程序也有向上位機(jī)發(fā)送測量結(jié)果的功能,如果設(shè)置打開了串口發(fā)送數(shù)據(jù),那么每次測量結(jié)束就會將測量結(jié)果以BCD碼通過串口發(fā)送出去。多參考單片機(jī)的數(shù)據(jù)手冊,再開動腦筋就可以做出很多很有意思的功能。編寫程序的時(shí)候要注意1/0口的工作模式,數(shù)據(jù)收要設(shè)為開漏,數(shù)據(jù)發(fā)送和發(fā)送接收口要設(shè)為準(zhǔn)雙向口,數(shù)碼管段驅(qū)動口要根選取的數(shù)碼管類型(共陰或共陽)設(shè)為推挽或開漏,數(shù)碼管位驅(qū)動口同樣,要設(shè)為開漏或推挽。
當(dāng)程序編寫調(diào)試完成后,在投入使用前最后一個(gè)重要工作就是對表頭進(jìn)行校準(zhǔn),以保證測量的準(zhǔn)確性。原則上應(yīng)該使用4i/2及以上住數(shù)的數(shù)字電壓表或萬用表,將其輸入端與表頭輸入端并聯(lián),并輸入一個(gè)1V左右穩(wěn)定的電壓,調(diào)節(jié)電位器,使二者顯示一致的方式來調(diào)整。但是考慮可能沒有4i/2或以上位數(shù)的儀表,也可以用精度良好的31/2或3%J位萬用表來簡單調(diào)整。
首先對表頭進(jìn)行自檢,記下讀數(shù)若自檢讀數(shù)低于9995就應(yīng)該考慮更換更優(yōu)質(zhì)的積分電容了。然后使用萬用表00.OmV或400.OmV量程電壓擋,將其入端與本機(jī)輸入端并聯(lián),并輸入一個(gè)100~200mV的穩(wěn)定電壓,調(diào)節(jié)電位器,使二者顯示一致即可。
最后就可以將表頭投入使用了。由于我沒有更好的積分電容,所以表頭度略差,實(shí)際滿量程誤差是正負(fù)十幾個(gè)字左右,整機(jī)耗電在30mA左右。目前工作正常,與上位機(jī)通信也很穩(wěn)定。
上一篇:PCB布線要點(diǎn)
上一篇:RIGOL生產(chǎn)基地參
熱門點(diǎn)擊
- FU-19推挽功放制作
- RL電路用作濾波器
- RFID卡讀寫器主板的電路原理
- 驅(qū)動Buck-Boost電路產(chǎn)生負(fù)高壓
- 電子管好的選擇
- BJT B類放大器
- 反射式紅外測速儀DIY
- 數(shù)據(jù)存儲在EEPROM中實(shí)現(xiàn)掉電不丟失
- 制作CUBE4彩色光立方
- 舵機(jī)的工作原理
推薦技術(shù)資料
- FU-19推挽功放制作
- FU-19是國產(chǎn)大功率發(fā)射雙四極功率電二管,EPL20... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究