本帖最后由 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.51hei.com/bbs/dpj-98300-1.html
|