1/13
文档分类:通信/电子

数字逻辑EDA电子钟课程设计方案.doc


下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

0/100
您的浏览器不支持进度条
下载所得到的文件列表
数字逻辑EDA电子钟课程设计方案.doc
文档介绍:
多功能数字钟设计说明:1.系统顶层框图:各模块电路功能如下:1.秒计数器、分计数器、时计数器组成最基本地数字钟,其计数输出送7段译码电路由数码管显示.2.基准频率分频器可分频出标准地1HZ频率信号,用于秒计数地时钟信号;分频出4HZ频率信号,用于校时、校分地快速递增信号;分频出64HZ频率信号,用于对按动“校时”,“校分”按键地消除抖动.b5E2RGbCAP2.多功能数字钟结构框图:一、系统功能概述已完成功能完成时/分/秒地依次显示并正确计数,利用六位数码管显示;时/分/秒各段个位满10正确进位,秒/分能做到满60向前进位,有系统时间清零功能;定时器:实现整点报时,通过扬声器发出高低报时声音;时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;闹钟:实现分/时闹钟设置,在时钟到达设定时间时通过扬声器响铃.有静音模式.待改进功能:1.系统没有万年历功能,正在思考设计方法.2.应添加秒表功能.二、系统组成以及系统各部分地设计1.时计数模块时计数模块就是一个2位10进制计数器,记数到23清零.VHDL地RTL描述如下:----cnt_h.vhdlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;t_hisport(en,clk,clr:instd_logic;dout:outstd_logic_vector(7downto0);c:outstd_logic);t_h;t_hissignalt:std_logic_vector(7downto0);beginprocess(en,clk,clr)variablet:std_logic_vector(7downto0);beginifen='1'then--异步使能ifclk'eventandclk='1'thent:=t+1;ift(3downto0)=X"A"then--个位等于10则十位加1t(7downto4):=t(7downto4)+1;t(3downto0):=X"0";--个位清零endif;ift>X"23"then--大于23清零t:=X"00";endif;endif;ifclr='1'then--异步清零t:=X"00";endif;endif;dout<=t;endprocess;endrtl;时计数器模块仿真波形如下从仿真波形可知,当计数到23时,下一个时钟上升沿到来时就清零了,符合设计要求.时计数模块框图如下分及秒计数模块分及秒计数模块也是一个2位10进制计数器,记数到59清零.VHDL地RTL描述如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;t_sisport(en,clk,clr:instd_logic;dout:bufferstd_logic_vector(7downto0);c:outstd_logic);t_s;t_sisbeginprocess(en,clk,clr)beginifen='1'thenifclr='1'then--异步清零dout<=X"00";elsifclk'eventandclk='1'thenifdout(3downto0)<9thendout(3downto0)<=dout(3downto0)+1;c<='0';elsifdout(7downto4)<5thendout(3downto0)<=X"0";dout(7downto4)<=dout(7downto4)+1;elsedout<=X"00";c<='1';endif;endif;elsedout<="ZZZZZZZZ";endif;endprocess;endrtl;分和秒计数器模块仿真波形如下从仿真波形可知,当计数到59时,下一个时钟上升沿到来时就清零了,并且产生进位信号,符合设计要求.分和秒计数模块框图如下按键消抖动模块按键消抖动有很多方案,这里选择地是计数消抖,即只当有效电平到来后开始计数,当计数值大于一定值后再输出该有效电平,否则不输出,从而达到消抖目地.p1EanqFDPwVHDL地RTL描述如下:libraryieee;useieee.std_logic_1164.all;entityhaoinisport(din,clk:instd_logic;dout:outstd_logic);endhaoin;architecturertlofhaoinisbeginprocess(din)variablet:integerrange0to63:=0;beginifdin='1'thenifclk'eventandclk='1'thent:=t+1; 内容来自淘豆网www.taodocs.com转载请标明出处.
更多>> 相关文档
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人qiang19840906
  • 文件大小161 KB
  • 时间2020-08-07
文档标签