用移位寄存器来扩展 8位移位寄存器( 六 )


我们使用保存开关值的“传入”字节作为语句的开关 。然后我们有八种情况,每个开关一种 。如果你想允许两个按钮同时按下,你大概可以添加更多的按钮,但八个对我来说已经足够了!
在每种情况下,我们用LED图案填充datArray阵列,以二进制形式编写以便于查看 。在每个字节中,“1”表示LED打开,“0”表示LED关闭 。
我在数组中使用了八个元素来简化它,但是你可以把它加到任何你喜欢的数字上 。只需更改数组定义并遍历数组元素的for-next循环中的数字 。
我将模式切换之间的延迟设置为200毫秒,但您可以更改它 。更好的是,尝试在每个案例评估中使用延迟作为一个变量,这样您就可以使模式以不同的速度运行 。
代码像预期的那样工作 , 而且看起来很有趣 。
您可以通过级联74HC595来添加更多led来改进代码 。您也可以通过在一个模拟输入端添加一个电位计 , 并使用它来设置延迟时间,从而使速度可变 。74HC595上的使能输入可以由PWM驱动,以改变LED亮度,您可以用第二个电位计控制它 。
您甚至可以添加一些MOSFET来驱动更大的led , 并制作自己的特效!
一个简单的演示,潜力无限 。
结论移位寄存器可能是基本的构建模块,如果您需要向项目添加额外的输入或输出 , 它们会非常有用 。它们既便宜又容易使用 。
【用移位寄存器来扩展 8位移位寄存器】

推荐阅读