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

📄 command.c

📁 这是《Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践》教材各章中列出的全部程序例子。
💻 C
字号:
/************************************************************************/
/*                                                                      */
/*              	Command Interpreter	                        */
/*                                                                      */
/*              Author: Peter Dannegger                                 */
/*                      danni@specs.de                                  */
/*                                                                      */
/************************************************************************/
#include<stdlib.h>
#include<types.h>

typedef struct {
  	uchar code *name;
  	uchar (code *func)(uchar idata *);
}comm_struct;


comm_struct code comm_tab[] = {			// 命令表
		"inport", inport,
		"outport", outport,
		"help", help,
		"?", help,
		"", NULL        						// 命令表结束符
};

/****************************** 命令处理函数 ******************************
* 功能:根据串行口输入命令,查命令表,调用不同的命令函数
**************************************************************************/
uchar command( uchar idata *buf ) {
  	uchar i, j;					// 最多可处理256个命令
  	for( i = 0;; )
    		for( j = 0;; ){
      		if( comm_tab[i].name[j] != 0 ){
	if( ((comm_tab[i].name[j] ^ buf[j]) & 0x5F) == 0 ){
          			j++;
	  					continue;				// 下一个输入字符
         		}
        			i++;
	break;                  		// 下一条命令
      		}
      		if( j == 0 )	return 255;			// 查表未找到命令返回错误号255
      		return comm_tab[i].func( buf+j );	// 执行命令
    		}
}

⌨️ 快捷键说明

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