请问如何用单片机C语言实现电子时钟的可调功能??

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:42:47
我扫描键盘的程序是个带返回值的子函数uchar keyscanb()
要求是按了矩阵键盘上的某两个键后,数码管熄灭,进入设置时间的状态
然后连续按六个数字,一个一个的显示出来,实现时间的重设

请问下该如何实现啊?C语言的喔
我已经能够实现到按A和2之后,数码管熄灭,可是后面的设置时间,我实在是搞不出来。。。。。。。。。请各位高手帮忙

我想可以用中断..
在中断中设置几个标志位..
当按不同键时改变了这些标志位..
这样应该就能达到你的要求了..

祝你好运!
^_^

/***************时间调整函数*******************/
void scan(void)
{ TR0=0; //关T0.
flag=1; //时间闪烁置1
TR1=1; //启动闪烁
while(key==0)scanner(1);//按键释放否?否.调用显示函数,防待显示中止.
scanner(2); //是,调用16ms显示延时消抖
for(;;) //进入循环
{ while(key==1)scanner(1);//键按下否?
scanner(62); //是,调用显示延时,62*8MS=0.5S
if(key==1) //放开.则时间小于0.5S,分钟加1
{ minutes++; //分加1
if(minutes==60)
minutes=0;
}
else break; //按下时间大于0.5S,跳出分调整.
}
/*按下时间大于1秒转调小时状态*/
shibiao=1; //小时调整标志置1
while(key==0)scanner(1);//键释放否?
scanner(2); //延时
for(;;)
{ while(key==1)scanner(1);//等待键按下
scanner(62);//有键按下延时0.5秒
if(key==1)//放开,则按下时间小于0.5秒
{ hours++;//时加1
if(hours==24)
hours=0;
}
else break; //按下时间大于0.5S,跳出时调整.
}
flag=0; //