标题:
单片机时钟的简易闹钟程序分析
[打印本页]
作者:
kz0018
时间:
2022-10-29 21:58
标题:
单片机时钟的简易闹钟程序分析
大家在制作单片机时钟或万年历时,都习惯用蜂鸣器来做讯响器件。大都用来指示设置步奏。当然,同时用来制作一个简易闹钟也是很容易的。前段时间在网上留意了几个闹钟程序,捡最简易的两个做了一下分析,现分享给大家
单片机时钟的简易闹钟程序:
程序1:
void BJ_alarm()//定义一个闹钟函数
{
if(alarm_sdgb==0&&alarm_kg==1&&set==0)//如果在时钟运行中
{ //手动关闭标志为0且闹钟开关为开启状态
if(hour==nz_shi&&min==nz_fen)//如果时分到达预设时刻
bj=1; //报警标志为真(1)
else //否则
{
fmq=1;//蜂鸣器不响
bj=0;//报警标志为假(0)
}
}
}
void time() interrupt //定时器中断函数
{
TH0=0x3c;//高位
TL0=0xb0;//低位 定时50毫秒溢出 12MHz
ee++; //溢出次数增加
if(ee==10)//如果达到10次 500毫秒
{
ee=0; //次数清0
if(bj==1)//如果报警标志为真
fmq=!fmq;//蜂鸣器状态翻转
}
}
程序2:
void BJ_alarm()
{
read_eeprom();//读取闹钟数据
if((hour==nz_shi)&&(min==nz_fen)&&(set==0)) //如果在运行期间 { //时分达到设置闹钟时刻
bj=1;//报警标志为真(1)
if(alarm_kg==1&&bj==1) //如果闹铃开关打开且报警时间标志为真 {
if(sec%2) //秒能整除2(即秒数为偶数)
fmq=0;//蜂鸣器响
else //否则
fmq=1;//蜂鸣器停响
}
}
{
fmq=1;
bj=0;
}
}
对以上两种闹钟简易程序的分析:
1.两种程序代码很少,极易生成相应效果。
2.程序1蜂鸣器讯响频率依据单片机定时器而定,鸣响和停响时间相等。
程序2蜂鸣器讯响频率依据时钟走时秒数而定,鸣响和停响时间可以不等.
3.程序1闹钟设置的数据在断电后会丢失,而程序2则不会,只需一次设定.
4.另外在按键使用上,灵活性上两者也有诸多不同。本人倾向用第二种.
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1