本帖最后由 weihu 于 2017-11-18 04:35 編輯
實現本功能的中穎單片機源碼如下:- /***************************************************************************************************************
- 說明:低電壓檢測(LPD)功能用來監測電源電壓,如果電壓低于指定值時產生內部標志,LPD功能用來通知CPU電源是否被切斷
- 或電池用盡,因此在電壓低于最小工作電壓之前,軟件可以采取一些保護措施。
- 本程序通過監測P4.7(VLPD)引腳電壓,若低于指定電壓就產生中斷。
- 要求:打開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; //中斷優先級設定 此處的設置表明LPD具有最高優先級
- IEN1 = 0x80; //IEN1 = 1000 0000B 即 ELPD=1 打開LPD中斷
- LPDCON = 0xA1; //LPDCON = 101- --01B LPDEN=1 允許低電壓檢測
- //LPDCON = 101- --01B LPDF=0 LPD中斷標志位,默認為0,為1時表示有LPD中斷發生
- //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的中斷號為14.
- {
- P0_0 = 1; //中斷處理函數部分,如實時進行數據存儲
- LPDCON &= 0xBF; //LPDCON & 1011 1111 清0中斷標志位, 由硬件或軟件清0
- …………
- …………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

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