EDA课程设计——交通灯.docx

上传人:小飞机 文档编号:2036958 上传时间:2023-01-02 格式:DOCX 页数:7 大小:405.21KB
返回 下载 相关 举报
EDA课程设计——交通灯.docx_第1页
第1页 / 共7页
EDA课程设计——交通灯.docx_第2页
第2页 / 共7页
EDA课程设计——交通灯.docx_第3页
第3页 / 共7页
EDA课程设计——交通灯.docx_第4页
第4页 / 共7页
EDA课程设计——交通灯.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《EDA课程设计——交通灯.docx》由会员分享,可在线阅读,更多相关《EDA课程设计——交通灯.docx(7页珍藏版)》请在三一办公上搜索。

1、 实验报告 设计题目:交通信号控制器 班 级: 学 号: 姓 名: 指导老师: 设计时间:2011年4月交通信号控制器的VHDL设计一、设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求:(1) 交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2) 交通灯红变绿是直接进行的,没有间隔时间;(3) 主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4) 在任意时间,显示每个状态到该状态结束所需的时间。 支干道 主干道图1 路口交通管理示意图ABCD主干道交通灯绿(40秒)黄(4秒)红(20秒)红(4秒)支干道交通灯红红绿

2、黄表1 交通信号灯的4种状态 二、设计目的: 设计交通灯控制系统主要是为了实现城市十字交叉路口红绿灯的控制。通过对QuartusII软件使用方法与技巧的学习,掌握VHDL程序设计的实现,熟悉可编程逻辑器件的使用。同时加深对交通灯控制系统的了解与应用。三、 设计方案:定时时间到检测电路计时器预置数产生电路状态发生器(两位二进制计数器) 时间显示数据输出红黄绿灯输出控制电路(RYG) 红黄绿灯信号输出1秒时钟脉冲信号发生器 图2 交通信号灯控制器的原理框图秒脉冲信号发生器(进程P1和P2)状态寄存器(进程P6)计数器(进程P3、P4和P5)CLK 时间显示数据输出 次态发生器信号灯输出信号(进程P

3、7) 信号灯输出 图3 交通信号灯控制器程序原理框图四、程序清单和说明:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TRAFFIC IS PORT (CLK: IN STD_LOGIC; LED7S1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-数码管高位显示数字 LED7S2: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-数码管低位显示数字 LIGHT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0);-各交通

4、灯显示END ENTITY;ARCHITECTURE ONE OF TRAFFIC ISTYPE STATES IS( STA, STB, STC, STE);-定义状态变量SIGNAL ST0:STATES;SIGNAL ST1:STATES;SIGNAL FULL: STD_LOGIC;SIGNAL FOUT: STD_LOGIC;时钟输出信号(秒频)SIGNAL TIME: STD_LOGIC_VECTOR(6 DOWNTO 0);时间计数值SIGNAL TIME_LEFT: STD_LOGIC_VECTOR(6 DOWNTO 0);显示时间剩余值SIGNAL T_HIGH:STD_LO

5、GIC_VECTOR(1 DOWNTO 0);高位显示SIGNAL T_LOW:STD_LOGIC_VECTOR(6 DOWNTO 0);低位显示BEGIN PROCESS(CLK) -秒脉冲产生进程(分频作用) VARIABLE CNT8: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK=1 THEN IF CNT8=11111111 THEN CNT8:=00000000; -当CNT8计数计满时,给计数器CNT8预置数 FULL=1; -同时使溢出标志信号FULL输出为高电平 ELSE CNT8:=CNT8+1; -否则继续

6、作加1计数 FULL=0; -且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS; PROCESS(FULL)VARIABLE CNT2: STD_LOGIC;BEGIN IF FULLEVENT AND FULL=1THEN CNT2:=NOT CNT2; IF CNT2=1 THEN FOUT=1; ELSE FOUT=0;END IF;END IF;END PROCESS;-FOUT输出是时钟信号 PROCESS(FOUT) -计数模块。此模块定义一个变量time,当其值不超过63时实现循环加1功能,超过63则time值归零。 IF FOUTEVE

7、NT AND FOUT=1THEN IF TIME67 THEN TIME=TIME+1; ELSE TIMEIF TIME=39 THEN ST1=STB; ELSE ST1=STA; END IF; LIGHT=001100;TIME_LEFTIF TIME=43 THEN ST1=STC; ELSE ST1=STB; END IF; LIGHT=010100;TIME_LEFTIF TIME=63 THEN ST1=STE; ELSE ST1=STC; END IF; LIGHT=100010;TIME_LEFTIF TIME=67 THEN ST1=STA; ELSE ST1=STE;

8、 END IF; LIGHT=100001;TIME_LEFT=67-TIME; END CASE; IF FOUTEVENT AND FOUT=1THEN ST0=30 THEN T_HIGH=11;T_LOW=20 THEN T_HIGH=10;T_LOW=10 THEN T_HIGH=01;T_LOW=TIME_LEFT-10; ELSE T_HIGH=00; T_LOWLED7S1LED7S1LED7S1LED7S1NULL; END CASE; CASE T_LOW IS WHEN0000000=LED7S2LED7S2LED7S2LED7S2LED7S2LED7S2LED7S2LE

9、D7S2LED7S2LED7S2NULL; END CASE; END PROCESS;END ARCHITECTURE; 为实现硬件测试,实验箱应选模式6状态,但此时可用的四个数码管中有两个数码管端口与用到的LED灯端口相同,理论上互不影响,但实际测试时却不能同时定义。由于时间紧张没有过多调试,故在实际测试时对程序进行了修改,将原本需要四个数码管分别显示主干道和支干道信号灯状态改为两个数码管显示A、B、C、D四个不同状态的剩余时间五、 仿真结果:六、 引脚设置: 根据电路模式6进行引脚选择七、硬件测试及结果:1.将引脚锁定后,选择电路模式六。2.对线路的连接进行检查,确保联通正确。3.将程序

10、下载到实验箱中,自动运行,观察实验结果与程序所设计的过程是否相符,达到实验预期要求。八、实验心得体会:经过本次的课程设计,不仅让我进一步巩固了所学电子设计自动化的理论知识,而且也对QuartusII软件的基本操作有了更熟练的掌握。确认选题之后,首先查阅相关的资料,理解原理并确定设计的基本思路方向。然后仔细分析进行VHDL程序设计,采用分模块实现功能。在编写程序的刚开始,问题百出,才发现自己对语法结构的掌握不够牢固,重新查找书本资料以及与同学互相交流探讨才逐一解决。其中印象最深刻的便是电路模式的选择,不同的模式,需要的位长不一样,而且有的需要译码,有的并不需要。本次设计由于选择了模式了需要在程序

11、中包含译码模块,而且由于引脚的重合,只能使主干道和支干道共用数码管,而且使输出红灯倒计时结束后接着来一个短时间(4S)的红灯(这是由于另一干道的黄灯显示导致的),这在实际中是不可取的这一整个过程也加深了自己对交通信号灯控制器原理的了解,同时也更熟悉课程设计的一般流程,为以后其他课题的设计积累了一定的经验。程序编程完成后,在软件中进行仿真,观察结果。由于实验箱的时钟不是很对换了一个实验箱,但是仍然在256HZ以下的频率不走。只有选择高频率,同时调节分频使程序内部时钟仍然保持为约等于1HZ在此次课程设计中我明白了:每一个环节都需要细致,各个过程相互关联并影响。在程序下载后发现出现乱码,找了半天最后才发现是自己把七段数码管的位置顺序记错了,幸好程序内部的译码是摘录的书上,更改时只需要把显示管的引脚的顺序反过来。完整编写程序与思考排错、动手调试,都是一种实际的锻炼,切实的提高,以后要多培养自己的钻研精神,多实际动手,全面提升学习技术和解决问题的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号