此款数码管采用74HC595芯片能够将8位串行输入转化为并行输出(三态输出)的芯片,并且能够通过级联的方式进行拓展。芯片是由1个8bit移位寄存器、1个8bit存储寄存器、1个8bit的( 三态) 输出端口。(注:三态输出指的是 高电平(1)、低电平(0)、高阻态(Z)三种状态)当多个设备共用总线时,高阻态可用作来避免总线冲突,如如I2C、SPI总线中,从设备(Slave)在不通信时输出高阻抗。


DS:串行数据输入端口,与FPGA相连接,通过该端口将串行数据移入到移位寄存器当中,如果输入的数据超过8bit,如:输入了14bit数据,那么最前面输入的6bit数据将会通过Q7S输入到级联的另一块74HC595芯片中。
SHCP:移位寄存器时钟输入,上升沿时将串行数据移入到移位寄存器中。
STCP:存储寄存器时钟输入,上升沿时将移位寄存器中的数据移入到存储寄存器中。
OE(上划线):低电平有效,将存储寄存器中的数据通过Q0~Q7输出。
MR(上划线):低电平有效,复位端口。
静态数码管显示
数码管对于初学者来说,可能最大的难题就是硬件的时序。此次以上数码管的相关知识,对模块实例化的意义、各个模块之间的关系有了认识,对testbench的实质有了更清晰的认知,也了解到了工程中时序的重要性。重点在于74HC595的STCP、SHCP以及串行输入数据(包括段选和位选)之间的时序逻辑。对于STCP主要注意锁存时机。SHCP则要把握对串行输入数据的采样时刻,注意建立时间和保持时间,RTL视图如下:

仿真波形


6位8段数码管,需要6bit来位选,8bit来段选,也就是14bit的串行数据,通过74HC595芯片转换后并行输出到数码管。对sys_clk(50MHz)进行了4分频,得到了shcp(应该是74HC595最大工作频率达不到50MHz)。注意事项:shcp需要保证在ds的中间采样(满足建立时间和保持时间),stcp需要保证完成14个shcp后进行锁存输出。
以下我们以树莓派RP2040芯片的单片机为例来进行演示实际效果,首先将数码管与单片机进行连接。
| 树莓派Pico(RP2040) | 四位数码管模块 |
| 3.3V | VCC |
| GND | GND |
| GP18 | SDI |
| GP17 | SCLK |
| GP16 | LOAO |
Pico与数码管接线图:

Pico引脚定义图:

代码功能介绍:分别测试一位至四位数字显示和滚动效果。运行代码后每次将GP0引脚接GND一次,就会触发四位数字滚动,然后随机显示一组四位数。(GP1引脚显示三位数,GP2引脚显示二位数,GP3引脚显示一位数)

运行代码后,引脚接一次GND可触发一组不同数字(GP0显示四位数,GP1显示三位数,GP2显示二位数,GP3显示一位数)
联系人:张工
电话:0755-32914578
QQ:2251000002
微信:扫下方二维码添加,请备注来意
提供:人工智能,IOT物联网,工控数显,嵌入式软硬件开发,科创教育,产品定制,生产,方案解决...