📄 main.c
字号:
/*源代码部分*/
#include "reg24le1.h"
#define LED P00
/*定义一些函数*/
/*延时函数*/
void delay(unsigned int x)
{
unsigned int dy;
for(;x>0;x--)
for(dy=1000;dy>0;dy--)
{
;
}
}
/*I/O配置函数*/
void IO_CONFIG()
{
P0DIR&=0XFE; //设置成输出
LED=0;
}
/*配置电压报警寄存器*/
void PWR_CONFIG()
{
POFCON|=0X80;//使能供电失败报警,配置比较电压为2.1v
}
/*读取电源失败的原因*/
unsigned char RD_POF()
{
return (POFCON&=0X10) ; //如果是0就是高,如是去1就是电压低于比较值
}
/***串口初始化函数***/
/***函数名称: uart_init();传递的参数无,用于串口的初始化*/
void uart_init()
{
CLKCTRL = 0x28; // 设置主时钟源为XCOSC 16MHz
CLKLFCTRL = 0x01;
P0DIR &= 0xF7; // P0.3 (TxD) 发送
P0DIR |= 0x10; // P0.4 (RxD) 接收
P0|=0x18;
S0CON = 0x50;
PCON |= 0x80; // 比特率倍增
WDCON |= 0x80; // 选用内部波特率发生器
S0RELL = 0xFB;
S0RELL = 0xF3; // 设置波特率为38400
}
/*通过串口发送一个字符到串口终端*/
void send(char ch) //通过串口发送一个字符
{
S0BUF=ch;
while(!TI0); //等待发送完成
TI0=0;
}
/*发送一个字符串的函数*/
void puts(char *str)
{
while(*str!='\0')
{
send(*str++);
}
}
/*主函数部分*/
void main()
{
uart_init();
PWR_CONFIG();
IO_CONFIG();
puts("power checking test!"); //打印提示信息
send('\n');
while(1)
{
if(RD_POF()) //检测反馈当前的供电的电压情况
puts("power votage is below 2.1");
else
puts("power votage is above 2.1");
send('\n');
delay(1000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -