vhdl课程设计(电子钟+闹铃)(2).doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
数字钟的设计之答禄夫天创作 "时间:二O二一年七月二十九日 " 一、系统功能概述 (一)、系统实现的功能: 1、具有"时"、"分"、"秒"的十进制数字显示(小时从00 ~ 23). 2、具有手动校时、校分、校秒的功能. 3、有按时和闹钟功能,能够在设定的时间发出闹铃声. 4、能进行整点报时.从59分50秒起,每隔2秒发一次高音"嘟"的信号,连续5次,最后一 次为高音"嘀"的信号. (二)、各项设计指标: 1、显示部份采纳的6个LED显示器,从高位至低位分别显示时、分、秒. 2、有一个设置调闹钟按时时间、正常时间的按钮,选择调的对象. 3、有三个按钮分别调时、分、秒的时间. 4、有一个按钮用作开启/关闭闹铃. 5、另外需要两个时钟信号来给系统提供脉冲信号,使时钟和闹钟正常工作,分别为1H z、1kHz的脉冲. 二、系统组成以及系统各部份的设计 1、系统结构描述//要求:系统(或顶层文件)结构描述,各个模块(或子法式)的功能 描述; 1. 系统的顶层文件: 1. 顶层文件图:(见下页) 2. 各模块的解释: (1)、7个输入量clk_1khz、clk_1hz、key_slt、key_alarm、sec_set、min_set、 hour_set: 其中clk_1khz为闹铃模块提供时钟,处置后能发生"嘟"、"嘀"和变动的闹铃声音; clk_1hz为计时模块提供时钟信号,每秒计数一次;key_slt选择设置对象:按时或正 常时间;key_alarm能够开启和关闭闹铃;sec_set、min_set、hour_set用于设置时 间或按时,与key_slt相关联.各按键输出为脉冲信号. (2)、CNT60_A_SEC模块: 这个模块式将clk_1hz这个时钟信号进行60进制计数,并发生一个分钟的触发信号. 该模块能将以后计数值实时按BCD码的格式输出.将该输出接到两位LED数码后能时时 显示秒的状态.通过alarm_clk可以选择设置对象为时间还是按时值.在设置时间模式 上,key上的一个输入脉冲可以将clk的输入信号加一.在设置按时模式上,key上的脉冲 只修改按时值,不影响时间脉冲clk的状态. 同时该模块具有两个输出口out_do、out_di来触发整点报时的"嘟"、"嘀"声音. (3)、CNT60_A_MIN模块: 这个模块式将CNT60_A_SEC的输出信号进行60进制计数,并发生一个时位的触发信号 .该模块能将以后计数值实时按BCD码的格式输出.将该输出接到两位LED数码后能时时 显示分的状态.通过alarm_clk可以选择设置对象为时间还是按时值.在设置时间模式 上,key上的一个输入脉冲可以将clk的输入信号加一.在设置按时模式上,key上的脉冲 只修改按时值,不影响时间脉冲clk的状态. 同时该模块具有三个输出口out_do、out_di、out_alarm来触发整点报时的"嘟"、 "嘀"、闹铃声音. (4)、CNT24_A_HOUR模块: 这个模块式将CNT60_A_MIN的输出信号做24进制计数.该模块能将以后计数值实时按 BCD码的格式输出.将该输出接到两位LED数码后能时时显示时的状态.通过alarm_clk 可以选择设置对象为时间还是按时值.在设置时间模式上,key上的一个输入脉冲可以 将clk的输入信号加一.在设置按时模式上,key上的脉冲只修改按时值,不影响时间脉 冲clk的状态. 同时该模块具有一个输出口out_alarm来触发整点报时的闹铃声音. (5)、PWM_OUT模块: 该模块为PWM发生模块,通过EN可开启和关闭PWM输出.模块根据CLK信号二分频发生 的高高音,并组合,能输出三种声音状态——"嘟"、"嘀"、闹铃.而该三种声音要被秒、 分、时的输出触发才华输出PWM. 2. 系统各个模块的VHDL法式: (1)、CNT60_A_SEC模块: 法式源代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt60_a_sec is port( clk,clr,enb: in std_logic;-- clk:时钟输入信号,clr:清零端,enb:使能端 key: in std_logic;--输入按键脉冲,调整闹铃按时或时间 alarm_clk: in std_logic;--1:alarm 0:clk-- 设置模式选择:闹铃调节模式、时间调节模式 qout_sl: out std_logic_vector(3 downto 0); --显示输出秒的低位 qout_sh: out std_logic_vector(3 downto 0);--显示输出秒的高位 co: out 【VHDL课程设计——电子钟与闹钟系统】 本次VHDL课程设计的目标是构建一个数字钟系统,包括时、分、秒的十进制显示,并具备手动校时、定时闹钟及整点报时功能。设计中,系统采用6个LED显示器来显示时间,同时提供了设置和控制闹钟的按钮。 一、系统功能详解: 1. 时间显示:系统能以00到23的小时格式,以及10进制的分钟和秒进行显示。 2. 手动校时:用户可以通过三个独立的按钮调整时、分、秒。 3. 定时闹钟:系统允许用户设置特定时间,当到达设定时间时,会发出闹铃声。 4. 整点报时:在每小时的最后一分钟,即59分50秒开始,每隔2秒发出高音信号,连续5次,最后以高音“嘀”作为整点报时。 二、设计指标与系统组成: 1. 显示部分:6个LED显示器分别显示时、分、秒,高位到低位排列。 2. 控制按钮:一个按钮用于选择校时对象(正常时间或闹钟时间),三个按钮分别用于调整时、分、秒,还有一个按钮用于开启/关闭闹钟。 3. 时钟信号:系统需要两个时钟源,1Hz用于计时模块,1kHz用于闹钟模块。 三、系统模块解析: 1. 顶层文件:顶层文件整合了所有子模块,包括输入和输出接口。 2. 子模块: - CNT60_A_SEC:接收1Hz时钟,每秒计数一次,产生60进制计数并转换为BCD码输出,同时触发分钟信号。alarm_clk用于选择时间设置模式或闹钟设置模式,按键脉冲可以增加计数值或修改按时值。 - CNT60_A_MIN:接收CNT60_A_SEC的输出,进行60进制计数,生成小时触发信号,同样有时间/按时模式选择。 - CNT24_A_HOUR:对CNT60_A_MIN的输出进行24进制计数,输出小时状态,同样支持两种模式。 - PWM_OUT:通过EN开关控制PWM输出,根据CLK信号生成“嘟”、“嘀”和闹铃声音,由秒、分、时的输出触发。 四、VHDL程序实现: 每个模块如CNT60_A_SEC等都有对应的VHDL程序,定义了输入输出接口和逻辑操作,如计数、条件判断、BCD编码等。例如,CNT60_A_SEC模块的源代码会包含计数器、状态机以及根据alarm_clk选择模式的逻辑。 综上,这个VHDL课程设计涵盖了数字逻辑设计的基础知识,包括计数器、状态机、时钟管理、模式选择、BCD编码和解码、以及模拟音频信号生成。通过这个设计,学生可以学习到如何使用VHDL语言创建复杂的数字系统,并了解实际电子钟与闹钟系统的内部工作原理。
剩余25页未读,继续阅读
- 粉丝: 193
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 第01章 Linux系统概述
- JavaSwing+mysql图书管理系统完整源码+数据库(高分项目)
- 史上最简单最容易让web初学者理解的基础知识(仅针对个人)
- delphi IDE 插件DelphiIDEPlugin-SearchProject,用于从项目组中查找项目
- 施工人员检测12-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 基于java的图书管理系统的设计与实现源码+数据库(高分项目)
- boos编译好的库文件
- JSON数据构造.mp4
- JavaEE课程大作业基于遗传算法的高校排课系统源码+数据库+文档说明(高分项目)
- cmake-3.9.0-rc3-win64-x64