You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

8051单片机连接LCD双屏幕时如何用同一按键实现不同界面计数递增

解决方案

你的代码问题出在increment()递增函数没有绑定当前显示界面,固定只修改第一个界面对应的temp变量,你已经定义的count变量本身就是界面状态标识,可以直接用来做判断分支,修改方法如下:

  1. 修改increment()函数逻辑,根据当前界面状态选择要累加的变量:
void increment(void)
{
    if (button2 == 1)           // 检测到递增按键按下
    {   
        // count=1对应界面1,count=0对应界面2
        if (count == 1) {
            temp++;
            if (temp > 0x39)
                temp = 0x30;
            lcd_dout(temp);
        } else {
            temp1++;
            if (temp1 > 0x39)
                temp1 = 0x30;
            lcd_dout(temp1);
        }
    }
    set_cursor_position(1, 0);
    button2 = 0;  
}
  1. (可选优化)可以把界面状态变量重命名+加宏定义提升代码可读性:
// 原count变量替换为下面的定义
#define SCREEN1 1
#define SCREEN2 0
unsigned char current_screen = SCREEN1; // 初始默认显示界面1

// 对应修改切屏函数的判断逻辑即可,后续维护不需要再记0和1对应哪个界面

修改完成后,在哪个界面按下递增按键,就会累加对应界面的计数值,两个界面的(1,0)位置计数互相独立。


内容的提问来源于stack exchange,提问作者jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:06:00