hi3516dv300硬件设计:计时器与数码管显示
需积分: 42 163 浏览量
更新于2024-08-10
收藏 195KB PDF 举报
"该文档是基于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硬件设计以及进行相关开发有着实际的指导价值。
2020-07-15 上传
2018-12-29 上传
点击了解资源详情
2022-08-03 上传
2021-09-29 上传
2022-08-03 上传
点击了解资源详情
集成电路科普者
- 粉丝: 44
- 资源: 3869
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载