物联网AI MicroPython传感器学习 之 SN74HC595数码管驱动芯片

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

SN74HC595是TI出品的一种能将串行信号转为并行信号芯片,常用在各种数码管或点阵屏的驱动芯片,使用SN74HC595可以节约单片机的IO资源,用3个io就可以控制8个数码管的管脚,它还具有一定的驱动能力,可以免掉三极管等放大电路。
image.png

引脚定义

  • VCC: 5V
  • SCLK: host GPIO
  • RCLK: host GPIO
  • DIO: host GPIO
  • GND: GND

二、技术参数

  • 供电电压:2V~6V
  • 驱动能力:6mA(5V)
  • 3-bit串行数据转换成8-bit并行数据

三、软件接口

SN74HC595(rclk, sclk, dio) - 创建SN74HC595驱动对象

  • 函数原型:

displayDev = SN74HC595(rclk, sclk, dio)

  • 参数说明:
参数类型必选参数?说明
rclkGPIO传入GPIO对象
sclkGPIO传入GPIO对象
dioGPIO传入GPIO对象
  • 返回值:
    SN74HC595对象成功,返回SN74HC595对象;SN74HC595对象创建失败,抛出Exception
  • 示例代码:
from machine import Pin          # 驱动库
import sn74hc595                 # SN74HC595驱动库

rclk = Pin(2, Pin.OUT)
sclk = Pin(4, Pin.OUT)
dio = Pin(16, Pin.OUT)
displayDev = sn74hc595.SN74HC595(rclk, sclk, dio)
  • 输出:

outSegmentDigit - 输出数码管数字

  • 函数功能:
    输出数码管数字
  • 函数原型:

SN74HC595.outSegmentDigit(position, digit)

  • 参数说明:
    position: 数码管的位置,从0开始
    digit: 数字,0x0-0xf
  • 返回值:
  • 示例:
from machine import Pin          # 驱动库
import sn74hc595                 # SN74HC595驱动库
import utime

rclk = Pin(2, Pin.OUT)
sclk = Pin(4, Pin.OUT)
dio = Pin(16, Pin.OUT)
displayDev = sn74hc595.SN74HC595(rclk, sclk, dio)

displayDev.outSegmentDigit(0, 6)
utime.sleep_ms(1000)
  • 输出:无

四、接口案例

  • 示例代码:
from machine import Pin          # 驱动库
import sn74hc595                 # SN74HC595驱动库
import utime

rclk = Pin(2, Pin.OUT)
sclk = Pin(4, Pin.OUT)
dio = Pin(16, Pin.OUT)
displayDev = sn74hc595.SN74HC595(rclk, sclk, dio)

for i in range(4):
    for j in range(0x10):
        displayDev.out_digit(i, j)
        utime.sleep_ms(1000)
  • 输出:无

五、通信协议

主控芯片和SN74HC595之间通信所用命令字如下表所示:

序号功能说明命令字宏定义
1SER pin输出数据bit8CMD_WRITE_DATA_BIT8
2SRCLK pin输出低电平CMD_WRITE_SRCLK_LOW
3SRCLK pin输出高电平CMD_WRITE_SRCLK HIGH
4SER pin输出数据bit7CMD_WRITE_DATA_BIT7
5SRCLK pin输出低电平CMD_WRITE_SRCLK_LOW
6SRCLK pin输出高电平CMD_WRITE_SRCLK HIGH
7SER pin输出数据bit6CMD_WRITE_DATA_BIT6
8SRCLK pin输出低电平CMD_WRITE_SRCLK_LOW
9SRCLK pin输出高电平CMD_WRITE_SRCLK HIGH
22SER pin输出数据bit1CMD_WRITE_DATA_BIT1
23SRCLK pin输出低电平CMD_WRITE_SRCLK_LOW
24SRCLK pin输出高电平CMD_WRITE_SRCLK HIGH
25RCLK pin输出低电平CMD_WRITE_RCLK_LOW
26SRCLK pin输出高电平CMD_WRITE_RCLK_HIGH
  • 输出数字流程
对数字进行编码,按照主控芯片和SN74HC595的通信协议控制SER、SRCLK和RCLK,即可在数码管上显示出对应数字。

六、工作原理

从如下方框图可以看到 SN74HC595 内部集成了一个8-bit 移位寄存器和一个8-bit D-type 锁存寄存器,8-bit 移位寄存器输出到8-bit D-type锁存寄存器,通过移位寄存器可以将串行数据转换成并行数据,并且通过锁存寄存器可以将输出的数字锁存下来,所以使用SN74HC595要同时显示多个数字需要利用余晖效应。
image.png
引脚分布如下,QA-QH一般数码管的段,RCLK,SRCLK,SER分别是锁存clock,移位clock,和数据输入。
image.png

参考文献及购买链接

[1] SN74HC595数码管驱动芯片
[2] 购买链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值