1、 1 课程设计报告课程设计报告 一、设计原理与技术方法: (一)电路工作原理分析与原理图 1、工作原理 (1)交通灯控制模块 由 0-62s(共 63 秒)的计数器以及红绿灯控制器组成。通过 63s 计数器控制红 绿灯的亮灭时间。如下图,为交通灯亮灭时间设计: 图 1-1 交通灯状态转换示意图 南北方向 绿灯 绿灯黄灯 红灯 27 秒 3 秒 3 秒 33 秒 东西方向 红灯 绿灯 绿灯黄 33 秒 27 秒 3 秒 3 秒 表 1-1 交通灯状态转换示意图 (2)倒计时控制模块 由 33 秒倒计时计数器和转换器以及驱动七段数码管显示器组成。 (3)紧急状态 当 hold =0时,交通正常工作
2、。绿灯亮 27 秒后闪烁 3 秒,黄灯亮 3 秒,然后 转红灯,红灯亮 33 秒后转绿灯,依次循环。 当 hold = 1时,为紧急状态,南北、东西向均红灯亮。且 33 秒倒计时停止, 并保留计数值。 当 hold=1跳变到 hold=0时,数码管继续计时,恢复正常工作状态。 南北方向 东西方向 红灯 红灯 黄灯绿灯 绿灯 黄灯 59s 32s 29s 32s 62s 62s 26s 56s 绿 灯 闪 烁 绿 灯 闪 烁 2 图 1-2 系统框图 (二)元器件选择 本系统采用 EDA 实现系统实验箱来设计交通灯控制器,模拟实现了红、绿灯指挥 交通的功能。采用 CPLD(EPF10K10LC8
3、4-4)芯片开发,用 VHDL 语言编程设计。 (三)电路调试方法与结果说明 本系统采用波形仿真与实验箱编程下载结合的调试方法。 结果为红、绿、黄三色信号灯依次按规定时间亮灭,绿灯亮 27 秒后闪烁 3 秒,黄 灯亮 3 秒,然后转红灯,红灯亮 33 秒后转绿灯。同时用数码管指示当前状态(红、黄、 绿灯)剩余时间(33s 倒计时)。另有一个紧急状态,当紧急状态出现时,两个方向都禁 止通行,倒计时计数值保留,指示红灯。紧急状态解除后,继续计时并指示时间。 (四)软件技术方法 采用 max+plusII 软件,使用 VHDL 语言编程底层文件,顶层文件用原理图设计完 成整体交通灯设计。 (五)软件
4、设计说明书及流程图 本系统由 63 秒计数器(counter) 、红绿灯控制器(controller) 、33 秒倒计时计 数器(num33) 、数制转换(change) 、驱动 sel0,sel1(count4) 、四选一(count4_1) 、 双管显示转换(mux2B1) 、七段数码管显示转换(decoder)共八个模块组成。 63 秒计数器(counter)是 63 进制的计数器。 红绿灯控制器(controller)通过 63 秒计数器,按规定通行时间控制红绿灯的 亮灭,当绿灯亮 27 秒后使其闪烁 3 秒,将绿灯的控制信号等于 CLK 的信号,即可实现。 33 秒倒计时计数器(nu
5、m33)是 33 进制的计数器,由 32 开始递减计数,等于零后 再跳转从 32 开始递减计数。 数制转换(change)是将计数器产生的数字转换成二进制数。驱动 sel0,sel1 (count4)为 4 进制计数器,产生 00,01,10,11 四个信号驱动 sel。 四选一(count4_1)为 4 进制计数器,其作用为双管显示转换器提供选中 sel 的 四个信号中之一的信号。 双管显示转换(mux2B1)将 8 位二进制数分开,低四位在显示转换后一个数码管 显示,高四位在显示转换后在另一个数码管显示,例如当 sel=00 时 33 秒计数器产生 的数的二进制数的低四位在第一个数码管显示
6、,高四位将在另一个数码管显示。 七段数码管显示转换(decoder)驱动七段数码管。 63 秒计数器 33秒倒计时计数 器 红绿灯控制器 转换译码驱动 显示七段数码 Clock Hold Reset 七段数码管显示 Led 红绿灯 3 下图为系统流程图: 图 5-1 交通灯系统流程图 (六)软件源程序代码 1、63 秒计数器 library ieee; use ieee.std_logic_1164.all; entity counter is port(clk:in std_logic; reset:in std_logic; hold:in std_logic; countnum:buffer integer range 0 to 62); end counter; architecture behavior of counter is begin process(reset,clk) begin if reset=1 then countnum=0; Y N Hold=0 ? ? 63s 计数器计数 交通灯控制器控制红绿 黄灯亮灭 33 倒计时计数