找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1103|回复: 11
打印 上一主题 下一主题
收起左侧

请问怎么编写这样的按键处理单片机程序?我想设置温度:按设置键一下,进...

[复制链接]
跳转到指定楼层
楼主
我试了好多次,液晶都没显示出来这个设置的温度。

51hei图片20220515094802.png (22.6 KB, 下载次数: 52)

51hei图片20220515094802.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:276663 发表于 2022-5-15 12:39 | 只看该作者
就正常编写,还能怎么编写?
回复

使用道具 举报

板凳
ID:1026496 发表于 2022-5-15 12:48 | 只看该作者
正常编写就可以
回复

使用道具 举报

地板
ID:688211 发表于 2022-5-15 13:30 | 只看该作者
IdeaMing 发表于 2022-5-15 12:39
就正常编写,还能怎么编写?

我想设置温度:按设置键一下,进入设置温度功能,如果设置-23度,则按符号位1下,十位2下,个位3下。正数不按符号位。最后再按设置键退出设置温度功能。
我实现不出才来求助的。
回复

使用道具 举报

5#
ID:61140 发表于 2022-5-15 16:35 | 只看该作者
设置几个标志位,按下求反标志位,然后判断标志位状态.跟据标志位状态决定后面要做什么动作
回复

使用道具 举报

6#
ID:624769 发表于 2022-5-15 16:59 | 只看该作者

#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;
}
回复

使用道具 举报

7#
ID:161164 发表于 2022-5-15 18:25 | 只看该作者
先贴代码
回复

使用道具 举报

8#
ID:213173 发表于 2022-5-15 22:28 | 只看该作者
吴钩霜雪 发表于 2022-5-15 13:30
我想设置温度:按设置键一下,进入设置温度功能,如果设置-23度,则按符号位1下,十位2下,个位3下。正数 ...

定义char型变量,数据范围-128~127。只需对变量的最高位判读即可,无需设置符号键。给你一个示例参考。LED/LCD兼容。 DS18B20温度上下限报警数码管 1602显示.rar (182.72 KB, 下载次数: 13)

回复

使用道具 举报

9#
ID:688211 发表于 2022-5-18 21:31 | 只看该作者
wulin 发表于 2022-5-15 22:28
定义char型变量,数据范围-128~127。只需对变量的最高位判读即可,无需设置符号键。给你一个示例参考。LE ...

我是这样想的:假如我要设置100度,就不需要按那么多次了,所以我设计那样的按键电路。假如是10个数字0~9对应的按键电路更复杂,所以我没考虑。我问的问题是假如就按我那样的按键电路来编写程序,应该怎样编?
回复

使用道具 举报

10#
ID:688211 发表于 2022-5-19 13:59 | 只看该作者
188610329 发表于 2022-5-15 16:59
#define  KeyTen    0x10
#define  KeyOne    0x11
#define  KeySign    0x12

TempValue = ~TempValue;
把温度值各位直接取反就得到对应的负值或正值了吗?
回复

使用道具 举报

11#
ID:688211 发表于 2022-5-19 14:02 | 只看该作者
188610329 发表于 2022-5-15 16:59
#define  KeyTen    0x10
#define  KeyOne    0x11
#define  KeySign    0x12

是不是应该只把TempValue的符号位取反?
回复

使用道具 举报

12#
ID:624769 发表于 2022-5-19 14:14 来自手机 | 只看该作者
吴钩霜雪 发表于 2022-5-19 13:59
TempValue = ~TempValue;
把温度值各位直接取反就得到对应的负值或正值了吗?

应该说,有符号变量,取反后+1,就是正负数,所以你要直接正负数变化,可以tempvalue = ~tempvalue +1;  你具体程序如何,我不知道,我上面只是写个例子给你,给你参考后加入你的程序。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表