📄 设置闹钟 程序.c
字号:
//*********PCF8563设置闹钟子程序PCF8563_set_alm()**
void PCF8563_set_alm( struct alarm alm, bit smin, bit shour, bit sday, bit sweek)
{
if( smin ) //如果有小时报警
{
alm.minute = HEXtoBCD ( alm.minute); //将分钟数值转换为BCD格式
alm.minute = alm.minute & 0x7F; //取分钟字节,屏蔽无效位
}
else //如果没有小时报警
{
alm.minute = alm.minute | 0x80; //清小时报警数据
}
if( shour ) //如果有日报警
{
alm.hour = HEXtoBCD ( alm.hour); //将小时数值转换为BCD格式
alm.hour = alm.hour & 0x3F; //取小时字节,屏蔽无效位
}
else //如果没有日报警
{
alm.hour = alm.hour | 0x80; //清日报警数据
}
if( sday ) //如果有月报警
{
alm.day = HEXtoBCD ( alm.day); //将天数值转换为BCD格式
alm.day = alm.day & 0x3F; //取天字节,屏蔽无效位
}
else //如果没有月报警
{
alm.day = alm.day | 0x80; //清月报警数据
}
if( sweek ) //如果有星期报警
{
alm.weekday = HEXtoBCD (alm.weekday); //将星期数值转换为BCD格式
alm.weekday = alm.weekday & 0x07; //取星期字节,屏蔽无效位
}
else //如果没有星期报警
{
alm.hour = alm.hour | 0x80; //清星期报警数据
}
IIC_write_lendata(0xA2,9,*alm,sizeof(struct alarm));
//向PCF8563写报警时间
Delay(80);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -