太原理工大学-数字电子技术课程设计.doc

上传人:飞****2 文档编号:60946521 上传时间:2022-11-19 格式:DOC 页数:8 大小:464KB
返回 下载 相关 举报
太原理工大学-数字电子技术课程设计.doc_第1页
第1页 / 共8页
太原理工大学-数字电子技术课程设计.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《太原理工大学-数字电子技术课程设计.doc》由会员分享,可在线阅读,更多相关《太原理工大学-数字电子技术课程设计.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数字电子技术课程设计报告课程设计题目如下:【题目B14】 电灯控制开关5设计一个电灯控制开关,该开关有一个按钮k控制。当按钮按下1次是,电灯d亮8秒后灭;当按钮k连续按下2次(在第1次按下后的8秒内,按下第2次)是,则电灯长亮不灭;当按钮再按下1次后,电灯延时5s灭。根据题目要求,可以画出该控制框图如图1所示。该控制器由按钮、时钟、状态机、计数器、灯,数码管显示电路,计数器时钟电路组成,其中状态机、计数器、计数器时钟电路用FPGA实现。灯控制信号表:信号名方向说明k控制器输入灯启动信号(低电平有效)clk控制器输入时钟信号32768的方波信号m状态机输出灯控制信号(高电平有效)DATA状态机输

2、出计数器预置数信号t状态机输出计数器指数/计数控制信号td计数器输出高电平表示计数器归零sm计数器输出数码管驱动信号(低电平有效)第1章 控制器逻辑设计1 控制器的状态机设计状态图如图2: 由状态机可以得到张太极Verilog HDL源程序如下:module state(clk,k, td,t,m,data);input k,clk,td;output t,m,data;reg t,m;reg3:0 data;reg 2:0 state,next_state; parameter a0= 2b00,a1 = 2b01, a2 = 2b10, a3 = 2b11;always (posedge

3、clk) begin state =next_state; endalways (state or td or k) begin case (state) a0: begin t=0;m=0;data=4b1000; if (!k) begin next_state =a1; end else begin next_state =a0; end end a1: begin t=1;m=1;data=4b1000; if (td=1)&(k=1) begin next_state =a0; end else if(td=0)&(k=0)begin next_state =a2; end else

4、 begin next_state=a1;end end a2: begin t=0;m=1;data=4b0101; if(!k) begin next_state =a3;end else begin next_state=a2;end end a3: begin t=1;m=1;data=4b0101; if(td) begin next_state=a0; end else begin next_state =a3; end end default:next_state=a0; endcaseendendmodule在muxplus2中的仿真结果如图3:图32控制器的计数器设计 计数器

5、采用一位10进制,输入置数值为一位BCD码(4位)。当t为0是置数,当t为1时减法计数,当减到0时,信号td为1。计数器源程序如下:module counter(clk,t,td,qq1,data);input t,clk,data; output td;output 3:0 qq1;wire 3:0 qq1; wire 3:0 data; wire 3:0 db1; reg tds; /定义信号reg 3:0 qq11; /定义信号assign db1=data;always (posedge clk or negedge t) begin if (t=0) begin qq11=db1;t

6、ds=0; end /t=0时,计数器预置数,tds赋初值 else if(!tds) begin qq11=qq11-1; /低位减法计数 if(qq11=0) tds=1; /如果高低位都减到0,tds=1 endendassign qq1=qq11; /信号赋予端口assign td=tds; endmodule在maxplus2中的仿真结果如下: 当t=0时,预置数据8,当t=1时开始减法计数,当计数到0时,信号td=1。3BCD/7段译码器设计译码器源程序如下:module yima(ag,bcd); output6:0 ag;input3:0 bcd; reg 6:0 ag; al

7、ways (bcd)begin case(bcd) 4d0: ag=7b; 4d1: ag=7b; 4d2: ag=7b; 4d3: ag=7b; 4d4: ag=7b; 4d5: ag=7b; 4d6: ag=7b; 4d7: ag=7b; 4d8: ag=7b; 4d9: ag=7b; 4d10: ag=7b; 4d11: ag=7b; 4d12: ag=7b; 4d13: ag=7b; 4d14: ag=7b; 4d15: ag=7b; endendmodule译码器仿真结果如下:此处本可以不用写这么多代码,本题中只用到0-8的段码,后面的暂时用不上,为了方便以后的拓展,此处就浪费一点存

8、储空间。4.秒脉冲分频器设计 定时器时钟周期是1s,因此需要分频电路实现分频,分频电路源程序如下:module fenpin(clk,td,qq); input clk; output td;parameter k=3 ; output k:0 qq; wire k:0 qq;reg k:0 qq0;reg td0;always (posedge clk ) begin qq0=qq0+1; if(qq08)td0=1; else td0=0; endassign qq=qq0;assign td=td0; endmodule秒脉冲分频器maxplus2结果如图:5.顶层逻辑图 在状态机、计数

9、器、分频器、译码电路色合计完成并仿真验证以后,在maxplus2中构建顶层逻辑图如下:对控制器顶层电路图仿真结果如图所示: 图中栅格为1us,总仿真时间是1ms,可以看出当k按下后,t=1,灯亮8s后熄灭,再次连续按两次(间隔小于8s),长亮,再按一次,延迟5s熄灭;第2章 引脚锁定与下载k锁定在引脚97,m锁定在引脚81,clk锁定引脚55,数码管锁定在引脚37、38、39、41、42、43、44锁定引脚后的顶层逻辑图如图:下载到FPGA芯片10k10中,就可以验证电路是否正确性。锁定情况如下: 第3章 用protel软件画pcb电路板说明:用protel软件画pcb电路板:由于条件和能力有限,结果不是很另人满意。原理图如下:第4章 总结感想:课程设计是一件艰难的事情,开始没有明白是怎么一回事,没有看例题,弄了大半天不知道该怎么下手。感觉不管做什么事情,第一件事是要了解事情的基本信息,如此才能很快的找到事情的突破点,也就能很快的解决事情。电子技术是一门很有前途的学科,要想学好不容易,但也不是不能学好,总结起来就是要有足够的耐心,把心沉下来,不能浮躁,才是学习的根本捷径! 老师很敬业,和蔼可亲,能有这样的老师是我们的幸运,也是我们的机遇,如果能够刻苦学习,努力奋进,相信在这样的老师的带领下我们能成就一番不错的成绩!感谢老师带给我们学习机遇!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁