我刚开始学的单片机的时候,一直会热枕于一个操作——就是希望我自己能按一下键盘,让单片机去执行我想要的操作命令。但是就是被这种热枕所向往,以至于我一直没有去想它是怎么一个工作环境(一开始居然忘记联想到 C 语言的 if 条件语句!)。所以这里我以自身经历去奉劝大家,我们在憧憬于一件事的时候,不要忘记去力所能及的实现它!接下来,我将分批次的把我对“按键”的理解记行分享。其中,按键的存在形式主要有两种:独立按键、矩阵按键。对于按键的扫描(用于让单片机知道我们是按下哪一个按键)主要与三种方法:传统的按键识别、带有标志位的按键识别、快速识别。在此,我把传统的按键检测分为:延时消抖检测、外部中断检测。这里,我首先来介绍延时消抖检测。
这里 J5 是一个排针, 用跳帽连接 J5 的2脚与3脚即可将键盘设置为独立按键(只有S4~S7有效)。此时,S4~S7一端分别与 P3^3~P3^0相连,另一端连向GND。这样,我们先给P3^0~P3^3赋高电平(其实单片机上电时, I/O 口默认输出高电平。但是为了严谨,在扫描之前还是先用软件实现赋高电平)即可通过检测P3^0~P3^3处的电平是否出现低电平的状态,去查看哪个按键是否被按下。(当有按键按下时,则此按键连接的P3引脚的 I/O 口会从高电平变为低电平的状态)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !