欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数字电子技术实验报告之交通灯设计.docx

    • 资源ID:4681       资源大小:543.48KB        全文页数:20页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字电子技术实验报告之交通灯设计.docx

    1、数字电子技术实验报告之交通灯设计数 字 电 子 技 术 实 验 报 告交通灯的设计姓名:学号:学院:专业:班级:指导老师: 目录一、 实验目的与要求二、 实验设计三、 调试及实验结果四、 附页一、 实验目的及要求实验目的:1. 熟练掌握verilog语言及Quartus软件的使用。2. 考验和培养学生独立自主综合设计的能力。实验要求:1. 设计一个十字路口的四个交通灯的设计。2. 注意红灯时间23秒、黄灯时间3秒、绿灯时间17秒。3. 时间倒计时功能需在数码管中显示出来。实验扩展:1. 分频:因为实验要求秒数的倒计时及控制,故要将高频率进行分频得到1khz和1hz的频率。分频的实现2. 数码管

    2、动态扫描: 倒计时的显示要求有四位同时显示,而以前只进行过一位显示。所以该实验需要数码管的动态扫描。二、 实验设计总体思路:先实现由高频率分频得到1khz和1hz的频率,然后实现在1hz的频率下交通灯状态的转换,同时倒计时功能也开始运行。然后在1khz的频率下进行动态扫描,再加上数码管的七段显示即可。 交通灯的状态设计:每个灯有三种状态:红、绿、黄。又因为每个灯由2个开关来控制,所以四个灯设定四个变量 sn1:0、ns1:0、ew1:0、we1:0分别代表南北、东西方向的灯。其中01代表绿灯,10代表红灯,11代表黄灯。灯状态的循环设计:第一个状态(state0): 绿 红 红 :该状态维持1

    3、7s,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):绿 红 红:回到原始状态,构成

    4、一个循环。绿 状态设计代码:state0: begin/设定初状态:南北方向为绿灯,东西方向为红灯(下面同理) sn=2b01; ns=2b01; we=2b10; ew=2b10;if(gl=3d0&gh=3d0&rl=3d0&rh=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;en

    5、d else begin rl=rl-1;end/判定状态是否结束(看绿灯倒计时是否到达0)(下面同理) if(gl=3d0&gh=3d0) begin next_state=state1;end end endstate1: 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 endstate2: be

    6、gin sn=2b10; ns=2b10; we=2b10; ew=2b10; if(yl=3d0&yh=3d0) begin rl=3d3;rh=3d2;yl=3d3; end else begin begin rl=rl-1;yl=yl-1;end if(yl=0) begin next_state=state3; end end endstate3: begin sn=2b10; ns=2b10; we=2b01; ew=2b01; if(yl=3d0&yh=3d0) begin rl=3d0;rh=3d2;yl=3d7;yh=3d1; end else begin if(rl=0) b

    7、egin rl=9;rh=rh-1;end else begin rl=rl-1;end if(yl=0) begin yl=9;yh=yh-1;end else begin yl=yl-1;end if(yl=3d0&yh=3d0) begin next_state=state4;end end endstate4: begin sn=2b10; ns=2b10; we=2b11; ew=2b11; if(yl=3d0&yh=3d0) begin rl=3d3;yl=3d3; end else begin begin rl=rl-1;yl=yl-1;end if(rl=3d0&yl=3d0)

    8、 begin next_state=state0;endend end 分频技术的实现:接入6M的频率,先分成1khz的频率,在由1khz的频率分出1hz的频率。分频代码:/1khz always(posedge clk)/注:接入6M的频率 begin if(count1=d3000) begin clk1khz=clk1khz; count1=4d0; end else count1=count1+4d1; end/1hz always(posedge clk1khz) begin if(count2=d500) begin clk1hz=clk1hz; count2=4d0; end e

    9、lse count2=count2+1d1;数码管的显示:数码管的显示,因为需要同时显示两位数字,故要用到数码管扫描;其次要进行显示,要七段显示译码器。数码管的扫描代码:wei3:0代表八位数码管的八位,在此因为只需显示4位故只将wei只用4位。/该部分作用是让数码管在1hkz下不断的快速扫描,照成它们同时显示的错觉。always(posedge clk1khz)if(wei=3d3) begin wei=3d0; end else wei=wei+3d1;/该部分的num3:0是提供给七段显示器的,而weiscan7:0是用于决定数码管哪一位亮的。always (wei)begin case

    10、(wei) 3b000:begin num3:0=l3:0;weiscan7:0=8b00000001; end3b001:begin num3:0=h3:0;weiscan7:0=8b00000010; end 3b010:begin num3:0=l13:0;weiscan7:0=8b00000100;end 3b011:begin num3:0=h13:0;weiscan7:0=8b00001000; endendcaseend倒计时的显示设计: 每一个状态显示的时间和亮的灯的颜色都不一样。所以每个状态时,计时的变量都应改变,才能使得数码管正常显示。代码如下:case(state) st

    11、ate0:begin l=gl;h=gh;l1=rl;h1=rh;end state1:begin l=yl;h=yh;l1=rl;h1=rh;end state2:begin l=rl;h=rh;l1=yl;h1=yh;end state3:begin l=rl;h=rh;l1=yl;h1=yh;end state4:begin l=rl;h=rh;l1=yl;h1=yh;end endcaseend调试与实验结果 调试: 将代码中always部分中的常来clk1hkz和常来clk1hz都改为clk,然后进行编译,并建立一个vector waveform file文件,找到所有的节点,就可以

    12、运行了。仿真波形如下:整体仿真图形:weiscan7:0的仿真图:counter7:0的仿真图:引脚锁定:下载到实验箱后,用导线将clk与p16接起,后接入6M频率即可。实验结果:实验交通灯变化正常,倒计时显示正常。本次实验的心得;本次实验经历了3个礼拜,完全由学生自主学习和实验,我对于这个实验一开始以为比较简单,可是动起手却没有思路。经过查阅图书馆的资料才有那么一点思路,开始动手。经过这次实验我学到了很多,学会数码管的扫描和状态的设定和转换。附页(附总代码):module d20122756(clk,sn,we,ns,ew,counter,weiscan);output 7:0weiscan

    13、;reg 7:0weiscan;input clk;output 1:0sn,we,ns,ew;output 6:0counter;reg 6:0counter;reg 1:0sn,we,ns,ew;reg 3:0rl,rh,yl,yh,gl,gh;reg 3:0wei,num;reg clk1khz,clk1hz;reg 12:0count1;reg 8:0count2;reg 3:0l,h,l1,h1;reg 2:0state,next_state;parameter state0=0,state1=1,state2=2,state3=3,state4=4;/1khz always(pos

    14、edge clk) begin if(count1=d3000) begin clk1khz=clk1khz; count1=4d0; end else count1=count1+4d1; end/1hz always(posedge clk1khz) begin if(count2=d500) begin clk1hz=clk1hz; count2=4d0; end else count2=count2+1d1; if(wei=3d3) begin wei=3d0; end else wei=wei+3d1;case(state) state0:begin l=gl;h=gh;l1=rl;

    15、h1=rh;end state1:begin l=yl;h=yh;l1=rl;h1=rh;end state2:begin l=rl;h=rh;l1=yl;h1=yh;end state3:begin l=rl;h=rh;l1=yl;h1=yh;end state4:begin l=rl;h=rh;l1=yl;h1=yh;end endcaseend always (posedge clk1hz)beginstate=next_state;case(state)state0: begin sn=2b01; ns=2b01; we=2b10; ew=2b10; if(gl=3d0&gh=3d0&

    16、rl=3d0&rh=3d0) begin 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 if(gl=3d0&gh=3d0) begin next_state=state1;end end endstate1: begin sn=2b11; ns=2b11; we=2b10; ew=2b10; if(yl=3d0) begin yl=3d

    17、3;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 endstate2:begin sn=2b10; ns=2b10; we=2b10; ew=2b10; if(yl=3d0&yh=3d0) begin rl=3d3;rh=3d2;yl=3d3; end else begin begin rl=rl-1;yl=yl-1;end if(yl=0) begin next_state=state3; end end endstate3:

    18、 begin sn=2b10; ns=2b10; we=2b01; ew=2b01; if(yl=3d0&yh=3d0) begin rl=3d0;rh=3d2;yl=3d7;yh=3d1; end else begin if(rl=0) begin rl=9;rh=rh-1;end else begin rl=rl-1;end if(yl=0) begin yl=9;yh=yh-1;end else begin yl=yl-1;end if(yl=3d0&yh=3d0) begin next_state=state4;end end endstate4:begin sn=2b10; ns=2

    19、b10; we=2b11; ew=2b11; if(yl=3d0&yh=3d0) begin rl=3d3;yl=3d3; end else begin begin rl=rl-1;yl=yl-1;end if(rl=3d0&yl=3d0) begin next_state=state0;end end endendcaseendalways (wei)begin case(wei)3b000:begin num3:0=l3:0;weiscan7:0=8b00000001; end3b001:begin num3:0=h3:0;weiscan7:0=8b00000010; end3b010:b

    20、egin num3:0=l13:0;weiscan7:0=8b00000100; end3b011:begin num3:0=h13:0;weiscan7:0=8b00001000; end endcaseend always (num) begin case(num) 4b0000: counter=7b1111110; /0 4b0001: counter=7b0110000; /1 4b0010: counter=7b1101101; /2 4b0011: counter=7b1111001; /3 4b0100: counter=7b0110011; /4 4b0101: counter=7b1011011; /5 4b0110: counter=7b1011111; /6 4b0111: counter=7b1110000; /7 4b1000: counter=7b1111111; /8 4b1001: counter=7b1111011; /9 default: counter=7b0000000; /0 endcase endendmoduleRTL viewer:


    注意事项

    本文(数字电子技术实验报告之交通灯设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开