标题: 关于单片机数码管0500倒计时程序 [打印本页]

作者: 702724152    时间: 2023-7-29 17:49
标题: 关于单片机数码管0500倒计时程序
也就是05分00秒,倒计时要变04分59秒。需要减到0000。
c语言是怎么减数
分min,秒sec.

是不是min-1;后再sec==59;sec-- ;if(sec==0) {min-1; }
有点乱,求教。
作者: mtt661    时间: 2023-7-29 18:07
if(sec<0)
{
min=min-1;
sec=59;
}
sec要声明成有符号的。
这样可以显示  5分0秒和4分59秒
作者: 702724152    时间: 2023-7-29 19:08
mtt661 发表于 2023-7-29 18:07
if(sec

显示了 04.59后怎么倒计时减到0000
作者: cnfloatleaf    时间: 2023-7-29 20:26
我是这样写的,请看看ok否?
if(minute>0 || second>0)        // 分和秒不同时=0
{
        if(minute > 0)                        // 如果分大于0
        {
                second--;                        // 秒减1
                if(second > 59)                // 如果秒=0时减1,等于255
                {
                        second = 59;        // 秒赋值为59,分减1
                        minute--;
                }
        }
        else                                        // 如果分=0
        {
                if(second > 0)                // 如果秒大于0,秒减1
                { second--; }
        }
}
作者: npn    时间: 2023-7-29 21:49
嫌乱就用时间戳:0~86399,换算成:小时、分钟、秒,剩下的是小学数学题。
作者: nj周宏达    时间: 2023-7-30 12:44
试试这个吧;
if(second>0)                //如果秒大于0,则减1秒
{       
        second--;
}
else if(minute>0) //如果秒等于0,则从分钟借位,分钟减1,秒变为59
{
        minute--;
        second=59;
}
else                          //如果分秒都为0
{                               
        ;       
}
作者: 702724152    时间: 2023-7-31 08:47
nj周宏达 发表于 2023-7-30 12:44
试试这个吧;
if(second>0)                //如果秒大于0,则减1秒
{       

正解,谢谢
作者: 702724152    时间: 2023-7-31 08:48
nj周宏达 发表于 2023-7-30 12:44
试试这个吧;
if(second>0)                //如果秒大于0,则减1秒
{       

正解,谢谢
作者: 702724152    时间: 2023-7-31 18:59
cnfloatleaf 发表于 2023-7-29 20:26
我是这样写的,请看看ok否?
if(minute>0 || second>0)        // 分和秒不同时=0
{

正解,谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1