数字电子技术课程设计交通灯控制电路设计.doc_第1页
数字电子技术课程设计交通灯控制电路设计.doc_第2页
数字电子技术课程设计交通灯控制电路设计.doc_第3页
数字电子技术课程设计交通灯控制电路设计.doc_第4页
数字电子技术课程设计交通灯控制电路设计.doc_第5页
免费预览已结束,剩余36页可下载查看

下载本文档

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

文档简介

20132014学年第三学期数字电子技术课程设计任务书(适用专业:电气12级、自动化12级、勘查(卓越)12级) 专业班级 电 气 五 班 姓 名 张 佳 学 号 11053530 开课系室 电工电子学教学中心 设计日期 2014年7月4日8日 目 录一、设计任务及原理二、具体要求三、输入输出资源说明.四、顶层设计结果.五、各子模块设计5.1时钟分频模块 5.2倒计时模块5.3交通灯控制模块5.4点阵显示模块六、仿真测试结果七、实习总结与心得数字电子技术课程设计题目:交通灯控制电路设计一、设计任务及原理:交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂。要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各四个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯闪烁,红灯亮(表示左转弯),再延时一段时间后,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯闪烁,红灯亮(表示左转弯),再延时一段时间后,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。在实验中使用4个七段码管中的任意两个数码管显示时间。东西路和南北路的通车时间均设定为20s(其中,绿灯亮时间为10s,绿灯闪烁时间为5s,黄灯闪烁时间为5s)。数码管的时间总是显示为20、19、18、172、1、0、20、19、18。在显示时间小于等于5秒的时候,通车方向的黄灯闪烁。在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。扩展要求:1、 利用一个开关将0-20s扩展为0-30s(30-10s之间绿灯亮,其他与基本要求相同);2、 增加交警控制模块:用一个开关切换自动模式(上述情况属于自动模式)和人工模式(交警控制模式):用4个开关分别实现东西向通行(东西向绿灯亮,南北向红灯亮,没有时间限制),实现南北向通行(南北向绿灯亮,东西向红灯亮,没有时间限制),实现东西向左转弯(东西向绿灯闪烁,东西向红灯亮,南北向红灯亮,没有时间限制),实现南北向通行(南北向绿灯闪烁,南北向红灯亮,东西向红灯亮,没有时间限制)。二、具体要求:本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。系统时钟选择时钟模块的50MHz时钟,黄灯和绿灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次。在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。显示方式:1秒显示一个汉字或者一个数字(汉字和数字均静止不动,即不循环),然后全暗1秒,然后再显示一个汉字或者一个数字,以此类推。实验箱中用到的数字时钟模块、按键开关、数码管、点阵与FPGA的接口电路,以及数字时钟源、按键开关、数码管、点阵与FPGA的管脚连接在以前的实验中都做了详细说明,这里不再赘述。交通灯模块原理与LED灯模块的电路原理一致,当有高电平输入时LED灯就会被点亮,反之不亮。只是LED发出的光有颜色之分。其与FPGA的管脚连接如下表所示:EDA/SOPC开发平台交通信号灯模块R1纵向D3 R2横向E3Y1纵向D4 Y2横向E4G1纵向D5G2横向F3信号名称EP2C35 IO接脚信号名称EP2C35 IO接脚EDA/SOPC开发平台16*16点阵显示模块C0P19R0L8C1P4R1J4C2R6R2H6C3R7R3H5C4R8R4H4C5J3R5H3C6W18R6G7C7R11R7G6C8U10R8P6C9U9R9P5C10U8R10P3C11R16R11N6C12R15R12N4C13R14R13N3C14J6R14M6C15R4R15M5CLKL1系统时钟输入端口,50MHz7SEG-DISPLAYDS1DS2DS3DS4AN4AB7AH4AD11BN3BC14BH3BG5CM6CA7CG7CG3DN6DD4DH6DB6EP3ED5EH5EC13FP6FE3FL8FD14GP5GE4GJ4GA6HM5HD3HG6HF4EDA/SOPC开发平台12位拨动开关模块K1E15K7A16K2B14K8F13K3F9K9F14K4B15K10A17K5A15K11H7K6F11K12A18核心板模块七段码LEDaT11eV9bT12fV11cT16gU13dJ14dpU14三、输入输出资源说明:1、外部输入脉冲信号时钟源CP(50MHz),经适当分频后供计数器使用。2、输出2组显示译码信号(每组7个输出端),分别接到外部的两个七段数码管M1、M2上,M1和M2分别显示倒计时的十位和个位。3、输出6个高低电平信号,分别接到外部的6个指示纵向、横向的LED灯。(输出高电平时,对应的LED灯亮)其具体框图如下:1Hz纵向指示灯LED1控制器计数器(倒计时;通车时间倒计时)七段LED数码管显示(2个)50MHz纵向指示灯LED3横停指示灯LED6纵向指示灯LED2横向指示灯LED5横向指示灯LED4CLK显示姓名或者学号图1 交通灯控制电路结构框图根据如上说明,本设计的主要任务和设计要求是:1、按照现代数字系统的Top-Down模块化设计方法,提出交通灯控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码、点阵显示等模块化子系统的设计方案。2、在Quartus的EDA设计环境中,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于Verilog语言实现的子模块(包括控制器电路、计数器电路、输出译码电路、点阵显示电路)的逻辑功能仿真。最后对顶层设计进行功能仿真。 3、在2步的基础上,用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。四、顶层设计结果总体设计结果及线路连接:开关功能注解:K1 20s/30s计时转换; K2自动/人工模式转换; K3东西向通行; K4东西向左转弯;K5南北向通行; K6东西向左转弯;顶层设计仿真源文件及波形:K1=0(即20s计时),K2=0(即自动模式下):K1=0(即20s计时),K2=(即手动模式下):a.K3=1(即东西方向通行)b.K4=1(即东西方向左转)c.K5=1(即南北方向通行)d.K6=1(即南北方向左转)五、各子模块设计5.1时钟分频模块(1)50MHz分1Hz:module fenpin1(clk_in,clk_out);output clk_out;input clk_in;integer cnt;initial cnt=0;reg clk_out;always(posedge clk_in)begin if(cnt25000000)beginclk_out=0;cnt=cnt+1;endelse if(cnt50000000)beginclk_out=1;cnt=cnt+1;end else begincnt=0;endendendmodule生成模块:仿真源文件及波形(50Hz分1Hz模拟):(2)50MHz分2Hz分频模块: module fenpin2(clk_in,clk_out);input clk_in;output clk_out;reg clk_out;integer cnt;initial cnt=0;always(posedge clk_in)beginif(cnt12500000)beginclk_out=0;cnt=cnt+1;endelse if(cnt25000000)beginclk_out=1;cnt=cnt+1;endelsebegincnt=0;endendendmodule生成模块:仿真源文件及波形(50Hz分2Hz模拟):(3)50MHz分1000Hz分频模块:module fenpin1k(clk_in,clk_out);output clk_out;input clk_in;integer cnt;initial cnt=0;reg clk_out;always(posedge clk_in)begin if(cnt25000)beginclk_out=0;cnt=cnt+1;endelse if(cnt50000)beginclk_out=1;cnt=cnt+1;endelsebegincnt0)begincnt=cnt-1;endelsebegincnt=NUM1;fangxiang=!fangxiang;end shijian0)begincnt=cnt-1;endelsebegincnt=NUM2;fangxiang=!fangxiang;endshijian5d10) /东西方向通车 begin g1=1;g2=0;r1=0;r2=1;y1=0;y2=0; endelse if(fangxiang=0&shijian5d5) /东西方向左转begin g1=clk2;g2=0;r1=1;r2=1;y1=0;y2=0;end else if(fangxiang=0) /东西方向黄灯闪烁begin g1=0;g2=0;r1=0;r2=1;y2=0;y1=clk2;end else if(fangxiang=1&shijian5d10) /南北方向通车 begin g1=0;g2=1;r1=1;r2=0;y1=0;y2=0; end else if(fangxiang=1&shijian5d5) /南北方向左转begin g2=clk2;g1=0;r1=1;r2=1;y1=0;y2=0; end else if(fangxiang=1) /南北方向黄灯闪烁 begin g1=0;g2=0;r1=1;r2=0;y1=0;y2=clk2;endendelse /手动控制beging1=0;g2=0;r1=0;r2=0;y1=0;y2=0;case(k)4b1000:begin g1=1;g2=0;r1=0;r2=1;y1=0;y2=0;p=0; end /we lv4b0100:begin g1=clk2;g2=0;r1=1;r2=1;y1=0;y2=0; end /we ls4b0010:begin g1=0;g2=1;r1=1;r2=0;y1=0;y2=0;p=1; end /ns lv4b0001:begin g2=clk2;g1=0;r1=1;r2=1;y1=0;y2=0; end /ns lsendcaseendend endmodule生成模块:仿真源文件及波形:(东西方向通行)仿真源文件及波形:(东西方向左转)仿真源文件及波形:(东西方向黄灯闪)仿真源文件及波形:(南北方向通行)仿真源文件及波形:(南北方向左转)仿真源文件及波形:(南北方向黄灯闪)5.4点阵显示模块module xianshi(clk1,clk1k,fangxiang,shijian,r,c,k0,p);input clk1,clk1k,fangxiang,k0,p;input4:0 shijian;output15:0 r,c;reg15:0 r,c;integer cnt1k,cnt1; initialbegin cnt1k=0;cnt1=0; endalways(posedge clk1)beginif(cnt1120)begincnt1=cnt1+1;endelsebegincnt1=0;endend always (posedge clk1k)beginif(cnt1k=5d10)|(k0=1&p=0)begin/张/if(cnt1%2=0)beginif(cnt1/2)%2=0)beginif(cnt1k%16=0)beginc=16b0000000100000000; /hangr=16b0111111111111111; /lieendelse if(cnt1k%16=1)beginc=16b0111100100001000;r=16b1011111111111111; endelse if(cnt1k%16=2)beginc=16b0000100100010000;r=16b1101111111111111; endelse if(cnt1k%16=3)beginc=16b0000100100100000;r=16b1110111111111111;endelse if(cnt1k%16=4)beginc=16b0111100101000000;r=16b1111011111111111;endelse if(cnt1k%16=5)beginc=16b0100000100000000;r=16b1111101111111111;endelse if(cnt1k%16=6)beginc=16b0100011111111100;r=16b1111110111111111; endelse if(cnt1k%16=7)beginc=16b0100000100100000;r=16b1111111011111111; endelse if(cnt1k%16=8)beginc=16b0111100100100000;r=16b1111111101111111;endelse if(cnt1k%16=9)beginc=16b0000100100010000;r=16b1111111110111111;endelse if(cnt1k%16=10)beginc=16b0000100100010000;r=16b1111111111011111;endelse if(cnt1k%16=11)beginc=16b0000100101001000;r=16b1111111111101111;endelse if(cnt1k%16=12)beginc=16b0000100110000100;r=16b1111111111110111;endelse if(cnt1k%16=13)beginc=16b0011000100000000;r=16b1111111111111011;endelse if(cnt1k%16=14)beginc=16b0000000000000000;r=16b1111111111111101;endelse if(cnt1k%16=15)beginc=16b0000000000000000;r=16b1111111111111110;endendelsebegin/佳/if(cnt1k%16=0)beginc=16b0000100001000000; /hangr=16b0111111111111111; /lieendelse if(cnt1k%16=1)beginc=16b0000100001000000;r=16b1011111111111111; endelse if(cnt1k%16=2)beginc=16b0000101111111000;r=16b1101111111111111; endelse if(cnt1k%16=3)beginc=16b0001000001000000;r=16b1110111111111111;endelse if(cnt1k%16=4)beginc=16b0001000001000000;r=16b1111011111111111;endelse if(cnt1k%16=5)beginc=16b0011011111111100;r=16b1111101111111111;endelse if(cnt1k%16=6)beginc=16b0101000000000000;r=16b1111110111111111; endelse if(cnt1k%16=7)beginc=16b0001000001000000;r=16b1111111011111111; endelse if(cnt1k%16=8)beginc=16b0001000001000000;r=16b1111111101111111;endelse if(cnt1k%16=9)beginc=16b0001001111111000;r=16b1111111110111111;endelse if(cnt1k%16=10)beginc=16b0001000001000000;r=16b1111111111011111;endelse if(cnt1k%16=11)beginc=16b0001000001000000;r=16b1111111111101111;endelse if(cnt1k%16=12)beginc=16b0001000001000000;r=16b1111111111110111;endelse if(cnt1k%16=13)beginc=16b0001011111111100;r=16b1111111111111011;endelse if(cnt1k%16=14)beginc=16b0000000000000000;r=16b1111111111111101;endelse if(cnt1k%16=15)beginc=16b0000000000000000;r=16b1111111111111110;endendend/无显示/else begin c=16b0000000000000000;r=16b1111111111111111;endend/南北方向显示学号/else if(k0=0&fangxiang=1&shijian=5d10)|(k0=1&p=1)begin/5if(cnt1%2=0)beginif(cnt1/2)%3=0)begin/5/if(cnt1k%16=0) beginc=16b0000000000000000; /hangr=16b0111111111111111; /lieendelse if(cnt1k%16=1)beginc=16b0000000000000000;r=16b1101111111111111;endelse if(cnt1k%16=2)beginc=16b0000000000000000;r=16b1101111111111111;endelse if(cnt1k%16=3)beginc=16b0111111000000000;r=16b1110111111111111;endelse if(cnt1k%16=4)beginc=16b0100000000000000;r=16b1111011111111111;endelse if(cnt1k%16=5)beginc=16b0100000000000000;r=16b1111101111111111;endelse if(cnt1k%16=6)beginc=16b0101110000000000;r=16b1111110111111111;endelse if(cnt1k%16=7)beginc=16b0110001000000000;r=16b1111111011111111;endelse if(cnt1k%16=8)beginc=16b0000001000000000;r=16b1111111101111111;endelse if(cnt1k%16=9)beginc=16b0000001000000000;r=16b1111111110111111;endelse if(cnt1k%16=10)beginc=16b0100001000000000;r=16b1111111111011111;endelse if(cnt1k%16=11)beginc=16b0100001000000000;r=16b1111111111101111;endelse if(cnt1k%16=12)beginc=16b0011110000000000;r=16b1111111111110111;endelse if(cnt1k%16=13)beginc=16b0000000000000000;r=16b1111111111111011;endelse if(cnt1k%16=14)beginc=16b0000000000000000;r=16b1111111111111101;endelse if(cnt1k%16=15)beginc=16b0000000000000000;r=16b1111111111111110;endend/3/else if(cnt1/2)%3=1)beginif(cnt1k%16=0)beginc=16b0000000000000000; /hangr=16b0111111111111111; /lieendelse if(cnt1k%16=1)beginc=16b0000000000000000;r=16b1011111111111111;endelse if(cnt1k%16=2)beginc=16b0000000000000000;r=16b1101111111111111;endelse if(cnt1k%16=3)beginc=16b0011110000000000;r=16b1110111111111111;endelse if(cnt1k%16=4)beginc=16b0100001000000000;r=16b1111011111111111;endelse if(cnt1k%16=5)beginc=16b0100001000000000;r=16b1111101111111111;endelse if(cnt1k%16=6)beginc=16b0000010000000000;r=16b1111110111111111;endelse if(cnt1k%16=7)beginc=16b0001100000000000;r=16b1111111011111111;endelse if(cnt1k%16=8)beginc=16b0000010000000000;r=16b1111111101111111;endelse if(cnt1k%16=9)beginc=16b0000001000000000;r=16b1111111110111111;endelse if(cnt1k%16=10)beginc=16b0100001000000000;r=16b1111111111011111;endelse if(cnt1k%16=11)beginc=16b0100001000000000;r=16b1111111111101111;endelse if(cnt1k%16=12)beginc=16b0011110000000000;r=16b1111111111110111;endelse if(cnt1k%16=13)beginc=16b0000000000000000;r=16b1111111111111011;endelse if(cnt1k%16=14)beginc=16b0000000000000000;r=16b1111111111111101;endelse if(cnt1k%16=15)beginc=16b0000000000000000;r=16b1111111111111110;endend/0/else beginif(cnt1k%16=0)beginc=16b0000000000000000; /hangr=16b0111111111111111; /lieendelse if(cnt1k%16=1)beginc=16b0000000000000000;r=16b1011111111111111; endelse if(cnt1k%16=2)beginc=16b0000000000000000;r=16b1101111111111111; endelse if(cnt1k

温馨提示

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

评论

0/150

提交评论