所有产品

和记娱乐第15节:矩阵键盘单个触发的压缩代码编

  。这节要教会大家在不改变其它任何性能的情况下,把上一节的按键扫描程序压缩一下容量。经过压缩后,把原来1558个字节压缩到860个字节的程序容量。

  (2)实现功能:16个按键中,每按一个按键都能触发一次蜂鸣器发出“滴”的一声。

  * 先输出某一列低电平,其它三列输出高电平,这个时候再分别判断输入的四行,

  * 如果发现哪一行是低电平,就说明对应的某个按键被触发。依次分别输出另外三列

  * 中的某一列为低电平,再分别判断输入的四行,就可以检测完16个按键。内部详细的

  case 2: //此处的小延时用来等待刚才列输出信号稳定,再判断输入信号。不是去抖动延时。

  ucKeyStep=1; //如果没有按键按下,返回到第一个运行步骤重新开始扫描

  uiKeyTimeCnt=0; //按键去抖动延时计数器清零,此行非常巧妙

  ucRowRecord=1; //依次输出完四列之后,继续从第一列开始输出低电平

  ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零

  ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零

  ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零

  ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,和记娱乐按键编号清零,避免一致触发

  ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发

  uiVoiceCnt--; //每次进入定时中断都自减1,直到等于零为止。和记娱乐。才停止鸣叫

  ; //此处多加一个空指令,想维持跟if括号语句的数量对称,都是两条指令。不加也可以。

  已经花了两节讲矩阵键盘的单个触发程序。那么,矩阵键盘可不可以实现类似独立按键的组合按键功能?当然可以,但是也有一些附加限制条件。欲知详情,请听下回分解-----矩阵键盘的组合按键触发。