大家好,本篇文章的内容是一个交通灯的制作教程。交通灯我们随处可见,工作原理也并不复杂,我们可以通过一个51单片机来制作一个交通灯的模型。
首先让我们看一看我们需要实现哪些功能,首先我们需要有红、黄、绿三种颜色的指示灯,并且按指定的时间来进行指示灯的切换,间隔的时间我们可以随时进行调整。然后我们还可以给我们的交通灯增加夜间模式,紧急模式等特殊功能。
了解了我们需要实现的功能后我们就可以开始搭建我们的硬件电路了。在这里我使用Proteus仿真来搭建我们的电路。
硬件电路
首先我们的主控芯片就选择89C51,
image
然后我们还需要三个指示灯,在这里我就用88的LED点阵来充当指示灯,这样我们需要一个红灯、一个黄灯以及三个不同方向的绿灯,一共是五个88的LED点阵,那么这五个8*8的LED点阵直接通过单片机IO口来进行驱动,那么一个点阵就需要16个IO口,这样我们的IO口显然是不够用的,所以我们需要通过其他方法连接我们的点阵。
在这里我使用的是74HC595这个芯片,在这里先简单介绍一下这个芯片。
74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7’输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。
通过74HC595我们就可以仅用三个IO口来控制这五个点阵了。
连接图如下:
image image
在有了显示部分我们还需要几个按键来进行功能的切换和时间的增减。按键的连接如下:
image
好了这就是我们需要的电路了,在这里要注意的是我们这里用的是仿真软件,所以我们不用考虑芯片的驱动能力,在实际连接电路的时候我们需要对电路稍作修改。
软件部分
连接电路后我们就可以进行编程了。
首先是一些基础的定义
详情请查看:https://www.icxbk.com/article/detail/1225.html
网友评论