标题: 求指导 设一变量 a,初始值为 0;P3.5 口按键每按一次,a 就自增 1 [打印本页]

作者: 144533    时间: 2021-10-7 18:26
标题: 求指导 设一变量 a,初始值为 0;P3.5 口按键每按一次,a 就自增 1
本帖最后由 144533 于 2021-10-11 23:56 编辑

设一变量 a,初始值为 0;P3.5 口按键每按一次,a 就自增 1;直至增到 a
为 9,再按一次按键,a 归 0;如此反复;P3.6 口按键每按一次,a 就自减 1;
如此反复;将 a 的值实时送至数码管显示。当按下 p3.7 按键确认时,将 a 的
值存储在 24c02 芯片里.


作者: 188610329    时间: 2021-10-8 15:45
提一个小建议:
按键+1,大于9 归0 ,这还搞不定的前提下。
先不要玩 AT24C02。

真的,肺腑之言,就算把代码都给你写了,你也跑不起来。
作者: glinfei    时间: 2021-10-8 16:19
你先抄一个三个case的按键程序和数码管显示程序,在主程序设置个死循环,反复读按键,然后显示a就行了,也别用终端啥的。如果搞存储,那就抄个I2c,不过是读写1个字节,没啥难度。
作者: 帅气的猫咪    时间: 2021-10-8 16:22
if判断好限值,到了0和9记得循环就好了
作者: datouyuan    时间: 2021-10-8 16:47
本帖最后由 datouyuan 于 2021-10-8 16:49 编辑

加键
  1. if(++a>9) a=0;
复制代码

减键
  1. if(--a==255) a=9;
复制代码

保存键,假设存储在 24c02 芯片的地址是0
  1. IIC_write(0,a);
复制代码


按键、数码管、24c02等代码随便一本入门教材都能找到,把上面几行代码放到对应位置。
作者: wojiaoguogai    时间: 2021-10-8 17:19
int a = 0;
作者: wojiaoguogai    时间: 2021-10-8 17:28
int main(void)
{
    int a = 0;

    while (1)
    {
        if (/*P3.5 按下*/)
        {
            //滤波
            if (a < 10)
                a++;
            else
                a = 0;
        }

        if (/*P3.6 按下*/)
        {
            //滤波
            if (a > 0)
            {
                a--;
            }
            else
            {
                //啥也不做
            }
            
        }
        //数码管显示?这和地方没搞明白逻辑,是实时显示还是只有P3.6按下才显示,还是显示P3.6按下的数值

        if (/*P3.7 按下*/)
        {
        //滤波
        //存储
        }

    }
    return 0;
}
作者: yzwzfyz    时间: 2021-10-9 14:41
建议楼主改学CEO。
作者: 946248446    时间: 2021-10-14 13:52
死循环加自增自减判断即可
作者: hy1589766    时间: 2021-10-14 14:37
一步步来,先实现a的加一和减一,实现后,再实现存储到24c02




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1