74HC595芯片

74HC595芯片原理

25d4ae4714a1464785fe50be44c07478.jpeg

1:芯片概述

   :八位行输入/串行并进行输出移位寄存器与锁存器3态输出高性能硅栅CMOS,74HC595芯片是在单片机系统中常用的芯片之一,他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片,使用74HC595可以节约单片机的I/O口资源,用3个I/O就可以控制4个数码管显示,以此类推使用几个74HC595就可以控制其数量乘以4的数码管,它还具有一定的驱动能力,所以说74HC595芯片的应用非常广泛

2:引脚功能描述

 a7a72187968e43369ab29afd8c7a2519.png

3:对应的输出引脚

2-FMQ-1(蜂鸣器)    3-JDQ-1(继电器)   4-DSCS(时钟芯片片选)  6-LED-E(流水灯)

这四个输出引脚所对应的十六进制打开值

9179e03843b44b60947afacb40097ca4.png

4:74HC959芯片时序图

abfe6bb05e6b411da022c2c682de2dd4.png

f02a76ebb92d4c679fa75ec5f3154d56.png67a3a5ba83374e9a9aac17e836510a53.png

 先使得RESET为高电平,当输入一个值时,当SHIFT CLOCK有时钟上沿(就是有个低电平到高电平的转换),还要有当LATCH所连接的LATCH CLOCK有时钟上沿且所连接的OUTPUT ENABLE为低电平才能使得输入的值和我们输出的值一样

74HC595芯片的应用

1:IO口数码管静态显示

#include<reg52.h> 
sbit duanxuan=P2^5;//数码管驱动芯片74Hc573段选
sbit wiexuan=P2^6;//数码管驱动芯片74Hc573位选
sbit DATA_A_595      = P1^0;  //74HC595 串行数据输入引脚
sbit SHIFT_CLOCK_595 = P1^4;  //74HC595 移位寄存器时钟信号输入引脚
sbit LATCH_CLOCK_595 = P2^3;  //74HC595 锁存器时钟信号输入引脚
typedef signed char int8;         //8位有符号字符型
typedef signed int int16;         //16位有符号整型
typedef signed long int32;        //32位有符号长整型
typedef unsigned char uint8;      //8位无符号字符型
typedef unsigned int uint16;      //16位无符号整型
typedef unsigned long uint32;     //32位无符号长整型
void main(void)
{
  while(1)
  {
   duanxuan=0;
   wiexuan=0;
   P0=0xc0;//数码管段码显示0
   duanxuan=1;//段选
   duanxuan=0;

   duanxuan=0;
   wiexuan=0;
   P0=0x01;//数码管段码显示0
   wiexuan=1;
   wiexuan=0;
  }

}
void write_byte_74hc595(uint8 dat)  //给595芯片写一字节数据函数
{
  uint8 i; 
	for(i=0;i<8;i++)
	 {
	    DATA_A_595      =(dat<<i)&0x80;  //74HC595 串行数据输入引脚
		  SHIFT_CLOCK_595 = 0;  //74HC595 移位寄存器时钟信号输入引脚
		  SHIFT_CLOCK_595 = 1;  //74HC595 移位寄存器时钟信号输入引脚
		  
	 }
	 LATCH_CLOCK_595 = 0;  //74HC595 锁存器时钟信号输入引脚
	 LATCH_CLOCK_595 = 1;  //74HC595 锁存器时钟信号输入引脚
}

void delay(uint16 x_ms) //延迟  x_ms*1  毫秒
{
   uint16 i,j;
	for(i=x_ms;i>0;i--)
		 for(j=114;j>0;j--);
	  
}

2:IO口输出之继电器

注释了的几行代码是跳过74HC595芯片来驱动继电器

剩余的代码是通过74HC595芯片来驱动继电器

#include<reg52.h>
typedef signed char int8;         //8位有符号字符型
typedef signed int int16;         //16位有符号整型
typedef signed long int32;        //32位有符号长整型
typedef unsigned char uint8;      //8位无符号字符型
typedef unsigned int uint16;      //16位无符号整型
typedef unsigned long uint32;     //32位无符号长整型
sbit jdq=P2^0;//继电器IO口
sbit DATA_A_595      = P1^0;  //74HC595 串行数据输入引脚
sbit SHIFT_CLOCK_595 = P1^4;  //74HC595 移位寄存器时钟信号输入引脚
sbit LATCH_CLOCK_595 = P2^3;  //74HC595 锁存器时钟信号输入引脚
void delay(uint16 x_ms);
void write_byte74hc595(uint8 dat);
void main()
{
while(1)
 {
 //方法一  跳过595芯片 直接io口驱动
// jdq=1;//继电器IO口
// delay(1000);
// jdq=0;
// delay(1000);
//方法二595芯片驱动
 write_byte74hc595(0x08);//继电器输入高电平工作	 0x0B和蜂鸣器
 delay(1000);
 write_byte74hc595(0x00);//继电器输入低电平停止
 delay(1000);
 }
}
void write_byte74hc595(uint8 dat)
{
 uint8 i;
 for(i=0;i<8;i++)
 {
   DATA_A_595=(dat<<8)&0x80 ; 
    SHIFT_CLOCK_595 =0;
	SHIFT_CLOCK_595 =1;
 }
  LATCH_CLOCK_595 =0;
  LATCH_CLOCK_595 =1;
}
void delay(uint16 x_ms) //延迟  x_ms*1  毫秒
{
   uint16 i,j;
	for(i=x_ms;i>0;i--)
		 for(j=114;j>0;j--);

	  
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 74hc595是一种集成电路芯片,也是一种移位寄存器。它含有8个输出引脚,可以控制外部设备,比如LED灯。这些输出引脚可以使用三线串行接口进行控制。在移位寄存器中,数据可以被逐位地移动,直到到达所需的位置。当达到目的地时,数据被存储在芯片中,以供后续使用。这个操作过程被称为“串行数据输入”。 要使用74hc595芯片,首先需要使用“串行数据输入”来输入数据。然后使用“输出存储器寄存器”将数据从芯片中取出。可以通过自由选择输出引脚来控制外部设备。这样就可以非常方便地控制大量 LED 灯条或其他存储芯片。 使用74hc595芯片需要注意一些问题。首先,在使用时需要正确接线,确保数据正确传递和处理。还需要根据具体的使用情况合理安排输入数据的时序,保证数据能够在正确的时刻传输。另外,需要根据数据特点和目标设备的要求来设定寄存器。这些细节方面需要仔细考虑,以确保74hc595芯片能够正常工作。 总之,74hc595芯片是一种非常有用的集成电路芯片,适用于控制LED灯、存储器等外部设备。使用74hc595芯片需要谨慎、认真地处理各种细节问题,以确保成功实现相应的功能。 ### 回答2: 74HC595芯片是一种串行输入并行输出的移位寄存器。它由8个输出端口和3个输入端口组成,其中,一个输入端口为时钟信号,另外两个为数据信号和存储信号。74HC595芯片具有高速处理能力和低功耗特点,在很多数字电路和控制系统中得到广泛应用。 通过输入数据端口,可以通过串行方式向芯片中输入8位二进制数据,然后通过时钟信号将这8位数据依次移动到8个输出端口中的8个寄存器中。当移位完成后,就可以通过存储信号将所存储的8位数输出到8个输出端口中。这种移位操作可以实现多路开关控制、数字显示控制、数码管驱动等功能。 在使用74HC595芯片时,需要特别注意电压、电流等参数,并且需要合理配置芯片布局和电路连接。同时,应该按照数据手册中的指示进行编程和操作,以保证芯片能够正常工作。由于该芯片具有高效、可靠、易扩展的特点,因此在嵌入式系统、数字电路控制等领域广泛应用,可以帮助用户实现各种复杂控制和处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值