電路方案:基于51單片機的專注力訓練游戲機的設計
2023-08-18 18:02:16 來源:互聯網
(資料圖片僅供參考)
內容:
人的學習能力中專注力是很重要的一項。現在的小朋友有很多都因為各種原因導致專注力較差。市面上也有很多訓練專注力的書籍和玩具,玩具有的價錢太貴,有的設計反而不利于小朋友的專注。本系統要求設計并實現一款既有趣,讓小朋友能玩下去,又能提高小朋友的專注力的玩具,而且性價比好。
因此,本系統要求使用單片機或其他控制器件實現一個專注力訓練游戲機的設計和實現。要求系統能實現多級別難度,啟動后隨機亮燈,可語音、按鍵等方式熄滅相應點亮的燈。要求設計盡可能的方便使用,合理。要求熟悉單片機或其他控制器的原理和設計,熟練掌握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;需要完整的資料可以加入我的紛傳圈子,里面有資源壓縮包的百度網盤下載地址及提取碼。
關鍵詞: