- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VHDL的交通灯设计与实现精要
华中科技大学
基于xilinx FPGA的VHDL交通灯控制器的设计
--基于Spartan3E开发板
专业: 电子信息工程
任务设计要求
由系统设计原理图,我以清楚将系统模块:分频模块,时间设置模块,状态转换模块,时间计算模块,,模块。
分频模块
时间模块
main_gh,main_gl,main_lh,main_ll,branch_gh,branch_gl,branch_lh,branch_ll(下划线后面的字母分别取green,left,high,low首字母).需要置数时首先选择对主干道还是支干道时间置数设置一,当高时设置支干道时间,为低时设置主干道时间。,通过s_set_button,l_set_button时间具体方法参见代码。为了方便,引入一个add_or_decent,低电平时button可以增计数,高电平时按下可以减计数。
状态转换模块
state、s_or_l为00、01、10、11来代表。每当一个状态的计数器为00时,state、s_or_l发生改变,以实现状态间的转换,进而控制交通灯的变化。
4)时间计算模块
了左转红灯时间不仅仅是另一干道的直行时间,而是直行时间和左转时间之和5)LCD显示模块
模块
branch_green,branch_red的不同值,来控制主干道,支干道红绿左转灯的亮灭。
其中 1表示亮,0表示灭。如表3-1 所示。
由上表可得到:
main_green = NOT(state) AND NOT(s_or_l) AND (NOT((flash AND clk)));
main_left = NOT(state) AND s_or_l AND (NOT((flash AND clk)));
main_red = state;
branch_green = state AND NOT(s_or_l) AND (NOT((flash AND clk)));
branch_left = state AND s_or_l AND (NOT((flash AND clk)));
branch_red = NOT(state);
2.输入输出设计
设计,具体输入输出如下:
:
开关:main_or_branch
EN: 使能信号
run_or_set: 设置运行模式还是时间设置模式
add_or_decent: 置数模式:增加或者减少
按键:s_set_button
l_set_button: 左转时间设置按钮
时钟:clk
输出:
LED灯:main_green,main_red,main_left
branch_left,branch_green,branch_red
状态转换图
S1状态:主干道左转、支干道红灯
S2状态:支干道绿灯、主干道红灯
S3状态:支干道左转、主干道红灯
三.各模块代码以及仿真波形
分频模块代码
因为1HZ波形太长,不易仿真,故仿真波形采用100HZ的
输入clk :50MHZ
输出clk1:100HZ
时间设置模块部分代码
以上是直行时间设置代码。左转设置类似,在此不再复制
仿真 设置
输入 :clk
main_or_branch 设置为0
add_or_decent 设置为0
s_set_button 设置为周期为1周期的信号
l_set_button 设置为低电平
波形如下
时间计算模块代码
波形仿真
输入输出与预期相符合。
状态转换模块
波形仿真
分别给主干道,支干道个颜色灯持续时间赋值,再给定,当前亮灯的剩余时间,然后又进行仿真,结果符合预期
LED模块代码
波形仿真
分别给予输入不同周期的高低点评,相互叠加的结果符合预期。
LCD模块代码
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity LCD is
port( clk : in STD_LOGIC;
rst_n : in STD_LOGIC;
counter_play1h, counter_play1l : in STD_LOGIC_VECTOR(3 downto 0); counter_play2h, counter_play2l : in STD_LOGIC_VECTOR(3 downto 0);
--de
您可能关注的文档
最近下载
- 普通高中音乐课程标准(2017年版2020年修订).docx
- T_JSFPSA -001-2022_全麦面包_标准.pdf VIP
- GB50702-2011砌体结构加固设计规范.docx VIP
- 《特高压电力管廊盾构隧道结构施工及运营期验收评估标准》.pdf VIP
- 15、推理综合 举一反三 2024—2025学年度 小学二年级奥数 教学课件PPT.pptx VIP
- 项目式学习在小学英语教学中的实践教学研究课题报告.docx
- matlab课件(西工大-孙蓬).pptx
- 香港上市(IPO)全流程介绍(最完整版).pdf VIP
- GBT50319-2013建设工程监理规范表格-全部[整理].doc VIP
- 09S302雨水斗选用及安装图集(清晰).pdf VIP
文档评论(0)