一、毕业设计(论文)的内容
内容:
人的学习能力中专注力是很重要的一项。现在的小朋友有很多都因为各种原因导致专注力较差。市面上也有很多训练专注力的书籍和玩具,玩具有的价钱太贵,有的设计反而不利于小朋友的专注。本系统要求设计并实现一款既有趣,让小朋友能玩下去,又能提高小朋友的专注力的玩具,而且性价比好。
因此,本系统要求使用单片机或其他控制器件实现一个专注力训练游戏机的设计和实现。要求系统能实现多级别难度,启动后随机亮灯,可语音、按键等方式熄灭相应点亮的灯。要求设计尽可能的方便使用,合理。要求熟悉单片机或其他控制器的原理和设计,熟练掌握C语言或其他编程语言的设计编程,完成时间管理器的软件、硬件设计与实现。整个毕业设计还要求完成相应的英文翻译和毕业设计论文。
1、通过学习掌握程序设计、调试技术。
2、掌握仿真软件的使用方法,并能编辑、编译和下载设计文件。
3、掌握系统搭建实用硬件系统的方法。
二、毕业设计(论文)的要求与数据
要求:
- 设计并实现一款专注力训练游戏机。要求能随机亮灯,可通过识别语音,按键等不同方式,熄灭相应点亮的灯。
- 游戏要可设置至少3个不同级别。
- 游戏的不同级别,要设置不同的亮灯的数量和时间长度等,并逐级提高难度。
- 游戏功能合理,有吸引性。
- 游戏过程中播放不同频率的音乐。(可选项)
/**********************************
包含头文件
**********************************/
#include "key.h"
/**********************************
变量定义
**********************************/
uchar chiclet_keyboard_num = 0; //键值变量
/**********************************
函数定义
**********************************/
/****
*******独立按键扫描函数
*******返回值:键值
*****/
uchar Chiclet_Keyboard_Scan(void)
{
if(K1 == 0) //按键K1为低电平
{
Delay_function(2); //2ms消抖
if(K1 == 0) //按键K1依然为低电平,此时确认是K1按下
{
chiclet_keyboard_num = 1; //键值设置成1
}
while(!K1); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K2 == 0) //按键K2为低电平
{
Delay_function(2); //2ms消抖
if(K2 == 0) //按键K2依然为低电平,此时确认是K2按下
{
chiclet_keyboard_num = 2; //键值设置成2
}
while(!K2); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K3 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K3 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 3; //键值设置成3
}
while(!K3); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K4 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K4 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 4; //键值设置成3
}
while(!K4); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K5 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K5 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 5; //键值设置成3
}
while(!K5); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K6 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K6 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 6; //键值设置成3
}
while(!K6); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K7 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K7 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 7; //键值设置成3
}
while(!K7); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K8 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K8 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 8; //键值设置成3
}
while(!K8); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K9 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K9 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 9; //键值设置成3
}
while(!K9); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K10 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K10 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 10; //键值设置成3
}
while(!K10); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K11 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K11 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 11; //键值设置成3
}
while(!K11); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K12 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K12 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 12; //键值设置成3
}
while(!K12); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K13 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K13 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 13; //键值设置成3
}
while(!K13); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
if(K14 == 0) //按键K3为低电平
{
Delay_function(2); //2ms消抖
if(K14 == 0) //按键K3依然为低电平,此时确认是K3按下
{
chiclet_keyboard_num = 14; //键值设置成3
}
while(!K14); //while死循环,直到抬手跳出
return chiclet_keyboard_num; //返回键值
}
return 0; //没有按键按下,返回0
}