标题:
单片机1602按键显示程序逻辑问题
[打印本页]
作者:
罗富永1
时间:
2019-3-21 09:53
标题:
单片机1602按键显示程序逻辑问题
定义一个unsigned char x=10 按键按下一次x-1,if(x<0) x=0 可是当显示为0的时候再按下按键他就变成I5 I4 不是一直保持0
作者:
罗富永1
时间:
2019-3-21 10:27
有没有大神
作者:
mosqu
时间:
2019-3-21 10:52
unsigned 是没有<0的,你直接if(x == 0)
作者:
罗富永1
时间:
2019-3-21 11:50
mosqu 发表于 2019-3-21 10:52
unsigned 是没有
x==0也不行,到0再减一还是变成I5
作者:
mosqu
时间:
2019-3-21 13:39
罗富永1 发表于 2019-3-21 11:50
x==0也不行,到0再减一还是变成I5
你的if在哪里的,最好在x-1之前
你贴那段代码出来啊
这样盲猜很难猜啊
作者:
采蘑菇的小宋
时间:
2019-3-21 13:42
不如在对X减一之前判断,比如:
if(x>0)
x--;
当x=0时就不会再减了
作者:
孤独一笑
时间:
2019-3-21 15:25
unsigned都是大于0的数
作者:
z36x98c52
时间:
2019-3-21 21:17
unsigned char 是大于零的数,0再减的话又会变成正数。 进不去if(x<0)中的语句。 把unsigned删掉,就可以了
作者:
zhb2004xp
时间:
2019-3-21 21:54
这个问题是非常明显是变量定义和取值的问题,既然定义了unsigned char x,则x=0~255,就不会有<0的情况,所以你的判断语句if(x<0)就不可能成立;如果你在x=0后再减1,或者x=255再加1,都会造成数据的溢出
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1