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

📄 cmdbuild.src

📁 C51单片机的C语言例程,可实现定时器中断及其时钟功能的源代码
💻 SRC
字号:
; .\cmdbuild.SRC generated from: cmdbuild.c
; COMPILER INVOKED BY:
;        D:\KeilC51\C51\BIN\C51.EXE cmdbuild.c ROM(COMPACT) BROWSE DEFINE(evalboard) DEBUG OBJECTEXTEND LISTINCLUDE SYMBOLS SRC(.\cmdbuild.SRC)


NAME	CMDBUILD

?PR?cmdb_init?CMDBUILD                   SEGMENT CODE INBLOCK 
?PR?cmdb_prompt?CMDBUILD                 SEGMENT CODE INBLOCK 
?PR?cmdb_scan?CMDBUILD                   SEGMENT CODE INBLOCK 
?DT?cmdb_scan?CMDBUILD                   SEGMENT DATA OVERLAYABLE 
?CO?CMDBUILD         SEGMENT CODE 
?XD?CMDBUILD         SEGMENT XDATA 
	EXTRN	CODE (com_getchar)
	EXTRN	CODE (_com_puts)
	EXTRN	CODE (_isprint)
	EXTRN	CODE (_com_putchar)
	PUBLIC	cmdbuf
	PUBLIC	cmdndx
	PUBLIC	cmdb_scan
	PUBLIC	cmdb_prompt
	PUBLIC	cmdb_init

	RSEG  ?DT?cmdb_scan?CMDBUILD
?cmdb_scan?BYTE:
          c?240:   DS   2

	RSEG  ?XD?CMDBUILD
         cmdndx:   DS   1
         cmdbuf:   DS   41

	RSEG  ?CO?CMDBUILD
?SC_0:
	DB  'C' ,'O' ,'M' ,'M' ,'A' ,'N' ,'D' ,':' ,' ' ,000H

?SC_10:
	DB  00DH,00AH,000H

?SC_13:
	DB  008H,' ' ,008H,000H

; #include <stdlib.h>
; #include <ctype.h>	
; #include "tdp.h"	
; 	
; xdata char cmdbuf [1 + MAX_CMD_LEN];	
; xdata unsigned char cmdndx;	
; 	
; /* 初始化 */
; void cmdb_init (void) {	

	RSEG  ?PR?cmdb_init?CMDBUILD
cmdb_init:
			; SOURCE LINE # 9
; 	cmdndx = 0;	
			; SOURCE LINE # 10
	CLR  	A
	MOV  	DPTR,#cmdndx
	MOVX 	@DPTR,A
; 	cmdbuf [0] = '\0';	
			; SOURCE LINE # 11
	INC  	DPTR
	MOVX 	@DPTR,A
; }	
			; SOURCE LINE # 12
	RET  	
; END OF cmdb_init

; 	
; /* 命令提示"COMMAND" */
; void cmdb_prompt (void) {	

	RSEG  ?PR?cmdb_prompt?CMDBUILD
cmdb_prompt:
	USING	0
			; SOURCE LINE # 15
; 	com_puts ("COMMAND: ");	
			; SOURCE LINE # 16
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_0)
	MOV  	R1,#LOW (?SC_0)
	LCALL	_com_puts
; 	com_puts (cmdbuf);	
			; SOURCE LINE # 17
	MOV  	R3,#01H
	MOV  	R2,#HIGH (cmdbuf)
	MOV  	R1,#LOW (cmdbuf)
	LJMP 	_com_puts
; END OF cmdb_prompt

; }	
; 	
; /* 输入命令扫描 */
; const char *cmdb_scan (void) {	

	RSEG  ?PR?cmdb_scan?CMDBUILD
cmdb_scan:
	USING	0
			; SOURCE LINE # 21
?C0003:
; 	int c;	
; while (1)  {	
			; SOURCE LINE # 23
;   if ((c = com_getchar ()) == -1)	
			; SOURCE LINE # 24
	LCALL	com_getchar
	MOV  	c?240,R6
	MOV  	c?240+01H,R7
	MOV  	A,R7
	CPL  	A
	JNZ  	?C0012
	MOV  	A,R6
	CPL  	A
?C0012:
	JZ   	?C0004
;     break;	
			; SOURCE LINE # 25
?C0005:
;   if (c == '\r')	 {	
			; SOURCE LINE # 26
	MOV  	A,c?240+01H
	XRL  	A,#0DH
	ORL  	A,c?240
	JNZ  	?C0006
;     com_puts ("\r\n");	
			; SOURCE LINE # 27
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_10)
	MOV  	R1,#LOW (?SC_10)
	LCALL	_com_puts
;     return (cmdbuf);	
			; SOURCE LINE # 28
	MOV  	R3,#01H
	MOV  	R2,#HIGH (cmdbuf)
	MOV  	R1,#LOW (cmdbuf)
	RET  	
;   }	
			; SOURCE LINE # 29
?C0006:
;   if ((c == '\b') && (cmdndx != 0))	{	
			; SOURCE LINE # 30
	MOV  	A,c?240+01H
	XRL  	A,#08H
	ORL  	A,c?240
	JNZ  	?C0008
	MOV  	DPTR,#cmdndx
	MOVX 	A,@DPTR
	JZ   	?C0008
;     com_puts ("\b \b");	
			; SOURCE LINE # 31
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_13)
	MOV  	R1,#LOW (?SC_13)
	LCALL	_com_puts
;     cmdbuf [--cmdndx] = '\0';	
			; SOURCE LINE # 32
	MOV  	DPTR,#cmdndx
	MOVX 	A,@DPTR
	DEC  	A
	MOVX 	@DPTR,A
;     continue;	
			; SOURCE LINE # 33
	SJMP 	?C0013
;   }	
			; SOURCE LINE # 34
?C0008:
;   if (!isprint (c))	{	
			; SOURCE LINE # 35
	MOV  	R7,c?240+01H
	LCALL	_isprint
	JC   	?C0009
; BEEPCHAR: com_putchar ('\x7');	
			; SOURCE LINE # 36
?cmdb_scan?BEEPCHAR:
	MOV  	R7,#07H
	LCALL	_com_putchar
;     continue;	
			; SOURCE LINE # 37
	SJMP 	?C0003
;   }	
			; SOURCE LINE # 38
?C0009:
;   if (cmdndx >= MAX_CMD_LEN)	
			; SOURCE LINE # 39
	MOV  	DPTR,#cmdndx
	MOVX 	A,@DPTR
	CLR  	C
	SUBB 	A,#028H
	JNC  	?cmdb_scan?BEEPCHAR
;     goto BEEPCHAR;	
			; SOURCE LINE # 40
?C0011:
;   com_putchar (c);	
			; SOURCE LINE # 41
	MOV  	R7,c?240+01H
	LCALL	_com_putchar
;   cmdbuf [cmdndx++] = (unsigned char) c;	
			; SOURCE LINE # 42
	MOV  	DPTR,#cmdndx
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	A
	MOVX 	@DPTR,A
	MOV  	A,#LOW (cmdbuf)
	ADD  	A,R6
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (cmdbuf)
	MOV  	DPH,A
	MOV  	A,c?240+01H
	MOVX 	@DPTR,A
;   cmdbuf [cmdndx]   = '\0';	
			; SOURCE LINE # 43
	MOV  	DPTR,#cmdndx
	MOVX 	A,@DPTR
?C0013:
	ADD  	A,#LOW (cmdbuf)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (cmdbuf)
	MOV  	DPH,A
	CLR  	A
	MOVX 	@DPTR,A
; }		
			; SOURCE LINE # 44
	AJMP 	?C0003
?C0004:
; return (NULL);
			; SOURCE LINE # 45
	MOV  	R3,#00H
	MOV  	R2,#00H
	MOV  	R1,#00H
; }
			; SOURCE LINE # 46
?C0007:
	RET  	
; END OF cmdb_scan

	END

⌨️ 快捷键说明

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