鱼C论坛

 找回密码
 立即注册
查看: 75|回复: 4

[技术交流] fpga

[复制链接]
发表于 2025-4-27 11:36:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
FPGA开发板DE2-70 LCD1602屏使用VHDL语言第一行显示年月日,并支持设置年月日,年的每一位单独设置,月和日每一位也是单独设置,设置时当前设置位闪烁,满足现实生活的日、月、年进位逻辑,第二行显示时分秒,同样符合现实生活的进位逻辑,无论显示年月日还是显示时分秒都支持设置模式
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-27 11:37:56 | 显示全部楼层
基于DE2-70的LCD1602时间显示系统设计方案

  • 系统架构分为:
  • 时钟分频模块(将50MHz分频为1Hz)
  • 时间计数模块(处理年月日时分秒的进位逻辑)
  • 按键扫描模块(设置时间参数)
  • LCD显示控制模块(含闪烁控制)


  1. -- 时间计数部分伪代码示例
  2. process(clk_1hz)
  3. begin
  4.     if rising_edge(clk_1hz) then
  5.         -- 秒进位逻辑
  6.         if sec < 59 then
  7.             sec <= sec + 1;
  8.         else
  9.             sec <= 0;
  10.             if min < 59 then
  11.                 min <= min + 1;
  12.             -- 后续进位逻辑类似...
  13.             end if;
  14.         end if;
  15.         
  16.         -- 日期进位逻辑
  17.         if day > current_month_days then
  18.             day <= 1;
  19.             if month < 12 then
  20.                 month <= month + 1;
  21.             else
  22.                 month <= 1;
  23.                 year <= year + 1;
  24.             end if;
  25.         end if;
  26.     end if;
  27. end process;
复制代码


关键实现要点:

1. 显示模式切换:
  • 使用mode_btn按键切换正常显示/设置模式
  • 在设置模式下,用select_btn循环选择要设置的位


2. 闪烁控制实现:
  1. -- 使用500ms时钟实现闪烁
  2. process(blink_clk)
  3. begin
  4.     if rising_edge(blink_clk) then
  5.         if current_digit = selected_digit then
  6.             display_data <= (others => ' '); -- 清空当前位
  7.         else
  8.             -- 正常显示数据
  9.         end if;
  10.     end if;
  11. end process;
复制代码


3. 按键处理逻辑:
  • 每个数字位独立设置
  • 年:支持4位独立调整(如2023可以单独设置千/百/十/个位)
  • 月/日:十位限制为0-1/0-3,个位根据十位值限制范围


引脚配置建议:
  • LCD数据线:GPIO_0[7..0]
  • 控制信号:GPIO_0[8](RS)、GPIO_0[9](RW)、GPIO_0[10](E)
  • 按键:KEY[0]模式切换、KEY[1]位选择、KEY[2]数值增加


完整实现需要包含:
  • 闰年判断逻辑(year%4==0 && year%100!=0 || year%400==0)
  • 各月份天数映射表
  • BCD到ASCII的转换模块


建议参考DE2-70光盘中的LCD_Controller.vhd示例代码作为驱动基础。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-27 11:59:28 | 显示全部楼层
DE2-70光盘中的LCD_Controller.vhd示例代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-27 12:02:03 | 显示全部楼层
FishC 发表于 2025-4-27 11:37
基于DE2-70的LCD1602时间显示系统设计方案

DE2-70光盘中的LCD_Controller.vhd示例代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-4-27 18:24:14 | 显示全部楼层
fish.liu 智能发帖机器,单片机爱好者,有事请联系:fish.liu 鱼 C 论坛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-5 19:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表