📄 main.c
字号:
/***************************************************************************************************************
说明:低电压检测(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
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -