06-移位寄存器74HC595芯片编程

本文详细介绍了74HC595芯片的工作原理、硬件连接方式以及软件编程方法,包括控制管脚配置、数据传输流程和两字节发送过程。通过实例展示了如何利用595进行数码管和LCD1602的控制,以及如何实现数据的级联传输。
摘要由CSDN通过智能技术生成

移位寄存器74HC595芯片编程

1. 硬件介绍

原理图:

image-20210825213126765

2块595芯片用以拓展IO口

0#595芯片控制数码管段选和LCD1602数据传输脚

1#595芯片控制数码管位选

74HC595性能简介:

image-20210825213234800

74HC595是典型的移位串转并三态输出驱动器。

8 位并行三态输出,并且可以级联输出。

74HC595引脚功能:

image-20210825213350817

74HC595时序图 :

image-20210825213550324

image-20210825213647789

74HC595传输2字节过程:

image-20210825213736219

2. 软件编程

  1. 定义595的控制管脚,并在初始化函数配置标准IO口模式,即2.2,2.3,2.4配置成低电平

image-20210818121823129

image-20210818121657135

image-20210818122504987

image-20210818122530651

注:

只将部分位配置成标准IO口模式:按位与(&)操作

  1. 由时序图定义管脚初始状态

image-20210818122834269

image-20210818122909821

  1. 创建595底层驱动(数据发送函数)

创建函数

image-20210818123403992

声明函数

image-20210818123435437

调用函数

image-20210818123700397

  1. 发送环节

image-20210818125316061

已创建的变量HC595_Write_Buffer [2]

有两个数组存储数据:HC595_Write_Buffer [0]、HC595_Write_Buffer [1]

image-20210818125800909

数据移动从0号595芯片到1号595芯片

数据传输先进先出,先发送HC595_Write_Buffer [1]里的数据,再发送HC595_Write_Buffer [0]里的数据

具体发送步骤:

  1. SH脚低电平
  2. 缓存数据的最高位拷贝到DS脚(&0x80),每次只拷贝当前最高位,&运算结果遵循非0即1
  3. 缓存数据左移1位,次高位变成最高位,等待下一次循环发送
  4. SH脚高电平,DS脚上数据左移一位
  5. 2个字节发送完,ST发送一次高电平

image-20210818131733744

  1. 查看发送结果

逻辑仪打开,结果符合

image-20210818132902997

更改发送数据继续测试

image-20210818133344133

  1. 发送第二个字节的数据

代码和前一次发送一样

发送数组0的数据,将原本在0号595芯片内的数组1的数据挤进1号595芯片

image-20210818133859781

为数组0赋值

image-20210818133930734

逻辑仪观察发送结果

image-20210818134410228

  1. 输出

截止目前,只是将数据发送到595芯片,并没有输出到管脚

image-20210818134635805

image-20210818134727253

代码

image-20210818135135306

  1. SPI协议解码

image-20210818135432454

解码结果

image-20210818135546040

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值