桂林电子科技大学EDA实训——交通灯控制电路的设计_第1页
桂林电子科技大学EDA实训——交通灯控制电路的设计_第2页
桂林电子科技大学EDA实训——交通灯控制电路的设计_第3页
桂林电子科技大学EDA实训——交通灯控制电路的设计_第4页
桂林电子科技大学EDA实训——交通灯控制电路的设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 桂林电子科技大学信息科技学院EDA技术及应用实训报告学 号 1252310106 姓 名 陈 力 指导教师:李德明2014 年 4 月 29 日交通灯控制电路的设计1 系统设计1.1 设计要求1.1.1 设计任务 用EDA实训仪上的4只八段数码管分别显示道路东西和南北通行和禁止的倒计时时间。1.1.2 性能指标要求 能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒。交通灯用红、绿、黄三种发光二极管(LED)显示控制的结果。红、绿、黄灯显示的次序应符合实际交通道路控制的要求。1.2 设计思路及设计框图1.2.1设计思路fpq是分频器,将EDA实训仪主板提

2、供的20MHz的主频经20000000分频后,得到电路所需的1Hz(1秒)时钟。Rgwork和ywork是减法计数器,产生道路东西和南北通行和禁止的倒计时时间。Counter是控制电路,控制整个系统的工作。控制器接收倒计时的结果,当倒计时归0时,改变电路的控制模式,输出倒计时的初始时间和交通灯亮灭控制信号。6输入或非门和2输入与非门组成了简易密码锁的功能(通过拨码开关实现)。1.2.2总体设计框图 分频器交通灯控制电路 数码管及LED灯2 各个模块程序的设计2.1分频器模块的设计分频器模块截图:分频器模块程序设计:module fpq(clk,newclk);input clk;output

3、reg newclk;reg24:0 counter;always (posedge clk )begincounter=counter+1;if(counter>=20000000)counter=0;if(counter<=10000000)newclk='b1;else if(counter>10000000)newclk='b0;endendmodule2.2红绿灯模块设计红绿灯模块截图:红绿灯模块程序设计:module rgwork(clk,clrn,ydbj,gzfs,LED,t1,t2,q1,q2);input clk,clrn;input 7:

4、0 q1,q2;output reg ydbj;output reg1:0 gzfs;output reg7:0 LED;output reg7:0 t1,t2;reg7:0 rtime,gtime,ytime,rtime1='h20,gtime1='h16;reg1:0 z;initial begin rtime='h20;gtime='h16;ytime='h03;ydbj=0;z=0;endalways (posedge clk or negedge clrn)begin if(clrn) ydbj=1; else begin if(q1=0|q2

5、=0) ydbj=1; else begin ydbj=0; rtime=rtime1;gtime=gtime1; end endend always (posedge ydbj or negedge clrn) begin if(clrn) begin t1=rtime;t2=gtime;LED='b01100110;gzfs=2;z=0; end else begin z=z+1; case (z) 0:begin t1=rtime;t2=gtime;LED='b01100110;gzfs=2;end 1:begin t1=ytime;t2=ytime;LED='b

6、00100010;gzfs=0;end 2:begin t1=gtime;t2=rtime;LED='b10011001;gzfs=2;end 3:begin t1=ytime;t2=ytime;LED='b10001000;gzfs=1;end default:begin t1=rtime;t2=gtime;LED='b01100110;gzfs=2;end endcase endendendmodule2.3黄灯模块设计黄灯模块截图:黄灯模块程序设计:module ywork(gzfs,clk,clrn,q1,q2,LED_h);input7:0 q1,q2;inp

7、ut clk,clrn;input 1:0 gzfs;output reg3:0 LED_h;always (posedge clk or negedge clrn)begin if(clrn) LED_h='b0000;elsebeginif(gzfs=0)begin if(q1='h03&&q2='h03) LED_h='b1010;if(q1='h02&&q2='h02) LED_h='b0000;if(q1='h01&&q2='h01) LED_h='b101

8、0;if(q1='h00&&q2='h00) LED_h='b0000;endif(gzfs=1)begin if(q1='h03&&q2='h03) LED_h='b0101;if(q1='h02&&q2='h02) LED_h='b0000;if(q1='h01&&q2='h01) LED_h='b0101;if(q1='h00&&q2='h00) LED_h='b0000;endendend

9、 endmodule 2.4控制模块的设计控制模块截图:控制模块程序设计:module countor(ts,en,clk,ybj,t1,t2,q1,q2);input clk,ybj,en,ts;input7:0 t1,t2;output reg7:0 q1,q2;always (posedge clkts or posedge ybj or posedge en)begin if(en) begin q1=q1;q2=q2; end else beginif(ybj) begin q1=t1;q2=t2; endelse beginif(q1=0) q1='h99;else beg

10、in q1=q1-1;endif(q13:0>='ha) q13:0=9;if(q2=0) q2='h99;else begin q2=q2-1;endif(q23:0>='ha) q23:0=9; end endendendmodule3 调试过程用Quartus 软件对程序编译成功后下载到EDA试验箱。LED开始亮,四个数码管显示3s倒计时,即黄灯开始进入闪烁状态,然后开始实现东西方绿灯,南北方红灯状态。绿灯倒计时结束以后黄灯再次闪烁,随后进入南北方绿灯,东西方红灯状态。并不断自动进行转换。当S15拨到上方时,实现交通灯暂停(使能端作用)。当K8按键按下

11、时,交通灯自动恢复到初始化状态。当将S3,S2,S1,S0拨为1010并按下K7按键能实现减计数调时。4 功能测试4.1 测试仪器与设备 EDA实训箱、 计算机一台、Quartus 软件4.2 性能指标测试 基本实现要求,初始化南北方向为红灯,东西方向为绿灯,倒计时20s,东西方向开始黄灯闪烁3秒,同时南北方向还为红灯,3秒后东西方向变为红灯,南北方向变为绿灯。倒计时的同时数码管交替显示不同亮灯的倒计时时间。实现4位数码管显示。拨码开关S15实现暂停功能,S3到S0四个拨码开关实现简易密码锁功能(当拨“1010”时,可以实现调时功能,密码错误时则无法实现调时功能)。两个按键K8,K7分别实现复

12、位与调时功能(调时功能在密码正确情况下实现)。5 实训心得体会这次实验使我更进一步地熟悉了VHDL硬件描述语言的设计思想,同时通过对程序的调试也使自己对VHDL语言的语法,结构和基本语句有了更深刻的了解。在设计较复杂数字电路系统时最好采用分层设计的方法,分为各个功能模块,逐个进行仿真,最后通过顶层文件调用各个底层文件完成设计,程序也便于修改如程序要增加一些功能也只需加入相应的模块即可。在设计的过程中还应该多联系下实际情况,要了解实际情况下交通信号灯的工作情况,才能更好的完成此次的课程设计。在今后的工作和学习中,我们不能仅仅把目光停留在课本上,要多理论联系实际。有的时候,理论上是正确的东西放到现

13、实中去,可能由于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成要求。这次的课程设计使我巩固了以前学习到的知识,还使我掌握了以前没有掌握的知识,同时锻炼了自己的能力。6 参考文献【1】江国强.新编数字逻辑电路 北京邮电大学出版社 2006年12月【2】江国强. EDA技术与应用 电子工业出版社 2010年4月【3】王金明、冷自强.EDA技术与Verilog设计科学出版社 2008年8月【4】谢自美.电子线路设计·实验·测试(第二版)武汉华中科技大学出版社2000【5】谭会生、张昌凡 EDA技术与应用-Verilog HDL版西安电子科技大学出版社附 录

14、附录1:仿真波形图(部分模块)分频器模块波形仿真:红绿灯模块波形仿真:  黄灯模块波形仿真: 控制模块波形仿真:附录2:程序清单分频器模块程序设计:module fpq(clk,newclk);input clk;output reg newclk;reg24:0 counter;always (posedge clk )begincounter=counter+1;if(counter>=20000000)counter=0;if(counter<=10000000)newclk='b1;else if(counter>10000000)newclk=&#

15、39;b0;endendmodule红绿灯模块程序设计:module rgwork(clk,clrn,ydbj,gzfs,LED,t1,t2,q1,q2);input clk,clrn;input 7:0 q1,q2;output reg ydbj;output reg1:0 gzfs;output reg7:0 LED;output reg7:0 t1,t2;reg7:0 rtime,gtime,ytime,rtime1='h20,gtime1='h16;reg1:0 z;initial begin rtime='h20;gtime='h16;ytime=&#

16、39;h03;ydbj=0;z=0;endalways (posedge clk or negedge clrn)begin if(clrn) ydbj=1; else begin if(q1=0|q2=0) ydbj=1; else begin ydbj=0; rtime=rtime1;gtime=gtime1; end endend always (posedge ydbj or negedge clrn) begin if(clrn) begin t1=rtime;t2=gtime;LED='b01100110;gzfs=2;z=0; end else begin z=z+1;

17、case (z) 0:begin t1=rtime;t2=gtime;LED='b01100110;gzfs=2;end 1:begin t1=ytime;t2=ytime;LED='b00100010;gzfs=0;end 2:begin t1=gtime;t2=rtime;LED='b10011001;gzfs=2;end 3:begin t1=ytime;t2=ytime;LED='b10001000;gzfs=1;end default:begin t1=rtime;t2=gtime;LED='b01100110;gzfs=2;end endca

18、se endendendmodule黄灯模块程序设计:module ywork(gzfs,clk,clrn,q1,q2,LED_h);input7:0 q1,q2;input clk,clrn;input 1:0 gzfs;output reg3:0 LED_h;always (posedge clk or negedge clrn)begin if(clrn) LED_h='b0000;elsebeginif(gzfs=0)begin if(q1='h03&&q2='h03) LED_h='b1010;if(q1='h02&&q2='h02) LED_h='b0000;if(q1='h01&&q2='h01) LED_h='b1010;if(q1='h00&&q2='h00) LED_h='b0000;endif(gzfs=1)begin if(q1='h03&&q2=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论