VHDL上机作业-交通灯

VHDL上机作业-交通灯

ID:38181304

大小:371.87 KB

页数:7页

时间:2019-06-07

VHDL上机作业-交通灯_第1页
VHDL上机作业-交通灯_第2页
VHDL上机作业-交通灯_第3页
VHDL上机作业-交通灯_第4页
VHDL上机作业-交通灯_第5页
资源描述:

《VHDL上机作业-交通灯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数字电路与逻辑设计(EDA)实验报告班级:姓号:学号:实验时间:一.命题设计有一个实际的十字路口设置有东西、南北两个方向的干道,为确保车辆安全通行,在每条干道的每个入口设置了一组两位数码管显示装置和四组红、绿、黄信号灯,分别用来指示东西、南北方向车辆的通行和人横穿公路(1)数码管倒计时指示红绿灯的亮灭时间:红灯亮45秒,绿灯40秒,黄灯5秒,循环周期为90秒(2)东西方向红灯亮时,前40秒南北方向绿灯亮,后5秒黄灯亮之后东西方向路灯亮40秒,黄灯亮5秒,期间南北红灯亮45秒如此循环(3)扩展命题:由按键控制,实现紧急情况时计时暂停,两方

2、向都亮红灯二.方案设计该交通灯程序由一个模块组成,并不复杂的功能决定其程序的简单。主要就四个小块:(1)用分频电路实现一秒计时(2)用计数器控制LED和数码管的功能(3)LED译码电路(4)数码管译码电路交通灯的状态真值表东西方向南北方向红灯绿灯黄灯计时红灯绿灯黄灯计时通行状态01145秒10140秒南北通车1105秒南北慢行10140秒01145秒东西通车1105秒东西慢行三.程序设计(1)一秒时钟信号:由于开发板上给的时钟是49MHz的信号clk,故需要一个分频器实现一秒计时用计数的方式,以时钟改变48000000次为周期,上升沿触

3、发,前24000000次分频信号clk1为1,后24000000次分频信号为0,分频后的信号做为内部1秒时钟计时分频器占用一个进程(2)计数器控制LED和数码管定义一个变量js,在秒信号上升沿时触发,变量加1,变量周期为90,共计90秒(3)LED的亮灭控制输出端口led的值对应红绿灯亮灭状态(由于开发板是共阳极,故低电位点亮即0为亮),前三位为东西方向红绿黄灯,后三位代表南北方向的红绿黄灯(具体点亮计数值见程序)。(4)数码管倒计时的显示和LED的控制程序一样,由计数程序控制数码管的显示状态,7段数码管相当于7个LED灯,同够控制它们

4、的亮灭来显示数字,实现倒计时。数码管译码时,信号对应位为abcdefg一.系统框图LED灯123456模90计数器以及译码程序数码管显示分频器二.程序流程图Yclk上升沿?temp1<=3开始temp1=temp1+1temp1的值确定clk1取值clk1上升沿?js=js+1通过js的取值译码led和数码管的显示temp1=0YYNNN一.仿真时序图由于信号频率太高,仿真时不能实现。故将分频改为4分频时序图如下:一.开发板引脚定义二.附录:程序源码--交通灯程序,LED显示和4段数码管显示程序--LED前三个代表一个方向的交通灯,其显

5、示时间由前两段数码管显示:--第一个LED代表绿灯,点亮时间为10秒;第二个代表黄灯,点亮4秒,第三个代笔的是红灯,点亮14秒--时间由数码管以倒数的形式显示--后三个为另外一个方向的红绿灯:第四个为红灯,点亮14秒,第五个为绿灯,点亮10秒,最后一个是--黄灯,点亮4秒,倒计时为最后面的两段数码管显示--数码管,本来设计的是有片选的数码管显示,由于开发板不数码管不需要片选,故又改掉了--前两个(一二)数码管是一个方向的红绿灯计时,后两个(五六)—是另外一个方向的计时libraryieee;useieee.std_logic_1164.

6、all;useieee.std_logic_signed.all;entityjtdisport(clk:instd_logic;--49MHznum1,num2,num3,num4:outstd_logic_vector(6downto0);--Digitaltubethefirstsecandfifthsixled:outstd_logic_vector(5downto0)--led);endjtd;architectureoneofjtdissignalclk1:std_logic;--Clock:1Ssignalq1:std_l

7、ogic:='0';beginprocess(clk)variabletemp1:integerrange0to3;--Changeto48999999;beginif(clk'eventandclk='1')theniftemp1=3thentemp1:=0;elsetemp1:=temp1+1;if(temp1<=1)thenclk1<='1';elseclk1<='0';endif;endif;endif;endprocess;L1:process(clk1)--LEDTrafficlightsvariablejs:integer

8、range0to27;--changeto89beginif(clk1'eventandclk1='1')thenifjs=27thenjs:=0;elsejs:=js+1;endif;endif;if(j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。