我用c语言写了一个基于51单片机的电子钟,可是调整时间的时候,比如调分的时候,数码管时分秒一起闪烁

我用c语言写了一个基于51单片机的电子钟,可是调整时间的时候,比如调分的时候,数码管时分秒一起闪烁,怎么修改,使得调哪一位,哪一位单独闪烁?有木有会的,。。。。。。

我用单片机驱动液晶屏做过带温度带闹钟功能的时钟,调节的时候你要专门定义一个调节位变量,通过判断这个调节位变量,然后单片机闪烁相关位追问

我的数码管

你的程序呢,就是这一块

我用c写的啊,状态机不是vhdl么

追答

我找了一段,比如闹钟设定吧,你参考一下,数码管判断位会更少的
if(kala==0)
{
delay(10);
if(kala==0)//延时判断闹钟设定键确实按下
{
light=1;//按键按下,触发背光
tback=0;//触发背光倒计时20S标志
read_alarmtime();//读取闹钟时间
setalarm=1;// 设定闹钟状态标志
flagalarm=0;//当前设定位闪动标志
while(kala==0);//松手检测
.......

追问

放在中断函数么

追答

主程序中专门设置一步按键扫描判断函数,放在那里就行,中断里有时候跟不上按键时机,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-29
因为你采用的是延时消抖动,你用状态机写的就不会追问

对哈,怎么写呢,

追答

用状态机写咯,或者看看马潮老师的书

追问

可以把需要调的哪位增加延迟时间,段选位选的代码改一下行不行

追答

貌似不行,主要是键盘消抖动的问题

第2个回答  2013-11-29
我想知道您的设计是通过锁存器实现的吗?如果是您就增大要闪烁位的时间延时或者中断时长,其它位正常扫描显示。追问

相似回答