Audino-2-Arduino中内置的shiftOut函数与74HC595芯片的配合使用

一、shiftout函数

shiftOut(dataPin,clockPin,bitOrder,val)

dataPin:数据输出引脚,数据的每一位将逐次输出。引脚模式需要设置成输出。

clockPin:时钟输出引脚,为数据输出提供时钟,引脚模式需要设置成输出。

bitOrder:数据位移顺序选择位,该参数为byte类型,有两种类型可选择,分别是高位先入MSBFIRST和低位先入LSBFIRST。

 val:所要输出的数据值。




二、74HC595芯片


(一)74HC595芯片原理

74HC595 简单说来就是具有 8位移位寄存 和一个 存储器 ,以及三态输出 功能。

移位寄存器和存储器有相互独立的时钟。数据在SH_cp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在ST_cp(存储器时钟输入)的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。



(二)74HC595芯片引脚简介

Q0-Q7这8根引脚是芯片的输出引脚,直接跟数码管的8段引脚相连。 Q7S引脚,串行输出引脚,

DS是串行输入引脚,这个引脚我们接到树莓派任意一个GPIO口上(输出模式)。

SHCP是移位寄存器的时钟引脚。74HC595内部有一个8位的移位寄存器用来保存从DS引脚输入的数据。

STCP是芯片内部另外一个8位锁存寄存器的时钟引脚。当移位寄存器的8位数据全部传输完毕后,制造一次锁存器时钟引脚的上升沿(先拉低电平再拉高电平)。74HC595会在这个上升沿将移位寄存器里的8位数据复制到锁存器中(锁存器里原来的数据将被替换)。

OE是输出使能引脚,作用是控制锁存器里的数据是否最终输出到Q0-Q7输出引脚上。低电平时输出,高电平时不输出(既不是高电平,也不是低电平而是高阻态,不通电)。

MR是用来重置内部寄存器的引脚。低电平时重置内部寄存器(MemoryReset)。

锁存器,顾名思义就是将数据保存并锁定。一旦进入了锁存器,除非断电或重置数据(MR口设置为低电平),锁存器的数据不会再改变。好处是,当你需要更新数据时,将数据串行输入移位寄存器的过程中,锁存器里的数据不会有任何影响,也就不会有闪烁了。一直到移位寄存器8位数据准备完毕,再制造一次STCP的上升沿一次性更新锁存器的数据,更新输出。


三、实验

(一)实验元件:

74HC595 直插芯片*1、红色M5 直插LED*4、绿色M5 直插LED*4、220Ω直插电阻*8、面包板*1、面包板跳线*1 扎。

(二)实验原理图:


(三)Proteus仿真电路图:

(四)实验代码:


你可能感兴趣的:(Audino-2-Arduino中内置的shiftOut函数与74HC595芯片的配合使用)