前言:上一篇说到使用74HC164做按键扫描的实现,这篇就作为关于74HC164使用时遇到的问题记录帖。


关于二极管

  • 在使用一些非按键专用的扫描芯片时,往往会在芯片的扫描端的每个端口都接上一个二极管,二级管具有单向导电性,其作用是防止在按下多个按键即组合键时,扫描电平不会受到干扰。
  • 笔者在使用74HC164的过程中遇到过一次二极管焊反引起的按键失灵问题。上一篇中我们提到,74HC164可以有两种扫描方案:公共端接地或者公共端上拉,而这两种不同的方案对应的扫描端口二极管方向正好相反,因此在遇到问题时,不妨可以先检查一下二极管的方向。

关于CLR

  • 上一篇中介绍到,74HC164上有一个CLR端口,它的芯片正常工作时应该接高电平,想要清空所有输入时接低电平。因此,在正常工作时,CLR端口必须接高电平,不然芯片会一直清空所有数据。
  • 笔者在使用过程中遇到过CLR未接高电平而悬空的情况,导致芯片一直无法输出数据。

关于端口复用

  • 笔者在使用74HC164作按键扫描时,由于单片机芯片引脚数量不够,将按键扫描公共端口和164的数据端口复用,由于164无锁存功能,当复用端口有按键被按下时,总有公共端口会一直出现一直为低情况,表示该公共端口上所有按键都被按下。
  • 所以,使用164进行按键扫描时,164的数据端口和公共扫描端口不能复用。

总结:以上是笔者使用74HC164时遇到的一些问题,如果以后还遇到问题再更新。

按键扫描——74HC164驱动(二)相关推荐

  1. 按键扫描——74HC164驱动(一)

    前言:在做MCU的外部按键扫描时,74HC164是一种不错的选择.笔者在使用它的过程中,遇到了一些问题,在这里整理记录下. 74HC164的特性 如下图所示,74HC164是 8 位边沿触发式移位寄存 ...

  2. LED数显低功耗驱动芯片VK16K33,低功耗数码管LED驱动IC-SOP28/24/20,多封装选择,带按键扫描功能,兼容市面16K33

    品牌:永嘉微电/VINKA 型号:VK16K33 封装:SOP28/24/20 年份:新年份 概述: VK16K33是一个内存映射和多功能LED控制器驱动程序.VK16K33有28SOP.24SOP和 ...

  3. (二)DSP28335基础教程——GPIO输入(矩阵按键扫描)

    0 前言 GPIO输入功能是28335非常重要的部分,可通过外部数字逻辑信号的输入,作为逻辑触发控制的判断条件.比如在电机控制中,通过判断输入管脚的电平状态,实现电机调速.在显示屏人机界面下,也可通过 ...

  4. 74hc164驱动数码管c语言程序,74hc164应用电路图_74hc164驱动源程序

    74hc164是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容.74hc164是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出.数据通过两个输入端(DSA ...

  5. 这个设计思想能启蒙你很多年,嵌入式裸机按键扫描

    这个设计思想能启蒙你很多年,嵌入式裸机按键扫描 摘要:本文目的是讲述一个按键扫描处理的面向对象开发的设计思想,适用于裸机开发,通过按键扫描,检测到按键是否按下,松开等状态,并将该状态通过其他形式反馈给 ...

  6. TM1650和AIP650 按键扫描、LED驱动程序

    摘要:按键扫描.LED驱动二合一 TM1650和AIP650两款芯片 拥有LED驱动显示以及按键扫描的功能.并且在使用上可以随意替换,驱动程序也是同一个. 驱动程序:需要自行修改init函数: 按键获 ...

  7. 单片机c语言的按键程序,51单片机按键扫描C程序

    原标题:51单片机按键扫描C程序 大二上学期做过80 的按键程序,当时项目要求实现按键控制 屏显示并且接收GPRS传来的数据.当时为了节省成本,就去大西电子市场买来8*8的LED块,然后自己一点一点的 ...

  8. 【摘录】MTK按键扫描原理及相关代码

    一.MTK按键扫描原理: 不同的MTK平台内部提供的按键数目各有不同,但是扫描原理大致一样,这里以MTK6253为例来讲解记录. MTK提供6*7共42个矩阵键盘,加上Power键总共43个按键,其中 ...

  9. 3、按键扫描检测处理

    说明:本文处理按键的短按.长按检测执行,非矩阵按键 硬件可以类似如下连接即可,无需放置上下拉电阻: 按键动作分长按.短按(弹起时执行)两种 按下不放执行长按,但松开按键时不予执行短按函数 多个按键可以 ...

最新文章

  1. Nginx 独立图片服务器的搭建
  2. Runtime底层原理--动态方法解析、消息转发源码分析
  3. 调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)
  4. 投票列表排序 - 默认,投票数
  5. Python __all__的作用
  6. JS与PHP向函数传递可变参数的区别
  7. Github 开源趋势榜 TOP 1:英伟达升级发布二代 StyleGAN!
  8. Sophos 修复 Cyberoam OS 中的 SQL 注入漏洞
  9. grads 相关系数_Grads综合实习报告
  10. 电化学血糖传感器原理及发展
  11. 2017年全国大学生电子设计竞赛综合测评题目解析——2022更新(方波生成,方波分频,三角波,加法器,滤波器,正弦波))
  12. CC2530 IIC 4线驱动中景0.96寸OLED屏显示程序,从c51移植过来的
  13. 许知远:嗨!Julia
  14. android 获取蓝牙设备id_获取设备唯一ID的几种方式
  15. 球与球的碰撞检测java测试_cocos 躲避球游戏(2) --资源导入和碰撞检测
  16. 做一个优秀的开源项目,需要注意哪些方面?
  17. bind函数怎么用JAVA_socket编程之bind()函数
  18. Java总结 - 抽象类与接口
  19. window 安装 deepin双系统 (thinkpad install deepin)
  20. java浮点数取余数

热门文章

  1. (Android)java虚拟机和Dalvik虚拟机的区别
  2. 视频压缩工具FFmpeg的使用(中)
  3. educoder MongoDB 实验——数据库优化
  4. diff命令两个服务器文件,LINUX命令diff-文件管理-比较给定的两个文件的不同
  5. java随机一个数字和字母_java怎么实现随机4个带有数字和字母的验证码?
  6. vue 打包css路径不对_vue项目打包后css背景图路径不对的问题
  7. 比较linux的桌面环境的使用和异同?_深度UI + Ubuntu系统,堪称最强最美Linux发行版!你敢升级吗?...
  8. 关于解决vivado error:add_1 must be in range [-1,DEPTH-1] 问题
  9. chrome插件推荐
  10. layer 一些理解