文档介绍:2011—2012学年第二学期
《数字电子技术课程设计》任务书
(适用专业:电气10级)
题目交通灯控制电路设计
姓名郑长明
学号 10053228
专业班级电气10-2班
开课系室电工电子学教学中心
设计日期 2012年7月5 日~9日
目录
1、设计任务与要求 2
2、系统设计总体方案
3、各子模块设计
4、仿真测试结果
5、实习总结与讨论
一、设计任务与要求:
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。
要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各四个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。
在实验中使用4个七段码管中的任意一个或两个数码管显示时间。东西路和南北路的通车时间均设定为9s。数码管的时间总是显示为9、8、7……2、1、0、9、8……。在显示时间小于等于3秒的时候,通车方向的黄灯闪烁。在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。
扩展要求:将0-9s扩展为0-30s。
二、具体要求:
本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意一个或两个来显示。系统时钟选择时钟模块的50MHz时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次,在显示时间小于等于3秒的时候,通车方向的黄灯以2Hz的频率闪烁。在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。显示方式:1秒显示一个汉字或者一个数字(汉字和数字均静止不动,即不循环),然后全暗1秒,然后再显示一个汉字或者一个数字,以此类推。
实验箱中用到的数字时钟模块、按键开关、数码管、点阵与FPGA的接口电路,以及数字时钟源、按键开关、数码管、点阵与FPGA的管脚连接在以前的实验中都做了详细说明,这里不再赘述。交通灯模块原理与LED灯模块的电路原理一致,当有高电平输入时LED灯就会被点亮,反之不亮。只是LED发出的光有颜色之分。
三、输入输出资源说明:
1、输入信号:按键K1(按下时K1=0,松开时K1=1)。
2、外部输入脉冲信号时钟源CP(50MHz),经适当分频后供计数器使用。
3、输出1组显示译码信号(每组7个输出端),接到外部的两个七段数码管上,显示倒计时;(扩展要求)或输出2组显示译码信号(每组7个输出端),分别接到外部的两个七段数码管M1、M2上,M1和M2分别显示30秒倒计时的十位和个位。
4、输出6个高低电平信号,分别接到外部的6个指示纵向、横向的LED灯。(输出高电平时,对应的LED灯亮)
其具体框图如下:
1Hz
纵向指示灯LED1
控
制
器
计数器(10s倒计时;通车时间倒计时)
七段LED数码管显示(1个)
输出显示译码
50MHz
纵向指示灯LED3
横停指示灯LED6
纵向指示灯LED2
S1
横向指示灯LED5
横向指示灯LED4
CLK
3-10s内显示姓名或者学号
图1 交通灯控制电路结构框图
根据如上说明,本设计的主要任务和设计要求是:
1、按照现代数字系统的Top-Down模块化设计方法,提出交通灯控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码、点阵显示等模块化子系统的设计方案。
2、在QuartusⅡ的EDA设计环境中,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于Verilog语言实现的子模块(包括控制器电路、计数器电路、输出译码电路、点阵显示电路)的逻辑功能仿真。最后对顶层设计进行功能仿真。
3、在2步的基础上,用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。
二、系统设计总体方案
根据设计要求及原理,我设计的交通灯控制电路包括时钟分频、十进制减法计