C模块嵌入式系统编程
姓名:
一笔画完游戏
目录
这个试题任务包括以下文档与文件:
1.简介
2.项目和任务描述
3.编程环境
4.接口表
5.编程任务
简介
本次测试项目设计一笔画完游戏。
项目和任务描述
设计一笔画完游戏,一笔画完的游戏规则是将所有可用点用一条线连接,所有点只能经过一次。在三点阵上,使用绿的点表示需要经过的点,蓝表示已经经过的点,红表示线头。分成以下两个任务:
1、完成LCD页面切换状态机:包括开机动画、游戏介绍、关卡提示、游戏页面、通关
提示等页面的切换。
2、完成一笔画画完游戏功能:包括关卡计时、摇杆移动、通关判断等功能。
编程环境
编程环境如下图所示:
嵌入式多线程编程接口表
CPU GPIO Type信号名Notes
PA0ADC_IN0JS_CH0摇杆电位器纵向输入
PA1ADC_IN1JS_CH1摇杆电位器横向输入
PA2GPIO_Input JS_SW摇杆按键输入
PA6GPIO_Output STCP74HC595移位寄存器时钟
PA7GPIO_Output DIN74HC595串行数据输出
PA5GPIO_Output SHCP74HC595移位寄存器时钟
PA8GPIO_Output SCLR74HC596复位信号,低电平有效
PA9GPIO_Output LCD_CLK LCD12864串行时钟
PA15GPIO_Output LCD_CS LCD12864片选信号
PA10GPIO_Output LCD_SID LCD12864串行输入
PA4GPIO_Output LCD_RST LCD12864复位信号
PB5GPIO_Output BUZZER蜂鸣器
(注:只列出本次任务所涉及的端口)
你可以使用函数HAL_GPIO_WritePin控制管脚的输出电平,上表中的信号名可以在函数HAL_GPIO_WritePin和HAL_GPIO_ReadPin中使用.
HAL_GPIO_WritePin函数使用示例:
HAL_GPIO_WritePin(STCP_GPIO_Port,STCP_Pin,GPIO_PIN_RESET);//输出低电平
HAL_GPIO_WritePin(STCP_GPIO_Port,STCP_Pin,GPIO_PIN_SET);//输出高电平HAL_GPIO_ReadPin函数使用示例:
If(HAL_GPIO_ReadPin(JS_SW_GPIO_Port,JS_SW_Pin)==0)
提醒:记得在操作IO口后加上一个小延时(5us),以保证任务板上的IC能正确稳定处理信号。
提供给选手的工程中,已经完成驱动外设的驱动,并且提供了部分示例代码供选手参考。
编程任务
第一阶段编程任务
阶段1.1
请在系统初始化完成后,使用蜂鸣器发出提示音:蜂鸣器发出3次声音,每次持续50ms,间隔50ms。你可以使用函数HAL_Delay(uint32_t)来实现毫秒级的延时。
阶段1.2
提示音之后加载开机动画:LCD12864以30ms的间隔从上到下逐行显示worldskill图案,再以10ms 的间隔从上到下逐行清空画面。
Worldskill图案的像素点信息保存在数组worldSkillPhoto中,每个字节为8个像素点信息,保存的顺序为从上到下、从左到右。你可以使用函数lcdDrawLine来实现该阶段功能:
阶段1.3
加载动画完成后,进入游戏介绍页面(已完成),按照提示按下摇杆按键进入游戏关卡。
请参考loop函数中的状态机示例完成LCD页面的切换。切换顺序如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。