也就一颗nz 2023-10-18 21:06 采纳率: 71.4%
浏览 7
已结题

c51单片机怎么检测矩阵键盘两次按下同一个键,然后执行两个不同操作

keil
设定了一个函数等于键值,当次函数得到1时,在数码管显示一,现想要在数码管实现第一次按下1,数码管第八位显示一,第二次按下一时,数码管第七位显示一(刚才的1往前进了一位),第八位也显示一

  • 写回答

1条回答 默认 最新

  • 吕傑森 2023-10-18 21:24
    关注

    将显示值存在 BUFFER,
    每按键一次, 就将 BUFFER 向前移位

    Pseudo code:

    uint8_t   DisplayBuffer[8] = { 0,0,0,0,0,0,0,0};
    while(1)
      {
         If (  TRUE ==  Key Presssed( )  )  
           {   
              Shift_Left (  DisplayBuffer[ ] ); 
              DisplayBuffer[0] = Key_Value; 
           }
         Show Display Buffer to 7-Seg;    
      }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月18日
  • 已采纳回答 10月18日
  • 创建了问题 10月18日

悬赏问题

  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
  • ¥15 ADS时域 连续相位观察方法