一、背景
老同学今天突然咨询关于74HC595,自己没用过,同学说可以级联10级!10级?我艹,这么叼,级联又是
什么鬼,这勾起了我极大兴趣,二话不说,手册down下来研究,并在此做个记录。 二、正文
74HC595为1个8位串行移位输入寄存器带1个存储寄存器,并可8位带锁存并行输出。串行移位输入寄存器
和存储寄存器分别有独自的时钟输入控制端。此设备可级联多级,从而实现多路IO输出控制。 以下为74HC595引脚说明:
> Q7S (PIN9) serial data output (串行输出)
> MR (PIN10) master reset (active LOW) (主机复位,低有效)
> SHCP (PIN11) shift register clock input (移位寄存器时钟输入)
> STCP (PIN12) storage register clock input (存储寄存器时钟输入)
> OE (PIN13) output enable input (active LOW) (输出使能输入端,低有效)
> DS (PIN14) serial data input (串行数据输入)
> Q0~Q7 (PIN) parallel data output ~(8位并行数据输出)
> VCC
> GND < VCC与GND无需多言。
< DS为串行数据输入。
< SHCP为串行移位时钟,当其为上升沿时,DS上的电平状态会被写入移位寄存器的最低位,移位寄存器
的值会整体向高位移一位。
< STCP为存储寄存器时钟输入(正确理解为锁存脚),当其为高电平时,移位寄存器的值被保存在了存
储寄存器,并且存储器的值被锁存在了IO口。
< MR为复位脚,当其为低电平时,存储寄存器的值会被清零。
< OE为输出使能脚,当其为高电平时,8位并行输出可以输出电平,若是为低电平,则不可以输出。
< Q7S为串行输出脚,作为级联之用,其通常连接至下一级74HC595的DS端。当第一级8位移位寄存器移
满了之后,再有新的DS需要移位时,则第一级的Q7位会通过Q7S移动到下一级74HC595的DS端,这样就实现了
级联功能。 对74HC595实际使用举个例子:
某项目单片机需要控制多达10个甚至更多的数码显示管。如果用扫描式的方法进行点亮数码管的话,那
么数码管的亮度会非常暗。原因在于,假设一个数码管是20mA可以让其亮度很高的话,以1s为一个周期,若
只有1个数码管,则1s这个数码管都在亮,若是10个的话,那么每个数码管会亮100ms,灭900ms,相当于每个
数码管的平均电流只剩下2mA,导致的结果既是数码管会很暗。这个时候74HC595,就可以发挥作用了。级联十
   个,然后按照计算好的数据移位进去,最后使能输出引脚,锁存输出就可10个数码管一起显示了。 三、参考文献
在研究74HC595的时候,两篇关于74HC595级联和使用的文章写的很详细,链接如下: Introduction to 74HC595 shift register – Controlling LEDs
http://www.protostack.com/blog/2010/05/introduction-to-74hc595-shift-register-controlling-16-leds/ How to Cascade Shift Registers
http://www.learningaboutelectronics.com/Articles/Cascade-shift-registers.php 至此,记录完毕。 记录时间:--
记录地点:深圳WZ

串行移位锁存并行输出可级联器件74HC595的更多相关文章

  1. Netty源码学习系列之1-netty的串行无锁化

    前言 最近趁着跟老东家提离职之后.到新公司报道之前的这段空闲时期,着力研究了一番netty框架,对其有了一些浅薄的认识,后续的几篇文章会以netty为主,将近期所学记录一二,也争取能帮未对netty有 ...

  2. 原创:应用串行NOR闪存提升内存处理能力

    在嵌入式系统中,NOR闪存一直以来仍然是较受青睐的非易失性内存,NOR器件的低延时特性可以接受代码执行和数据存储在一个单一的产品.虽然NAND记忆体已成为许多高密度应用的首选解决方案,但NOR仍然是低 ...

  3. SpringBoot中定时任务默认是串行执行 如何设置并行

    SpringBoot项目中,定时任务默认是串行执行的,不论启动多少任务,都是一个执行完成,再执行下一个. 如何设置并行呢? @EnableAsync  和@Async 这两个注解来实现 ,具体如下: ...

  4. Qt串行化的输入和输出(使用QDataStream读写QByteArray,对QIODevice直接起作用)

    参考https://lug.ustc.edu.cn/sites/qtguide/ 今天看了一个介绍Qt串行化的介绍,感觉很受益,就记录了下来. 串行化(Serialization)是计算机科学中的一个 ...

  5. (九)串行口方式0 拓展并行输出端口 02 74LS164芯片

    1.先讲解74LS164 移位芯片: 74HC164.74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出. 数据通过两个输入端(DSA 或 DSB)之一串行输入:任一输入端可 ...

  6. iOS:转载:同步、异步、并行、串行的详解

    理解 iOS 开发中 GCD 相关的同步(synchronization)\ 异步(asynchronization),串行(serial)\ 并行(concurrency)概念 2014年11月21 ...

  7. JVM_垃圾回收串行、并行、并发算法(总结)

    一.串行 JDK1.5前的默认算法 缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长 语法 -XX:+UseSerialGC 新生代.老年代使用串行回收 新生代复制算法 老年代标记-压缩 示例图 ...

  8. GCD中的dispatch_sync、dispatch_sync 分别与串行、并行队列组合执行小实验

    平常开发中会经常用gcd做一下多线程任务,但一直没有对同步.异步任务在串行.并行队列的执行情况做个全面的认识,今天写了个demo跑了下,还是有些新发现的. 代码如下: - (void)touchesB ...

  9. COM口,串行通讯端口,RS-232接口 基础知识

    COM口即串行通讯端口. COM口的接口标准规范和总线标准规范是RS-232,有时候也叫做RS-232口.电脑上的com口多为9针,最大速率115200bps.通常用于连接鼠标(串口)及通讯设备(如连 ...

随机推荐

  1. C#关闭窗口代码

    if (MessageBox.Show("请您确认是否退出(Y/N)", "系统提示", MessageBoxButtons.YesNo, MessageBox ...

  2. 第六次作业——利用MFC实现计算器图形界面以及简单四则运算表达式批处理

    参考资料:      1.MFC响应键盘      2.计算器实例      3.MFC文件对话框      4.MFCUpdateData()函数的使用      5.MFC教程      6.wi ...

  3. VS 错误解决(项目-属性-启用调试器)

    我是先安装了VS2012, 之后由于需要安装了VS2008, 但在VS2012中可以运行程序但是不能调试, 即按Ctrl+F5可以运行, 但是按F5会提示错误. "尝试运行项目时出错:Unc ...

  4. Linux 中强大且常用命令:find、grep

    在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:    find命令        f ...

  5. python从Microsoft Excel文件中导入数据

    excel中后缀为csv和xls,二者区别如下:1.xls 文件就是Microsoft excel电子表格的文件格式.2.csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. ...

  6. python 培训之爬虫

    1. 输入文件为 fufang_list.txt yaofang_a aaiwan 阿艾丸 yaofang_a aaiwulingsan 阿艾五苓散 yaofang_a acaitang 阿菜汤 ya ...

  7. break; continue; goto; return在循环中的应用

    1. break表示跳出循环,程序指向循环体后的第一条语句: ; ) { ) break; console.writeline("{0}",i++); } console.read ...

  8. CentOS6.5 安装Sphinx 配置MySQL数据源

      前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `i ...

  9. javascript Date format(js日期格式化)

    这个用这比较爽,记录一下// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年( ...

  10. linux 查看内存的插槽数

    [root@web ~]# dmidecode|grep -P -A5 "Memory\s+Device"| grep Size | grep -v Range #linux查看内 ...