內容:
人的學習能力中專注力是很重要的一項。現在的小朋友有很多都因為各種原因導致專注力較差。市面上也有很多訓練專注力的書籍和玩具,玩具有的價錢太貴,有的設計反而不利于小朋友的專注。本系統要求設計并實現一款既有趣,讓小朋友能玩下去,又能提高小朋友的專注力的玩具,而且性價比好。
因此,本系統要求使用單片機或其他控制器件實現一個專注力訓練游戲機的設計和實現。要求系統能實現多級別難度,啟動后隨機亮燈,可語音、按鍵等方式熄滅相應點亮的燈。要求設計盡可能的方便使用,合理。要求熟悉單片機或其他控制器的原理和設計,熟練掌握C語言或其他編程語言的設計編程,完成時間管理器的軟件、硬件設計與實現。整個畢業設計還要求完成相應的英文翻譯和畢業設計論文。
1、通過學習掌握程序設計、調試技術。
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;
?
?
審核編輯:湯梓紅
-
控制器
+關注
關注
112文章
16333瀏覽量
177813 -
51單片機
+關注
關注
274文章
5702瀏覽量
123494 -
游戲機
+關注
關注
9文章
299瀏覽量
33434
發布評論請先 登錄
相關推薦
評論