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

    基于vhdl时钟的设计与制作附完整代码.docx

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

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

    基于vhdl时钟的设计与制作附完整代码.docx

    1、基于vhdl时钟的设计与制作附完整代码 机电工程系EDA实 验 报 告实验题目: 时钟的设计与制作 班 级: 08通信 姓 名: 学 号: 一、实验要求1、实现功能: (1)运用动态扫描对8个数码管进行显示操作; (2)通过两个按键对时钟的时间进行调整,处于被调整状态下的位能闪烁。2、硬件知识要求:(1)掌握数码管的动态扫描;(2)熟悉各个管脚所接的硬件;(3)掌握按键去抖动原理;(4)熟悉程序到实验箱的下载;3、软件知识要求:(1)掌握各种编程语句的使用方法;(2)掌握判断语句的嵌套;二、各个信号所对应功能CLK1:1KHZ -作为动态显示扫描时钟及500ms计数时钟CLK2:1HZ -作为

    2、时钟控制信号CS1:自动秒个位进十位控制;CS2:自动秒进分控制位;Cm1:自动分个位进十位控制Cm2:自动分进时控制位 ; Ch1:自动时个位进十位控制位Key1,key2:按键1,按键2Ck1,按键1去抖动后控制位K1:00正常显示,01调秒同时秒位闪烁,10调分同时分位闪烁,11调时同时时位闪烁Ck2:按键二按下产生一个上升沿脉冲从而作为手动调整时钟的脉冲Cp:闪烁控制位,500ms取反一次Clk02:选用按键脉冲或自动自动脉冲的进位寄存器控制秒个位Cs02:选用按键脉冲或自动自动脉冲的进位寄存器控制分个位Cm02:选用按键脉冲或自动自动脉冲的进位寄存器控制时个位s1,s2,m1,m2,

    3、h1,h2:送显示的寄存器s01,s02,m01,m02,h01,h02:时钟秒、分、时寄存器s001,s002,m001,m002,h001,h002:闪烁用时钟秒、分、时寄存器(闪烁频率为2hz)。当处于调整状态的时送到相应的显示寄存器。abc:74ls138控制信号,由clk1控制。Led7s:显示Disp:所要显示的数值三、实验程序及部分仿真波形图library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity colock isport(clk1,clk2,key1,key2: in std

    4、_logic; abc:out std_logic_vector(2 downto 0); led7s:out std_logic_vector(6 downto 0) );end entity;architecture one of colock is signal ctrl:std_logic_vector(3 downto 0); signal clk02,cs02,cm02,cs1,cs2,cm1,cm2,ch1,cp,k2,ck1,ck2:std_logic;signal s1,s2,m1,m2,h1,h2,s01,s02,m01,m02,h01,h02,s001,s002,m001

    5、,m002,h001,h002,p1,p2,disp:std_logic_vector(3 downto 0); signal ctrl0:std_logic_vector(8 downto 0); signal tmp1,tmp2:std_logic_vector(9 downto 0); signal k1:std_logic_vector(1 downto 0);begin-当处于按键调时状态时,根据K1的值来确定所调整的位,被调整的位送按键2产生的脉冲(CK2),其余进位脉冲赋0屏蔽掉process(k1,clk2,clk02,cs2,cm2,ck2)begin case k1 is

    6、when 00 = clk02=clk2;cs02=cs2;cm02 clk02=ck2;cs02=0;cm02 clk02=0;cs02=ck2;cm02 clk02=0;cs02=0;cm02 clk02=clk2;cs02=cs2;cm02=cm2; end case ;end process;-500进制计数器,每500ms对CP进行取反一次,用于闪烁控制process(clk1) begin if rising_edge(clk1) then if ctrl0499 then ctrl0=ctrl0+1; else ctrl0=000000000;cp=not cp; end if

    7、; end if;end process;-数码管动态扫描,接138的输入端process(clk1)begin if rising_edge(clk1) then if ctrl9 then ctrl=ctrl+1; else ctrl=0000; end if ; end if ;end process;abc=ctrl(2 downto 0);-秒个位的计数process(clk02) begin if rising_edge(clk02) then if s011001 then s01=s01+1;cs1=0; else s01=0000;cs1=1; end if; end if;

    8、end process;-秒十位的计数process(cs1) begin if rising_edge(cs1) then if s020101 then s02=s02+1;cs2=0; else s02=0000;cs2=1; end if; end if;end process;-分个位的计数process(cs02) begin if rising_edge(cs02) then if m011001 then m01=m01+1;cm1=0; else m01=0000;cm1=1; end if; end if;end process;-分十位的计数process(cm1) be

    9、gin if rising_edge(cm1) then if m020101 then m02=m02+1;cm2=0; else m02=0000;cm2=1; end if; end if;end process;-小时个位的计数process(cm02) begin if rising_edge(cm02) then if h020010 then if h011001 then h01=h01+1;ch1=0; else h01=0000;ch1=1; end if ; else if h010011then h01=h01+1;ch1=0; else h01=0000;ch1=1;

    10、 end if; end if; end if;end process;-小时十位的计数process(ch1)begin if rising_edge(ch1) then if h020010 then h02=h2+1; else h02=0000; end if; end if;end process;-按键一去抖动process(clk1) begin if rising_edge(clk1) then tmp1(0)=key1;tmp1(9 downto 1)=tmp1(8 downto 0); if tmp1=1111111111 then ck1=1;else ck1=0; en

    11、d if ; end if;end process;-按键一实现功能process(ck1) begin if rising_edge(ck1) then k1=k1+1; end if ;end process;-按键二去抖动,并产生一个时钟上升沿脉冲process(clk1) begin if rising_edge(clk1) then tmp2(0)=key2;tmp2(9 downto 1)=tmp2(8 downto 0); if tmp2=1111111111 then ck2=1;else ck2 s001=s01;s002=s02;m001=m01;m002=m02;h001

    12、=h01;h002 s001=1011;s002=1011;m001=1011;m002=1011;h001=1011;h002 s001=1011;s002=1011;s001=1011;s002=1011;m001=1011;m002=1011;h001=1011;h002 s1=s01;s2=s02;m1=m01;m2=m02;h1=h01;h2 s1=s001;s2=s002;m1=m01;m2=m02;h1=h01;h2 s1=s01;s2=s02;m1=m001;m2=m002;h1=h01;h2 s1=s01;s2=s02;m1=m01;m2=m02;h1=h001;h2 s1=

    13、s01;s2=s02;m1=m01;m2=m02;h1=h01;h2 p1 =1010;p2 p1 =1011;p2 p1 =1100;p2 dispdispdispdispdispdispdispdispdispled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7s=0000000; end case ; end process;end architecture one;1.第五章 心得体会 通过此次课程设计使我更加深刻的认识EDA电子电路设计的各个模块。时钟程序的编写按键调整时间同时让处于调整的位闪烁体会到各个进程之间通过控制信号建立起来的紧密联系,以及通过移位来达到按键的去抖动。进行硬件调试时了解到芯片跟外围设备之间的连接程序功能由简单到复杂,通过课堂提问一步步完善时钟的各个模块,将本学期所学到的内容串到一起,最终完成课程设计


    注意事项

    本文(基于vhdl时钟的设计与制作附完整代码.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




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

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开