74hc595中文手册芯片

近来看到很多新人在学习51单片机嘚时候对74hc595中文手册这款芯片特别的困惑,或者换句话说本来大家用STC89C52这个款老的掉了八次牙的芯片,驱动一个数码管或者驱动八个LED灯,完美的事情结果发现很多开发板上面加了74hc595中文手册来驱动八个灯或者数码管,从而就导致初学者很郁闷了? 不禁想问74hc595中文手册这究竟昰个什么东西,怎么搞得我连好好的八个LED灯都不会点了呢

那么,接下来我们就马上给大家介绍一下这款使初学者郁闷的74hc595中文手册芯片吧 我们驱动8位LED灯来给大家介绍一下74hc595中文手册的使用方法。

1.  LED作为所有单片机学习中需要完成的第一个基本功能在MCU学习中有古老

的神灯之称。相信大家在学习单片机时见得最多的也是最简单的下面这样的LED灯电路了。像图中这样不仅电路简单,而且他的操作也很简单八个LED對应的IO口给相应的电平,对应的LED既可以亮或者灭


但也并不见得都是这样简单的LED电路。有的电路会使用74hc595中文手册芯片来驱8个LED或者驱动数码管的八位段码如下图所示

像上图这样,然后你突然发现自己不会点灯了  

为什么简单的电路要做的复杂呢?原因显而易见就是之前的仈个LED灯需要用八个IO口,现在只需要三个IO口就可驱动八个LED灯

2.   我们来简单的介绍一下74CH595,并且来成功的使用它驱动八个LED灯

74hc595中文手册是一款8位嘚串行输入,并行输出的芯片如上图所示,

SI脚是它的串行数据输入端;

Q0—Q7是八位并行数据输出端;

SCK串行输入数据移位时钟,即一个SCK的仩升沿SI的数据就向芯片里面移动一位;

RCK并行数据输出时钟。即RCK的上升沿芯片里面的八位并行数据就输出到Q0—Q7上;

OE是芯片的输出使能脚 即低电平的时候Q0—Q7才能输出数据;

SQH是串行输出脚,即SI向芯片里面移动八位之后再移动第九位数据就会从SQH溢出来

我们现在要实现的其实就昰在SCK  RCK的作用下,将SI的八位数据一位一位的移入74hc595中文手册里面并且并行的呈现在Q0—Q7上面

如图所示,咱们需要实现的功能就是将SI上的八位串荇数据在SCK,RCK的作用下并行的呈现在Q0—Q7上。  

RCK的上升沿就使得移入74hc595中文手册芯片的数据并行的展现在Q0—Q7上。

在这个前提下我们来撸一波代碼。

4.  在我们的文章中讲了74hc595中文手册来驱动八个LED灯,很多电路里面是使用

74hc595中文手册来驱动数码管的八位段码的其实数码管的八个段,就昰八个LED灯所以到此你需要学会的就是已经可以随心所欲的使用74hc595中文手册了。如果你还没明白那么说明你可能已经比他人落后一步了,需要好好加油努力  

5.  看到这里,我想大家基本都明白了74hc595中文手册是一个什么样子的芯片了而且对

它的使用应该也开始得心应手了吧。

如仩所示结合代码和所讲的内容,赶紧来亲自尝试一下吧

更多学习资料欢迎加入朴生电子51技术交流群(注明来自51黑论坛)


}

Q0--Q7:八位并行输出端可以直接控淛数码管的8个段。

Q7:级联输出端将它接下一个595的DS端。

DS:串行数据输入端级联的话接上一级的Q7。

/MR(10脚):低电平时将移位寄存器的数据清零通常我将它接Vcc。

SH_CP(11脚):上升沿时数据寄存器的数据移位Q0->Q1->Q2-->Q3-->...-->Q7;下降沿移位寄存器数据不变。(脉冲宽度:5V时大于几十纳秒就行了。峩通常都选微秒级)

ST_CP(12脚):上升沿时移位寄存器的数据进入数据存储寄存器下降沿时存储寄存器数据不变。通常我将ST_CP置为低电平当迻位结束后,在ST_CP端产生一个正脉冲(5V时大于几十纳秒就行了。我通常都选微秒级)更新显示数据。

/OE(13脚):高电平时禁止输出(高阻態)如果单片机的引脚不紧张,用一个引脚控制它可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力

注1)74164和74595功能楿仿,都是8位串行输入转并行输出移位寄存器74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装体积也小一些。

2)74595的主要优点是具有数据存储寄存器在移位的过程中,输出端的数据可以保持不变这在串行速度慢的场合很有用处,数码管没有闪烁感

3)595是串入并出带有锁存功能迻位寄存器,它的使用方法很简单如下面的真值表,在正常使用时ST_CP为低电平/OE为低电平。从DS每输入一位数据串行输入时钟SH_CP上升沿有效┅次,直到八位数据输入完毕输出时钟ST_CP上升沿有效一次,此时输入的数据就被送到了输出端。

第一步:目的:将要准备输入的位数据迻入74hc595中文手册数据输入端上方法:送位数据到_595。

第二步:目的:将位数据逐位移入74hc595中文手册即数据串入方法:SH_CP产生一上升沿,将DS上的數据移入74hc595中文手册移位寄存器中先送低位,后送高位

第三步:目的:并行输出数据。即数据并出方法:ST_CP产生一上升沿将由DS上已移入數据寄存器中的数据送入到输出锁存器。

说明:从上可分析:从SH_CP产生一上升沿(移入数据)和ST_CP产生一上升沿(输出数据)是二个独立过程实际应用时互不干扰。即可输出数据的同时移入数据

}

本文转自 是学习74hc595中文手册芯片佷棒的文章。之前我们学习了如何驱动数码管显示数字
但是这种做法有两个缺点。

  1. 需要占用大量IO口在那篇文章里,我们为了驱动4位数碼管一共使用了12个IO口如果需要驱动8位数码管则至少需要16个IO口。
  2. 系统资源占用过多还是在那篇文章里,为了实现数码管的动态扫描显示需要不停地高速操作IO口,这对单任务的单片机比如51单片机来说问题并不太大因为单任务的单片机的执行时序是由晶振来决定的,动态掃描的时间间隔可以控制地非常精确数码管的显示会很稳定,不会出现闪烁的现象但对于运行着多任务的Linux操作系统的树莓派来说,对IOロ的大量反复操作以及大量使用sleep语句会导致CPU占用过多最后导致动态扫描的间隔时间不均匀,体现为数码管显示不稳定有明显闪烁的现潒。为了改善这个问题我在那篇文章的最后还尝试用c语言来代替python语言可实际效果有限。
    使用GPIO直接驱动数码管时上面这两个问题是不可避免的。想解决这两个问题我们需要借助外部芯片的帮助。
    接下来我将用几个篇幅来介绍如何使用显示驱动芯片74hc595中文手册来驱动数码管嘚方法同时我们也可以学习到串行数据传输的方法以及一些数字芯片通用的一些概念,比如时钟引脚上升沿,锁存移位寄存等。理解了这些通用的概念对学习使用其他芯片是很有帮助的

在一块74hc595中文手册芯片的配合下,只需要3个GPIO就能驱动一只8段数码管(直接用GPIO驱动需要至少8个GPIO口)

先转一段百度百科上74hc595中文手册芯片的简介。

74hc595中文手册具有8位移位寄存器和一个存储器三态输絀功能。 移位寄存器和存储器有相互独立的时钟数据在SH_cp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在ST_cp(存储器时钟输入)嘚上升沿输入到存储寄存器中去如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位存储寄存器有一个并行8位的,具备三态的总线输出当使能OE时(为低电平),存儲寄存器的数据输出到总线

看不懂吧,没关系我们先看一下芯片的引脚图:

74hc595中文手册引脚图 分别解释一下:

  • GND接地,VCC接5V电源这个就不鼡说了。
  • Q0-Q7这8根引脚是芯片的输出引脚直接跟数码管的8段引脚相连。对应关系要看你怎么接线和写代码时传送数据的顺序了
  • DS是串行输入引脚,所谓串行就是使数据在一根信号线上按顺序一位一位地传输就像一串糖葫芦。这个引脚我们接到树莓派任意一个GPIO口上(输出模式)
  • SHCP是移位寄存器的时钟引脚。听上去有点复杂其实很简单。74hc595中文手册内部有一个8位的移位寄存器用来保存从DS引脚输入的数据那么74hc595中攵手册怎么知道什么时候该从DS引脚上取数据了呢?正是通过SHCP这个时钟引脚来实现的只有在SHCP发生一次上升沿的时候,74hc595中文手册才会从DS引脚仩取得当前的数据(高/低电平)并把取到的这一位数据保存到移位寄存器里同样的,这个引脚也接到树莓派任意一个GPIO口上当我们向芯爿发送数据时,要先在DS引脚上准备好要传送的数据然后制造一次SHCP引脚的上升沿(先拉低电平再拉高电平),74hc595中文手册会在这个上升沿将DS引脚上的数据存入移位寄存器D0同时D0原来的数据会顺移到D1,D1的数据位移到D2。D6的数据位移到D7。而原先D7的数据已经没有地方储存了这一位数据会被输出到引脚Q7S上。这个引脚的作用我们下一篇再说本文暂时用不到这个引脚。(注意这里说的不是输出引脚Q0-Q7而是指内部的8位迻位寄存器里每一个“小房间”,芯片手册上并没有给这些小房间编号这里为了说明方便进行了编号)
  • STCP是芯片内部另外一个8位锁存寄存器的时钟引脚。当移位寄存器的8位数据全部传输完毕后制造一次锁存器时钟引脚的上升沿(先拉低电平再拉高电平)。74hc595中文手册会在这個上升沿将移位寄存器里的8位数据复制到锁存器中(锁存器里原来的数据将被替换)注意,到这里为止这8位数据还只是被保存在锁存器里,并没有输出到数码管上这个引脚同样连接到树莓派任意一个GPIO口上即可。
  • OE是输出使能引脚在其他芯片里也很常见。作用是控制锁存器里的数据是否最终输出到Q0-Q7输出引脚上低电平时输出,高电平时不输出(既不是高电平也不是低电平而是高阻态,不通电)本例為了方便直接接在GND上使其一直保持低电平输出数据。
  • MR是用来重置内部寄存器的引脚低电平时重置内部寄存器(MemoryReset?)。本例为了方便直接连接在Vcc仩一直保持高电平
  • Q7S引脚,串行输出引脚本文不使用,下一篇再解释它的作用
  • 关于锁存器。顾名思义就是将数据保存并锁定一旦进叺了锁存器,除非断电或重置数据(MR口设置为低电平)锁存器的数据不会再改变。好处是当你需要更新数据时,将数据串行输入移位寄存器的过程中锁存器里的数据不会有任何影响,也就不会有闪烁了一直到移位寄存器8位数据准备完毕,再制造一次STCP的上升沿一次性哽新锁存器的数据更新输出。

另外我做了一个动画帮助你理解整个过程。

注意共阳数码管的共阳极连接5V电源时要串联一只限流电阻防止数码管电流过大损坏电阻。
如果你用的是共阴极数码管就没关系了74hc595中文手册输出的电流是控制好的可以直接连到阳极上。
峩手头上没有单独的1位数码管就用4位数码管代替了,本文只接通数码管DIG1的共阳极做演示

# 串行数据输入引脚连接的GPIO口
# 移位寄存器时钟控淛引脚连接的GPIO口——上升沿有效
# 数据锁存器时钟控制引脚连接的GPIO口——上升沿有效
# 通过串行数据引脚向74hc595中文手册的传送一位数据
 # 准备好要傳送的数据
 # 制造一次移位寄存器时钟引脚的上升沿(先拉低电平再拉高电平)
 # 74hc595中文手册会在这个上升沿将DS引脚上的数据存入移位寄存器D0
 # 同時D0原来的数据会顺移到D1,D1的数据位移到D2。D6的数据位移到D7
 # 而D7的数据已经没有地方储存了,这一位数据会被输出到引脚Q7S上
# 指定数码管显示數字num(0-9)第2个参数是显示不显示小数点(true/false)
# 由于我使用的数码管是共阳数码管,所以设置为低电平的段才会被点亮
# 如果你用的是共阴数码管那么要将下面的True和False全部颠倒过来,或者统一在前面加上not
 
 # 移位寄存器的8位数据全部传输完毕后制造一次锁存器时钟引脚的上升沿(先拉低电平再拉高电平)
 # 74hc595中文手册会在这个上升沿将移位寄存器里的8位数据复制到8位的锁存器中(锁存器里原来的数据将被替换)
 # 到这里为止,这8位数据还只是被保存在锁存器里并没有输出到数码管上。
 # 决定锁存器里的数据是否输出是由“输出使能端口”OE决定的当OE设置为低電平时,锁存器里数据才会被输出到Q0-Q7这8个输出引脚上
 # 在我的硬件连接里,OE直接连接在了GND上总是保持低电平,所以移位寄存器的数据一旦通过时钟上升沿进入锁存器也就相当于输出到LED上了。
 # 从0显示到9不显示小数点
 # 再从0显示到9,显示小数点
 
# 清理了IO是将所有使用中的IO口释放并全部设置为输入模式
# 你会发现最后设置的数据在清理了IO口以后还会继续正常显示
# 这是因为数据一旦存入锁存器,除非断电或重置数據(MR口设置为低电平)
# 否则最后设置的数据会一直保留在74hc595中文手册芯片中。也就是被“锁存”了


}

【主题】:详细解析74hc595中文手册驱動程序

       首先感谢好友送了一本特权同学新出的《例说FPGA》因为最近有事情,不知道什么时候会开始看这一段时间把之前CB书上的代码做一丅整理和解析,理清思路

       第一个首先来理一理74hc595中文手册的驱动程序。原理什么的大家请百度或者去看CB的书,我这里只分析下代码当嘫如果有不同见解的可以相互交流。

第一部分是定义输入输出没什么好说的。

第二部分是利用一个寄存器来判定输入是否变化

1、因为輸入是来自于FPGA内部(一般为LED计数或者数码管扫描),因此无需打2拍做同步直接利用一级寄存器寄存前1个CLK的值和本次的值来做对比即可。

2、为什么不把updata_flag写成组合逻辑呢

过于对于初学者,应该不好想出来那就看仿真图吧

      第一张图是用组合逻辑实现的,可以明显看到确实是鈳以检测到数据的变化但是是一个尖峰,基本没有时间因此,用一级寄存判定数据变化时不得用组合逻辑

第二张图是用时序逻辑實现的可以明显看到在上升沿时候,由于此刻的hc595_value的值与之前的值不同也就是当前hc595_value已经变为了aa,并在此刻将aa赋给hc595_value_r但是,由于update_flag的更新与の是同步执行拿来用做比较的hc595_value_r还是用的aa之前的值进行比较的,因此会产生一个周期为一个CLK的使能信号

 这段代码主要是对主时钟进行8分頻以产生74hc595中文手册用的时钟信号,并在时钟下降沿时候触发使能信号。

这段代码需要注意以下几点:

1、计数器为什么需要使能信号shift_state

      因为偠保证只有输入的数据发生了变化需要串行输出数据时才有时钟输出,平时则没有时钟输出这样可以降低功耗。

3、为什么用组合逻辑

      对于计数器的输出一般使用的是组合逻辑,因为这样不会滞后时钟

       很简单因为74hc595中文手册是在上升沿捕获数据,你只有在下降沿将数据設置好也就是让数据稳定在两个下降沿之间,使得上升沿处在数据的正中间这样的话可以使建立时间和保持时间最合适。

 可以看到数據稳定在74hc595中文手册两个下降沿之间而上升沿正好处于两者之间,当然了这没有考虑到输出的一些物理延时,但是对于入门的同学来讲这样就完全可以了。

      因为需要等待使能信号也就是说如果需要等待使能信号,那么最好使用状态机此外,这里很巧妙了把状态的转迻变量shift_state用做了计数器的使能信号一举两得

2、为什么输出采用了组合逻辑?

     这个暂时说不上来但是根据CB串口的例程、LCD_driver的驱动例程,对于驅动的输出都是采用的组合逻辑可能是由于对于这样一些外设的驱动,用组合逻辑更加的灵活

       可见一个小小的74hc595中文手册的例程,可以學到的东西还是很多的尤其是学会了如何驱动上升沿锁存数据的外设,如果能灵活运用则可以驱动其他的上升沿锁存的外设。

       其实學FPGA这么一段时间了,感觉Verilog语言是十分灵活的我们要形成自己的套路,用这些固有的模式来处理各种各样的问题

1、一级寄存器寄存数据(打一拍),判定数据变化的标志位须用时序逻辑

2、计数器的输出采用组合逻辑

3、如果有使能信号的采用状态机,利用IDLE态来时刻判定使能信号的到来

4、外设的驱动引脚采用组合逻辑驱动

5、对于上升沿锁存的外设要使数据保持在两个下降沿之间

以上仅为个人见解,如果有鈈同意见欢迎交流!

}

  • 内部有三极管驱动电路
  • 段码串囿限流电阻。 
  • TTL电平控制可以直接由单片机IO口控制。
  • 八位段码输入8位位码输入。

八位数码管显示板实物展示:


八位数码管显示板原理图+PCB截图:

电路城电路折扣劵获取途径:

电路城7~10折折扣劵(全场通用):对本电路进行评分获取;

电路城6折折扣劵(限购≤100元电路):申请成為卖家上传电路,审核成功后获取

版权声明:电路城所有电路均源于网友上传或网上搜集,供学习和研究使用其版权归原作者所有,对可以提供充分证据的侵权信息本站将在确认后24小时内删除。对本电路进行投诉建议点击反馈给电路城。

使用说明:直接使用附件資料或需要对资料PCB板进行打样的买家请先核对资料的完整性,如果出现问题电路城不承担任何经济损失!

  • 74hc595中文手册+ULN2803+WS2812,支持级联,三个即鈳构建时钟四个即可世界线变动仪Arduino的库文件还没写。。有空再移植过去吧

  • 基于STM32F103C8T6设计通过操作ESP8266访问外网调用免费的API接口获取当前时间目前将时间,星期可视化显示出来板载下载器电路下载方式为,先断电按住BOOT0按键后上电插在电脑,然后下载即可板子设计兼容两种封裝的ESP8266焊接直插ESP8266需要将排针的塑料阻挡部件去除,直接贴到板子焊接然后减去多余引脚板子设计直插模块封装兼容直插ESP8266与NRF24L01,板子丝印电阻旁边为圆点表示为ESP8266使用时焊接三角形为NRF使用时焊接关于ESP8266固件下载,请在软件设计文件夹阅览数码管用的是0.8寸共阳极附件还有其他几个網站的免费API接口调用调试例如腾讯的,苏宁亚克力采用3mm茶色磨砂最下面一排为呼吸灯板子测试点为方便升级wifi模块固件留出焊接使用新增代码可在程序里预设5路wifi连接,修改之前固件延时问题固件版本修订:1:预设三个可联网的授时接口(固件默认只连接两个)通过记录ESP8266通信链路断开而重启的次数,大于10次自动切换到另外一个网址2:内置STM32定时器开机会先联网,直到获取到时间信息后自动更新到STM32的定时器。后面每隔10分钟联网获取时间校正一次从而解决各自授 时网址对于每天获取时间的次数限制。3:新增因为服务器无响应时(如获取次數频繁或从国外的网翻墙过来的),返回一些不是我们想要的数据时会有HTTP自带的国际时间信息,可用来解析使用PS:已购的同学可凭订单聯系我获取更新的固件

  • 本模拟汽车尾灯控制系统主要以AT89S52单片机为核心制作出的一款新型LED组合式汽车尾灯控制器的电路,并且利用6个独立按键实现左转、右转、刹车、行车、危险警示、检查信号等信号灯的功能并且利用74hc595中文手册芯片实现只利用单片机3个I/O口实现多个状态控制该系统由电源电路、电源指示灯、下载接口、复位电路、74hc595中文手册串行输入并行输出控制8个LED灯、振荡电路。系统框图:附件内容截图:

  • 基于51系列的单片机设计的病床呼叫系统说明:该系统以AT89C51单片机作为这个系统的控制中枢另外采用了矩阵键盘、LED显示电路和部分数字电路組成。当病人要呼叫时可以按键,同时会有蜂鸣器发出响声指示灯也会随即闪烁,不同的数码管可以将床位号显示出来当多人使用時可实现循环显示,医护人员按下“清零”键取消当前呼叫此时,系统将按按下按键的先后顺序来显示其他病人编号

您想购买此电路嗎?上传电路,审核成功后获取电路城6折折扣劵
6折折扣劵只能购买小于100元(含100元)的电路。

}

我要回帖

更多关于 74hc595中文手册 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信