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

📄 main.asm

📁 2407嵌入式系统程序(c语言)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	B	L154
L166:
	.line	102
;>>>> 							if(pin_num4==1)
	LDPK	_pin_num4
	LAC	_pin_num4
	SUBK	1
	BNZ	L167
	.line	103
;>>>> 								pin_num4=30;
;>>>> 							else
	LACK	30
	SACL	_pin_num4
	B	L168
L167:
	.line	105
;>>>> 							pin_num4=pin_num4+1;
	ADDK	2
	SACL	_pin_num4
L168:
	.line	106
;>>>> 							LCD_NUM(pin_num4,0xFFBF);
	MAR	* ,AR1
	LACK	-65
	SACL	*+
	BLKD	_pin_num4+0,*+
	CALL	_LCD_NUM
	SBRK	2
	.line	107
;>>>> 							break;
	B	L154
L155:
	.line	78
	SSXM
	LDPK	_caidan
	LAC	_caidan
	SUBK	1
	BZ	L156
	SUBK	1
	BZ	L160
	SUBK	1
	BZ	L163
	SUBK	1
	BZ	L166
L154:
EPI0_13:
	.line	110
	SBRK	18
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	523,000000000H,17

	.sym	_Valid_submeau3flag,_Valid_submeau3flag,32,2,0
	.globl	_Valid_submeau3flag

	.func	524
;>>>> 	void Valid_submeau3flag(void)
******************************************************
* FUNCTION DEF : _Valid_submeau3flag
******************************************************
_Valid_submeau3flag:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+,AR2

	.sym	_j,1,4,1,16
	.sym	_i,2,4,1,16
	.line	3
;>>>> 		int j=0,i;
;>>>> 		for(;;)
;>>>> 	HERE3:			
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* 
L169:

	.sym	_HERE3,L170,0,6,0
L170:
	.line	7
;>>>> 			KEY_SUBMEAU3();
	CALL	_KEY_SUBMEAU3,AR1
	.line	8
;>>>> 				if(KEY_SURE==0)
	LDPK	_KEY_SURE
	LAC	_KEY_SURE
	BNZ	L171
	.line	9
;>>>> 					if(KEY_UP==0)
	LDPK	_KEY_UP
	LAC	_KEY_UP
	BNZ	L174
	.line	11
;>>>> 							WAIT_KEY(i);
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	12
;>>>> 							continue;
;>>>> 					else                     /*key_up=1*/
	B	L169
	.line	15
;>>>> 							break;
;>>>> 				else                   		/*key-sure=1*/
;>>>> 						for(;;)
L171:
L175:

	.sym	_HERE31,L176,0,6,0
L176:
	.line	20
;>>>> 	HERE31:					WAIT_KEY(i);
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	21
;>>>> 							if(KEY_UP==0)
	LDPK	_KEY_UP
	LAC	_KEY_UP
	BNZ	L177
	.line	22
;>>>> 								if(KEY_SURE==1)
;>>>> 								{switch(SUBMEAU3FLAG)
;>>>> 								   	{	case 1:  
	LDPK	_KEY_SURE
	LAC	_KEY_SURE
	SUBK	1
	BNZ	L175
	B	L179
L180:
	.line	25
;>>>> 								   		motor_startup(motor_data,motor_num); 
;>>>> 								   		for(;;)
	MAR	* ,AR1
	BLKD	_motor_num+0,*+
	BLKD	_motor_data+0,*+
	CALL	_motor_startup
	SBRK	2
L181:

	.sym	_test_motor,L182,0,6,0
L182:
	.line	28
;>>>> 	test_motor:							WAIT_KEY(i); 
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	29
;>>>> 										if(KEY_DOWN==1)
	LDPK	_KEY_DOWN
	LAC	_KEY_DOWN
	SUBK	1
	BNZ	L183
	.line	31
;>>>> 												motor_speedup(motor_data,motor_num);
	BLKD	_motor_num+0,*+
	BLKD	_motor_data+0,*+
	CALL	_motor_speedup
	SBRK	2
	.line	32
;>>>> 												continue; /*goto test_motor;*/
	B	L181
L183:
	.line	34
;>>>> 										if(KEY_SURE==0)
	LDPK	_KEY_SURE
	LAC	_KEY_SURE
	BZ	L181
	.line	35
;>>>> 												continue; /*goto  test_motor;*/
;>>>> 										else 
	.line	37
;>>>> 											*SCITXBUF=0x02;
	LARK	AR3,28761
	LACK	2
	MAR	* ,AR3
	SACL	* ,AR0
	.line	38
;>>>> 											WORD8255=0xff;
	LACK	255
	SACL	* 
	OUT	* ,08000h
	.line	39
;>>>> 											break;        /*goto HERE31;*/	
	.line	40
	.line	41
;>>>> 								   			break;
;>>>> 								   		case 2:     
	B	L174
L188:
	.line	43
;>>>> 								   			WORD8255=data_8255;
	LDPK	_data_8255
	OUT	_data_8255,08000h
	.line	44
;>>>> 								   			num_8255++;
;>>>> 								   			for(;;)
	LDPK	_num_8255
	LAC	_num_8255
	ADDK	1
	SACL	_num_8255
L189:

	.sym	_test_8255,L190,0,6,0
L190:
	.line	47
;>>>> 	test_8255:							   	WAIT_KEY(i);
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	48
;>>>> 											if(KEY_DOWN==1)
	LDPK	_KEY_DOWN
	LAC	_KEY_DOWN
	SUBK	1
	BNZ	L191
	.line	50
;>>>> 													electronic(num_8255,data_8255);
	BLKD	_data_8255+0,*+
	BLKD	_num_8255+0,*+
	CALL	_electronic
	SBRK	2
	.line	51
;>>>> 								   					continue; /*goto test_8255;*/
	B	L189
L191:
	.line	53
;>>>> 								   			if(KEY_SURE==0)
	LDPK	_KEY_SURE
	LAC	_KEY_SURE
	BZ	L189
	.line	54
;>>>> 								   					continue;  /*goto test_8255;*/
;>>>> 								   			else
	.line	56
;>>>> 								   				WORD8255=0x00;
	LACK	0
	MAR	* ,AR0
	SACL	* 
	OUT	* ,08000h
	.line	57
;>>>> 								   				break;         /*goto HERE31; */
	.line	58
;>>>> 								   else				  		
	B	L174
L179:
	.line	23
	SSXM
	LDPK	_SUBMEAU3FLAG
	LAC	_SUBMEAU3FLAG
	SUBK	1
	BZ	L180
	SUBK	1
	BZ	L188
	.line	62
;>>>> 									continue;         										
;>>>> 							else                     
	B	L174
L177:
	.line	65
;>>>> 								    ret_submeau3();      	
	CALL	_ret_submeau3
	.line	66
;>>>> 									WAIT_KEY(i);
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	67
;>>>> 									if(KEY_SURE==1)
	LDPK	_KEY_SURE
	LAC	_KEY_SURE
	SUBK	1
	BNZ	L198
	.line	68
;>>>> 									j=1;
	LACK	1
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
L198:
	.line	69
;>>>> 									if(j==0)
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	BZ	L175
	.line	70
;>>>> 										continue;}         /*goto HERE3;*/ 
	.line	71
;>>>> 						break;				
	.line	72
	.line	74
;>>>> 	      break;
	.line	75
L174:
EPI0_14:
	.line	76
	MAR	* ,AR1
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	599,000000000H,3

	.sym	_GLOVE_TYPE,_GLOVE_TYPE,32,2,0
	.globl	_GLOVE_TYPE

	.func	601
;>>>> 	void GLOVE_TYPE(argument1,i)
******************************************************
* FUNCTION DEF : _GLOVE_TYPE
******************************************************
_GLOVE_TYPE:

LF15	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,2
	LAR	AR0,*0+,AR2

	.sym	_argument1,-3+LF15,4,9,16
	.sym	_i,-4+LF15,4,9,16
	.sym	_glovetype,1,4,1,16
	.line	2
	.line	3
;>>>> 	 	int glovetype=argument1;
	LARK	AR2,-3+LF15
	MAR	*0+
	LAC	* 
	ADRK	4-LF15
	SACL	* 
	.line	4
;>>>> 	 	WAIT_KEY(i);
	SBRK	5-LF15
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	5
;>>>> 		Delay1S();
	CALL	_Delay1S
	.line	6
;>>>> 		if(KEY_UP==1)
	LDPK	_KEY_UP
	LAC	_KEY_UP
	SUBK	1
	BNZ	L201
	.line	8
;>>>> 				glovetype=glovetype+1;
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	.line	9
;>>>> 				if(glovetype==4)
	LAC	* 
	SUBK	4
	BNZ	L201
	.line	10
;>>>> 					glovetype=1;
	LACK	1
	SACL	* 
L201:
	.line	12
;>>>> 		if(KEY_LEFT==1)
	LDPK	_KEY_LEFT
	LAC	_KEY_LEFT
	SUBK	1
	BNZ	L205
	.line	14
;>>>> 				glovetype=glovetype-1;
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	SUBK	1
	SACL	* 
	.line	15
;>>>> 				if(glovetype==0)
	LAC	* 
	BNZ	L205
	.line	16
;>>>> 					glovetype=4;
;>>>> 		switch(glovetype)
;>>>> 			{case 1: 
	LACK	4
	SACL	* 
	B	L205
L206:
	.line	20
;>>>> 				LCD_GLOVETYPE(28,36,40,36,22,30,21,19);
	MAR	* ,AR1
	LACK	19
	SACL	*+
	LACK	21
	SACL	*+
	LACK	30
	SACL	*+
	LACK	22
	SACL	*+
	LACK	36
	SACL	*+
	LACK	40
	SACL	*+
	LACK	36
	SACL	*+
	LACK	28
	SACL	*+
	CALL	_LCD_GLOVETYPE
	SBRK	8
	.line	21
;>>>> 				break;
;>>>> 			case 2:
	B	L207
L208:
	.line	23
;>>>> 				LCD_GLOVETYPE(44,56,60,52,32,46,30,40);
	MAR	* ,AR1
	LACK	40
	SACL	*+
	LACK	30
	SACL	*+
	LACK	46
	SACL	*+
	LACK	32
	SACL	*+
	LACK	52
	SACL	*+
	LACK	60
	SACL	*+
	LACK	56
	SACL	*+
	LACK	44
	SACL	*+
	CALL	_LCD_GLOVETYPE
	SBRK	8
	.line	24
;>>>> 				break;
;>>>> 			case 3:
	B	L207
L209:
	.line	26
;>>>> 				LCD_GLOVETYPE(26,34,38,34,20,28,20,17);
	MAR	* ,AR1
	LACK	17
	SACL	*+
	LACK	20
	SACL	*+
	LACK	28
	SACL	*+
	LACK	20
	SACL	*+
	LACK	34
	SACL	*+
	LACK	38
	SACL	*+
	LACK	34
	SACL	*+
	LACK	26
	SACL	*+
	CALL	_LCD_GLOVETYPE
	SBRK	8
	.line	27
;>>>> 				break;
;>>>> 			case 4:
	B	L207
L210:
	.line	29
;>>>> 				LCD_GLOVETYPE(24,32,36,30,18,26,19,15);
	MAR	* ,AR1
	LACK	15
	SACL	*+
	LACK	19
	SACL	*+
	LACK	26
	SACL	*+
	LACK	18
	SACL	*+
	LACK	30
	SACL	*+
	LACK	36
	SACL	*+
	LACK	32
	SACL	*+
	LACK	24
	SACL	*+
	CALL	_LCD_GLOVETYPE
	SBRK	8
	.line	30
;>>>> 				break;
	B	L207
L205:
	.line	18
	SSXM
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	SUBK	1
	BZ	L206
	SUBK	1
	BZ	L208
	SUBK	1
	BZ	L209
	SUBK	1
	BZ	L210
L207:
EPI0_15:
	.line	32
	MAR	* ,AR1
	SBRK	3
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	632,000000000H,2

	.sym	_Amend_argument,_Amend_argument,32,2,0
	.globl	_Amend_argument

	.func	634
;>>>> 	void Amend_argument(caidan,pin_num1,pin_num2,pin_num3,pin_num4,i)
******************************************************
* FUNCTION DEF : _Amend_argument
******************************************************
_Amend_argument:

LF16	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,17
	LAR	AR0,*0+,AR2

	.sym	_caidan,-3+LF16,4,9,16
	.sym	_pin_num1,-4+LF16,4,9,16
	.sym	_pin_num2,-5+LF16,4,9,16
	.sym	_pin_num3,-6+LF16,4,9,16
	.sym	_pin_num4,-7+LF16,4,9,16
	.sym	_i,-8+LF16,4,9,16
	.sym	_HANZI_CON,1,52,1,256,,16
	.line	2
;>>>> 		int HANZI_CON[16];
	.line	4
;>>>> 		WAIT_KEY(i);
	LARK	AR2,-8+LF16
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	5
;>>>> 		Delay1S();
	CALL	_Delay1S
	.line	6
;>>>> 		if(KEY_LEFT==1)
	LDPK	_KEY_LEFT
	LAC	_KEY_LEFT
	SUBK	1
	BNZ	L211
	.line	7
;>>>> 			{if(caidan==1)
	MAR	* ,AR2
	LARK	AR2,-3+LF16
	MAR	*0+
	LAC	* 
	SUBK	1
	BNZ	L212
	.line	8
;>>>> 	    		{JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFB9);
	MAR	* ,AR1
	LACK	-71
	SACL	*+
	LALK	_HANZI_SUDU+0
	SACL	*+
	LALK	_HANZI_XIANSU+0
	SACL	*+
	LALK	_HANZI_GAODI+0
	SACL	*+
	LALK	_HANZI_ZUIGAO+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	1
	SACL	*+
	CALL	_JIQI
	SBRK	7
	.line	9
;>>>> 	    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBB);
	LACK	-69
	SACL	*+
	LALK	_HANZI_SUDU+0
	SACL	*+
	LALK	_HANZI_GAODI+0
	SACL	*+
	LALK	_HANZI_PINGZHEN+16
	SACL	*+
	LALK	_HANZI_PINGZHEN+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	1
	SACL	*+
	CALL	_JIQI
	SBRK	7
	.line	10
;>>>> 	    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBD);
	LACK	-67
	SACL	*+
	LALK	_HANZI_SUDU+0
	SACL	*+
	LALK	_HANZI_GAODI+16
	SACL	*+
	LALK	_HANZI_PINGZHEN+16
	SACL	*+
	LALK	_HANZI_PINGZHEN+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	1
	SACL	*+
	CALL	_JIQI
	SBRK	7
	.line	11
;>>>> 	    		JIQI(2,HANZI_CON,HANZIZIKU+112,HANZI_ZUO,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);}	
	LACK	-65
	SACL	*+
	LALK	_HANZI_SUDU+0
	SACL	*+
	LALK	_HANZI_GAODI+16
	SACL	*+
	LALK	_HANZI_ZUO+0
	SACL	*+
	LALK	_HANZIZIKU+112
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	2
	SACL	*+
	CALL	_JIQI
	SBRK	7
L212:
	.line	12
;>>>> 			 if(caidan==2)
	MAR	* ,AR2
	LARK	AR2,-3+LF16
	MAR	*0+
	LAC	* 
	SUBK	2
	BNZ	L213
	.line	13
;>>>> 				{JIQI(2,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
	MAR	* ,AR1
	LACK	-71
	SACL	*+
	LALK	_HANZI_LEIXING+16
	SACL	*+
	LALK	_HANZI_LEIXING+0
	SACL	*+
	LALK	_HANZI_JIQI+16
	SACL	*+
	LALK	_HANZI_JIQI+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	2
	SACL	*+
	CALL	_JIQI
	SBRK	7
	.line	14
;>>>> 	    		JIQI(1,HANZI_CON,HANZI_ZUIGAO,HANZI_GAODI,HANZI_XIANSU,HANZI_SUDU,0xFFBB);
	LACK	-69
	SACL	*+
	LALK	_HANZI_SUDU+0
	SACL	*+
	LALK	_HANZI_XIANSU+0
	SACL	*+
	LALK	_HANZI_GAODI+0
	SACL	*+
	LALK	_HANZI_ZUIGAO+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	1
	SACL	*+
	CALL	_JIQI
	SBRK	7
	.line	15
;>>>> 	    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI,HANZI_SUDU,0xFFBD);
	LACK	-67
	SACL	*+
	LALK	_HANZI_SUDU+0
	SACL	*+
	LALK	_HANZI_GAODI+0
	SACL	*+
	LALK	_HANZI_PINGZHEN+16
	SACL	*+
	LALK	_HANZI_PINGZHEN+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	1
	SACL	*+
	CALL	_JIQI
	SBRK	7
	.line	16
;>>>> 	    		JIQI(1,HANZI_CON,HANZI_PINGZHEN,HANZI_PINGZHEN+16,HANZI_GAODI+16,HANZI_SUDU,0xFFBF);} 
	LACK	-65
	SACL	*+
	LALK	_HANZI_SUDU+0
	SACL	*+
	LALK	_HANZI_GAODI+16
	SACL	*+
	LALK	_HANZI_PINGZHEN+16
	SACL	*+
	LALK	_HANZI_PINGZHEN+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	1
	SACL	*+
	CALL	_JIQI
	SBRK	7
L213:
	.line	17
;>>>> 			 if(caidan==3)
	MAR	* ,AR2
	LARK	AR2,-3+LF16
	MAR	*0+
	LAC	* 
	SUBK	3
	BNZ	L214
	.line	18
;>>>> 				{JIQI(1,HANZI_CON,HANZI_JIQI,HANZI_JIQI+16,HANZI_LEIXING,HANZI_LEIXING+16,0xFFB9);
	MAR	* ,AR1
	LACK	-71
	SACL	*+
	LALK	_HANZI_LEIXING+16
	SACL	*+
	LALK	_HANZI_LEIXING+0
	SACL	*+
	LALK	_HANZI_JIQI+16
	SACL	*+
	LALK	_HANZI_JIQI+0
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	1
	SACL	*+
	CALL	_JIQI
	SBRK	7
	.

⌨️ 快捷键说明

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