- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字电子技术实验报告之交通灯设计.
数 字 电 子 技 术 实 验 报 告
交通灯的设计
姓名:
学号:
学院:
专业:
班级:
指导老师:
目录
实验目的与要求
实验设计
调试及实验结果
附页
实验目的及要求
实验目的:
熟练掌握verilog语言及Quartus软件的使用。
考验和培养学生独立自主综合设计的能力。
实验要求:
设计一个十字路口的四个交通灯的设计。
注意红灯时间23秒、黄灯时间3秒、绿灯时间17秒。
时间倒计时功能需在数码管中显示出来。
实验扩展:
分频:
因为实验要求秒数的倒计时及控制,故要将高频率进行分频得到1khz和1hz的频率。分频的实现
数码管动态扫描:
倒计时的显示要求有四位同时显示,而以前只进行过一位显示。所以该实验需要数码管的动态扫描。
实验设计
总体思路:先实现由高频率分频得到1khz和1hz的频率,然后实现在1hz的频率下交通灯状态的转换,同时倒计时功能也开始运行。然后在1khz的频率下进行动态扫描,再加上数码管的七段显示即可。
交通灯的状态设计:
每个灯有三种状态:红、绿、黄。又因为每个灯由2个开关来控制,所以四个灯设定四个变量 sn[1:0]、ns[1:0]、ew[1:0]、we[1:0]分别代表南北、东西方向的灯。其中01代表绿灯,10代表红灯,11代表黄灯。
灯状态的循环设计:
第一个状态(state0):
绿
红 红 :该状态维持17s,we红灯23s倒计时到
绿 6s,sn绿灯17s倒计时到0s。
第二个状态(state1):
黄
红 红 :该状态维持3s,we红灯倒计时6s到
黄 3s,sn黄灯倒计时3s到0s。
第三个状态(state2):
红
红 红:该状态维持3s,we红灯倒计时3s到
红 0s,sn红灯23s倒计时到20s。
第四个状态(state3):
红
绿 绿:该状态维持17s,we绿灯17s倒计时到
红 0s,sn红灯20s倒计时到3s。
第五个状态(state4):
红
黄 黄: 该状态维持3s,we黄灯3s倒计时到0s,
红 sn红灯3s倒计时到0s。
回到原始状态(state0):
绿
红 红:回到原始状态,构成一个循环。
绿
状态设计代码:
state0:
begin
//设定初状态:南北方向为绿灯,东西方向为红灯(下面同理)
sn=2b01;
ns=2b01;
we=2b10;
ew=2b10;
if(gl==3d0gh==3d0rl==3d0rh==3d0)
begin
//设定红绿灯计时起点红灯23s绿灯17s(下面同理)
gl=3d7;gh=3d1;rl=3d3;rh=3d2;
end
else
begin
if(gl==0)
//十进制的减法设定(下面同理)
begin gl=9;gh=gh-1;end
else
begin gl=gl-1;end
if(rl==0)
begin rl=9;rh=rh-1;end
else
begin rl=rl-1;end
//判定状态是否结束(看绿灯倒计时是否到达0)(下面同理)
if(gl==3d0gh==3d0)
begin next_state=state1;end
end
end
state1:
begin
sn=2b11;
ns=2b11;
we=2b10;
ew=2b10;
if(yl==3d0)
begin
yl=3d3;rl=3d6;rh=3d0;
end
else
begin
begin yl=yl-1;end
begin rl=rl-1;end
if(yl==0)
begin next_state=state2;end
end
end
state2:
begin
sn=2b10;
ns=2b10;
we=2b10;
ew=2b10;
if(yl==3d0yh==3d0)
begin
rl=3d3;rh=3d2;yl=3d3;
文档评论(0)