74595芯片引脚及功能


引言
在数字电子领域,74LS595(低功耗肖特基TTL)和74HC595(高速CMOS)是两款广泛应用的8位串行输入/并行输出移位寄存器,它们在许多需要扩展微控制器GPIO的应用中扮演着核心角色。这两种芯片的功能相同,但在电源电压范围、功耗和速度特性上有所不同,使其适用于不同的设计场景。它们的主要作用是将串行数据转换为并行数据,从而允许微控制器使用少量的引脚控制大量的LED、数码管、LCD显示器或其他并行设备。这种串并转换的能力极大地简化了硬件设计,降低了布线复杂性,并有效节省了微控制器的宝贵引脚资源。理解其引脚功能和工作原理对于高效地利用这些芯片至关重要。
芯片概述
74LS595和74HC595芯片内部集成了两个主要的8位寄存器:一个8位移位寄存器(Shift Register)和一个8位存储寄存器(Storage Register,也称为锁存器)。数据首先通过串行数据输入引脚(DS)逐位移入移位寄存器。一旦8位数据全部移入,用户可以通过一个脉冲将移位寄存器中的数据并行地传输到存储寄存器。存储寄存器的数据随后通过8个并行输出引脚(Q0-Q7)输出,这些输出引脚通常是三态的,可以通过一个输出使能引脚(OE)进行控制。此外,芯片还提供一个串行数据输出引脚(Q7'或QH'),允许将多个74595芯片级联,以扩展输出能力。这种串行输入、并行输出的设计使其成为微控制器与外部并行设备之间理想的接口桥梁,特别适用于那些对I/O端口需求旺盛,而微控制器自身I/O资源有限的场合。
74LS595/74HC595 芯片引脚图
___ ___
DS 1| U |16 VCC
Q1 2| |15 Q0
Q2 3| |14 DS (SER) - 有时也标为SER
Q3 4| |13 GND
Q4 5| |12 RCLK (STCP) - 存储寄存器时钟,有时也标为STCP
Q5 6| |11 SRCLK (SHCP) - 移位寄存器时钟,有时也标为SHCP
Q6 7| |10 OE (GND) - 输出使能,有时也标为GND(使能时连接到GND)
Q7 8|_______| 9 Q7' (QH') - 串行数据输出,有时也标为QH'
重要说明: 尽管引脚图上可能标示为Q0-Q7,但在实际的PCB设计和芯片手册中,为避免混淆,并行输出引脚通常会明确标记为Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7。某些数据手册中,RCLK可能标为STCP(Storage Register Clock),SRCLK可能标为SHCP(Shift Register Clock),DS可能标为SER(Serial Data Input),OE可能标示为$overline{ ext{OE}}$或GND,Q7'可能标示为QH'(Cascading Serial Output)。这些都是同一功能引脚的不同命名方式,理解其功能比记住具体名称更为重要。
引脚功能详细解释
1. VCC (引脚 16): 电源正极
功能描述: VCC是芯片的电源输入引脚,用于为内部逻辑电路提供工作电压。对于74LS595系列芯片,其典型工作电压为5V。而对于74HC595系列芯片,它具有更宽的电源电压范围,通常在2V到6V之间。选择合适的电源电压对于芯片的稳定工作至关重要。过高或过低的电压都可能导致芯片损坏或功能异常。在实际应用中,VCC引脚通常连接到微控制器或其他电路的VCC电源线上,并建议在VCC和GND之间放置一个0.1$mu$F的去耦电容,以滤除电源噪声,确保芯片供电的稳定性。去耦电容应尽可能靠近芯片的VCC引脚放置。
2. GND (引脚 8 或 13): 接地
功能描述: GND是芯片的接地引脚,为所有内部电路提供公共的参考电位。所有信号的电压都是相对于GND来测量的。GND引脚必须牢固地连接到电路的公共地线上。与VCC引脚类似,GND的连接质量直接影响芯片的抗干扰能力和工作稳定性。
3. DS / SER (引脚 14): 串行数据输入
功能描述: DS(Data Serial)或SER(Serial Data Input)是74595芯片的串行数据输入引脚。所有要移入移位寄存器的数据都通过这个引脚逐位输入。数据的输入是同步的,即每当移位寄存器时钟(SRCLK/SHCP)引脚接收到一个上升沿时,DS引脚上的电平(高电平或低电平)就会被移入移位寄存器的最低位(Q0)。因此,在SRCLK/SHCP的每个上升沿到来之前,DS引脚上的数据必须保持稳定。为了确保正确的位移,微控制器通常会在发送每个数据位之前,将DS引脚设置为相应的高低电平,然后发送一个SRCLK/SHCP脉冲。
4. SRCLK / SHCP (引脚 11): 移位寄存器时钟
功能描述: SRCLK(Shift Register Clock)或SHCP(Shift Clock Pulse)是移位寄存器时钟输入引脚。这个引脚控制着串行数据在移位寄存器内部的移动。当SRCLK/SHCP引脚从低电平变为高电平(上升沿)时,DS引脚上的当前数据位被移入移位寄存器的Q0位,同时移位寄存器中原有的数据向高位移动一位(Q0移到Q1,Q1移到Q2,以此类推,Q7的数据被移出)。要将一个完整的8位字节移入74595,需要向SRCLK/SHCP引脚发送8个上升沿时钟脉冲,并且在每个脉冲的上升沿到来之前,DS引脚上必须准备好相应的位数据。
5. RCLK / STCP (引脚 12): 存储寄存器时钟/锁存时钟
功能描述: RCLK(Register Clock)或STCP(Storage Clock Pulse)是存储寄存器时钟输入引脚,也常被称为锁存时钟。它的作用是将移位寄存器中的8位数据并行地传输(锁存)到存储寄存器中。与SRCLK不同,RCLK/STCP通常只需要一个上升沿脉冲。当RCLK/STCP引脚从低电平变为高电平(上升沿)时,当前移位寄存器中的全部8位数据将被同步复制到存储寄存器。一旦数据被锁存到存储寄存器中,即使移位寄存器中的数据继续发生变化(例如,移入新的数据),并行输出引脚(Q0-Q7)上的数据也会保持稳定,直到下一次RCLK/STCP的上升沿到来。这对于避免输出数据的瞬时抖动非常重要,尤其是在驱动显示器等对数据稳定性有要求的设备时。
6. OE / overlinetextOE (引脚 10): 输出使能
功能描述: OE(Output Enable)或$overline{ ext{OE}}$(Output Enable Bar,表示低电平有效)是并行输出引脚(Q0-Q7)的使能控制引脚。这个引脚通常是一个低电平有效的输入引脚,即当OE引脚为低电平(0V)时,并行输出引脚(Q0-Q7)被使能,它们的输出状态与存储寄存器中的数据一致(高电平或低电平)。当OE引脚为高电平(VCC)时,并行输出引脚进入高阻态(High-Impedance State)。在高阻态下,这些引脚相当于断开连接,不输出高电平也不输出低电平,可以有效避免与其他设备之间的信号冲突。这个功能在多路复用或需要动态控制输出的场合非常有用,例如在LED点阵显示中,可以利用OE快速地开关LED的显示,实现亮度调节或扫描显示。在不需要输出高阻态的情况下,OE引脚通常直接接地以始终使能输出。
7. MR / overlinetextMR (引脚 10, 与OE共用一个引脚号,但在不同的芯片型号或数据手册中,这个引脚可能被标记为$overline{ ext{MR}}$或CLEAR): 主复位/清零
功能描述: 有些版本的74595芯片,特别是某些变体,会将引脚10设计为主复位(Master Reset,overlinetextMR)功能,而不是输出使能。然而,更常见的74LS595和74HC595版本中,引脚10通常是OE。如果引脚10被设计为$overline{ ext{MR}},则它是一个低电平有效的异步清零引脚。当overline{ ext{MR}}引脚被拉低(0V)时,移位寄存器和存储寄存器中的所有数据位都会被异步清零为0。这意味着无论时钟信号如何,只要overline{ ext{MR}}为低,芯片的输出就会被强制清零。这个功能在系统初始化或需要快速重置芯片状态时非常有用。∗∗需要强调的是,对于大多数市面上常见的74LS595和74HC595芯片,引脚10是OE而不是overline{ ext{MR}}$。** 在使用时务必查阅具体芯片的数据手册以确认其功能。
8. Q0 - Q7 (引脚 15, 2, 3, 4, 5, 6, 7): 并行数据输出
功能描述: Q0到Q7是74595芯片的8个并行数据输出引脚。这些引脚直接连接到内部的存储寄存器,并受OE引脚的控制。当OE引脚使能(通常为低电平)时,Q0-Q7引脚的输出电平将反映存储寄存器中对应的8位数据。Q0是最低有效位(LSB),Q7是最高有效位(MSB)。这些引脚可以直接驱动LED、继电器或其他TTL/CMOS兼容的数字输入。在设计电路时,需要考虑这些输出引脚的驱动能力(灌电流和拉电流),以确保它们能够满足所连接负载的需求。例如,驱动高亮LED时可能需要外部限流电阻。
9. Q7' / QH' (引脚 9): 串行数据输出(级联输出)
功能描述: Q7'(Q seven prime)或QH'(Q High-bit serial output)是74595芯片的串行数据输出引脚。这个引脚输出的是移位寄存器中最高位(Q7)的数据。它的主要作用是用于将多个74595芯片进行级联。当一个芯片的Q7'引脚连接到下一个芯片的DS引脚时,可以实现对更多并行输出的扩展。每当一个SRCLK/SHCP脉冲到来时,移位寄存器中的数据向高位移动,Q7的数据被“推出”并通过Q7'引脚输出。因此,通过这种级联方式,我们可以使用微控制器的三个引脚(DS、SRCLK、RCLK)控制任意数量的74595芯片,从而控制更多的输出设备。例如,连接两个74595芯片可以提供16个并行输出,连接三个可以提供24个,以此类推。这种级联特性使得74595成为I/O扩展的理想选择。
74595 芯片工作原理
理解74595的工作原理对于正确使用它至关重要。其核心在于两个8位寄存器:移位寄存器和存储寄存器,以及它们之间的协调工作。
1. 串行数据输入与移位寄存器
数据通过DS引脚串行地进入芯片。每当SRCLK(移位寄存器时钟)引脚接收到一个上升沿时,DS引脚上的当前逻辑状态(高电平或低电平)就被读入到移位寄存器的最低位(Q0)。同时,移位寄存器中原有的所有数据位都会向高位移动一位。例如,原本在Q0的数据会移到Q1,Q1的数据移到Q2,以此类推,直到Q6的数据移到Q7。而原来在Q7的数据则会通过Q7'(QH')引脚被移出芯片。
这个过程就像一列火车,每一节车厢代表一个数据位。DS是入口,SRCLK是推动火车前进的动力。当车厢进入入口时,整列火车就向前移动一节。为了将一个完整的8位字节数据移入,微控制器需要执行8次这样的操作:
设置DS引脚为当前位的数据。
发送一个SRCLK上升沿脉冲。
重复以上两步8次,从最高位(MSB)或最低位(LSB)开始发送,取决于你的数据组织方式,但通常是MSB在前。
例如,如果要发送数据0b10110010
(二进制表示):
将DS设置为1(MSB)。发送SRCLK上升沿。
将DS设置为0。发送SRCLK上升沿。
将DS设置为1。发送SRCLK上升沿。 ...
将DS设置为0(LSB)。发送SRCLK上升沿。
在8个SRCLK脉冲之后,整个8位数据就会完全存储在移位寄存器中。
2. 数据锁存与存储寄存器
仅仅将数据移入移位寄存器是不够的,因为移位寄存器中的数据在后续的SRCLK脉冲中会不断移动。为了使并行输出稳定,需要将移位寄存器中的数据“锁存”到存储寄存器中。
这个操作由RCLK(存储寄存器时钟)引脚控制。当RCLK引脚接收到一个上升沿时,移位寄存器中的所有8位数据会同步、并行地复制到存储寄存器中。一旦数据被锁存,存储寄存器中的数据将保持不变,直到下一次RCLK的上升沿到来,即使移位寄存器中的数据在此期间因为新的SRCLK脉冲而发生了变化。
这种两级寄存器(移位寄存器和存储寄存器)的设计是74595的关键优势之一。它允许在后台准备新的输出数据(通过DS和SRCLK),而当前显示的输出(通过存储寄存器)仍然保持稳定。只有当所有新数据准备就绪并需要更新时,才发送一个RCLK脉冲进行更新,从而避免了输出抖动,提高了系统的稳定性。
3. 并行输出与输出使能
存储寄存器中的数据通过Q0-Q7引脚并行输出。这些输出引脚是三态的,其工作状态受OE(输出使能)引脚的控制。
当OE引脚为低电平时,Q0-Q7引脚正常输出存储寄存器中的数据。
当OE引脚为高电平时,Q0-Q7引脚进入高阻态。在高阻态下,这些引脚表现为断路,不吸收电流也不提供电流,这对于在总线上连接多个设备或需要动态开关输出的应用非常有用。
在大多数简单的应用中,为了持续显示输出,OE引脚通常直接连接到GND。
4. 级联工作
74595的Q7'(QH')引脚是移位寄存器的串行输出,它输出移位寄存器中Q7位的数据。这个引脚使得多个74595芯片可以方便地进行级联,以扩展并行输出的数量。
当多个74595级联时,第一个芯片的Q7'引脚连接到第二个芯片的DS引脚,第二个芯片的Q7'连接到第三个芯片的DS引引脚,以此类推。所有级联芯片的SRCLK和RCLK引脚通常都连接到同一个时钟源(例如微控制器的相应引脚)。OE引脚可以单独控制每个芯片,也可以共同控制。
通过这种方式,微控制器只需要三个引脚(一个DS、一个SRCLK、一个RCLK)就可以控制任意数量的74595芯片,从而实现数十个甚至上百个并行输出的控制,这对于驱动大型LED阵列、点阵显示屏或多个数码管显示器等应用场合非常有优势。
74LS595 与 74HC595 的区别
虽然74LS595和74HC595在功能引脚上完全兼容,但它们属于不同的逻辑家族,因此在电气特性上存在显著差异。了解这些差异对于选择合适的芯片至关重要。
1. 逻辑家族
74LS595: 属于低功耗肖特基TTL(Transistor-Transistor Logic) 系列。TTL逻辑器件使用双极性晶体管制造,其特点是速度相对较快,但功耗相对较高,且输入输出电平与CMOS不完全兼容,通常工作在5V电源。
74HC595: 属于高速CMOS(Complementary Metal-Oxide-Semiconductor) 系列。CMOS逻辑器件使用MOSFET晶体管制造,其特点是功耗极低(尤其是在静态时),输入输出阻抗高,且具有较宽的电源电压范围。
2. 电源电压范围
74LS595: 典型工作电压为 5V(标准范围可能在4.75V至5.25V)。对电源电压要求相对严格。
74HC595: 具有更宽的电源电压范围,通常为 2V至6V。这使得它在电池供电或需要与不同电压等级设备连接的场合更具灵活性。
3. 功耗
74LS595: 相对而言,功耗较高,尤其是在动态工作时。这主要是因为TTL器件在输出高电平时仍然会有一定的静态电流,并且在开关过程中会有较大的瞬态电流。
74HC595: 功耗极低,尤其是在静态(没有信号切换)时。CMOS器件的功耗主要来源于动态功耗,即在输入信号切换时对内部电容的充放电。在大多数应用中,74HC595的功耗远低于74LS595,这对于电池供电系统或对功耗敏感的应用至关重要。
4. 速度特性
74LS595: 速度相对较快,但与现代CMOS高速芯片相比,其最大时钟频率和传播延迟可能略逊一筹。
74HC595: 尽管是CMOS,但它属于高速CMOS系列,因此其开关速度和时钟频率可以与LS系列相媲美,甚至在某些情况下更快。其传播延迟通常较短,允许在更高的频率下工作。
5. 输入/输出电平
74LS595:
输入高电平阈值 (textV_textIH) 较高,通常要求输入电压至少达到2V才被识别为高电平。
输入低电平阈值 (textV_textIL) 较低,通常要求输入电压不高于0.8V才被识别为低电平。
输出高电平 (textV_textOH) 典型值在2.7V以上。
输出低电平 (textV_textOL) 典型值在0.5V以下。
输出驱动电流(特别是灌电流,sink current)较大,能够驱动多个TTL输入。
74HC595:
输入高电平阈值 (textV_textIH) 通常是VCC的70%左右,例如在5V供电下,约为3.5V。
输入低电平阈值 (textV_textIL) 通常是VCC的30%左右,例如在5V供电下,约为1.5V。
输出高电平 (textV_textOH) 接近VCC,通常在VCC-0.1V以内。
输出低电平 (textV_textOL) 接近GND,通常在GND+0.1V以内。
输出驱动电流相对较弱,但足以驱动大多数CMOS输入或中小功率负载。对于驱动LED等负载,通常需要额外的限流电阻。
6. 抗干扰能力
74LS595: TTL器件在输入端通常需要上拉电阻,对噪声敏感度中等。
74HC595: CMOS器件具有高输入阻抗,因此对输入噪声的敏感度较低,抗干扰能力较强。
7. 应用场景建议
选择74LS595:
当你的系统主要采用5V TTL逻辑,且对功耗不敏感时。
需要较高的输出灌电流来驱动某些特定TTL负载时。
对成本非常敏感时,有时LS系列会更便宜。
选择74HC595:
当你的系统采用3.3V或5V的CMOS逻辑,例如使用STM32、ESP32等微控制器时。
对功耗有严格要求,例如电池供电应用。
需要宽电源电压范围的应用。
对噪声容限和抗干扰能力有较高要求时。
总结: 尽管两者功能相同,但74HC595通常是更现代、更通用、功耗更低的选择,尤其是在与微控制器(通常是CMOS器件)接口时,其电平兼容性更好。74LS595则在一些遗留系统或特定TTL驱动需求下仍有应用。
74595 芯片的典型应用
74595芯片因其独特的串行输入/并行输出特性,在许多电子设计中都发挥着关键作用。以下是一些典型的应用场景:
1. 驱动多个LED
这是74595最常见也最直观的应用之一。微控制器通常只有有限的GPIO引脚,如果直接驱动大量的LED(例如8个、16个、甚至更多),会迅速耗尽微控制器的引脚资源。通过使用74595,微控制器只需要3个引脚(DS、SRCLK、RCLK)就可以控制8个LED。通过级联多个74595,可以轻松控制数十个甚至上百个LED,这在LED指示灯阵列、灯光效果、简易跑马灯等应用中非常普遍。
应用原理: 将每个74595的Q0-Q7输出引脚通过限流电阻连接到LED的阳极(共阴连接)或阴极(共阳连接)。微控制器将待点亮的LED状态(1表示亮,0表示灭)打包成一个字节,并通过DS和SRCLK串行发送到74595的移位寄存器。数据发送完毕后,发送一个RCLK脉冲将数据锁存到存储寄存器,从而点亮或熄灭相应的LED。
2. 驱动数码管显示器(七段数码管或点阵数码管)
数码管是另一种典型的并行驱动设备。一个七段数码管通常需要7个段(a-g)和一个小数点(dp)共8个引脚来控制。如果直接用微控制器驱动,每个数码管就需要8个引脚。使用74595,一个芯片可以驱动一个数码管的所有段,极大地节省了微控制器的I/O。
应用原理: 74595的Q0-Q7输出引脚分别连接到数码管的a-g和dp段。微控制器发送代表数字或字符段码的字节到74595,然后锁存,即可显示对应的数字。在多位数码管显示中,通常会采用多路复用(Multiplexing)技术,即用多个74595分别驱动每个数码管的段,同时用微控制器的另外引脚(或另一个74595)控制每个数码管的公共端(共阳极或共阴极),并通过快速轮流刷新实现多位显示。
3. 驱动LCD显示器(特别是字符型LCD,如1602 LCD)
许多字符型LCD显示模块,如常用的1602或2004 LCD,通常有8位并行数据接口(D0-D7)。直接连接需要占用微控制器8个GPIO口,加上RS、RW、E等控制线,总共需要11个引脚。通过74595,可以将8位数据线简化为串行输入,从而大幅减少微控制器与LCD连接的引脚数量。
应用原理: 74595的Q0-Q7连接到LCD的D0-D7数据线。RS、RW、E线可以直接由微控制器控制,或者也可以通过额外的74595引脚来控制,但通常为了时序的精确控制,RS和E会直接连接到微控制器。通过这种方式,微控制器可以用串行方式向74595发送LCD指令或数据,再由74595并行输出给LCD。
4. 键盘扫描(小型矩阵键盘)
在一些小型矩阵键盘(如4x4键盘)中,74595可以用于扫描键盘的行或列。通过驱动74595的输出引脚,逐行或逐列地驱动键盘,然后读取微控制器的输入引脚,从而判断按键状态。
应用原理: 将74595的Q0-Q7连接到键盘的行线或列线。通过每次只驱动一个输出引脚为高电平(或其他逻辑),然后读取另一组输入引脚的电平,来判断哪个按键被按下。例如,将74595的输出连接到4x4矩阵键盘的4列,然后将4行连接到微控制器的4个输入引脚,通过扫描每列来检测行输入。
5. 级联扩展 I/O 口
这是74595最强大的功能之一。通过Q7'(QH')引脚,可以将多个74595芯片串联起来,形成一个更长的移位寄存器,从而实现无限量的I/O扩展(理论上无限,实际上受限于时序和信号完整性)。
应用原理: 第一个74595的Q7'连接到第二个74595的DS,第二个的Q7'连接到第三个的DS,依此类推。所有芯片的SRCLK和RCLK都并联到微控制器相应的引脚上。微控制器一次性发送N个字节(N为芯片数量)的数据流,这些数据会依次经过所有芯片的移位寄存器,直到所有数据到位。最后,一个RCLK脉冲将所有芯片的数据同步锁存到各自的存储寄存器,实现同时更新所有输出。这种方法在控制大量独立输出(如LED阵列、继电器阵列)时非常有效。
6. 并行数据转换与存储
在某些需要将串行数据流转换为并行数据,并保持输出一段时间的场合,74595也很有用。例如,从串行通信接口(SPI、UART等)接收到的数据需要并行输出给其他设备。
应用原理: 微控制器或专用串行接口将数据串行发送到74595,然后74595将其转换为并行数据,供后端设备使用。锁存功能确保了并行数据在整个操作周期中的稳定性。
7. 数字信号多路分配
虽然不是其主要设计用途,但在某些情况下,74595也可以用于将一个串行输入信号,通过移位和锁存,并行地分配到不同的输出线上。例如,将一个配置字通过串行方式写入,然后将其不同位用于控制不同功能。
总结: 74595芯片以其简单高效的串并转换能力,成为微控制器扩展I/O的“瑞士军刀”。无论是简单的LED驱动,还是复杂的显示控制,甚至是大规模的I/O扩展,它都提供了一个成本效益高、易于实现的解决方案。
74595 芯片使用注意事项与编程思路
正确使用74595芯片不仅需要理解其引脚功能,还需要掌握相应的编程时序和一些电路设计上的注意事项。
1. 时序图与控制顺序
理解74595的时序图是编程的关键。虽然不同型号的数据手册可能略有差异,但核心原理是一致的:
步骤一:准备数据
在每次SRCLK上升沿到来之前,将DS引脚设置为待发送的当前数据位(高电平或低电平)。数据位的顺序通常从最高位(MSB)开始发送,但也可以从最低位(LSB)开始,只要保证微控制器和74595的解析顺序一致即可。
步骤二:移入数据
发送一个SRCLK脉冲:将SRCLK引脚从低电平拉高(上升沿),然后拉低。这个上升沿会将DS引脚上的数据移入移位寄存器。
重复步骤一和步骤二共8次(对于8位数据)。完成8次操作后,8位数据就全部进入了移位寄存器。
步骤三:锁存数据
发送一个RCLK脉冲:将RCLK引脚从低电平拉高(上升沿),然后拉低。这个上升沿会将移位寄存器中的数据并行地传输到存储寄存器,并更新Q0-Q7输出。
步骤四:控制输出使能(可选)
如果需要控制输出的开启/关闭,在数据传输完成后,根据需要设置OE引脚的电平。通常OE引脚接GND,则无需额外控制。如果用于动态使能或多路复用,则根据需求进行高低电平切换。
典型编程伪代码示例 (C语言,基于Arduino/STM32等微控制器):
// 假设微控制器引脚定义#define DS_PIN PA0 // 对应 74595 的 DS/SER#define SRCLK_PIN PA1
// 对应 74595 的 SRCLK/SHCP#define RCLK_PIN PA2 // 对应 74595 的 RCLK/STCP#define OE_PIN PA3
// 对应 74595 的 OE (如果需要控制)// 假设已经初始化了GPIO引脚为输出模式void write_595_byte(uint8_t data) {
// 确保时钟线初始为低电平
digitalWrite(RCLK_PIN, LOW);
digitalWrite(SRCLK_PIN, LOW); // 循环发送8位数据
for (int i = 0; i < 8; i++) { // 从最高位 (MSB) 开始发送
// 将当前位数据发送到DS引脚
digitalWrite(DS_PIN, (data & 0x80) ? HIGH : LOW); // 0x80 = 10000000b
// 发送SRCLK上升沿
digitalWrite(SRCLK_PIN, HIGH); // 小延时确保时序稳定,通常不需要显式延时,
除非MCU速度非常快
// delayMicroseconds(1);
digitalWrite(SRCLK_PIN, LOW); // 移位到下一位
data <<= 1; // 左移一位,将下一位移到MSB位置
} // 锁存数据到存储寄存器
digitalWrite(RCLK_PIN, HIGH); // 小延时
// delayMicroseconds(1);
digitalWrite(RCLK_PIN, LOW); // 可选:如果OE不是直接接地,可以在这里控制
// digitalWrite(OE_PIN, LOW); // 使能输出}// 示例用法:点亮Q0和Q7// write_595_byte(0b10000001);
// 对应十进制 129// 级联两个74595的例子 (发送两个字节)void write_595_bytes_cascaded(uint8_t data1,
uint8_t data2) { // 确保时钟线初始为低电平
digitalWrite(RCLK_PIN, LOW);
digitalWrite(SRCLK_PIN, LOW); // 先发送给第二个芯片的数据,它会先通过第一个芯片
// 循环发送第二个字节
for (int i = 0; i < 8; i++) {
digitalWrite(DS_PIN, (data2 & 0x80) ? HIGH : LOW);
digitalWrite(SRCLK_PIN, HIGH);
digitalWrite(SRCLK_PIN, LOW);
data2 <<= 1;
} // 再发送给第一个芯片的数据
// 循环发送第一个字节
for (int i = 0; i < 8; i++) {
digitalWrite(DS_PIN, (data1 & 0x80) ? HIGH : LOW);
digitalWrite(SRCLK_PIN, HIGH);
digitalWrite(SRCLK_PIN, LOW);
data1 <<= 1;
} // 锁存所有芯片的数据
digitalWrite(RCLK_PIN, HIGH);
digitalWrite(RCLK_PIN, LOW);
}
2. 电源与去耦
电源稳定性: 为74595提供稳定的电源电压至关重要。电源波动或噪声可能导致数据传输错误或芯片工作不稳定。
去耦电容: 在74595的VCC和GND引脚之间,应尽可能靠近芯片放置一个0.1$mu$F的陶瓷去耦电容。这个电容能够滤除电源线上的高频噪声,并为芯片在瞬态开关时提供瞬时电流,从而确保芯片的稳定工作。对于多个74595芯片,每个芯片都应该有一个独立的去耦电容。
3. 输出限流电阻
当74595的输出引脚直接驱动LED时,必须在每个LED和74595输出之间串联一个限流电阻。这是为了限制流过LED的电流,防止LED烧毁,也防止74595的输出引脚过载。电阻值根据LED的类型、正向电压和所需电流以及电源电压来计算。
计算公式:R=(textVCC−textV∗textF)/textI∗textF
其中,VCC是电源电压,$ ext{V}{ ext{F}}是LED的正向电压(通常为1.8V−3.5V), ext{I}{ ext{F}}$是LED的正向电流(通常为5mA-20mA)。
4. 未使用引脚处理
对于不使用的输入引脚(例如,如果OE始终接地),应该将其连接到确定的逻辑电平(VCC或GND),而不是悬空。悬空的输入引脚容易受到噪声干扰,导致芯片行为异常。对于74595而言,如果OE引脚不需要动态控制,通常将其直接接地。
未使用的输出引脚可以悬空,但如果设计中考虑到电磁兼容性(EMC)问题,有时也会连接到小电阻再接地,以避免成为天线,但这通常不是必须的。
5. 级联时的时序考虑
在级联多个74595时,所有芯片的SRCLK和RCLK引脚通常是并联的,由微控制器统一控制。
数据发送顺序:当向多个级联的74595发送数据时,需要从最远端的74595(也就是数据最终会流到其Q7',然后到下一个芯片DS的那个芯片)开始发送数据。例如,如果串联了A、B、C三个芯片(微控制器->A->B->C),微控制器应该先发送给C的数据,然后是B的数据,最后是A的数据。因为每次SRCLK脉冲,数据都会向前推进一位,所以最先发送的数据会“穿过”前面的芯片,最终到达最远端的芯片。
一旦所有数据位都被移入到所有级联芯片的移位寄存器中,再发送一个RCLK脉冲,所有芯片的存储寄存器会同时更新。
6. 功耗考虑
虽然74HC595的静态功耗很低,但在高频切换时,动态功耗会增加。
驱动大量LED或其他高电流负载时,应确保电源能够提供足够的电流。单个74595的输出驱动能力有限,如果每个输出都要驱动较大的电流,总电流可能会超过芯片或电源的承载能力。必要时,可能需要外部驱动电路,如晶体管阵列(ULN2003等)或MOSFET来放大驱动能力。
7. 复位功能(如果可用)
如果您的74595芯片带有$overline{ ext{MR}}(主复位)引脚(通常是引脚10,与OE共用),在系统上电初始化时,可以通过拉低overline{ ext{MR}}引脚来清空所有寄存器,确保芯片处于已知状态。在正常工作时,应将overline{ ext{MR}}拉高(连接到VCC)以避免误触发复位。∗∗再次强调,对于大部分常见的74LS595/74HC595,引脚10是OE而不是overline{ ext{MR}}$。**
总结: 74595是一款非常实用的芯片,但它的使用也需要遵循一定的规范和时序。掌握其工作原理、引脚功能以及编程时序,结合电路设计中的注意事项,可以帮助开发者高效地利用它来扩展微控制器的I/O能力,从而实现各种复杂的控制和显示功能。通过串行通信和并行输出的巧妙结合,74595极大地简化了硬件连接,是数字电路设计中不可或缺的工具。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。