led计数电路实验报告_至简设计系列_状态机实现LED交通灯2

--作者:肖肖肖

本文为明德扬原创及录用文章,转载请注明出处!

1.1 总体设计

1.1.1 概述

发光二极管简称为LED,是一种常用的发光器件,通过电子与空穴复合释放能量发光,可以高效的将电能转化为光能,在现代社会具有广泛的用途,如照明、平板显示、医疗器件等。可通过高低电平的变化来控制LED灯的明灭状态,当输出信号为低电平时,LED灯亮,反之,当输出信号为高电平时,LED灯灭。

1.1.2 设计目标

内容:开发板上有红黄绿 LED 灯各四个,分别放在东西南北方向。参考交通灯的情况,即每个方向都是绿灯亮 10 秒,然后黄灯亮 5 秒,然后红灯亮 15 秒。绿灯按照东西和南北的顺序依次亮。

具体思路:

1. 首先分东西方向和南北方向来设计电路。设计两个不同的状态机来指示不同的状态。东西方向的灯状态相同,南北方向的灯状态相同。

2. 4 个方向的灯依次为红绿黄的依次循环时间为 15+10+5=30 秒,所以可以设计一个计数器,计时 30 秒钟,表示一个循环。计数器可以分两个写,一个计时 1 秒,一个计时 30秒。

3. 然后再根据计数器的计数值的不同,决定状态机的不同状态。

4. 首先设计东西方向的状态机,复位的时候,绿灯亮,计数器计到 10 秒,黄灯亮,计到15 秒,红灯亮,计满 30 秒,又是绿灯亮......依次循环。

5. 接着设计南北方向的状态机,复位的时候,红灯亮,计数器计到 15 秒,绿灯亮,计到20 秒,黄灯亮,计满 30 秒,又是红灯亮......依次循环。

1.1.3 信号列表

3fc9db7e6da959c89081043445a68cbf.png

1.1.1 设计思路

根据题目功能要求,东西南北四个方向LED灯按照“红灯-绿灯-黄灯”的顺序依次循环时间为 15+10+5=30 秒,所以可以设计一个计数器,计时 30 秒钟表示一个循环。该计数器可以分两个写,一个计时 1 秒,一个计时 30秒。

因为在数字电路中的延时都是通过计数器实现的,计数器*时钟周期=延时时间。本模块中,由于输入时钟是50MHz,时钟周期为20ns,功能要求每1秒变化一次。我们通过counter来表示延时,当其值为1s/20ns=5000_0000时,表示1秒时间到。

两个计数器的架构图:

305081c761060a0c9dd54c3e21a0da5e.png

时钟计数器counter:该计数器用于计算1s的时钟个数,加一条件为1,表示一直计数;数到5000_0000下,则表示数到1秒的时间了。

秒计数器:该计数器用于计算1个周期内三色LED按顺序各点亮1次的时间,1周期的时间为30秒,加一条件为时钟计数器的结束条件,表示时钟计数器每数完1s,秒计数器计数加一;数到30下,则表示数到30秒的时间了。

下面是两个计数器的代码:

1. 

按照题目要求:分东西方向和南北方向来设计电路,因此设计两个不同的状态机来指示不同的状态——同一时间内,东西方向的灯状态相同,南北方向的灯状态相同。

两个状态机的架构:

8374388dbccf33bfa3be61049808cb35.png

daa23d25855029a23a80a83bbf6f51c3.png

东西方向的状态机:该状态机用于设定东西方向LED的颜色跳转状态。

1) 上电后,就跳转到绿灯亮状态,绿灯亮;

2) 10 秒后,黄灯亮,跳转条件为秒计数器计数10下,即add_second && second==10-1,则表示数到10秒了;

3) 5 秒后,红灯亮,跳转条件为秒计数器计数15下,即add_second && second==15-1,则表示数到15秒了;

4) 15 秒后,又是绿灯亮,跳转条件为秒计数器计满30下,即add_second && second==30-1,则表示数到30秒了......依次循环。

南北方向的状态机:该状态机用于设定南北方向LED的颜色跳转状态。

1) 上电后,就跳转到红灯亮状态,红灯亮;

2) 15 秒后,绿灯亮,跳转条件为秒计数器计数15下,即add_second && second==15-1,则表示数到15秒了;

3) 10 秒后,黄灯亮,跳转条件为秒计数器计数25下,即add_second && second==25-1,则表示数到25秒了;

4) 5 秒后,又是红灯亮,跳转条件为秒计数器计满30下,即add_second && second==30-1,则表示数到30秒了......依次循环。

下面是东西、南北方向的两个状态机代码:

1. 

1.2 效果和总结

Ø 点拨板

1. 复位,东西绿灯亮,南北红灯亮

b55ccb7c725aa9b1b259824efcc06900.png

2. 10秒后,东西黄灯亮,南北还是红灯亮

c49542f800b4f23d64ca7d4e8d6936bd.png

3. 15秒后,东西红灯亮,南北绿灯亮

a7928205f73b8ee2a10fd3aed0e0f37f.png

4. 20秒后。东西还是红灯亮,南北黄灯亮

307472b574d6941ed35e904ad6c53586.png

5. 30秒后,东西绿灯亮,南北红灯亮

1ad774c73267b2dddc3b588e380ea980.png

Ø Mp801

1. 复位,东西绿灯亮,南北红灯亮

f053d1a1adbeb7eb1b9cb8df24c50bcf.png

2. 10秒后,东西黄灯亮,南北还是红灯亮

5679dc88c18094041d6b6c2d93ea1887.png

3. 15秒后,东西红灯亮,南北绿灯亮

bed7d8482d1f99b3475ac89636938d38.png

4. 20秒后。东西还是红灯亮,南北黄灯亮

e1a7d9212afbdbc6ecf6e73d73ec549b.png

5. 30秒后,东西绿灯亮,南北红灯亮

f053d1a1adbeb7eb1b9cb8df24c50bcf.png

Ø 实验箱

1. 复位,东西绿灯亮,南北红灯亮

6303f01c00b1643378de77260bf2b4e0.png

2. 10秒后,东西黄灯亮,南北还是红灯亮

7a3d39ae4b045975e03340dc750d84ad.png

3. 15秒后,东西红灯亮,南北绿灯亮

ed1673ce96e9b38da343486d8249c6d2.png

4. 20秒后。东西还是红灯亮,南北黄灯亮

da3d952f4e907efd209189beb6312c28.png

5. 30秒后,东西绿灯亮,南北红灯亮

6303f01c00b1643378de77260bf2b4e0.png

观看上面的现象,可以发现,各项功能正常:开发板上有红黄绿三色 LED 灯各四个,在东西南北方向各有一组。参考交通灯的情况,即每个方向都是绿灯亮 10 秒,然后黄灯亮 5 秒,然后红灯亮 15 秒。绿灯按照东西和南北的顺序依次亮。成功完成设计目标。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值