嵌入式设计——ARMSIM#环境虚拟外设控制-键盘控制贪吃蛇

本文介绍了在ARMSIM#环境下,通过编写ARM汇编程序实现虚拟开发板上的贪吃蛇游戏。实验目标是学习环境控制及虚拟OLED显示器的键盘操作。游戏具有不同难度关卡,蛇会根据键盘输入改变方向,并在安全移动一定周期后增长。文章还详细阐述了游戏的补充功能,如关卡通关机制和界面优化,并提供了程序运行流程图和子程序调用图。
摘要由CSDN通过智能技术生成

一、实验目的

  1. 学习ARMSIM#环境下虚拟开发板的控制。
  2. 编写简单程序调用软件中断服务程序实现虚拟OLED显示器的键盘控制。

二、实验要求

编写程序SNAKE.s实现以下功能。

  • 基本行为:在16×40的EmbestBoard显示器上显示可变长度的字母序列蛇,在没有按键的时候,蛇保持向当前方向前进。蛇的构成字母可自选。
  • 蛇的死亡:触碰到边界时,游戏结束。
  • 控制:使用蓝色键盘的四个键表示Up、Down、Left和Right键,表示蛇要改变的方向。为简化问题,允许蛇穿过自身。
  • 生长:在蛇安全的显示了若干周期后,蛇的长度增加1。
  • 在以上基础上可增加功能,可以向真实“贪吃蛇”游戏靠拢。

三、补充功能说明

1.区分游戏难度的关卡通关功能

起始局为第0局(ROUND 0),用移动的次数代表时间,每经过40次移动,还未触碰边界失败的,可以进入第1局游戏。第1局游戏的边界范围设置将小于第0局,同样第2局也比第1局边界范围缩小,这样达到游戏难度区分的目的。当3局游戏均通过后,显示通关。局数和游戏时间均可在屏幕上实时显示,如下图分别为第一、二、三局的界面:
在这里插入图片描述

2.完善了显示和页面切换

使得整个系统更像一个真实的“贪吃蛇”游戏,观感更好,包括游戏欢迎界面、进入下一局界面、游戏失败界面和游戏成功界面,如下图为游戏欢迎界面:
在这里插入图片描述

四、程序运行流程图

在这里插入图片描述

五、子程序调用图

在这里插入图片描述

六、完整实验源码

.text
.arm		                   @ 声明32位ARM指令
.equ SWI_CheckBlue, 0x203      @ check press Blue button
.equ BLUE_KEY_0.0, 0x01        @ button(0.0)  Up 
.equ BLUE_KEY_0.1, 0x02        @ button(0.1)  Down
.equ BLUE_KEY_1.0, 0x10        @ button(1.0)  Left
.equ BLUE_KEY_1.1, 0x20        @ button(1.1)  Right
.equ snake,'S' 
.equ space,' '
.equ range,'~'

swi 0x206                      @ Clear the LCD screen
@draw a welcome message to the lcd screen on line#7, column#10
mov r0,#7                      @ column number
mov r1,#10                     @ row number
ldr r2,=Welcome                @ pointer to string
swi 0x204                      @ draw to the LCD screen
swi 0x206                      @ Cle
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值