77范文网 - 专业文章范例文档资料分享平台

VHDL设计的12进制可调时钟带闹铃功能 - 图文

来源:网络收集 时间:2019-04-23 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

VHDL设计的12进制可调时钟带闹铃功能

1、 顶层原理图如下:

2、 各模块生成的电路符号如下:

分频模块 计数模块 闹铃模块

二选一模块

设置闹铃时间模块 显示模块

3、 各模块程序清单如下:

(1)、分频模块(将开发板上的50Mhz的信号进行分频得

到1hz的计时信号和1khz的位选信号)

library ieee; --对开发板上的50MHZ信号进行分频得到1khz和1hz信号 use ieee.std_logic_1164.all;

entity div_freq is

port(freq_in:in std_logic;

flag_1khz,flag_1hz: buffer std_logic); end entity;

architecture one of div_freq is signal complete_1khz: integer range 0 to 50000; signal complete_1hz: integer range 0 to 1000; signal test_out:std_logic; begin process(freq_in) --此进程得到的是1khz的信号 begin if(freq_in 'event and freq_in='1') then complete_1khz<=complete_1khz+1; if(complete_1khz=50000) then complete_1khz<=0; elsif(complete_1khz<25000) then flag_1khz<='0'; else flag_1khz<='1'; end if; end if; end process; process(flag_1khz) --此进程是得到1hz信号 begin if(flag_1khz 'event and flag_1khz='1') then complete_1hz<=complete_1hz+1; if(complete_1hz=1000)then complete_1hz<=0; flag_1hz<='0'; else flag_1hz<='1'; end if; end if; test_out<=flag_1hz; end process; end architecture one;

(2)、计时模块

library ieee; --此模块是时分秒计时程序 use ieee.std_logic_1164.all;

entity counter is

port(flag_1hz:in std_logic; --1hz信号到来时开始计时

pause:in std_logic; --计时与调整的选择,决定是自动计时还是按

键调整时间

add_min:in std_logic; --按键调整分的信号 add_hour:in std_logic; --按键调整时的信号 cnt_60s:out integer range 0 to 59; --秒计数值 cnt_60m:out integer range 0 to 59; --分计数值 cnt_12h:out integer range 0 to 11); --时计数值 end entity;

architecture one of counter is signal sc_c:std_logic; --秒的进位信号 signal min_c:std_logic; --分的进位信号 signal selector_min:std_logic; --存放秒的进位信号或者分调整

的按键信号

signal selector_hour:std_logic; --存放分的进位信号或者时调整

的按键信号

begin process(flag_1hz) --此进程是进行60秒计时 variable cnt_60s_v:integer range 0 to 59; --存放秒计时

的中间变量,最后传到秒输出端cnt_60s

begin if(flag_1hz 'event and flag_1hz='1') then if(cnt_60s_v=59) then cnt_60s_v:=0; sc_c<='1'; else cnt_60s_v:=cnt_60s_v+1; sc_c<='0'; end if; end if; cnt_60s<=cnt_60s_v; --将计数的中间变量传给

秒的输出端

end process;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VHDL设计的12进制可调时钟带闹铃功能 - 图文在线全文阅读。

VHDL设计的12进制可调时钟带闹铃功能 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/620483.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: