标题: 单片机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