基于FPGA的可调在线时钟的数码管动态显示

FPGA之数码管动态显示 实现数码管动态计数,每隔0.1秒计数一次 数码管连接方式不同分为共阴极数码管和共阳极数码管。 数码管引脚: 上图两个com引脚实际是连在一起的,其他引脚的公共端,称为位选,位选的高低电平决定改数码管能否点亮,其他管脚为段选信号,决定数码管上哪个二极管发光。 共阴极数码管连接方式 共阳极数码管连接方式: 共阳八段极数码管真值表 数码管原理图 以第五个数码管为例,LEDSEG CH6通过47... 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Hello,大家好久不见,又过去了不知道多久,终于又来了一次更新,本次更新主要是在之前的文章基础上组合成一个完整的项目,在规划篇章中介绍了采用的FPGA开发板是小梅哥的ACX720开发板,内置pcf8563芯片,通过配置8563芯片可动态获取当前日期和时钟,好了话不多说,直接开始。

一、PCF8563介绍

本节主要是介绍PCF8563,PCF8563 是 PHILIPS 公司推出的一款工业级内含 I2C 总线接口功能的具有极低功耗的CMOS 多功能时钟/日历芯片。PCF8563 的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。是一款性价比
极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池
供电的仪器仪表等产品领域,其内部结构图如下:
在这里插入图片描述
从结构图可知,PCF8563配置是采用IIC配置,故直接调用之前文章的IIC代码即可。

二、PCF8563代码配置设计

PCF8563的配置主要分三步,第一步,上电初始化;第二步,配置时间日期;第三步,回读时间日期,话不多说,直上干货。

module i2c_pcf8563 #
(
   parameter         UCNT = 25          ,
   parameter         DWID = 8
)
(
   input              clk_sys           ,
   input              rst_sys           ,
   //
   input              time_ena          ,
   input     [23:0]   time_dat          ,
   input              data_ena          ,
   input     [31:0]   data_dat          ,
   //
   input              rw_mode           ,
   output reg[31:0]   data_read         ,
   output reg[23:0]   time_read
);

// ********************************************************
// localparam
// ********************************************************
localparam IDLE      = 4'd0 ;
localparam INIT      = 4'd1 ;
localparam INIT_DONE = 4'd2 ;
localparam TIME      = 4'd3 ;
localparam TIME_DONE = 4'd4 ;
localparam DATA      = 4'd5 ;
localparam DATA_DONE = 4'd6 ;
localparam READ      = 4'd7 ;
localparam READ_DONE = 4'd8 ;

localparam PCF_INT  = 8'h00 ;
localparam PCF_DAT  = 8'h05 ;
localparam PCF_WEK  = 8'h06 ;
localparam PCF_MON  = 8'h07 ;
localparam PCF_YAR  = 8'h08 ;
localparam PCF_SEC  = 8'h02 ;
localparam PCF_MIN  = 8'h03 ;
localparam PCF_HOU  = 8'h04 ;

// ********************************************************
// signal
// ********************************************************
reg      [3:0]             cstate = IDLE        ;
reg      [3:0]             nstate = IDLE        ;
wire                       rst_nedge            ;

wire                       i2c_w_done           ;
wire                       i2c_r_done           ;
wire                       done_nedge_w         ;
wire                       done_nedge_r         ;

reg      [3:0]             time_cnt = 0         ;
reg      [3:0]            
FPGA 驱动数码管动态显示(Verilog&Vivado) 本章将实现 FPGA 驱动数码管动态显示并提取出实现的电路结构,从电路结构入手编写代码,仿真对设计进行验证。最终板级调试时使用 Virtual Input/Output(VIO,虚拟输入/输出端口工具),输入需要显示的数据,数码管则显示对应数值。 阅读详情

相关推荐

FPGA基本实验之数码管的动态显示

关于数码管的基本知识大家可以参考我上一篇文章数码管的静态显示,

weixin_66966390的博客 7010

【 FPGA 】四位16进制的数码管动态显示设计

数码管的动态显示是对每个数码管采用分时复用的方式轮流点亮每个数码管,在同一时间只会点亮一个数码管。 分时复用的扫描显示利用了人眼的视觉暂留特性,如果公共端的控制信号刷新速度足够快,人眼就不会区分出LED的闪烁,认为4个数码管是同时点亮。 如下图: D1、D2、D3、D4就是公共控制端口,也就是片选端,控制哪一个数码管被选中。 而abcdefg是段选,用来控制数码管的显示内容。 下面代...

Reborn Lee 1万+

【FPGA】数码管动态显示之电子时钟

文章目录一、数码管动态显示的原理二、设计思路三级目录 一、数码管动态显示的原理 数码管动态显示其实就是数码管静态显示的升级版,给的段选信号是一样的,就是显示哪个字,但是不一样的是取决于给哪个位选信号,就是显示哪个数码管,给一个计数器,计数器结束就换下一个位选,以达到肉眼看不到闪烁的效果,就觉得数码管全部都在亮,其实就有个动态扫描的过程的。 二、设计思路 任务要求 设计一个时钟 这里的任务就比之前的数码管静态显示的任务要求高一点了,但学会了动态显示的原理,就不那么难了 思路如下:设计一个时钟无非就是解决

weixin_45888898的博客 7351

FPGA数字时钟计数器

FPGA数字时钟计数器 好久没有登博客了,周末出去浪了一转!!! 今天给大家讲一下数字时钟计数器,上个月写的。只是简单的数字时钟计数,没有设置闹钟、设置时间和秒表的功能,下次我会发一个带有功能的数字时钟,今天只是简单的数字时钟计数器。 由于我的板子只有4位数码管,因此该数字时钟我将用两位数码管进行分钟显示,两位数码管进行时钟显示,用一个LED灯进行秒钟闪烁。 (1)分频 数字时钟计数器,最重要的是...

grace_fight的博客 1万+

数码管时钟显示按键控制 fpga实现

目录原理实现 原理 数码管原理 并且该数码管是共阳极,所以段选低电平有效,片选低电平有效 段选共用8个引脚 实现 思路: 分三个模块实现: 1)按键消抖 :按键消抖 2)计数器模块:产生需要的时钟信号数据 3)数码管驱动:将输入的数据转换为段选、片选信号 1)按键消抖: 这里按键数量用参数代替,增加可重用性 用同步打拍方式检测下降沿 用计数器自检测到下降沿开始计数20ms 输出信号为计数器计数完成后输入取反的值 module key_debounce #(parameter KEY_W = 3,TIME_2

xianyudewo的博客 3906

基于FPGA的数字钟——(三)时钟显示模块(数码管)

基于FPGA的数字钟——(三)数码管显示模块 硬件原理 本设计中使用 6 个共阳数码管,可以显示 6 个数字(包含小数点) 。电路用 PNP管来反向驱动并且控制列扫描信号来选择哪个数码管。而且所有的 6 个数码管的“段选信号”(LEDA … LEDH)都共用驱动引脚(LED_A~LEDH)。数码管的所有驱动信号都是“低电平有效”。具体的原理图设计如下图所示: 数码管扫描原理 单个数码管可以采用静...

qq_43650722的博客 1万+

FPGA_时钟显示(时钟可调)

FPGA时钟显示、数码管动态显示、时钟可调

m0_72885897的博客 2794

FPGA外挂PCF8563实现RTC实时时钟与数码管显示

实时时钟(RTC)是嵌入式系统中维持精确时间基准的关键模块,其核心在于低功耗计时、掉电保持与标准总线通信能力。基于I²C协议的专用RTC芯片(如PCF8563)通过外部晶振(32.768kHz)分频生成秒脉冲,结合纽扣电池供电路径,可实现长期断电续走。在FPGA平台中,需软实现I²C控制器以满足严格时序,并处理BCD编码数据与数码管段码的映射关系。该方案广泛应用于工业控制、智能仪表和数据记录仪等对时间可靠性要求严苛的场景,是嵌入式硬件设计中典型的‘外设驱动+人机交互’综合实践。

weixin_33557333的博客 95

FPGA实现RTC实时时钟与数码管动态显示系统

实时时钟(RTC)是嵌入式系统中提供精准时间基准的核心外设,其数据需通过人机接口直观呈现。基于I²C协议的RTC芯片(如PCF8563)输出压缩BCD码,天然适配数码管显示需求;动态扫描驱动则利用分时复用原理,在有限IO资源下实现多位数字稳定显示。该方案融合硬件消抖、同步边沿检测、状态机模式切换与原生BCD解包等关键技术,兼顾实时性、可靠性和低资源开销,广泛应用于工业控制面板、智能仪表及教学开发平台等场景。本文详解基于FPGA的RTC+数码管显示系统设计与调试实践。

weixin_33557333的博客 60

I2C接口RTC实时时钟pcf8563读写Verilog驱动源码Quartus工程文件.zip

I2C接口RTC实时时钟pcf8563读写Verilog驱动源码Quartus工程文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module rtc( //system clock input sys_clk , // 系统时钟 input sys_rst_n , // 系统复位 //pcf8563 interface output rtc_scl , // i2c时钟线 inout rtc_sda , // i2c数据线 //user interface input key2 , // 开关按键 output [5:0] sel , // 数码管位选 output [7:0] seg_led // 数码管段选 ); //parameter define parameter SLAVE_ADDR = 7'h51 ; // 器件地址 parameter BIT_CTRL = 1'b0 ; // 字地址位控制参数(16b/8b) parameter CLK_FREQ = 26'd50_000_000; // i2c_dri模块的驱动时钟频率(CLK_FREQ) parameter I2C_FREQ = 18'd250_000 ; // I2C的SCL时钟频率 parameter POINT = 6'b010100 ; // 控制点亮数码管小数点的位置 //初始时间设置,从高到低为年到秒,各占8bit parameter TIME_INI = 48'h18_05_23_09_30_00; //wire define wire clk ; // I2C操作时钟 wire i2c_exec ; // i2c触发控制 wire [15:0] i2c_addr ; // i2c操作地址 wire [ 7:0] i2c_data_w; // i2c写入的数据 wire i2c_done ; // i2c操作结束标志 wire i2c_ack ; // I2C应答标志 0:应答 1:未应答 wire i2c_rh_wl ; // i2c读写控制 wire [ 7:0] i2c_data_r; // i2c读出的数据 wire [23:0] num ; // 数码管要显示的数据 wire key_value ; // 按键消抖后的数据 //***************************************************** //** main code //***************************************************** //例化i2c_dri,调用IIC协议 i2c_dri #( .SLAVE_ADDR (SLAVE_ADDR), // slave address从机地址,放此处方便参数传递 .CLK_FREQ (CLK_FREQ ), // i2c_dri模块的驱动时钟频率(CLK_FREQ) .I2C_FREQ (I2C_FREQ ) // I2C的SCL时钟频率 ) u_i2c_dri( //global clock .clk (sys_clk ), // i2c_dri模块的驱动时钟(CLK_F

前端监控体系:从Sentry到LogRocket错误追踪

Sentry是一款开源的实时错误追踪系统,支持多种语言和框架,包括JavaScript、React、Vue等。它提供了丰富的错误信息、堆栈跟踪和环境数据,帮助开发者快速定位和解决问题。LogRocket是一款前端监控和用户行为分析工具,它提供了视频回放、性能监控、错误追踪等功能。与Sentry不同,LogRocket更注重用户行为的全面分析。前端监控体系是确保应用稳定性和用户体验的重要保障。通过集成Sentry和LogRocket等监控工具,开发者可以实时追踪应用中的错误和用户行为,快速定位和解决问题。

shejizuopin的博客 1312

ArcGIS通过已知坐标点转面(通过excel文件,有工具可批量生成面要素)

通过使用ArcGIS中的工具,将坐标点XY数据转换成可视化的点线面矢量数据,更加方便快捷有效的获取对应信息

qq_41046162的博客 3万+

【C++/嵌入式梳理】bootloader

【C++/嵌入式笔试面试八股】bootloader

Hi 1207

YOLO11-Seg优化:卷积变体系列篇 | 动态蛇形卷积(Dynamic Snake Convolution) | ICCV2023

动态蛇形卷积(Dynamic Snake Convolution),增强微小特征提取能力,引入到YOLO11-Seg,与C3k2结合实现二次创新

会AI的学姐 368

195、大模型蒸馏与压缩:知识蒸馏与VLA模型轻量化

折腾完这一整套流程,最大的感悟是:知识蒸馏不是简单的模型压缩,而是知识迁移的工程艺术。每一步都有坑,每个参数都可能影响最终性能。给后来者的建议是:先别急着上蒸馏,把teacher模型的推理延迟和显存占用测清楚,确定瓶颈在哪里——是计算量太大还是内存带宽不够,这决定了你该用蒸馏还是量化还是剪枝。蒸馏训练时一定要监控每一层的特征对齐loss,别只看总loss。如果某一层的对齐loss特别高,说明student在这一层学歪了,需要调整该层的损失权重或者增加该层的投影头容量。

sundong_81的博客 110

YOLO + SubspaceAD:一张良品图,检出所有未知缺陷

当YOLO遇上子空间建模,工业质检正迎来从“见多识广”到“举一反三”的质变时刻。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 494

pg lib的信息及产生pg lib的三种方法

pg lib相比basic lib会多几方面pg 信息。除了pg arc(pg pin)以外,liberty还提供电压值,以及pmk cell的power_down_function功能相关信息。1.电压值除了常见的primary pg还有secondary pg和衬底。2.pg arc后端需要去做redhawk功耗分析,需要pg liberty提供pg arc,如果没有pg arc就需要手动去写custom lib代替3.pmk cell的power_down_function。

m0_61544122的博客 595

Vue3 + uniapp 踩坑:iOS 真机调试一直报错Maximum call stack size exceeded,和(in promise)MiniProgramError err的解决方法

不是你写错代码,是微信开发工具和 iOS 真机调试的兼容问题。开个空项目都报错,勾个设置就没问题,不是你,是工具的锅。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1264

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 基于FPGA的动态数码管显示
下一篇: 基于FPGA实现红外遥控信号接收功能
junpingc
博客等级 码龄4年 58粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值