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

📄 yanshi.src

📁 motor_control.zip
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	MOV  	R7,A
	LCALL	_speedchange
; 						speedchange(50,0);
			; SOURCE LINE # 104
	CLR  	A
	MOV  	R5,A
; 					 }
			; SOURCE LINE # 105
	SJMP 	?C0054
?C0014:
; 					else if((a==0&&bb==0&&c==1)||(a==0&&bb==1&&c==1))
			; SOURCE LINE # 106
	MOV  	A,a?
	JNZ  	?C0020
	MOV  	A,bb
	JNZ  	?C0020
	MOV  	A,c?
	XRL  	A,#01H
	JZ   	?C0019
?C0020:
	MOV  	A,a?
	JNZ  	?C0018
	MOV  	A,bb
	CJNE 	A,#01H,?C0018
	MOV  	A,c?
	CJNE 	A,#01H,?C0018
?C0019:
; 					{
			; SOURCE LINE # 107
; 						left=0;
			; SOURCE LINE # 108
	CLR  	A
	MOV  	left,A
; 						right=1;	 
			; SOURCE LINE # 109
	MOV  	right,#01H
; 	     				speedchange(0,0);
			; SOURCE LINE # 110
	MOV  	R5,A
	MOV  	R7,A
	LCALL	_speedchange
; 						speedchange(50,1);
			; SOURCE LINE # 111
	MOV  	R5,#01H
?C0051:
; 					 
; 					 }
			; SOURCE LINE # 113
	SJMP 	?C0054
?C0018:
; 					else if((a==0&&bb==1&&c==0))
			; SOURCE LINE # 114
	MOV  	A,a?
	JNZ  	?C0022
	MOV  	A,bb
	CJNE 	A,#01H,?C0022
	MOV  	A,c?
	JNZ  	?C0022
; 					{   
			; SOURCE LINE # 115
; 						left=0;
			; SOURCE LINE # 116
	MOV  	left,A
; 						right=0;
			; SOURCE LINE # 117
	MOV  	right,A
; 	    				speedchange(50,0);
			; SOURCE LINE # 118
	MOV  	R5,A
	MOV  	R7,#032H
	LCALL	_speedchange
; 						speedchange(50,1);
			; SOURCE LINE # 119
	MOV  	R5,#01H
?C0052:
; 					}
			; SOURCE LINE # 120
	SJMP 	?C0054
?C0022:
; 					else //if (a==0&&bb==0&&c==0)
; 					{
			; SOURCE LINE # 122
; 	     				if(left==1)
			; SOURCE LINE # 123
	MOV  	A,left
	CJNE 	A,#01H,?C0024
; 		 				{
			; SOURCE LINE # 124
; 		 	  		    speedchange(0,0);
			; SOURCE LINE # 125
	CLR  	A
	MOV  	R5,A
	MOV  	R7,A
	LCALL	_speedchange
; 						speedchange(50,1); }
			; SOURCE LINE # 126
	MOV  	R5,#01H
?C0053:
	SJMP 	?C0054
?C0024:
; 		 				else if(right==1)
			; SOURCE LINE # 127
	MOV  	A,right
	CJNE 	A,#01H,?C0026
; 		 				{
			; SOURCE LINE # 128
; 		 	             speedchange(50,0);
			; SOURCE LINE # 129
	LCALL	L?0057
; 						 speedchange(0,1);}
			; SOURCE LINE # 130
	MOV  	R5,#01H
	CLR  	A
	MOV  	R7,A
	SJMP 	?C0055
?C0026:
; 		 				else
; 		  				{
			; SOURCE LINE # 132
; 	        		    speedchange(50,0);
			; SOURCE LINE # 133
	LCALL	L?0057
; 						speedchange(50,1);}
			; SOURCE LINE # 134
	MOV  	R5,#01H
?C0054:
	MOV  	R7,#032H
?C0055:
	LCALL	_speedchange
; 					}
			; SOURCE LINE # 135
; 
; 
; 
; }
			; SOURCE LINE # 139
?C0028:
	RET  	
; END OF judgement

; 
; /****精确秒延时****/	
; 
; void delay_s(uchar n)

	RSEG  ?PR?_delay_s?YANSHI
_delay_s:
			; SOURCE LINE # 143
	MOV  	n?646,R7
; {	
			; SOURCE LINE # 144
; 	#pragma asm
; 	//USING 0
	  
; n_:
	  n_:
; 	MOV R2,#200		
	  MOV R2,#200		
; R2_:
	  R2_:
; 	MOV R1,#100	
	  MOV R1,#100	
; R1_:
	  R1_:
; 	MOV R0,#10		//系统时钟如果分别是2M,4M,8M,16M
	  MOV R0,#10		 
; 					//则R1值分别为		5,10,20,40
	  
; R0_:
	  R0_:
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP	   
	  NOP	   
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP		
	  NOP		
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP	
	  NOP	
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP	
	  NOP	
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	//NOP
	  
; 	//NOP
	  
; 	DJNZ R0,R0_	 
	  DJNZ R0,R0_	 
; 	DJNZ R1,R1_	  
	  DJNZ R1,R1_	  
; 	DJNZ R2,R2_	  
	  DJNZ R2,R2_	  
; 	DJNZ n?646,n_  
	  DJNZ n?646,n_  
; 	#pragma endasm
; }
			; SOURCE LINE # 184
	RET  	
; END OF _delay_s

; 
; void main(void)

	RSEG  ?PR?main?YANSHI
main:
	USING	0
			; SOURCE LINE # 186
; {	
			; SOURCE LINE # 187
; 	uchar chazhi=6;
			; SOURCE LINE # 188
	MOV  	chazhi?747,#06H
; 	uchar chazhi1;
; 	uchar i;
; 	Init_Device();
			; SOURCE LINE # 191
	LCALL	Init_Device
; 	CH452_Init();	  /* CH452初始化 */
			; SOURCE LINE # 192
	LCALL	CH452_Init
; 	LEDG=0; 
			; SOURCE LINE # 193
	CLR  	LEDG
; 	IN0=1;
			; SOURCE LINE # 194
	SETB 	IN0
; 	IN1=1;
			; SOURCE LINE # 195
	SETB 	IN1
; 	IN2=1;
			; SOURCE LINE # 196
	SETB 	IN2
; 	IN3=1;
			; SOURCE LINE # 197
	SETB 	IN3
; 	IN4=1;
			; SOURCE LINE # 198
	SETB 	IN4
; 	START=0;
			; SOURCE LINE # 199
	CLR  	START
; 	BACK=0;
			; SOURCE LINE # 200
	CLR  	BACK
; 	
; 	for(i=5;i>0;i--)
			; SOURCE LINE # 202
	MOV  	i?749,#05H
?C0030:
; 	{
			; SOURCE LINE # 203
; 		
; 		CH452_Write(CH452_DIG0 | i);delay_s(1);
			; SOURCE LINE # 205
	MOV  	R7,i?749
	MOV  	A,#08H
	MOV  	R6,A
	LCALL	_CH452_Write
	MOV  	R7,#01H
	LCALL	_delay_s
; 	}
			; SOURCE LINE # 206
	DEC  	i?749
	MOV  	A,i?749
	SETB 	C
	SUBB 	A,#00H
	JNC  	?C0030
?C0031:
; 	CH452_Write(CH452_DIG0);
			; SOURCE LINE # 207
	MOV  	R7,#00H
	MOV  	R6,#08H
	LCALL	_CH452_Write
?C0033:
; 	        	
; 	while(1)
			; SOURCE LINE # 209
; 	{	 
			; SOURCE LINE # 210
; 		LEDG=~LEDG;
			; SOURCE LINE # 211
	CPL  	LEDG
; 		EA=1;
			; SOURCE LINE # 212
	SETB 	EA
; 		avge=pingjun();
			; SOURCE LINE # 213
	LCALL	pingjun
	MOV  	avge+03H,R7
	MOV  	avge+02H,R6
	MOV  	avge+01H,R5
	MOV  	avge,R4
; 		BCDdisplay_l(avge-200); 	   
			; SOURCE LINE # 214
	MOV  	A,avge+03H
	ADD  	A,#038H
	MOV  	R7,A
	MOV  	A,avge+02H
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	A,avge+01H
	ADDC 	A,#0FFH
	MOV  	R5,A
	MOV  	A,avge
	ADDC 	A,#0FFH
	MOV  	R4,A
	CLR  	A
	LCALL	?C?FCASTL
	LCALL	_BCDdisplay_l
; 		a=IN0;
			; SOURCE LINE # 215
	MOV  	C,IN0
	CLR  	A
	RLC  	A
	MOV  	a?,A
; 		bb=IN1;
			; SOURCE LINE # 216
	MOV  	C,IN1
	CLR  	A
	RLC  	A
	MOV  	bb,A
; 		c=IN2;
			; SOURCE LINE # 217
	MOV  	C,IN2
	CLR  	A
	RLC  	A
	MOV  	c?,A
; 		d=IN3;
			; SOURCE LINE # 218
	MOV  	C,IN3
	CLR  	A
	RLC  	A
	MOV  	d,A
; 		e=IN4;
			; SOURCE LINE # 219
	MOV  	C,IN4
	CLR  	A
	RLC  	A
	MOV  	e,A
; 		if(keykey==1) 
			; SOURCE LINE # 220
	MOV  	A,keykey
	CJNE 	A,#01H,?C0033
;   		{
			; SOURCE LINE # 221
; 			chazhi1=abs((int)(avge-avge0));
			; SOURCE LINE # 222
	CLR  	C
	MOV  	A,avge+03H
	SUBB 	A,avge0+03H
	MOV  	R7,A
	MOV  	A,avge+02H
	SUBB 	A,avge0+02H
	MOV  	R6,A
	LCALL	_abs
	MOV  	chazhi1?748,R7
; 			if(chazhi1>=20)    
			; SOURCE LINE # 223
	MOV  	A,chazhi1?748
	CLR  	C
	SUBB 	A,#014H
	JC   	?C0036
; 			{
			; SOURCE LINE # 224
; 	  			START=1;
			; SOURCE LINE # 225
	SETB 	START
; 				if(avge>(avge0+chazhi-2)) 
			; SOURCE LINE # 226
	MOV  	A,chazhi?747
	ADD  	A,avge0+03H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,avge0+02H
	MOV  	R6,A
	CLR  	A
	ADDC 	A,avge0+01H
	MOV  	R5,A
	CLR  	A
	ADDC 	A,avge0
	MOV  	R4,A
	MOV  	A,R7
	ADD  	A,#0FEH
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	A,R5
	ADDC 	A,#0FFH
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,#0FFH
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	SETB 	C
	LCALL	?C?ULCMP
	JC   	?C0037
; 		 		{ 
			; SOURCE LINE # 227
; 		   			BACK=0;
			; SOURCE LINE # 228
	CLR  	BACK
; 					judgement();
			; SOURCE LINE # 229
	LCALL	judgement
; 		 		}
			; SOURCE LINE # 230
?C0037:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 231
	MOV  	R7,chazhi?747
	XCH  	A,R3
	MOV  	A,R7
	XCH  	A,R3
	CLR  	C
	MOV  	A,avge0+03H
	SUBB 	A,R3
	MOV  	R7,A
	MOV  	A,avge0+02H
	SUBB 	A,#00H
	MOV  	R6,A
	MOV  	A,avge0+01H
	SUBB 	A,#00H
	MOV  	R5,A
	MOV  	A,avge0
	SUBB 	A,#00H
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	CLR  	C
	LCALL	?C?ULCMP
	JC   	$ + 5H
	LJMP 	?C0033
; 		  		{
			; SOURCE LINE # 232
; 		  
; 		   			BACK=1;
			; SOURCE LINE # 234
; 					judgement();
			; SOURCE LINE # 235
; 		  
; 		  		}	
			; SOURCE LINE # 237
; 	 		}		
			; SOURCE LINE # 238
	SJMP 	?C0056
?C0036:
; 			else if((chazhi1<20)&&(chazhi1>10))
			; SOURCE LINE # 239
	MOV  	A,chazhi1?748
	CLR  	C
	SUBB 	A,#014H
	JNC  	?C0040
	MOV  	A,chazhi1?748
	SUBB 	A,#0AH
	JC   	?C0040
; 	 		{
			; SOURCE LINE # 240
; 			  	if(avge>(avge0+chazhi)) 
			; SOURCE LINE # 241
	MOV  	A,chazhi?747
	ADD  	A,avge0+03H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,avge0+02H
	MOV  	R6,A
	CLR  	A
	ADDC 	A,avge0+01H
	MOV  	R5,A
	CLR  	A
	ADDC 	A,avge0
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	SETB 	C
	LCALL	?C?ULCMP
	JC   	?C0041
; 		 		{ 
			; SOURCE LINE # 242
; 		  			 START=1;
			; SOURCE LINE # 243
	SETB 	START
; 		  			 BACK=0;
			; SOURCE LINE # 244
	CLR  	BACK
; 		   			 judgement();
			; SOURCE LINE # 245
	LCALL	judgement
; 		 		}
			; SOURCE LINE # 246
?C0041:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 247
	MOV  	R7,chazhi?747
	XCH  	A,R3
	MOV  	A,R7
	XCH  	A,R3
	CLR  	C
	MOV  	A,avge0+03H
	SUBB 	A,R3
	MOV  	R7,A
	MOV  	A,avge0+02H
	SUBB 	A,#00H
	MOV  	R6,A
	MOV  	A,avge0+01H
	SUBB 	A,#00H
	MOV  	R5,A
	MOV  	A,avge0
	SUBB 	A,#00H
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	CLR  	C
	LCALL	?C?ULCMP
	JC   	$ + 5H
	LJMP 	?C0033
; 		  		{
			; SOURCE LINE # 248
; 		   			START=1;
			; SOURCE LINE # 249
	SETB 	START
; 		   			BACK=1;
			; SOURCE LINE # 250
?C0056:
	SETB 	BACK
; 		   			judgement();
			; SOURCE LINE # 251
	LCALL	judgement
; 				 }	
			; SOURCE LINE # 252
; 	 		}		
			; SOURCE LINE # 253
	LJMP 	?C0033
?C0040:
; 	 		else     
; 			{
			; SOURCE LINE # 255
; 				START=0;
			; SOURCE LINE # 256
	CLR  	START
; 				for(i=5;i>0;i--)
			; SOURCE LINE # 257
	MOV  	i?749,#05H
?C0044:
; 				{
			; SOURCE LINE # 258
; 					CH452_Write(CH452_DIG0 | i);delay_s(1);
			; SOURCE LINE # 259
	MOV  	R7,i?749
	MOV  	A,#08H
	MOV  	R6,A
	LCALL	_CH452_Write
	MOV  	R7,#01H
	LCALL	_delay_s
; 				}
			; SOURCE LINE # 260
	DEC  	i?749
	MOV  	A,i?749
	SETB 	C
	SUBB 	A,#00H
	JNC  	?C0044
?C0045:
; 				CH452_Write(CH452_DIG0);
			; SOURCE LINE # 261
	MOV  	R7,#00H
	MOV  	R6,#08H
	LCALL	_CH452_Write
; 			}	
			; SOURCE LINE # 262
;     	}
			; SOURCE LINE # 263
; 	   //AMX0SL    =  0x03;
; 	   //state=(AD_IN(1,1));
; 	   //result=(int)state;
; 	   //BCDdisplay(result);
; 	   //delayms(20);
; 	}
			; SOURCE LINE # 269
	LJMP 	?C0033
; END OF main

CSEG	AT	0004BH
	LJMP	PCA_ISR

; }
; 
; 
; /*PCA中断子程序*/
; void PCA_ISR (void) interrupt 9

	RSEG  ?PR?PCA_ISR?YANSHI
	USING	0
PCA_ISR:
			; SOURCE LINE # 274
; {
; 	
; 	CCF0 = 0;			/*清匹配中断标志*/
			; SOURCE LINE # 277
	CLR  	CCF0
; 
; } 
			; SOURCE LINE # 279
	RETI 	
; END OF PCA_ISR

CSEG	AT	0009BH
	LJMP	led

; 
; 
;  /*键盘中断子程序*/
; void led(void)  interrupt 19

	RSEG  ?PR?led?YANSHI
	USING	0
led:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	MOV  	A,R0
	PUSH 	ACC
	MOV  	A,R1
	PUSH 	ACC
	MOV  	A,R2
	PUSH 	ACC
	MOV  	A,R3
	PUSH 	ACC
	MOV  	A,R4
	PUSH 	ACC
	MOV  	A,R5
	PUSH 	ACC
	MOV  	A,R6
	PUSH 	ACC
	MOV  	A,R7
	PUSH 	ACC
	USING	0
			; SOURCE LINE # 283
; { 
;    uchar key;
;    EA=0;
			; SOURCE LINE # 286
	CLR  	EA
;    
;    key=CH452_Read();
			; SOURCE LINE # 288
	LCALL	CH452_Read
;---- Variable 'key?950' assigned to Register 'R7' ----
;    
;    if(0x62==key)
			; SOURCE LINE # 290
	CJNE 	R7,#062H,?C0049
;    {
			; SOURCE LINE # 291
;    	delayms(2);
			; SOURCE LINE # 292
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	avge0=avge;
			; SOURCE LINE # 293
	MOV  	avge0+03H,avge+03H
	MOV  	avge0+02H,avge+02H
	MOV  	avge0+01H,avge+01H
	MOV  	avge0,avge
; 	keykey=1;
			; SOURCE LINE # 294
	MOV  	keykey,#01H
; 
; 	BCDdisplay_h(avge0-200); 
			; SOURCE LINE # 296
	MOV  	A,avge0+03H
	ADD  	A,#038H
	MOV  	R7,A
	MOV  	A,avge0+02H
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	A,avge0+01H
	ADDC 	A,#0FFH
	MOV  	R5,A
	MOV  	A,avge0
	ADDC 	A,#0FFH
	MOV  	R4,A
	CLR  	A
	LCALL	?C?FCASTL
	LCALL	_BCDdisplay_h
;     }
			; SOURCE LINE # 297
?C0049:
;    EA=1;
			; SOURCE LINE # 298
	SETB 	EA
;   }
			; SOURCE LINE # 299
	POP  	ACC
	MOV  	R7,A
	POP  	ACC
	MOV  	R6,A
	POP  	ACC
	MOV  	R5,A
	POP  	ACC
	MOV  	R4,A
	POP  	ACC
	MOV  	R3,A
	POP  	ACC
	MOV  	R2,A
	POP  	ACC
	MOV  	R1,A
	POP  	ACC
	MOV  	R0,A
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	B
	POP  	ACC
	RETI 	
; END OF led

	END

⌨️ 快捷键说明

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