hi3516dv300硬件设计:计时器与数码管显示
下载需积分: 42 | PDF格式 | 195KB |
更新于2024-08-10
| 182 浏览量 | 举报
"该文档是基于hi3516dv300硬件设计的用户指南,涉及了计时、按键消抖处理、数码管动态扫描显示等知识点,以及Verilog编程实现的3-8译码器和1位数码管动态显示的示例。"
在hi3516dv300的硬件设计中,计时是关键部分。通过一个25位计数器`count`,当计数值达到25'd25000000(即0.5秒)时,会触发一个秒标志`sec`的翻转,实现秒的更新。计数器在达到这个阈值后会被清零,以便重新开始计数。这种设计可以用于实现简单的定时或计时功能。
在按键处理部分,采用消抖技术来确保按键输入的稳定性。`key_done`信号用于表示按键稳定无抖动,通过三个dout寄存器(dout1、dout2、dout3)的乒乓操作实现。当检测到`key_done[0]`的下降沿时,会切换`keyen`状态,从而将琴键开关转换为乒乓开关,减少因机械抖动引起的误触发。
数码管动态扫描显示部分,使用了一个计数器`count[17:15]`,其每隔1毫秒改变一次,以控制数码管的扫描显示。根据`count[17:15]`的值,选择不同的数据显示,例如小时的个位、十位等,并通过`disp_dat`进行数据传输。同时,`count[17:15]`也用于选择数码管的显示位,通过设置不同的位选信号`sm_bit_r`,实现8位数码管的逐位点亮,从而达到动态显示的效果。
此外,文档还介绍了如何使用Verilog实现3-8译码器。这个模块`decoder_38`接收3位输入`key_in`(通常由拨码开关提供),并根据输入值驱动8个LED显示不同的状态。每个输入组合对应一个特定的8位输出,使LED灯亮起特定的模式。
最后,1位数码管动态显示的示例`SMG_LED`模块,展示了如何利用分频计数器`count`产生数码管的显示数据。它接收系统时钟`clk_50M`,并根据时钟的上升沿或复位信号更新计数器。通过`count[27:24]`的值,确定当前应显示的数字,并通过`dataout`输出对应的数码管编码。同时,`led_bit`信号用于控制数码管的位选,使得数码管能逐位点亮以实现动态显示。
这些内容涵盖了数字逻辑设计的基础知识,包括计时、消抖处理、译码器和数码管显示,都是嵌入式系统和数字电路设计中的重要概念。对于理解hi3516dv300硬件设计以及进行相关开发有着实际的指导价值。
相关推荐








集成电路科普者
- 粉丝: 44
最新资源
- Node.js基础代码示例解析
- MVVM Light工具包:跨平台MVVM应用开发加速器
- Halcon实验例程集锦:C语言与VB的实践指南
- 维美短信API:团购网站短信接口直连解决方案
- RTP转MP4存储技术解析及应用
- MySQLFront客户端压缩包的内容分析
- LSTM用于PTB数据库中ECG信号的心电图分类
- 飞凌-MX6UL开发板QT4.85看门狗测试详解
- RepRaptor:基于Qt的RepRap gcode发送控制器
- Uber开源高性能地理数据分析工具kepler.gl介绍
- 蓝色主题的简洁企业网站管理系统模板
- 深度解析自定义Launcher源码与UI设计
- 深入研究操作系统中的磁盘调度算法
- Vim插件clever-f.vim:深度优化f,F,t,T按键功能
- 弃用警告:Meddle.jl中间件堆栈使用风险提示
- 毕业设计网上书店系统完整代码与论文