【48812】根据51单片机的矩阵键盘规划

  独立按键,一个按键需求占用一个I/O口,若需求16个按键,那么就会 占用16个I/O口,占有MCS-51系列

  为了处理I/O这样的一个问题,规划出了矩阵键盘,下图是一个4*4的矩阵键盘原理图。

  按键依照4*4的格式进行摆放,组成4行4列,将按键的同行或同列衔接在一起,别离衔接到P1口。

  以上图的S1为例,当按键被按下S1导通,P17与P13导通,能够终究靠判别P17与P13端口的电平是否共同,判别按键是否被按下。

  能够先设置P13(检测端口)电平为高电平,假定P17(驱动端口)为低电平,当按键按下,按键导通,读取P13的电平能够读到低电平。

  P2口衔接8个LED(如下图所示),P1口衔接为4*4的矩阵键盘(如前面的矩阵键盘所示),当按键被按下时,P2口的LED点亮,点亮的LED与按键的键值共同。

  假定设置P17为驱动端口,设置P13为检测端口。初始化时P17口与P13检测口初始状况均为0,然后设置P17口为1,检测P13是否变为高电平,当变为高电平时,阐明有按键被按下,代码如下。

  运用上述代码,烧录程序后。LED灯不亮,按下按键S1,LED1也没有亮。这是因为按键按下时,P17驱动端的高电平,会被P13检测端的低电平拉成低电平,检测端口检测不到高电平。

  将代码修正为初始化时P17口与P13检测口初始状况均为1,然后设置P17口为0,检测P13是否变为低电平,当变为低电平时,阐明有按键被按下,修正代码如下。

  将按键检测代码独立拉出来写成函数,完成16个按键,按压时对应的led被点亮,代码如下。

  (1)独立按键运用简略,假如项目中需求多个独立按键就会很糟蹋I/O资源;

  (4)对同一个功用能写成函数,需求时进行函数调用,看代码时更有逻辑性。



上一篇:【48812】老君威cd、空调控制面板按键照明灯改led测验 下一篇:从LED的过去透析芯片的未来

Copyright © 2014 环球国际2024最新|官网app下载地址 Kuangtong Electric(China) Co.,ltd All Rights Reserved

鄂公网安备 鄂ICP备14019055号-1