新闻中心

EEPW首页>嵌入式系统>设计应用> 时间可调的定时闹钟C51程序

时间可调的定时闹钟C51程序

作者: 时间:2012-10-31 来源:网络 收藏

void jia() //加1子函数
{
if(cnt==2) //判断key1按下的次数是否为2
{
miao++; //是,则秒加1
if(miao>59) //判断秒是否大于59,是,则秒清零
miao=0;
}
if(cnt==3) //以下含义同上
{
fen++;
if(fen>59)
fen=0;
}
if(cnt==4)
{
shi++;
if(shi>23)
shi=0;
}
if(cnt==5)
{
miao2++;
if(miao2>59)
miao2=0;
}
if(cnt==6)
{
fen2++;
if(fen2>59)
fen2=0;
}
if(cnt==7)
{
shi2++;
if(shi2>23)
shi2=0;
}
}
void jian() //减1子函数
{
if(cnt==2) //判断key1按下的次数是否为2,是则秒减1
{
miao--;
if(miao==255) //判断秒是否减到255,是,则秒清零
miao=59;
}
if(cnt==3)
{
fen--;
if(fen==255)
fen=59;
}
if(cnt==4)
{
shi--;
if(shi==255)
shi=23;
}
if(cnt==5)
{
miao2--;
if(miao2==255)
miao2=59;
}
if(cnt==6)
{
fen2--;
if(fen2==255)
fen2=59;
}
if(cnt==7)
{
shi2--;
if(shi2==255)
shi2=23;
}
}
void clock() //闹铃子函数
{
if(miao2==miao) //显判断秒的数值是否相等
if(fen2==fen) //是,在判断分是否相等
if(shi2==shi) //是,再判断时是否相等
{
flag1=0; //是,则标志位,flag1清零
while(!(flag1==100)) //判断flag1是否到100
{
fmq=0; //没有,则,继续驱动蜂鸣器响,时间约为:5s
shijian(); //调用时间子函数
display(); //调用显示子函数
}
fmq=1;//关闭蜂鸣器
}
}
void main()
{
init();//调用初始化子函数
while(1)
{
key_scan(); //调用键盘扫描子函数
shijian(); //时间子函数
clock(); //闹钟子函数
//显示子函数
if(cnt==0||cnt==1||cnt==2||cnt==3||cnt==4||cnt==8)
{
display();
}
if(cnt==5||cnt==6||cnt==7)
{
display_1();
}
}
}
void time0() interrupt 1 //定时器0
{
TH0=(65536-50000)/256; //初值50ms
TL0=(65536-50000)%256;
flag++; //标志位
flag1++;
}


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭