使用一个变量来记录当前要显示的程序,每次按下 S4 按键后将变量+1,然后根据变量的值选择要显示的程序。当变量的值超过最大值时,将其重置为0,重新开始循环显示。下面是一个示例代码:

int program = 0; // 当前要显示的程序编号

while(1)
{
    if(S4 == 0) // 检查 S4 按键是否按下
    {
        program++; // 切换到下一个程序
        if(program > 2) // 如果超过最大程序编号,重置为0
        {
            program = 0;
        }
        DelaySMG(200); // 延时一段时间,避免按键抖动
    }
    
switch(program) // 根据程序编号选择要显示的内容
    {
        case 0:
            // 显示第一个程序的内容
            DisplaySMG_Bit(7,SMG_NoDot[12]);
            DisplaySMG_Bit(6,SMG_NoDot[(temp/10)%10]);
            DisplaySMG_Bit(5,SMG_NoDot[(temp/100)%10]);
            DisplaySMG_Bit(4,0xff);
            DisplaySMG_Bit(3,0xff);
            DisplaySMG_Bit(2,0xff);
            DisplaySMG_Bit(1,SMG_NoDot[1]);
            DisplaySMG_Bit(0,0xc1);
            break;
        
        case 1:
            // 显示第二个程序的内容
            DisplaySMG_Bit(7,SMG_NoDot[0]);
            DisplaySMG_Bit(6,SMG_NoDot[2]);
            DisplaySMG_Bit(5,SMG_NoDot[16]);
            DisplaySMG_Bit(4,SMG_NoDot[5]);
            DisplaySMG_Bit(3,SMG_NoDot[0]);
            DisplaySMG_Bit(2,0xff);
            DisplaySMG_Bit(1,SMG_NoDot[2]);
            DisplaySMG_Bit(0,0xc1);
            break;
        
        case 2:
            // 显示第三个程序的内容
            DisplaySMG_Bit(7,SMG_NoDot[(temp/10)%10]);
            DisplaySMG_Bit(6,SMG_NoDot[(temp/100)%10]);
            DisplaySMG_Bit(5,0xff);
            DisplaySMG_Bit(4,0xff);
            DisplaySMG_Bit(3,0xff);
            DisplaySMG_Bit(2,0xff);
            DisplaySMG_Bit(1,SMG_NoDot[3]);
            DisplaySMG_Bit(0,0xc1);
            break;
    }
    
    DelaySMG(100); // 延时一段时间,控制显示刷新率
}

这段代码首先定义了一个名为 program 的变量,用于记录当前要显示的程序编号。然后,代码进入一个无限循环,不断检查 S4 按键是否按下。如果按下,则将 program 变量的值加 1,并根据 program 变量的值选择要显示的内容。当 program 变量的值超过 2 时,将其重置为 0,重新开始循环显示。

代码中的 DisplaySMG_Bit 函数负责控制显示屏的每个位,SMG_NoDot 数组用于存储显示内容。你可以根据需要修改 DisplaySMG_Bit 函数和 SMG_NoDot 数组的内容。


原文地址: https://www.cveoy.top/t/topic/m8aN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录