FPGA入门:野火DEMO上的数码管控制与74HC595应用
需积分: 11 27 浏览量
更新于2024-07-15
收藏 11.75MB PDF 举报
本篇FPGA入门笔记主要围绕野火FPGA征途系列开发板中的数码管驱动部分展开,适合那些希望通过实践学习FPGA编程的人。核心内容涉及了八段数码管的工作原理,以及如何使用74HC595位移寄存器来控制其显示。以下是关键知识点的详细解析:
1. **数码管基础**:
八段数码管是一种常见的数字和字符显示器件,通常有共阴极和共阳极两种类型。在该笔记中,提到的是共阴极结构,其中低位(Q7)对应最低位,高位(Q0)对应最高位,且低电平有效。
2. **74HC595控制逻辑**:
- 8位串行输入(DS数据输入端口)接收要显示的数值,逐位通过Q7S与DS级联。
- 位选先传输最低位(Q7),段选先传输最高位(Q0),这有助于正确驱动数码管的各个段。
- **控制信号**:`stcp`(存储寄存器时钟输入片选与段选的产生)在14个信号传输完成后产生一个上升沿,用于同步显示更新。
- `shcp`(移位寄存器时钟输入)则用于产生四分频的移位时钟,确保数码管按顺序显示。
3. **代码实现**:
- `always @(posedges sys_clk or negedges sys_rst_n)`块展示了时序逻辑,当系统时钟上升沿或复位信号下降沿到来时,执行相应操作。
- 当系统处于复位状态时,数码管显示IDLE(闲置状态,不显示)。
- 使用`if-else`语句根据`num`变量的不同值(0-15分别对应0-9和A-F),将相应的数码管段配置到`seg`信号上。
- 当计数器`cnt_bit`达到13(所有位已传输完毕)且`cnt_4`为3(四分频的第三个周期),`stcp`变为高电平,触发数码管的显示更新。
4. **控制流程**:
- 数据首先通过串行方式写入74HC595的DS端口,然后通过时钟(shcp)的四分频移位操作,逐位传输到数码管各段。
- 段选信号由`stcp`控制,确保所有段同时显示正确的位置和状态。
- 通过这种方式,可以灵活地用FPGA实现对数码管的动态控制,实现简单的数字和字符显示功能。
这篇笔记提供了使用FPGA设计和驱动数码管的基本步骤,适合初学者理解数字逻辑和硬件编程在实际应用中的运作。通过理解和实现这些核心代码片段,读者可以逐渐掌握FPGA在嵌入式系统中处理I/O信号的技能。
2022-04-22 上传
2021-07-13 上传
2021-07-13 上传
2021-07-13 上传
2021-07-13 上传
LasdKhe
- 粉丝: 12
- 资源: 3
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案