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

FPGA设计实例——基于FPGA的简易数字时钟设计_OLED显示

一、概述

基于橙月FPGA开发板设计一个简易数字时钟,并显示到OLED显示屏中,要求能够显示星期几、时钟、分钟和秒钟,并且板载的4个按键分别可以进行天数增加、时钟增加、分钟增加和分钟减小,同时即将到达整点时,LED闪烁进行报时。

本工程参考的是微信公众号“FPGA之旅”的开源工程:Oled数字时钟,以及本公众号上一篇文章《基于FPGA的IIC OLED字符显示系统》的内容,并在此基础上进行修改得到,如增加自定义的数字时钟计时模块、修改状态机跳转逻辑,直接上电后即可依次实现初始化和清零操作,并进入数字时钟的显示界面。

二、实验平台搭建

本系统整体连接如图1所示,将OLED模块直接插入FPGA开发板,FPGA开发板通过IIC接口驱动显示屏显示字符。

主控芯片采用Intel的Cyclone IV E系列FPGA,具体型号是EP4CE6E22C8N,该芯片具有6272个逻辑单元,270kbits嵌入式存储器,2个通用PLL,逻辑资源丰富。开发板具有摄像头接口、VGA接口和SDRAM芯片,是一款性价比极高的图像处理开发板,同时包含按键、LED灯和OLED模块,适合于各种逻辑设计。

图1 系统整体连接实物图

本实验使用的OLED模块为0.96寸的蓝色OLED 4P模块,控制接口为IIC接口,分辨率为128*64,使用3.3V供电(也可以是5V供电),OLED屏幕内部驱动芯片为SSD1306。

三、关键模块介绍

接下来介绍本实验的关键模块:

(1)IIC总线驱动模块(I2C_Master.v):实现了IIC总线协议,直接用于控制外部的IIC OLED设备。

(2)初始化模块(Oled_Init.v):通过IIC接口,往OLED显示屏中特定的寄存器写入指令,完成OLED的初始化。

(3)屏幕清除模块(Oled_Clear.v):初始化完成后,OLED显示的数据杂乱无章,本模块将OLED的8个Page中的各列写0,实现屏幕清除操作。

(4)显示控制模块(Oled_DClock_control.v):本模块输出待显示字符的x、y坐标和显示字符索引,用于后续的字符显示。如果需要修改显示字符,则需要修改本模块中的字符数量和对应字符的x、y坐标。

(5)字符显示模块(Oled_DClock_Info.v):本模块内部实例化字符数据子模块,主要功能是根据显示控制模块的x、y坐标和显示字符索引,读取字符数据子模块的数据,通过IIC写入OLED中,完成对应字符的显示。

(6)字符数据模块(DClock_font_data.v):内部存储了取模软件生成的对应字模数据,如果需要修改待显示的字符,则需要同步修改本模块保存的字符。

(7)1s计数模块(clock_divide.v):本模块使用计数器,对50MHz的系统时钟进行1s计数,每计数1s,则生成一个时钟周期高电平的脉冲信号,用于后续的数字时钟计数。

(8)计时模块(clock_timer.v):数字时钟核心计时模块,输入包括4个校时按键消抖后的标志信号、1s计数标志信号等,输出星期几、小时数高位、小时数低位、分钟数高位、分钟数低位、秒钟数高位和秒钟数低位。

(9)按键消抖模块(key_filter.v):本模块实现的功能是对按键进行消抖,确保每按下一次按键,则输出一个时钟周期高电平的脉冲信号。

四、实验验证

本工程的管脚绑定结果如图2所示。

图2 管脚绑定

本工程的RTL视图如图3所示。

图3 RTL视图

本工程编译后的总结界面如图4所示。

图4 工程总结界面

最后,将编译生成的sof文件下载到FPGA开发板,OLED显示结果如图5所示。

图5 数字时钟显示结果

各个外设功能说明,如图6所示,具备天数调节、时钟调节、分钟调节和整点报时功能。

图6 各个外设功能说明

五、工程获取方法

加入知识星球——FPGA设计入门与提高,获取工程源码。

目前知识星球包括的优质FPGA工程如下:

【2-FPGA视频图像处理】_1_Sobel边缘检测

【3-FPGA数字信号处理】_1_DDS信号发生器

【3-FPGA数字信号处理】_2_CORDIC旋转模式实现sin和cos运算

【3-FPGA数字信号处理】_3_CORDIC向量模式实现arctan运算

【3-FPGA数字信号处理】_5_基于FPGA的CORDIC旋转模式实现sin和cos运算

【5-FPGA设计实例】_1_IIC OLED字符显示

【5-FPGA设计实例】_2_OLED 数字时钟

【5-FPGA设计实例】_3_DS18B20温度检测,OLED显示

【5-FPGA设计实例】_4_蓝牙通信_EGo1开发板

【5-FPGA设计实例】_5_超声波测距系统

【5-FPGA设计实例】_6_LCD1602驱动

http://www.rkmt.cn/news/1412145.html

相关文章:

  • Blender 3MF插件:3分钟解锁专业级3D打印工作流
  • 如何通过PingFangSC字体包实现跨平台中文字体显示一致性终极解决方案
  • VBA-JSON终极指南:3个简单步骤让Excel轻松处理JSON数据
  • GitHub中文界面3分钟安装指南:告别英文困扰,开启高效开源协作新时代
  • 2026最新岳阳市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • 猫抓插件终极指南:三步轻松下载网页视频和音频资源
  • UE4 UI优化实战:手把手教你打造可复用的‘CSS风格’圆角按钮组件库
  • PingFangSC字体深度解析:现代Web字体架构设计与性能优化实战指南
  • 手机号查QQ号:30秒找回遗忘账号的终极免费方案
  • 2026年AI工程伙伴实战:Claude Code、Cursor、Copilot与ChatGPT组合工作流
  • 别再手动处理海量点云了!基于PCL+Python的自动化3D数据处理管线搭建实战
  • yuzu模拟器120fps超频指南:告别卡顿的终极优化方案
  • 2026最新云浮市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • Windows下SSH连接全攻略:从PuTTY极简配置到MobaXterm全能工具箱
  • 如何优雅解决Zotero Style插件失效问题:从诊断到预防的完整指南
  • Topit终极指南:在macOS上实现高效多窗口管理的完整解决方案
  • 2026最新仪征市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • 2026最新运城市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • 别光抄答案!用Python函数通关Educoder计算思维训练,我总结了这5个实战技巧
  • Linux软件“绿色便携版”体验:以VLC和OBS为例,聊聊AppImage的优缺点和适用场景
  • LLM评估代理实战复盘:从沙盒Bug看自动化评估的系统工程挑战
  • 3分钟搞定!让洛雪音乐重新“开口唱歌“的终极音源修复方案
  • 2026最新武安市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • 2026最新枣阳市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • 生成matrix | cellranger | seeksoultools
  • 基于ChromaDB与Ollama构建本地化语义搜索引擎:从向量化原理到实践
  • 如何高效解决中文论文的参考文献格式难题:GB/T 7714 BibTeX样式实战指南
  • 记一次 minikube --driver=none 引发的血案:VMware NAT 网络集体瘫痪排查与修复实录
  • 2026最新武冈市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • 2026最新宜城市黄金回收白银回收铂金回收店铺实力口碑排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY