(相关资料图)
内容:
人的学习能力中专注力是很重要的一项。现在的小朋友有很多都因为各种原因导致专注力较差。市面上也有很多训练专注力的书籍和玩具,玩具有的价钱太贵,有的设计反而不利于小朋友的专注。本系统要求设计并实现一款既有趣,让小朋友能玩下去,又能提高小朋友的专注力的玩具,而且性价比好。
因此,本系统要求使用单片机或其他控制器件实现一个专注力训练游戏机的设计和实现。要求系统能实现多级别难度,启动后随机亮灯,可语音、按键等方式熄灭相应点亮的灯。要求设计尽可能的方便使用,合理。要求熟悉单片机或其他控制器的原理和设计,熟练掌握C语言或其他编程语言的设计编程,完成时间管理器的软件、硬件设计与实现。
1、通过学习掌握程序设计、调试技术。2、掌握仿真软件的使用方法,并能编辑、编译和下载设计文件。3、掌握系统搭建实用硬件系统的方法。
要求与数据
要求:
1、 设计并实现一款专注力训练游戏机。要求能随机亮灯,可通过识别语音,按键等不同方式,熄灭相应点亮的灯。2、 游戏要可设置至少3个不同级别。3、 游戏的不同级别,要设置不同的亮灯的数量和时间长度等,并逐级提高难度。4、 游戏功能合理,有吸引性。5、 游戏过程中播放不同频率的音乐。(可选项)
部分程序:
/**********************************包含头文件**********************************/#include "main.h"#include "key.h"#include "Time.h"#include "uart.h"#include
/**********************************变量定义**********************************/uchar key_num = 0; //按键标志位uint time_num = 0; //计时变量uchar x=13; //随机数uint time=0; //时间变量uchar num=5;uchar num_1=1; //判断错误变量uchar num_2=1; //判断错误变量uchar num_3=1; //判断错误变量uchar num_4=1; //判断错误变量uchar num_5=1; //判断错误变量uchar num_6=1; //判断错误变量uchar num_7=1; //判断错误变量uchar num_8=1; //判断错误变量uchar num_9=1; //判断错误变量uchar num_10=1; //判断错误变量uchar num_11=1; //判断错误变量uchar num_12=1; //判断错误变量uchar state=0; //开始变量uchar state_time=4; //难度变量uint i=0; //次数变量bit state_min=0; //简单难度变量播报标志位bit state_mind=0; //中断难度变量播报标志位bit state_max=0; //高难度变量播报标志位bit state_over=0; //高难度变量播报标志位extern uint time_1s;extern uchar uart_num,uart_buf[30],uart_time; //串口接收相关变量extern bit uart_rx_flag=1; //串口接收标志位/**********************************函数声明**********************************/void Delay_function(uint x); //延时函数void Monitor_function(void); //监测函数void Manage_function(void); //处理函数void Timer1_Init(void); //1毫秒@11.0592MHz/*********** 主函数 *****/void main(){ Timer0Init(); //定时器0初使化函数 Uart_Init(); //串口初始化函数 Timer1_Init(); //定时器1初始化 while(1) { Monitor_function(); //监测函数 Manage_function(); //处理函数 Delay_function(10); //延时10ms time_num++; //计时变量+1 if(time_num > 5000) { time_num = 0; } }}/*********** 延时 x ms函数*****/void Delay_function(uint x){ uint m,n; for(m=x;m>0;m--) for(n=110;n>0;n--);}/***********按键函数*****/void Timer1() interrupt 3{ key_num = Chiclet_Keyboard_Scan(); //按键扫描 if(key_num != 0) //有按键按下 { switch(key_num) { case 1: //按键1 LED_1=1; //关1 num_1--; num--; break; case 2: //按键2 LED_2=1; //关2 num_2--; num--; break; case 3: //按键3 LED_3=1; //关3 num_3--; num--; break;需要完整的资料可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。