|
本帖最后由 weihu 于 2017-11-18 04:35 編輯
實(shí)現(xiàn)本功能的中穎單片機(jī)源碼如下:- /***************************************************************************************************************
- 說明:低電壓檢測(LPD)功能用來監(jiān)測電源電壓,如果電壓低于指定值時(shí)產(chǎn)生內(nèi)部標(biāo)志,LPD功能用來通知CPU電源是否被切斷
- 或電池用盡,因此在電壓低于最小工作電壓之前,軟件可以采取一些保護(hù)措施。
- 本程序通過監(jiān)測P4.7(VLPD)引腳電壓,若低于指定電壓就產(chǎn)生中斷。
- 要求:打開J11的2腳。
- ****************************************************************************************************************/
- #include <sh88f516.h>
- void init();
- main()
- {
- init();
-
- while(1);
- }
- void init()
- {
- CLKCON = 0x00;
- P0M0 = 0x00;
- P0M1 = 0x01; //P0.0
- P0_0 = 0;
- IPH1 = 0x80;
- IPL1 = 0x80; //中斷優(yōu)先級(jí)設(shè)定 此處的設(shè)置表明LPD具有最高優(yōu)先級(jí)
- IEN1 = 0x80; //IEN1 = 1000 0000B 即 ELPD=1 打開LPD中斷
- LPDCON = 0xA1; //LPDCON = 101- --01B LPDEN=1 允許低電壓檢測
- //LPDCON = 101- --01B LPDF=0 LPD中斷標(biāo)志位,默認(rèn)為0,為1時(shí)表示有LPD中斷發(fā)生
- //LPDCON = 101- --01B LPDV=0 LPD檢測電壓源,為0檢測電源電壓,為1檢測VLPD(P4.7)引腳電壓
- //LPDCON = 101- --01B LPDS[0,1]=01 比較電壓選擇,00=3.7V,01=3.9V,10=4.2V,11=4.4V
- EA = 1; //IEN0 = 1000 0000B 即 EA=1 開總中斷
- }
- void LPD_INT() interrupt 14 using 1 //外部中斷4的中斷號(hào)為14.
- {
- P0_0 = 1; //中斷處理函數(shù)部分,如實(shí)時(shí)進(jìn)行數(shù)據(jù)存儲(chǔ)
- LPDCON &= 0xBF; //LPDCON & 1011 1111 清0中斷標(biāo)志位, 由硬件或軟件清0
- …………
- …………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

壓縮包里面包含有中穎單片機(jī)sh88f516常用功能的源碼,中文注釋都很詳細(xì)
下載地址:http://www.torrancerestoration.com/bbs/dpj-98300-1.html
|
|