吴钩霜雪 发表于 2022-5-19 13:59 应该说,有符号变量,取反后+1,就是正负数,所以你要直接正负数变化,可以tempvalue = ~tempvalue +1; 你具体程序如何,我不知道,我上面只是写个例子给你,给你参考后加入你的程序。 |
188610329 发表于 2022-5-15 16:59 是不是应该只把TempValue的符号位取反? |
188610329 发表于 2022-5-15 16:59 TempValue = ~TempValue; 把温度值各位直接取反就得到对应的负值或正值了吗? |
wulin 发表于 2022-5-15 22:28 我是这样想的:假如我要设置100度,就不需要按那么多次了,所以我设计那样的按键电路。假如是10个数字0~9对应的按键电路更复杂,所以我没考虑。我问的问题是假如就按我那样的按键电路来编写程序,应该怎样编? |
吴钩霜雪 发表于 2022-5-15 13:30 定义char型变量,数据范围-128~127。只需对变量的最高位判读即可,无需设置符号键。给你一个示例参考。LED/LCD兼容。
DS18B20温度上下限报警数码管 1602显示.rar
(182.72 KB, 下载次数: 13)
|
| 先贴代码 |
|
#define KeyTen 0x10 #define KeyOne 0x11 #define KeySign 0x12 #define KeySett 0x14 if(Press) { Press = 0; if(Setting_Menu) { switch(KeyValue) { case KeySett: Setting_Menu = 0; break; case KeyTen: TempValue += 10; break; case KeyOne: TempValue ++; break; case KeySign: TempValue = ~TempValue; break; default: break; } else Setting_Menu = 1; } |
| 设置几个标志位,按下求反标志位,然后判断标志位状态.跟据标志位状态决定后面要做什么动作 |
IdeaMing 发表于 2022-5-15 12:39 我想设置温度:按设置键一下,进入设置温度功能,如果设置-23度,则按符号位1下,十位2下,个位3下。正数不按符号位。最后再按设置键退出设置温度功能。 我实现不出才来求助的。 |
| 正常编写就可以 |
| 就正常编写,还能怎么编写? |