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

📄 command.c

📁 基于AT89C51SND1C的MP3源代码
💻 C
字号:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

#ifndef _TYPE_DEFINE
	#define _TYPE_DEFINE
	typedef bit BOOL;
	typedef char Uchar;
	typedef unsigned char Uint8;
	typedef unsigned int Uint16;
	typedef unsigned long Uint32;
#endif

#define GETKEY				_getkey()			//键盘函数
#define PROMPT				">"					//提示符
#define MAX_CMD_NUM			16					//命令数
#define MAX_CMD_LENGTH		128					//最大命令长度

xdata Uint8 CommandBuffer[MAX_CMD_LENGTH];

struct Str_CMD
{
	Uint8 Command[MAX_CMD_LENGTH];
};

code struct Str_CMD CMD[]=
{
	{"HELP"},
	{"INIT DISK"},
	{"LIST DISK"},
	{"MOUNT DISK "},
	{"LIST DRIVE"},
	{"MOUNT DRIVE "},
	{"DIR"},
	{"CD "},
	{"PLAY "},
	{"STOP"},
	{"PAUSE"},
	{"GOON"},
	{"LVOL "},
	{"RVOL "},
	{"AVOL "},
	{"BASS "}
};

Uint8 AcceptCmd(void);
void PrintLogo(void);
void Help(void);

Uint8 AcceptCmd(void)
{
	register Uint8 i,keycode;

	while(1)
	{
		i=0;
		printf("%s",PROMPT);
		keycode=GETKEY;
		while(keycode!=0x0d&&i<MAX_CMD_LENGTH)
		{
			putchar(keycode);
			CommandBuffer[i]=toupper(keycode);
			keycode=GETKEY;
			i++;
		}
		if (i==MAX_CMD_LENGTH)
			printf("\n 命令太长.\n");
		else if (i==0)
		{
			printf("\n");
		}
		else
		{
			putchar(0x0a);
			CommandBuffer[i]=0x00;
			i=0;
			while(i<MAX_CMD_NUM&&strncmp(CMD[i].Command,CommandBuffer,strlen(CMD[i].Command))) i++;
			if (i<MAX_CMD_NUM) return(i); else printf("未知命令.\n");
		}
	}
}

void PrintLogo(void)
{
	printf("\n");
	printf("**************************** \n");
	printf("*      MP3DIY Console      * \n");
	printf("*           Beta 1         * \n");
	printf("*     2004.05.23 01:00     * \n");
	printf("*  http://mp3diy.cable.nu  * \n");
	printf("**************************** \n");
	printf("\n");
}

void Help(void)
{
	register Uint8 i;
	printf("支持如下命令:\n");
	for(i=0;i<MAX_CMD_NUM;i++)
		printf("\t %s\n",CMD[i].Command);
}

⌨️ 快捷键说明

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