加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
logo

有事离开?不用担心

扫一扫继续用手机看

微信扫码
不再提醒
  • 点赞
  • 评论
  • 分享
相关视讯
  • 视讯介绍
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

数字电路-芯片-74HC165

2020/09/09
657
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、74HC165 的基本使用步骤

74HC165 是个并行输入串行输出的逻辑芯片,了解一款芯片都是从它的 datasheet 开始,下面以 NXP 公司 74HC165 为例进行介绍。
先看下该芯片 datasheet 的总体描述:

74HC165/74HCT165 是一个 8 位串行或并行输入,串行输出的移位寄存器。具有一个串行输入(DS 引脚),8 个并行数据输入(D0 到 D7)和两个互补串行输出的功能。当 PL 引脚为低时,D0-D7 端的数据进入移位寄存器。当 PL 引脚为高时,数据从 DS 引脚串行进入寄存器。当 CE 引脚为低时,使能时钟,数据在时钟 CP 上升时数据进行移位。当 CE 引脚为高时,失能时钟,时钟输入无效

我们再结合芯片的功能框图来理解工作过程:

从上图可以看出,PL 引脚控制并行数据的获取,低电平有效,数据进入 8 位移位寄存器,再由 CP 和 CE 两个引脚配合控制移位寄存器里的数据从 Q7 引脚串行输出。

再看看芯片真值表:

第一个红色框是并行加载数据的,只要 PL 为低电平即可;

第二个蓝色框是串行移位,此时要求 PL 为高电平,CE 为低电平,Q0~Q6 在 CP 每来一个上升沿时依次往 Q7 移位;

第三个紫色框是保持当前状态输出。

芯片时序图

还有一个重要的信息,就是芯片的引脚定义:

从芯片的描述,我们可能还不是很清楚具体的工作原理以及过程,下面图文并茂为大家详细讲述下。

最后对如何驱动 74HC165 总结几个步骤:

1、引脚 1(PL)为低电平,获取并行数据输入,数据移入移位寄存器;

2、将引脚 1 置为高电平,停止并行数据输入;

3、引脚 15(OE)为低电平,使能时钟输入;

4、时钟 CP 每产生一个上升沿,移位寄存器中的数据从高位(Q6)到低位(Q0)依次移出到 Q7。

二、74HC165 的级联

74HC165 其实和 74HC595 一样,也有级联功能,74HC595 相关知识在之前文章中有整理过,详见(数字电路 - 芯片 -74HC595,数字电路 - 芯片 -74HC595)这里说下 74HC165 的级联。

前面基础篇也讲到 74HC165 是个并行输入转串行输出的逻辑芯片,该芯片除了串行输出外还有一个串行输入引脚,74HC165 的级联功能就使用到这个串行输入引脚,也就是引脚 10(DS):

下面就讲下 74HC165 级联的原理:

从前面的两篇 74HC165 文章知道,74HC165 并行转串行是通过移位寄存器实现的,当 PL 为低电平时,并行数据(8bit)进入移位寄存器,当 PL 为高时,进入移位寄存器的数据就从 DS 引脚进入寄存器,然后在每个时钟的上升沿往输出引脚 Q7 移一位。根据这个原理,只要把输出 Q7(引脚 9)连到下一级 74HC165 的 DS 引脚(引脚 10)即可实现级联功能,如下图:

最后再以图文并茂的方式总结下 74HC165 级联后的工作过程,如下图:

三、74HC165 级联编程

前面的文章已详细讲述了 74HC165 级联的原理和工作过程,下面以两片 74HC165 级联来检测 16 个轻触按键的状态为例,当按键被按下时点亮对应的 LED。

级联电路如下:

  直接贴出代码,相应的语句已做好注释:
/*** 74hc165.h ***/
#ifndef _74HC165_H
#define _74HC165_H

#include "allhead.h"

sbit HC165_PL = P2^5; //PL 并行数据输入使能,低电平有效
sbit HC165_CLK = P2^7;//CP 时钟,上升沿触发
sbit HC165_OUT = P2^4; //Q7 串行数据输出
sbit HC165_CE = P2^6;//CE 时钟使能,低电平有效

void _74hc165_init(void);
void _74hc165_read_2byte(uchar date[2]);

#endif
/*** 74hc165.c ***/

#include "74hc165.h"// 初始化

74hc165void _74hc165_init(void){

HC165_CE = 0; // 初始化使能时钟,后面就不需再使能

HC165_PL = 1; //PL 拉高,不读取按键状态

HC165_CLK = 1; // 时钟拉高,便于产生上升沿}

// 读取两个 74HC165 级联

void _74hc165_read_2byte(uchar date[2])

{  uchar i;

uint temp = 0;

HC165_PL = 0; //PL 拉低,读取按键状态

HC165_PL = 1; //PL 拉高,停止按键读取

if(HC165_OUT == 1)        // 等于 1 即并行输入 D7 引脚的按键被按下

temp |= 0x01;         // 最低位置 1 表示按键被按下,反之则没按键被按下

for(i = 0; i < 15; i ++)  // 因为最高位不用移位即可读取,故循环(16-1)次,依次把次高位移到最高位,第一级 74HC165 优先读取

{

temp = temp << 1;

HC165_CLK = 0; //HC165_CLK = 0 ——> HC165_CLK = 1 产生上升沿,次高位 D(n-1)移到高位 D(n)    _nop_();    _nop_();    HC165_CLK = 1;

if(HC165_OUT == 1)

temp |= 0x01;

}// 将 16 位数据分离为两个 8 位数据

date[0] = (uchar)(temp & 0x00ff);// 第二级 74HC165 的数据

date[1] = (uchar)((temp >> 8) & 0x00ff);// 第一级 74HC165 的数据}

四、74HC165、74HC164、74HC595 简单对比

74HC164、74HC595 这两款芯片都具有串行输入,并行输出的功能,最大的不同点在于 74HC164 没有锁存功能。因此,在做数码管的输出显示的时候 74HC164 会出现拖影的想象,在设计此电路时要注意考虑此情况。另外 74HC165 与 74HC164 型号上十分相似,但是两者功能相反,74HC165 主要是并行输入,串行输出的功能。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
TTL-232R-3V3-WE 1 FTDI Chip Wire And Cable, 6 Conductor(s), 24AWG, Communication Cable, ROHS COMPLIANT
$29.27 查看
2-320571-2 1 TE Connectivity PIDG R 22-16 COMM 22-18MIL 1/4

ECAD模型

下载ECAD模型
$0.45 查看
B82462G4223M000 1 TDK Corporation of America General Purpose Inductor, 22uH, 20%, 1 Element, Ferrite-Core, SMD, 2525, ROHS COMPLIANT

ECAD模型

下载ECAD模型
$1.75 查看

相关推荐

电子产业图谱