用74HC165读8个按键状态

源:用74HC165读8个按键状态

源:74LV165与74HC595 使用

74LV165说明:

74LV165是8位并行负载或串行输入移位寄存器,末级提供互补串行输出(Q7和Q7)。并行负载(PL)输入为低电平时,来自D0至D7输入的并行数据会异步加载到寄存器中。输入PL为高电平时,数据在输入DS处串行输入寄存器。其随每次时钟正向跃迁向右移一位(Q0 → Q1 → Q2,以此类推)。通过将Q7输出连接到后一级的DS输入,该特性可实现并行到串行转换器扩展。 
时钟输入为门控或结构,允许一个输入用作低电平有效时钟使能输入(CE)输入。CP和CE输入的针脚分配是任意的,为方便布局可颠倒。CE输入从低电平至高电平的跃迁应当仅在CP为高电平时发生,以便操作可预测。PL从低电平跃迁到高电平前CP或CE应当为高电平,以防激活PL时移位数据。

逻辑功能列表: 

以上可知: 
/PL 拉低,D0至D7输入的并行数据会异步加载到寄存器中;/PL 拉高,则Ds可以按CP上升沿串行输入数据至寄存器,同时寄存器中的8位数据通过7个CP上升沿从Q7输出。 
当单片使用时,Ds一般不输入任何数据,用户通过/PL 拉低,加载D0-D7数据至寄存器(并行)。/PL 拉高,通过7个CP上升沿,从Q7获得8个数据。 
当多片级联(N)使用时,Ds连接上一片74LV165的Q7,作为Ds的输入数据,用户通过/PL 拉低,加载D0-D7数据至寄存器(并行)。/PL 拉高,通过 8 * N 个CP上升沿,从Q7获得8*N个数据。

原文地址:https://www.cnblogs.com/LittleTiger/p/8511838.html

时间: 2024-10-24 07:55:12

用74HC165读8个按键状态的相关文章

用74HC165读8个按键状态(转)

源:用74HC165读8个按键状态 //-------------------------------------------------------------------------- //来源: http://hi.baidu.com/mculove/home //程序名称: 用74HC165读8个按键状态 //晶振: 11.0592MHz; //MCU型号: STC89C52RC; //电路板型号: EBV-MV(51实验板); //---------------------------

[VB.NET]调用API获取/设置键盘按键状态

1.调用GetAsyncKeyState()获取指定按键的状态,GetActiveKey()检索指定范围内的按键状态 2.调用keybd_event()可合成一次击键事件,通常两次击键事件间需要设定时间间隔 3.调用MapVirtualKey()获取指定按键的硬件扫描码,传入keybd_event()第二个参数就可以对DirectInput有效. Public Class ImitateKeyClass Private Declare Sub keybd_event Lib "user32&qu

<十二>读<<大话设计模式>>之状态模式

对于状态模式,<<大话设计模式>>是以人从上班到下班到加班的状态来展开讲述的.状态模式其实就是某一个对象在某个过程或者时间的一个状态记录,但是这个状态的顺序不能发生变化,在程序设计方面可能要比其他模式稍微复杂点,请待我慢慢将来. 本人喜欢用代码来形象的讲述原理,可能是因为对单纯的看些理论的书有些反感或者无趣吧,我希望以后的教育也如此,要不大家都不高考了...嘿嘿说多了 状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 还是代码呈现吧,概念太抽象了.

【iCore3 双核心板】例程二:读取arm按键状态

实验指导书及代码包下载: http://pan.baidu.com/s/1sjrHnM9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229438677

按键驱动异步通知

在此以前,我们都是让应用程序主动去读按键的状态,有没有一种情况,当驱动程序有数据时,主动去告诉应用程序,告诉它,有数据了,你赶紧来读吧.这种情况在linux里的专业术语就叫异步通知. 在按键的例子中异步通知可以理解为:当按键按下时,驱动程序会提醒(即触发)应用程序(通过信号signal来实现). 举一个例子:进程之间发信号 原来我们常用  kill 这个命令 : kill       -9    pid   kill这个命令就是一个发信号 发送者  :   kill 接收者  :   pid 信

单片机TM4C123学习(二):中断与按键控制

1.按键初始化 按键K1——PD7 按键K2——PF4 按键K3——PA3 按键K4——PA2 // // key1 init // SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);已经在LED init写过了,不然也是要写的 GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_7); 也就是说,按键初始化只需要(外部设备使能和)设置管脚类型为输入两个步骤. 2.中断使能 三个步骤:设置端口中断类型,使能端口中断,

四、按键控制LED灯亮灭

材料: 1.SAGOO UNO 1块: 2.按键模块 1块: 3.杜邦线若干. 步骤: 1.按照下图连接按键模块和UNO: SAGOO UNO引脚                                      按键模块引脚 3V3  <------------------------------------>    V(电源) GND <------------------------------------>    G(电源) Pin2  <----------

按键驱动程序(异步通知)

此驱动程序之前的按键驱动程序(中断方式)上加以优化.用到异步通知.对于内核来讲,既然用户想得到的是按键后的状态,那么自然不必时时都要read状态.当它检测到中断发生变主动通知用户,用户再来读.这样,用户空间.内核就可以着手干点其它的事情,而不必忙等按键按下或释放.那么就先从应用程序上面看. 怎么设置相关联到"异步通知"呢?flag = fcntl(fd, F_GETFL);fcntl(fd, F_SETFL, flag|FASYNC);这样的两句就可以将文件描述符fd与异步通知关联,到

深入浅出~Linux设备驱动之按键设备驱动

在上述的驱动系列博客中,我们已经了解了关于阻塞和非阻塞.异步通知.轮询.内存和I/O口访问.并发控制等知识,按键设备驱动相对来说是比较简单的,本章内容可以加深我们对字符设备驱动架构.阻塞与非阻塞.中断定时器等相关知识的理解.在嵌入式的系统中,按键的硬件原理简单,就是通过一个上拉电阻将处理器的外部中断引脚拉高,电阻的另一端接按钮并接地就可以实现. 1.按键的确认流程如下 2 按键驱动中的有关数据结构 2.1 按键设备结构体以及定时器 #define MAX KEY BUF 16 // 键缓冲区大小