迪文科技论坛

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

【分享】2026智能工程学院毕含昊&周忠鲁触摸屏扫雷游戏

[复制链接]

1

主题

0

回帖

22

积分

新手上路

Rank: 1

积分
22
发表于 前天 17:05 | 显示全部楼层 |阅读模式
一、作品简介
本作品基于迪文 T5L 触摸屏内置 C51 OS 内核开发,无需外接单片机,游戏逻辑直接在屏幕内部运行。程序启动后先执行sys_init()完成系统初始化,之后进入主循环持续运行。程序定义了START_WIN_NUM_VP为 0x2000,用来接收界面上 “开始游戏” 按钮的触发信号。在主循环中,程序通过sys_read_vp()不断读取 0x2000 这个 VP 地址的数据,判断是否触发重置信号。当读到信号值等于 1 时,代表按下开始游戏按钮,程序先把变量 num 清零,再调用sys_write_vp()将 0 写入 0x2000,清除触发标记;随后通过循环,依次向 VP 地址 0x1000 到 0x1067 写入数值 0,将棋盘上所有格子的图标统一恢复成未翻开的初始状态。界面在 DGUS 软件中设计,棋盘的每一个图标显示控件分别绑定 VP 地址 0x1000~0x1067,当 C51 程序修改对应 VP 的值,屏幕就会自动刷新方格显示图案。触控信号由界面的基础触控控件上报,程序识别按键后换算成棋盘行列编号,完成格子翻开、地雷判断、空白区域展开、胜负判定等游戏逻辑。整个系统依靠 OS 程序读写 VP 变量,和 DGUS 界面控件完成数据交互,实现扫雷游戏的触控交互与画面刷新。



二、工作原理
本系统以迪文 T5L 触摸屏为核心载体,利用屏幕内置的 C51 OS 内核运行游戏程序,不需要外接单片机。整体分为界面层、触控信号采集层、游戏逻辑运算层、显示刷新层四个部分协同工作。首先在 DGUS 软件中完成界面布局,棋盘每一格由图标显示控件绑定 VP 变量用来展示图案,上层叠加基础触控控件,并设置为返回键值模式。当手指点击棋盘格子或者开始游戏按钮时,触控控件会把对应的键值上报给屏幕内置 OS。C51 主循环中通过sys_get_key()持续轮询读取按键信号,拿到键值后换算出行号、列号。程序在 VR 存储区(起始地址 0x5000)保存地雷分布、格子翻开状态这些游戏数据。收到点击信号后,先读取对应位置的状态:如果是地雷,触发失败逻辑;如果是空白格子,执行递归算法自动展开相连空白区域;当所有无雷格子全部翻开,判定游戏胜利。每次格子状态发生变化后,程序调用sys_write_vp修改对应 VP 地址的数据,DGUS 收到 VP 数值变化,自动刷新图标控件,切换成未翻开、数字或者地雷图标,完成画面更新。点击开始游戏按键时,程序清空棋盘状态、重新随机生成地雷位置,同时刷新全部棋盘 VP,实现游戏重置。



三、设计思路
本项目以迪文 T5L 智能触摸屏作为硬件核心,利用屏幕内置的 C51 操作系统内核开发扫雷小游戏,舍弃外接 STM32 等主控单片机,简化硬件结构,减少外围接线,降低整体硬件调试难度。整体设计分为人机界面设计、游戏逻辑程序设计、数据交互设计三个部分。界面部分使用 DGUS 组态软件完成布局,搭建 8 行 13 列共 104 个格子的棋盘,每个方格对应的图标控件依次绑定 VP 地址 0x1000~0x1067,用于显示格子不同状态;单独设置重启游戏按钮,绑定 VP 地址 0x2000,作为游戏重置的触发信号,棋盘区域配置触控控件,采用返回键值的方式向 OS 程序传递点击信息。程序采用固定地雷布局方案,规避随机布雷带来的编译报错、内存占用过大等问题,保证程序稳定编译、正常运行。程序上电后首先执行系统初始化,随后进入持续轮询的主循环,一方面不断读取 0x2000 地址的标志信号,判断是否触发重置操作,如果收到重置指令,就清除标志位,并循环将所有棋盘 VP 变量写入 0,把所有方格恢复为未翻开的初始状态,重新加载预设地雷布局;另一方面持续读取触控按键信号,将获取到的键值换算成棋盘对应的行号与列号,依次完成格子翻开、地雷检测、周边雷数统计、空白区域递归展开、游戏胜利与失败判定等核心逻辑。程序和界面依靠读写 VP 变量完成联动,程序修改 VP 数值后,DGUS 界面自动刷新图标,完成画面更新。整套设计优先保证功能可靠、代码精简,适配 Keil uVision4 C51 编译环境,最终实现一套独立运行、触控响应稳定的嵌入式人机交互小游戏,完成本次嵌入式系统设计的目标。

演示视频;[扫雷小游戏演示视频] [url=https://b23.tv/pmMtgSJ]https://b23.tv/pmMtgSJ[/url]


本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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