当前位置: 首页 > news >正文

FPGA的数字钟带校时闹钟报时功能VHDL

名称:基于FPGA的数字钟具有校时闹钟报时功能

软件:Quartus

语言:VHDL

要求:

  1、计时功能:这是数字钟设计的基本功能,每秒钟更新一次,并且能在显示屏上显示当前的时间。
  2、闹钟功能:如果当前的时间与闹钟设置的时间相同,则扬声器发出闹音。
  3、校时设置:用户可以通过功能键重新进行时间设置.精确校时时还可以对秒进行清零

  4、整点报功能:如果当前时间为整点,则扬声器发出特定频率的整点报音。
  5、闹铃设置:用户可以通过功能键完成任意时间的闹铃设置。
  6、显示功能:正常计时状态6位数码管分别显示时、分、秒;校时状态显示时、分、闹钟设置状态显示当前闹钟的时分设置值。

  本课题要达到的目标是:在Quartus II软件上用VHDL语言编写相关的应用程序,利用FPGA完成数字时钟,使其功能基本得到实现。

部分代码展示

LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY Digital_clock ISPORT (clk_50M     : IN STD_LOGIC;key_0       : IN STD_LOGIC;--模式设置按键--4'd0:计时,4'd1:闹钟,4'd3:温度key_1       : IN STD_LOGIC;--设置修改key_2       : IN STD_LOGIC;--修改确认key_3       : IN STD_LOGIC;--修改时分秒,闹钟关闭one_wire    : INOUT STD_LOGIC;  -- 传感器One-Wire总线bell_out    : OUT STD_LOGIC;led_mode    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--led显示当前模式bit_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管位选seg_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选);
END Digital_clock;
ARCHITECTURE behave OF Digital_clock IS
--模块声明--响铃模块COMPONENT Bell ISPORT (clk_50M     : IN STD_LOGIC;clear_alarm : IN STD_LOGIC;alarm_hour_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);alarm_minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);alarm_second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);hour_time   : IN STD_LOGIC_VECTOR(7 DOWNTO 0);minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);bell_out    : OUT STD_LOGIC);END COMPONENT;--闹钟模块COMPONENT alarm_clock ISPORT (clk_50M     : IN STD_LOGIC;state_mode  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);set_time_key : IN STD_LOGIC;confirm_key : IN STD_LOGIC;change_time_key : IN STD_LOGIC;alarm_hour_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);alarm_minute_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);alarm_second_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;--显示模块COMPONENT display ISPORT (clk         : IN STD_LOGIC;state_mode  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
temperature : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--温度alarm_hour_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);alarm_minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);alarm_second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);hour_time   : IN STD_LOGIC_VECTOR(7 DOWNTO 0);minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);bit_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);seg_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;--设置模式COMPONENT set_mode ISPORT (clk_50M     : IN STD_LOGIC;set_mode_key : IN STD_LOGIC;led_mode    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);state_mode  : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;--分频模块COMPONENT fenping ISPORT (clk_50M     : IN STD_LOGIC;clk_1Hz     : OUT STD_LOGIC);END COMPONENT;--按键消抖COMPONENT key_jitter ISPORT (clkin       : IN STD_LOGIC;key_in      : IN STD_LOGIC;key_negedge : OUT STD_LOGIC);END COMPONENT;--计时模块COMPONENT jishi ISPORT (clk_50M     : IN STD_LOGIC;clk_1Hz     : IN STD_LOGIC;state_mode  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);set_time_key : IN STD_LOGIC;confirm_key : IN STD_LOGIC;change_time_key : IN STD_LOGIC;hour_time   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);minute_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);second_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;
COMPONENT ds18B20 is  
port(
clk : in std_logic;   --为50MHz 
dq  : inout std_logic;  
LED : out std_logic; 
LED2 : out std_logic; 
LED3 : out std_logic; 
rst: in std_logic; 
temp_h:out std_logic_vector(7 downto 0);
temp_l:out std_logic_vector(7 downto 0)
);  
end COMPONENT; SIGNAL state_mode            : STD_LOGIC_VECTOR(3 DOWNTO 0);--当前模式,4'd0:计时,4'd1:闹钟,4'd2:跑表SIGNAL hour_time             : STD_LOGIC_VECTOR(7 DOWNTO 0);--时SIGNAL minute_time           : STD_LOGIC_VECTOR(7 DOWNTO 0);--分SIGNAL second_time           : STD_LOGIC_VECTOR(7 DOWNTO 0);--秒SIGNAL alarm_hour_time       : STD_LOGIC_VECTOR(7 DOWNTO 0);--闹钟时SIGNAL alarm_minute_time     : STD_LOGIC_VECTOR(7 DOWNTO 0);--闹钟分SIGNAL alarm_second_time     : STD_LOGIC_VECTOR(7 DOWNTO 0);--闹钟秒SIGNAL key_0_negedge         : STD_LOGIC;--按键下降沿SIGNAL key_1_negedge         : STD_LOGIC;--按键下降沿SIGNAL key_2_negedge         : STD_LOGIC;--按键下降沿SIGNAL key_3_negedge         : STD_LOGIC;--按键下降沿SIGNAL clk_1Hz               : STD_LOGIC;--1Hz

  

本代码已在开发板验证,开发板资料见:

FPGA的数字钟校时闹钟报时VHDL_Verilog/VHDL资源下载

仿真图(文档点击可下载):

仿真图.doc

1. 分频模块

2. 设置闹钟模块

3. 响铃模块包括闹钟和整点报时

4. display显示模块

5. 计时模块

6. 模式设置模块

7. 按键模块

8. 整体仿真

相关文章:

FPGA的数字钟带校时闹钟报时功能VHDL

名称:基于FPGA的数字钟具有校时闹钟报时功能 软件:Quartus 语言:VHDL 要求: 1、计时功能:这是数字钟设计的基本功能,每秒钟更新一次,并且能在显示屏上显示当前的时间。 2、闹钟功能:如果当前的时间与闹钟设置的时…...

分析各种表达式求值过程

目录 算术运算与赋值 编译器常用的两种优化方案 常量传播 常量折叠 加法 Debug编译选项组下编译后的汇编代码分析 Release开启02执行效率优先 减法 Release版下优化和加法一致,不再赘述 乘法 除法 算术结果溢出 自增和自减 关系运算与逻辑运算 JCC指…...

企业风险管理策略终极指南

企业风险管理不一定是可怕的。企业风险管理是一个模糊且难以定义的主题领域。它涵盖了企业的多种风险和程序,与传统的风险管理有很大不同。 那么,企业风险管理到底是什么?在本文中,我们将确定它是什么,提出两种常见的…...

OpenCV之分水岭算法(watershed)

Opencv 中 watershed函数原型: void watershed( InputArray image, InputOutputArray markers ); 第一个参数 image,必须是一个8bit 3通道彩色图像矩阵序列,第一个参数没什么要说的。关键是第二个参数 markers,Opencv官方文档的说…...

npm 命令

目录 初始化 搜索 安装 删除 更新 换源 查看 其他 补充 1.初始化 npm init #初始化一个package.json文件 npm init -y | npm init --yes 2.搜索 npm s jquery | npm search jquery 3.安装 npm install npm -g #更新到最新版本 npm i uniq | npm ins…...

【bug 记录】yolov5_C_demo 部署在 rv1126

问题1:opencv find 不到 在 CMakeLists 中将正确的 OpenCV库 路径添加到 CMAKE_PREFIX_PATH 变量中 set(CMAKE_PREFIX_PATH “/mnt/usr/local” ${CMAKE_PREFIX_PATH}) 问题2: rknn_api.h 找不到 将该文件从别处复制到项目 include 文件夹 问题3&…...

[vue-admin-template实战笔记]

1.克隆项目 git clone gitgitee.com:panjiachen/vue-admin-template.git 2.安装依赖 npm install 3.运行项目就会自动打开网页,并且热部署插件 npm run dev 4.查看代码 //将vue-admin-template拖入到idea中即可查看代码 1)并且发现,常用的东西已经集…...

unity 限制 相机移动 区域(无需碰撞检测)

限制功能原著地址:unity限制相机可移动区域(box collider)_unity限制相机移动区域_manson-liao的博客-CSDN博客 一、创建限制区域 创建一个Cube,Scale大小1,添加组件:BoxCollder,调整BoxColld…...

Hudi第二章:集成Spark

系列文章目录 Hudi第一章:编译安装 Hudi第二章:集成Spark 文章目录 系列文章目录前言一、安装Spark1、安装Spark2.安装hive 二、spark-shell1.启动命令2.插入数据3.查询数据1.转换DF2.查询 3.更新4.时间旅行5.增量查询6.指定时间点查询7.删除数据1.获取…...

springboot和vue:八、vue快速入门

vue快速入门 新建一个html文件 导入 vue.js 的 script 脚本文件 <script src"https://unpkg.com/vuenext"></script>在页面中声明一个将要被 vue 所控制的 DOM 区域&#xff0c;既MVVM中的View <div id"app">{{ message }} </div…...

docker-compose内网本地安装

1&#xff1a;通过包管理器安装 Docker Compose&#xff0c;请按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保你的系统上已经安装了 Docker。如果尚未安装 Docker&#xff0c;请根据你的操作系统使用适当的包管理器进行安装打开终端&#xff0c;并运行以下命令下载 D…...

ThreeJs的场景实现鼠标拖动旋转控制

前面一个章节中已经实现在场景中放置一个正方体&#xff0c;并添加灯光使得正方体可见。但是由于是静态的还不能证明是3D的&#xff0c;我们需要添加一些控制器&#xff0c;使得通过鼠标控制正方体可以动起来&#xff0c;实现真正的3D效果&#xff0c;由此引入OrbitControls组件…...

jdk 管理工具比对 jEnv jabba SDKMAN

jEnv、jabba、SDKMAN 这三个 JDK 管理工具进行的比对&#xff1a; jEnv&#xff1a; 地址&#xff1a;https://github.com/jenv/jenv 作者&#xff1a;Gildas Cuisinier 最后更新时间&#xff1a;2021年5月26日 开发语言&#xff1a;Shell Jabba&#xff1a; 地址&#xff1…...

华为云云耀云服务器L实例评测|部署在线图表和流程图绘制工具drawio

华为云云耀云服务器L实例评测&#xff5c;部署在线图表和流程图绘制工具drawio 一、云耀云服务器L实例介绍1.1 云服务器介绍1.2 优势及其应用场景1.3 支持镜像 二、云耀云服务器L实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 drawio3.1 drawio 介绍3.2 Docker 环…...

elementui引入弹出框报错:this.$alert is not defined 解决方案

1.按需引入文件element.js 注意&#xff1a;引入Message&#xff0c;MessageBox两个组件就行&#xff0c;alert包括在MessageBox里面了。 之前我引入了Alert组件&#xff0c;发现不行 2.在vue的prototype里注册伪名字 3.组件里直接调用就行了 4.实现效果 我发现elementui调用…...

docker的组件和资源管理

Docker是一种开源的容器化平台&#xff0c;它提供了一种轻量级、可移植和可扩展的方式来打包、部署和运行应用程序。Docker的构成包括以下几个关键组件&#xff1a; Docker Engine&#xff1a;Docker Engine是Docker的核心组件&#xff0c;它负责管理容器的生命周期和资源隔离…...

SEO的优化教程(百度SEO的介绍和优化)

百度SEO关键字介绍&#xff1a; 百度SEO关键字是指用户在搜索引擎上输入的词语&#xff0c;是搜索引擎了解网站内容和相关性的重要因素。百度SEO关键字可以分为短尾词、中尾词和长尾词&#xff0c;其中长尾词更具有针对性和精准性&#xff0c;更易于获得高质量的流量。蘑菇号-…...

Tomcat以及UDP

一、Tomcat 服务端 自定义 S Tomcat服务器 S &#xff1a;Java后台开发 客户端 自定义 C 浏览器 B 认识一些常用的目录&#xff1a; bin&#xff1a;存放开始和结束的程序 conf&#xff1a;配置文件 lib&#xff1a;组成包 logs&#xff1a;输出日志 webapps&#x…...

NLP 04(GRU)

一、GRU GRU (Gated Recurrent Unit)也称门控循环单元结构,它也是传统RNN的变体,同LSTM一样能够有效捕捉长序列之间的语义关联&#xff0c; 缓解梯度消失或爆炸现象&#xff0c;同时它的结构和计算要比LSTM更简单,它的核心结构可以分为两个部分去解析: 更新门、重置门 GRU的内…...

BUUCTF reverse wp 51 - 55

findKey shift f12 找到一个flag{}字符串, 定位到关键函数, F5无效, 大概率是有花指令, 读一下汇编 这里连续push两个byte_428C54很奇怪, nop掉下面那个, 再往上找到函数入口, p设置函数入口, 再F5 LRESULT __stdcall sub_401640(HWND hWndParent, UINT Msg, WPARAM wPara…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...