迪文科技论坛

 找回密码
 立即注册
搜索
查看: 8|回复: 0

【分享】2026 智能工程学院 张九霄基于迪文 T5L 串口屏的猜...

[复制链接]

1

主题

0

回帖

22

积分

新手上路

Rank: 1

积分
22
发表于 前天 16:45 | 显示全部楼层 |阅读模式
一、作品介绍本作品是基于迪文 T5L 串口屏(内置 8051 内核)开发的猜数字小游戏二次开发项目。屏幕上电后自动生成一个 1~50 之间的随机目标数字,玩家通过屏幕自带的数字键盘输入猜测数字,点击提交按钮后,MCU 自动将输入数字与目标数字进行比较,并在屏幕上给出 "猜大了"、"猜小了" 或 "猜对了" 的图标提示。猜对后自动跳转到结算页面,显示本次游戏结果,玩家可选择 "再来一局" 重新开始,或 "返回首页" 回到主界面。
整个游戏不需要外接任何硬件模块,仅使用迪文 DGUS 屏和 FPC 转接板即可完整运行。界面采用深蓝科技风格设计,四个页面层次分明,操作逻辑清晰,非常适合作为嵌入式二次开发入门练习项目。
二、工作原理本系统以迪文 T5L 芯片为核心,GUI 核负责界面显示和触控输入处理,8051 内核负责游戏逻辑运算,两者通过 VP(Variable Page)变量地址进行双向数据交互。系统工程运行如下图所示:

系统工作流程如下:
  • 上电后,8051 内核初始化系统,并默认显示首页(页 0)
  • 玩家点击 "开始游戏" 按钮,按钮向变量地址 0x5000 写入 1,通知 MCU 游戏开始
  • MCU 收到游戏开始信号后,自动生成一个 1~50 的随机数作为目标答案
  • 玩家点击输入框,DGUS 自动弹出数字键盘,输入完成后数字自动写入 0x5004
  • 玩家点击 "提交答案" 按钮,按钮向变量地址 0x500A 写入 1,通知 MCU 处理输入
  • MCU 读取 0x5004 中的输入数字,与目标数字比较:
    • 输入 > 目标 → 写入 0x5008=1,屏幕显示 "猜大了" 图标
    • 输入 < 目标 → 写入 0x5008=2,屏幕显示 "猜小了" 图标
    • 输入 = 目标 → 写入 0x5008=3,屏幕显示 "猜对了",并跳转到结算页
  • 结算页玩家可选择 "再来一局"(重新生成随机数)或 "返回首页"
主要变量地址分配如下表所示:

三、设计思路硬件部分本项目无需外接任何硬件模块,仅使用迪文 T5L 串口屏(800×480 分辨率)和 FPC 转接板。迪文 T5L 芯片内置 8051 内核,可独立运行 C51 程序,DGUS 软件负责界面设计和控件配置,两者通过共享内存地址通信,开发效率很高。
界面设计(DGUS 一次开发)界面设计共分为四个页面:
首页(页 0):深蓝色背景,居中显示 "猜数字小游戏" 标题,下方有黄色 "开始游戏" 按钮
  • 游戏页(页 1):显示输入框、提交按钮区域,玩家在此页面输入数字并提交
  • 键盘页(页 2):数字键盘布局,包含数字 0~9、退格、取消、确认按键,点击输入框自动弹出
  • 结算页(页 6):显示 "恭喜猜对" 提示,以及 "再来一局" 和 "返回首页" 两个按钮


代码设计(C51 二次开发)代码部分采用模块化设计,主要包含以下几个功能模块:
  • 随机数生成模块:采用线性同余法(LCG)生成随机数,公式为 seed = seed * 1103515245 + 12345,取高位字节后对 50 取模加 1,得到 1~50 之间的随机数
  • 游戏状态管理模块:通过变量地址 0x5000 管理游戏状态机,0 = 首页,1 = 游戏中,2 = 结算。MCU 主循环不断读取状态变量,根据不同状态执行对应的逻辑
  • 输入处理模块:利用 DGUS 内置的数据录入控件自动获取用户输入数字,不需要手动编写键盘扫描和数字拼接的代码,大大简化了开发流程
  • 比较判断模块:玩家提交后,MCU 读取输入数字与目标数字比较,将结果写入提示码变量 0x5008,屏幕上的图标显示控件根据提示码自动切换显示 "猜大了"、"猜小了" 或 "猜对了"
  • 页面跳转模块:猜对后,MCU 直接写入页面跳转寄存器 0x84,自动跳转到结算页面,不需要 DGUS 控件手动跳转
开发过程中遇到的问题及解决方法问题 1:提交按钮按下后 MCU 没有反应最开始使用基础触控控件配提交按钮,只配了页面跳转,没有配置按下时写变量到 0x500A 的地址。MCU 读不到提交按钮的信号,自然不会处理用户输入。后来换成按键返回控件,配置正确的变量地址和写入值,问题解决。
问题 2:猜对数字后没有跳转到结算页提示功能已经正常工作,但猜对后屏幕没有跳转。经过排查发现是页面跳转寄存器的写入方式需要调整,修改后跳转正常。
问题 3:图片格式不兼容最开始用第三方软件生成的 jpg 背景图,下载到屏幕后显示不出来。后来改用 bmp 格式,屏幕才能正常识别显示。
创新点
  • 善用 DGUS 内置功能:利用数据录入控件自动弹键盘,不需要手动编写键盘输入处理代码,开发效率高
  • 图标化提示:采用图标显示控件,根据提示码自动切换显示不同的提示图标,界面友好直观
  • 纯屏运行:仅用串口屏本身即可完成全部功能,不需要外接任何硬件模块,部署简单
  • 状态机设计:采用状态机模式管理游戏流程,逻辑清晰,易于扩展和维护
四、演示视频【DWIN DGUS 迪文屏猜数字小游戏】 https://www.bilibili.com/video/B ... 2386cd3014e45f1cedf
五、附件

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-11-9 12:41 , Processed in 0.039038 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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