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

📄 timerauto.src

📁 motor_control.zip
💻 SRC
📖 第 1 页 / 共 3 页
字号:
	ADD  	A,avgad1?443+03H
	MOV  	avgad1?443+03H,A
	MOV  	A,R6
	ADDC 	A,avgad1?443+02H
	MOV  	avgad1?443+02H,A
	MOV  	A,R5
	ADDC 	A,avgad1?443+01H
	MOV  	avgad1?443+01H,A
	MOV  	A,R4
	ADDC 	A,avgad1?443
	MOV  	avgad1?443,A
; 		     //delayms(10);
; 	      }
			; SOURCE LINE # 98
	INC  	R3
	CJNE 	R3,#0FH,?C0010
?C0011:
; 	   avgad1=avgad1/15;
			; SOURCE LINE # 99
	MOV  	R7,avgad1?443+03H
	MOV  	R6,avgad1?443+02H
	MOV  	R5,avgad1?443+01H
	MOV  	R4,avgad1?443
	CLR  	A
	MOV  	R3,#0FH
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	LCALL	?C?ULDIV
	MOV  	avgad1?443+03H,R7
	MOV  	avgad1?443+02H,R6
	MOV  	avgad1?443+01H,R5
	MOV  	avgad1?443,R4
; 	   avge=(avgad+avgad1)/4;
			; SOURCE LINE # 100
	MOV  	A,avgad?444+03H
	ADD  	A,avgad1?443+03H
	MOV  	R7,A
	MOV  	A,avgad?444+02H
	ADDC 	A,avgad1?443+02H
	MOV  	R6,A
	MOV  	A,avgad?444+01H
	ADDC 	A,avgad1?443+01H
	MOV  	R5,A
	MOV  	A,avgad?444
	ADDC 	A,avgad1?443
	MOV  	R4,A
	CLR  	A
	MOV  	R3,#04H
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	LCALL	?C?ULDIV
	MOV  	avge+03H,R7
	MOV  	avge+02H,R6
	MOV  	avge+01H,R5
	MOV  	avge,R4
; 		
; 	   //CH452_Write(CH452_DIG1|bb);
; 	   //CH452_Write(CH452_DIG0|c);
; 	   return(avge);
			; SOURCE LINE # 104
; }
			; SOURCE LINE # 105
?C0013:
	RET  	
; END OF pingjun

; 
; 
; 
; void stage_clk_start()

	RSEG  ?PR?stage_clk_start?TIMERAUTO
stage_clk_start:
	USING	0
			; SOURCE LINE # 109
; {	
			; SOURCE LINE # 110
; 	
; 	//CH452_Write(CH452_TWINKLE);
; 	DELAY_1US;DELAY_1US;DELAY_1US;DELAY_1US;DELAY_1US;
			; SOURCE LINE # 113
	NOP  	
	NOP  	
	NOP  	
	NOP  	
	NOP  	
	NOP  	
	NOP  	
	NOP  	
	NOP  	
	NOP  	
; 	stage_clk_flag=1;
			; SOURCE LINE # 114
	MOV  	stage_clk_flag,#01H
; 	stage_sec=0;
			; SOURCE LINE # 115
	CLR  	A
	MOV  	stage_sec,A
; 	CH452_Write(CH452_DIG4);
			; SOURCE LINE # 116
	MOV  	R7,A
	MOV  	R6,#0CH
	LCALL	_CH452_Write
; 	CH452_Write(CH452_DIG5 | 16);	
			; SOURCE LINE # 117
	MOV  	R7,#010H
	MOV  	R6,#0DH
	LJMP 	_CH452_Write
; END OF stage_clk_start

; }
; void stage_clk_stop()

	RSEG  ?PR?stage_clk_stop?TIMERAUTO
stage_clk_stop:
			; SOURCE LINE # 119
; {
			; SOURCE LINE # 120
; 	stage_clk_flag=0;
			; SOURCE LINE # 121
	CLR  	A
	MOV  	stage_clk_flag,A
; 	//stage_sec_record[ t_n ]=stage_sec;
; 	//CH452_Write(CH452_TWINKLE | 0x30);
; 	//t_n ++;
; }
			; SOURCE LINE # 125
	RET  	
; END OF stage_clk_stop

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

	RSEG  ?PR?_delay_s?TIMERAUTO
_delay_s:
			; SOURCE LINE # 128
	MOV  	n?746,R7
; {	
			; SOURCE LINE # 129
; 	#pragma asm
; 	//USING 0
	  
; n_:
	  n_:
; 	MOV R2,#50		//系统时钟如果分别是2M,4M,8M,16M
	  MOV R2,#50		 
; 					//则R2值分别为		25,50,100,200
	  
; R2_:
	  R2_:
; 	MOV R1,#40
	  MOV R1,#40
; R1_:
	  R1_:
; 	MOV R0,#50	
	  MOV R0,#50	
; 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?746,n_  
	  DJNZ n?746,n_  
; 	#pragma endasm
; }
			; SOURCE LINE # 169
	RET  	
; END OF _delay_s

; /*void confirm(void)
; //{	  
; //	uchar i;
; 	for(i=5;i>0;i--)
; 	{	
; 		CH452_Write(CH452_DIG7 | i);
; 		SPOKER=1;
; 		delay_s(1);
; 		SPOKER=0;
; 		delay_s(1);
; 	}
; 	CH452_Write(CH452_DIG7);
; 	
; //}*/
; void judgement (uchar modi,uchar modi1,uchar dem)

	RSEG  ?PR?_judgement?TIMERAUTO
L?0093:
	USING	0
	MOV  	R3,#014H
	MOV  	R5,#014H
	MOV  	R7,#05AH
_judgement:
	USING	0
			; SOURCE LINE # 184
	MOV  	modi?847,R7
	MOV  	modi1?848,R5
	MOV  	dem?849,R3
; {			  uchar i;
			; SOURCE LINE # 185
; 	if((a&&bb==0&&c==0)||(a&&bb&&c==0))
			; SOURCE LINE # 186
	MOV  	A,a?
	JZ   	?C0019
	MOV  	A,bb
	JNZ  	?C0019
	MOV  	A,c?
	JZ   	?C0018
?C0019:
	MOV  	A,a?
	JZ   	?C0017
	MOV  	A,bb
	JZ   	?C0017
	MOV  	A,c?
	JNZ  	?C0017
?C0018:
; 	{	left=1;
			; SOURCE LINE # 187
	MOV  	left,#01H
; 		right=0;
			; SOURCE LINE # 188
	CLR  	A
	MOV  	right,A
; 		speedchange(modi1,1);
			; SOURCE LINE # 189
	MOV  	R5,#01H
	MOV  	R7,modi1?848
	LCALL	_speedchange
; 		speedchange(modi,0);
			; SOURCE LINE # 190
	CLR  	A
	MOV  	R5,A
; 		delayms(dem);
			; SOURCE LINE # 191
; 	}
			; SOURCE LINE # 192
	SJMP 	?C0085
?C0017:
; 	else if((a==0&&bb==0&&c)||(a==0&&bb&&c))
			; SOURCE LINE # 193
	MOV  	A,a?
	JNZ  	?C0023
	MOV  	A,bb
	JNZ  	?C0023
	MOV  	A,c?
	JNZ  	?C0022
?C0023:
	MOV  	A,a?
	JNZ  	?C0021
	MOV  	A,bb
	JZ   	?C0021
	MOV  	A,c?
	JZ   	?C0021
?C0022:
; 	{
			; SOURCE LINE # 194
; 		left=0;
			; SOURCE LINE # 195
	CLR  	A
	MOV  	left,A
; 		right=1;	 
			; SOURCE LINE # 196
	MOV  	right,#01H
; 	    speedchange(modi1,0);
			; SOURCE LINE # 197
	MOV  	R5,A
	MOV  	R7,modi1?848
	LCALL	_speedchange
; 		speedchange(modi,1);
			; SOURCE LINE # 198
	MOV  	R5,#01H
?C0084:
; 		delayms(dem);
			; SOURCE LINE # 199
; 	}
			; SOURCE LINE # 200
	SJMP 	?C0085
?C0021:
; 	else if(a==0&&bb&&c==0)
			; SOURCE LINE # 201
	MOV  	A,a?
	JNZ  	?C0025
	MOV  	A,bb
	JZ   	?C0025
	MOV  	A,c?
	JNZ  	?C0025
; 	{   
			; SOURCE LINE # 202
; 		left=0;
			; SOURCE LINE # 203
	MOV  	left,A
; 		right=0;
			; SOURCE LINE # 204
	MOV  	right,A
; 	    speedchange(modi,0);
			; SOURCE LINE # 205
	MOV  	R5,A
	MOV  	R7,modi?847
	LCALL	_speedchange
; 		speedchange(modi,1);
			; SOURCE LINE # 206
	MOV  	R5,#01H
?C0085:
	MOV  	R7,modi?847
	LCALL	_speedchange
; 		delayms(dem);
			; SOURCE LINE # 207
; 	}
			; SOURCE LINE # 208
	SJMP 	?C0086
?C0025:
; 	else if(a&&bb&&c)	 //停止&&(d||e)
			; SOURCE LINE # 209
	MOV  	A,a?
	JZ   	?C0027
	MOV  	A,bb
	JZ   	?C0027
	MOV  	A,c?
	JZ   	?C0027
;   	{
			; SOURCE LINE # 210
;   					
; 		START=0;
			; SOURCE LINE # 212
	CLR  	START
; 		forward=0;
			; SOURCE LINE # 213
	CLR  	A
	MOV  	forward,A
; 		stage_clk_stop();//显示平衡后前进的时间
			; SOURCE LINE # 214
	LCALL	stage_clk_stop
; 		for(i=5;i>0;i--)
			; SOURCE LINE # 215
	MOV  	i?850,#05H
?C0028:
; 	    {	
			; SOURCE LINE # 216
; 			CH452_Write(CH452_DIG7 | i);
			; SOURCE LINE # 217
	MOV  	R7,i?850
	MOV  	A,#0FH
	MOV  	R6,A
	LCALL	_CH452_Write
; 			SPOKER=1;
			; SOURCE LINE # 218
	SETB 	SPOKER
; 			delay_s(1);
			; SOURCE LINE # 219
	MOV  	R7,#01H
	LCALL	_delay_s
; 			SPOKER=0;
			; SOURCE LINE # 220
	CLR  	SPOKER
; 			delay_s(1);
			; SOURCE LINE # 221
	LCALL	_delay_s
; 		}
			; SOURCE LINE # 222
	DEC  	i?850
	MOV  	A,i?850
	SETB 	C
	SUBB 	A,#00H
	JNC  	?C0028
?C0029:
; 		CH452_Write(CH452_DIG7);
			; SOURCE LINE # 223
	MOV  	R7,#00H
	MOV  	R6,#0FH
	LCALL	_CH452_Write
; 		stage_clk_start();
			; SOURCE LINE # 224
	LCALL	stage_clk_start
;   		backward=1;
			; SOURCE LINE # 225
	MOV  	backward,#01H
;  	}	  
			; SOURCE LINE # 226
	RET  	
?C0027:
; 	else //if (a==0&&bb==0&&c==0)
; 	{
			; SOURCE LINE # 228
; 	     if(left==1)
			; SOURCE LINE # 229
	MOV  	A,left
	CJNE 	A,#01H,?C0032
; 		 {
			; SOURCE LINE # 230
; 		 	speedchange(modi1,0);
			; SOURCE LINE # 231
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi1?848
; 			speedchange(modi,1); }
			; SOURCE LINE # 232
	SJMP 	?C0087
?C0032:
; 		 else if(right==1)
			; SOURCE LINE # 233
	MOV  	A,right
	CJNE 	A,#01H,?C0034
; 		 {
			; SOURCE LINE # 234
; 		 	speedchange(modi,0);
			; SOURCE LINE # 235
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi?847
	LCALL	_speedchange
; 			speedchange(modi1,1);}
			; SOURCE LINE # 236
	MOV  	R5,#01H
	MOV  	R7,modi1?848
	SJMP 	?C0088
?C0034:
; 		 else
; 		 {
			; SOURCE LINE # 238
; 	        speedchange(modi,0);
			; SOURCE LINE # 239
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi?847
?C0087:
	LCALL	_speedchange
; 			speedchange(modi,1);}
			; SOURCE LINE # 240
	MOV  	R5,#01H
	MOV  	R7,modi?847
?C0088:
	LCALL	_speedchange
?C0033:
; 			delayms(dem);
			; SOURCE LINE # 241
?C0086:
	MOV  	R7,dem?849
	MOV  	R6,#00H
	LCALL	_delayms
; 	}
			; SOURCE LINE # 242
; 
; }
			; SOURCE LINE # 244
?C0036:
	RET  	
; END OF _judgement

; void judgementback (uchar modi,uchar modi1,uchar dem)

	RSEG  ?PR?_judgementback?TIMERAUTO
L?0092:
	USING	0
	CLR  	BACK
	MOV  	R3,#0FH
	MOV  	R5,#032H
	CLR  	A
	MOV  	R7,A
_judgementback:
	USING	0
			; SOURCE LINE # 245
	MOV  	modi?951,R7
	MOV  	modi1?952,R5
	MOV  	dem?953,R3
; {	 
			; SOURCE LINE # 246
; 	if(f==1&&g==0)
			; SOURCE LINE # 247
	MOV  	A,f
	CJNE 	A,#01H,?C0037
	MOV  	A,g
	JNZ  	?C0037
; 	{
			; SOURCE LINE # 248
; 	 speedchange(modi1,1);
			; SOURCE LINE # 249
	MOV  	R5,#01H
	MOV  	R7,modi1?952
; 	 speedchange(modi,0);
			; SOURCE LINE # 250
; 	 
; 	}
			; SOURCE LINE # 252
	SJMP 	?C0089
?C0037:
; 	else if(f==0&&g==1)
			; SOURCE LINE # 253
	MOV  	A,f
	JNZ  	?C0039
	MOV  	A,g
	CJNE 	A,#01H,?C0039
; 	{
			; SOURCE LINE # 254
; 	 speedchange(modi,1);
			; SOURCE LINE # 255
	MOV  	R5,#01H
	MOV  	R7,modi?951
	LCALL	_speedchange
; 	 speedchange(modi1,0);
			; SOURCE LINE # 256
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi1?952
; 	 
; 	}						
			; SOURCE LINE # 258
	SJMP 	?C0090
?C0039:
; 	else if(f==0&&g==0)
			; SOURCE LINE # 259
	MOV  	A,f
	JNZ  	?C0041
	MOV  	A,g
	JNZ  	?C0041
; 	{
			; SOURCE LINE # 260
; 		speedchange(modi,1);
			; SOURCE LINE # 261
	MOV  	R5,#01H
	MOV  	R7,modi?951
?C0089:
	LCALL	_speedchange
; 	 	speedchange(modi,0);
			; SOURCE LINE # 262
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi?951
?C0090:
	LCALL	_speedchange
; 	}
			; SOURCE LINE # 263
	SJMP 	?C0038
?C0041:
; 	else 
; 	{
			; SOURCE LINE # 265
; 	 START=0;
			; SOURCE LINE # 266
	CLR  	START
; 	 stage_clk_stop();
			; SOURCE LINE # 267
	LCALL	stage_clk_stop
; 	 TR0=0;
			; SOURCE LINE # 268
	CLR  	TR0
; 
; 	}					
			; SOURCE LINE # 270
?C0038:
; 	delayms(dem);
			; SOURCE LINE # 271
	MOV  	R7,dem?953
	MOV  	R6,#00H
	LJMP 	_delayms
; END OF _judgementback

; }
; 
; 
; void main(void)

	RSEG  ?PR?main?TIMERAUTO
main:
	USING	0
			; SOURCE LINE # 275
; {	
			; SOURCE LINE # 276
; 	uchar chazhi=4;
			; SOURCE LINE # 277
	MOV  	chazhi?1054,#04H
; 	uchar chazhi1;
; 	Init_Device();
			; SOURCE LINE # 279
	LCALL	Init_Device
; 	CH452_Init();	  /* CH452初始化 */
			; SOURCE LINE # 280
	LCALL	CH452_Init
; 	LEDG=0; 
			; SOURCE LINE # 281
	CLR  	LEDG
; 	SPOKER=0;
			; SOURCE LINE # 282
	CLR  	SPOKER
; 	IN0=1;
			; SOURCE LINE # 283
	SETB 	IN0
; 	IN1=1;
			; SOURCE LINE # 284
	SETB 	IN1
; 	IN2=1;
			; SOURCE LINE # 285
	SETB 	IN2
; 	//IN3=1;
; 	//IN4=1;
; 	IN5=1;
			; SOURCE LINE # 288
	SETB 	IN5
; 	IN6=1;
			; SOURCE LINE # 289
	SETB 	IN6
; 	START=0;
			; SOURCE LINE # 290
	CLR  	START
; 	time1=1;
			; SOURCE LINE # 291
	MOV  	time1,#01H
; 	time2=1;
			; SOURCE LINE # 292
	MOV  	time2,#01H
; 	counter1=170;
			; SOURCE LINE # 293
	MOV  	counter1,#0AAH
; 	counter2=30;
			; SOURCE LINE # 294
	MOV  	counter2,#01EH
; 	EA=1;
			; SOURCE LINE # 295
	SETB 	EA
?C0044:
; 	
; 	//BACK=0;         	
; 	while(1)
			; SOURCE LINE # 298
; 	{	 
			; SOURCE LINE # 299
; 		LEDG=~LEDG;		
			; SOURCE LINE # 300
	CPL  	LEDG
; 		avge=pingjun();
			; SOURCE LINE # 301
	LCALL	pingjun
	MOV  	avge+03H,R7
	MOV  	avge+02H,R6
	MOV  	avge+01H,R5
	MOV  	avge,R4
; 		if(xianshi==1)
			; SOURCE LINE # 302
	MOV  	A,xianshi
	CJNE 	A,#01H,?C0046
; 		{BCD_H_L(avge-200,0); }	   
			; SOURCE LINE # 303
	MOV  	A,R7
	ADD  	A,#038H
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#0FFH
	MOV  	R6,A
	CLR  	A
	MOV  	R5,A
	LCALL	_BCD_H_L
?C0046:
; 		a=IN0;
			; SOURCE LINE # 304
	MOV  	C,IN0
	CLR  	A
	RLC  	A
	MOV  	a?,A
; 		bb=IN1;
			; SOURCE LINE # 305
	MOV  	C,IN1
	CLR  	A
	RLC  	A
	MOV  	bb,A
; 		c=IN2;
			; SOURCE LINE # 306
	MOV  	C,IN2
	CLR  	A
	RLC  	A
	MOV  	c?,A
; 		//d=IN3;
; 		//e=IN4;
; 		f=IN5;
			; SOURCE LINE # 309
	MOV  	C,IN5
	CLR  	A
	RLC  	A
	MOV  	f,A
; 		g=IN6;
			; SOURCE LINE # 310
	MOV  	C,IN6
	CLR  	A
	RLC  	A
	MOV  	g,A
; 		if(backward==1)
			; SOURCE LINE # 311
	MOV  	A,backward
	CJNE 	A,#01H,?C0047
; 		{
			; SOURCE LINE # 312
; 		START=1;
			; SOURCE LINE # 313
	SETB 	START
; 		BACK=0;
			; SOURCE LINE # 314
	CLR  	BACK
; 		judgementback(90,20,20);
			; SOURCE LINE # 315
	MOV  	R3,#014H
	MOV  	R5,#014H
	MOV  	R7,#05AH
	LCALL	_judgementback
; 		}
			; SOURCE LINE # 316
?C0047:
; 
; 		if(forward==1)
			; SOURCE LINE # 318
	MOV  	A,forward
	CJNE 	A,#01H,?C0048
; 		{ 
			; SOURCE LINE # 319
; 		START=1;
			; SOURCE LINE # 320
	SETB 	START
; 		BACK=1;	//前进
			; SOURCE LINE # 321
	SETB 	BACK
; 		judgement(90,20,20);
			; SOURCE LINE # 322
	LCALL	L?0093
; 		
; 		}
			; SOURCE LINE # 324
?C0048:
; 	   if(black==1)		
			; SOURCE LINE # 325
	MOV  	A,black
	CJNE 	A,#01H,?C0049
; 	   {
			; SOURCE LINE # 326
; 	    START=1;
			; SOURCE LINE # 327
	SETB 	START
; 	    TR1=1; //开定时器
			; SOURCE LINE # 328
	SETB 	TR1
; 		time2=0;	    
			; SOURCE LINE # 329
	CLR  	A

⌨️ 快捷键说明

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