您的位置:首页 > 编程语言

自制基于51单片机的带闹铃时钟的测试视频,电路图及源代码

2011-10-25 22:11 411 查看
先上图







下面是调整日期和闹铃的程序部分

if(key2==0)					//调闹铃
{
delay_50us(200);		// 消除抖动
if(key2==0)				// 消除抖动
{

read_ring();
ring_change();
while(l)
{

if(key1==0)
{
delay_50us(200);		// 消除抖动
if(key1==0)
{
disp[7-k2]++;
if(disp[7-k2]==10)
disp[7-k2]=0;
}
while(!key1);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key1);
}

if(key2==0)
{
delay_50us(200);		// 消除抖动
if(key2==0)
{
k2--;//下一个
if(k2<4)
{
while(p)
{
ring_display(8);
ring_display(8);
ring_display(8);
ring_display(8);
ring_display(8);
ring_display(8);
ring_display(8);

if(key1==0)
{
delay_50us(200);
if(key1==0)
{
disp[8]++;
if(disp[8]==2)
disp[8]=0;

}
while(!key1);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key1);

}
ring_display(8);
if(key2==0)
{
delay_50us(200);
if(key2==0)
{
ring_change2();	 	//保存修改后的时间
//time_data[6]=0;		//把秒归0
set_ring();
Buzzer=0;
delay_1ms(150);
Buzzer=1;
p=0;
while(!key2);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key2);
}

}

}

l=0;
break;
}
}
while(!key2);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key2);
}

ring_display(k2);
}

/*while(!key1);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key1);  */

}
}

if(key1==0)					//调时间
{
delay_50us(200);		// 消除抖动
if(key1==0)				// 消除抖动
{

while(l)
{

if(key2==0)
{
delay_50us(200);		// 消除抖动
if(key2==0)
{
disp[7-k]++;
if(disp[7-k]==10)
disp[7-k]=0;
}
while(!key2);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key2);
}

if(key1==0)
{
delay_50us(200);		// 消除抖动
if(key1==0)
{
k--;//下一个
if(k<0)
{
while(p)
{
display(8);
display(8);
display(8);
display(8);

if(key2==0)
{
delay_50us(200);
if(key2==0)
{
disp[8]++;
if(disp[8]==8)
disp[8]=1;

}
while(!key2);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key2);

}
display(8);
if(key1==0)
{
delay_50us(200);
if(key1==0)
{
time_change2();	 	//保存修改后的时间
time_data[6]=0;		//把秒归0
set_rtc();
Buzzer=0;
delay_1ms(150);
Buzzer=1;
p=0;
while(!key1);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key1);
}

}

}

l=0;
break;
}
}
while(!key1);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key1);
}

display(k);
}

/*while(!key1);		//不放手key1就是0,则不动  (好像不需要了)
delay_50us(200);
while(!key1);  */

}
}

}
}


这是测试视频:http://www.tudou.com/programs/view/cshUzMQdcXg/

这是电路图:http://download.csdn.net/detail/neolone/3668588

这是源代码:http://download.csdn.net/detail/neolone/3667634
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: