⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这个是录音琴的程序,用光电感应器来检测琴键的动作.并且将他记录下来,可以回放.
💻 C
📖 第 1 页 / 共 2 页
字号:
						LcdDisplayPlaySelectMenu(0);
						SysWorkStatus = SYS_WORK_SEL_RAM_PLAY;
					break;
				}
			break;

			case	SYS_WORK_USB_PLAY:		//USB放音工作状态
				if(FlagPlayRun)
					PlayerRun();
				else
					LcdDisplayAscii0816(2,0,0,130);

				LcdDisplayClock(2,32,GetSystemRtc());

				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						if(FlagPlayRun)
							PlayerStop();

						LcdClear();
						LcdDisplayPlaySelectMenu(1);
						SysWorkStatus = SYS_WORK_SEL_USB_PLAY;
					break;

					case	KEY_UP:
						if(FlagPlayRun)
							PlayerStop();

						MemMiscCnt = ReadtUsbList(InOutBuf);

						if(MemMiscCnt)
						{
							if(MemMiscPt)
								MemMiscPt--;
							else
								MemMiscPt=MemMiscCnt-1;

							if(FileOpenDisk(MemMiscPt))
							{
								LcdDisplaytFileName(MemMiscPt+1,InputFileName);
								ResetSystemRtc();
								LcdDisplayClock(2,32,GetSystemRtc());
								PlayerStart();
							}
							else
							{
								LcdClear();
								LcdDisplayPlaySelectMenu(1);
								SysWorkStatus = SYS_WORK_SEL_USB_PLAY;
							}
						}
						else
						{
							LcdClear();
							LcdDisplayPlaySelectMenu(1);
							SysWorkStatus = SYS_WORK_SEL_USB_PLAY;
						}
					break;

					case	KEY_DOWN:
						if(FlagPlayRun)
							PlayerStop();

						MemMiscCnt = ReadtUsbList(InOutBuf);

						if(MemMiscCnt)
						{
							if(MemMiscPt<MemMiscCnt-1)
								MemMiscPt++;
							else
								MemMiscPt=0;

							if(FileOpenDisk(MemMiscPt))
							{
								LcdDisplaytFileName(MemMiscPt+1,InputFileName);
								ResetSystemRtc();
								LcdDisplayClock(2,32,GetSystemRtc());
								PlayerStart();
							}
							else
							{
								LcdClear();
								LcdDisplayPlaySelectMenu(1);
								SysWorkStatus = SYS_WORK_SEL_USB_PLAY;
							}
						}
						else
						{
							LcdClear();
							LcdDisplayPlaySelectMenu(1);
							SysWorkStatus = SYS_WORK_SEL_USB_PLAY;
						}
					break;

					case	KEY_LEFT:
					case	KEY_LEFT_ON:
						if(ParamaVolume>0)
						{
							ParamaVolume --;
							SoundVolumeAdj();
							LcdDisplayVolume();
						}
					break;

					case	KEY_RIGHT:
					case	KEY_RIGHT_ON:
						if(ParamaVolume<127)
						{
							ParamaVolume ++;
							SoundVolumeAdj();
							LcdDisplayVolume();
						}
					break;
				}
			break;

			case	SYS_WORK_RUN_PLAY:		//RAM放音工作状态
				if(FlagPlayRun)
					PlayerRun();
				else
					LcdDisplayAscii0816(2,0,0,130);

				LcdDisplayClock(2,32,GetSystemRtc());

				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						if(FlagPlayRun)
							PlayerStop();

						LcdClear();
						LcdDisplayPlaySelectMenu(0);
						SysWorkStatus = SYS_WORK_SEL_RAM_PLAY;
					break;

					case	KEY_UP:
						if(FlagPlayRun)
							PlayerStop();

						if(MemMiscPt)
							MemMiscPt--;
						else
							MemMiscPt=MemMiscCnt-1;

						FileOpenMemory(MemMiscPt);

						LcdDisplaytFileName(MemMiscPt+1,&FileList[MemMiscPt].Name);
						ResetSystemRtc();
						LcdDisplayClock(2,32,GetSystemRtc());
						PlayerStart();
					break;

					case	KEY_DOWN:
						if(FlagPlayRun)
							PlayerStop();

						if(MemMiscPt<MemMiscCnt-1)
							MemMiscPt++;
						else
							MemMiscPt=0;

						FileOpenMemory(MemMiscPt);

						LcdDisplaytFileName(MemMiscPt+1,&FileList[MemMiscPt].Name);
						ResetSystemRtc();
						LcdDisplayClock(2,32,GetSystemRtc());
						PlayerStart();
					break;

					case	KEY_LEFT:
					case	KEY_LEFT_ON:
						if(ParamaVolume>0)
						{
							ParamaVolume --;
							SoundVolumeAdj();
							LcdDisplayVolume();
						}
					break;

					case	KEY_RIGHT:
					case	KEY_RIGHT_ON:
						if(ParamaVolume<127)
						{
							ParamaVolume ++;
							SoundVolumeAdj();
							LcdDisplayVolume();
						}
					break;
				}
			break;

			case	SYS_WORK_SET_MENU_0:		//参数设定菜单1
				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						LcdClear();
						LcdDisplayMenu(3);
						SysWorkStatus = SYS_WORK_MENU_SET;
					break;

					case	KEY_UP:
						LcdDisplayParamMenu(3);
						SysWorkStatus = SYS_WORK_SET_MENU_3;
					break;

					case	KEY_DOWN:
						LcdDisplayParamMenu(1);
						SysWorkStatus = SYS_WORK_SET_MENU_1;
					break;

					case	KEY_LEFT:
					case	KEY_RIGHT:
						if(FlagTempo)
							FlagTempo = false;
						else
							FlagTempo = true;

						LcdDisplaySetParam();
					break;
				}
			break;

			case	SYS_WORK_SET_MENU_1:		//参数设定菜单2
				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						LcdClear();
						LcdDisplayMenu(3);
						SysWorkStatus = SYS_WORK_MENU_SET;
					break;

					case	KEY_UP:
						LcdDisplayParamMenu(0);
						SysWorkStatus = SYS_WORK_SET_MENU_0;
					break;

					case	KEY_DOWN:
						LcdDisplayParamMenu(2);
						SysWorkStatus = SYS_WORK_SET_MENU_2;
					break;

					case	KEY_LEFT:
					case	KEY_RIGHT:
						if(FlagInput)
							FlagInput = false;
						else
							FlagInput = true;

						LcdDisplaySetParam();
					break;
				}
			break;

			case	SYS_WORK_SET_MENU_2:		//参数设定菜单3
				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						LcdClear();
						LcdDisplayMenu(3);
						SysWorkStatus = SYS_WORK_MENU_SET;
					break;

					case	KEY_UP:
						LcdDisplayParamMenu(1);
						SysWorkStatus = SYS_WORK_SET_MENU_1;
					break;

					case	KEY_DOWN:
						LcdDisplayParamMenu(3);
						SysWorkStatus = SYS_WORK_SET_MENU_3;
					break;

					case	KEY_LEFT:
					case	KEY_RIGHT:
						if(FlagOutput)
							FlagOutput = false;
						else
							FlagOutput = true;

						LcdDisplaySetParam();
					break;
				}
			break;

			case	SYS_WORK_SET_MENU_3:		//参数设定菜单4
				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						LcdClear();
						LcdDisplayMenu(3);
						SysWorkStatus = SYS_WORK_MENU_SET;
					break;

					case	KEY_UP:
						LcdDisplayParamMenu(2);
						SysWorkStatus = SYS_WORK_SET_MENU_2;
					break;

					case	KEY_DOWN:
						LcdDisplayParamMenu(0);
						SysWorkStatus = SYS_WORK_SET_MENU_0;
					break;

					case	KEY_LEFT:
						if(TempoType)
							TempoType --;
						else
							TempoType = 5;

						LcdDisplaySetParam();
					break;

					case	KEY_RIGHT:
						if(TempoType<5)
							TempoType ++;
						else
							TempoType = 0;

						LcdDisplaySetParam();
					break;
				}
			break;

			case	SYS_WORK_REC_PLAY:		//录音重放状态
				if(FlagPlayRun)
					PlayerRun();
				else
					LcdDisplayAscii0816(0,0,0,130);

				LcdDisplayClock(2,0,GetSystemRtc());

				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						if(FlagPlayRun)
							PlayerStop();

						LcdClear();
						LcdDisplayMenu(0);
						SysWorkStatus = SYS_WORK_MENU_REC;
					break;

					case	KEY_UP:
					case	KEY_DOWN:
						if(FlagRecEnd)
						{
							if(FlagPlayRun)
								PlayerStop();

							LcdDisplayAscii0816(0,0,0,128);
							ResetSystemRtc();
							LcdDisplayClock(2,0,GetSystemRtc());
							PlayerStart();
						}
					break;

					case	KEY_LEFT:
					case	KEY_LEFT_ON:
						if(ParamaVolume>0)
						{
							ParamaVolume --;
							SoundVolumeAdj();
							LcdDisplayVolume();
						}
					break;

					case	KEY_RIGHT:
					case	KEY_RIGHT_ON:
						if(ParamaVolume<127)
						{
							ParamaVolume ++;
							SoundVolumeAdj();
							LcdDisplayVolume();
						}
					break;
				}
			break;

			case	SYS_WORK_SAVE_ENT:		//存储确认状态
				switch(GetKeyBoard())
				{
					case	KEY_ENT:
						if(FlagSaveSel)
						{
							LcdClear();
							FlagSaveSel = false;
							LcdDisplayMenu(1);
							SysWorkStatus = SYS_WORK_MENU_SAVE;
						}
						else
						{
							LcdClear();
							if(InputNameLen)
							{
								LcdDisplayAsciiString(1,10,0,"Wait for Save");
								FileSaveMemory(InputFileName);
								UsbSaveFile(InputFileName);

								LcdClear();
								LcdDisplayMenu(1);
								SysWorkStatus = SYS_WORK_MENU_SAVE;
							}
							else
							{
								LcdDisplayInputTextInital();
								SysWorkStatus = SYS_WORK_RUN_SAVE;
							}
						}
					break;

					case	KEY_LEFT:
					case	KEY_RIGHT:
						if(!FlagSaveSel)
							FlagSaveSel = true;
						else
						  	FlagSaveSel = false;

						LcdDisplaySaveSelect();
					break;
				}
			break;
		}
	}
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -