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

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

ID:57312175

大小:123.00 KB

页数:8页

时间:2020-08-11

基于vhdl时钟的设计与制作(附完整代码).doc_第1页
基于vhdl时钟的设计与制作(附完整代码).doc_第2页
基于vhdl时钟的设计与制作(附完整代码).doc_第3页
基于vhdl时钟的设计与制作(附完整代码).doc_第4页
基于vhdl时钟的设计与制作(附完整代码).doc_第5页
资源描述:

《基于vhdl时钟的设计与制作(附完整代码).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

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

3、键脉冲或自动自动脉冲的进位寄存器控制分个位Cm02:选用按键脉冲或自动自动脉冲的进位寄存器控制时个位s1,s2,m1,m2,h1,h2:送显示的寄存器s01,s02,m01,m02,h01,h02:时钟秒、分、时寄存器s001,s002,m001,m002,h001,h002:闪烁用时钟秒、分、时寄存器(闪烁频率为2hz)。当处于调整状态的时送到相应的显示寄存器。abc:74ls138控制信号,由clk1控制。Led7s:显示Disp:所要显示的数值三、实验程序及部分仿真波形图libraryieee

4、;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycolockisport(clk1,clk2,key1,key2:instd_logic;abc:outstd_logic_vector(2downto0);led7s:outstd_logic_vector(6downto0));endentity;architectureoneofcolockissignalctrl:std_logic_vector(3downto0

5、);signalclk02,cs02,cm02,cs1,cs2,cm1,cm2,ch1,cp,k2,ck1,ck2:std_logic;signals1,s2,m1,m2,h1,h2,s01,s02,m01,m02,h01,h02,s001,s002,m001,m002,h001,h002,p1,p2,disp:std_logic_vector(3downto0);signalctrl0:std_logic_vector(8downto0);signaltmp1,tmp2:std_logic_vec

6、tor(9downto0);signalk1:std_logic_vector(1downto0);begin--当处于按键调时状态时,根据K1的值来确定所调整的位,被调整的位送按键2产生的脉冲(CK2),其余进位脉冲赋0屏蔽掉process(k1,clk2,clk02,cs2,cm2,ck2)begincasek1iswhen"00"=>clk02<=clk2;cs02<=cs2;cm02<=cm2;when"01"=>clk02<=ck2;cs02<='0';cm02<='0';when"10"

7、=>clk02<='0';cs02<=ck2;cm02<='0';when"11"=>clk02<='0';cs02<='0';cm02<=ck2;whenothers=>clk02<=clk2;cs02<=cs2;cm02<=cm2;endcase;endprocess;--500进制计数器,每500ms对CP进行取反一次,用于闪烁控制process(clk1)beginifrising_edge(clk1)thenifctrl0<499thenctrl0<=ctrl0+1;elsectrl0<=

8、"000000000";cp<=notcp;endif;endif;endprocess;--数码管动态扫描,接138的输入端process(clk1)beginifrising_edge(clk1)thenifctrl<9thenctrl<=ctrl+1;elsectrl<="0000";endif;endif;endprocess;abc<=ctrl(2downto0);--秒个位的计数process(clk02)beginifrising_edge(clk02)

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

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

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