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

📄 main.s

📁 avr的视频采集
💻 S
📖 第 1 页 / 共 3 页
字号:
; 	   if (a!=0) {all=0;return;}
	lds R2,_a
	tst R2
	brne X5
	xjmp L10
X5:
	.dbline 187
	.dbline 187
	clr R2
	sts _all,R2
	.dbline 187
	xjmp L8
X0:
	.dbline 189
; 	     //PORTF=jiaodu;//while(1);
; 	}
L9:
	.dbline 190
;  else if (all==LINE)
	lds R24,_all
	cpi R24,2
	breq X6
	xjmp L20
X6:
	.dbline 191
;  	{
	.dbline 192
; 	   a=b;
	lds R2,_b
	sts _a,R2
	.dbline 193
; 	   b=c;
	lds R2,_c
	sts _b,R2
	.dbline 194
; 	   c=d;
	lds R2,_d
	sts _c,R2
	.dbline 195
; 	   d=e;
	lds R2,_e
	sts _d,R2
	.dbline 196
; 	   e=f;
	lds R2,_f
	sts _e,R2
	.dbline 197
; 	   f=UDR1;
	lds R2,156
	sts _f,R2
	.dbline 198
	mov R24,R2
	cpi R24,48
	brlo L24
	ldi R24,57
	cp R24,R2
	brsh L22
L24:
	.dbline 198
; 	   if ((f<'0')||(f>'9'))return;
	xjmp L8
L22:
	.dbline 199
; 	   if (a=='+')
	lds R24,_a
	cpi R24,43
	breq X7
	xjmp L25
X7:
	.dbline 200
; 	   	  {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
	.dbline 200
	lds R18,_c
	clr R19
	ldi R16,1000
	ldi R17,3
	xcall empy16s
	movw R24,R16
	subi R24,128
	sbci R25,187
	lds R18,_b
	clr R19
	ldi R16,10000
	ldi R17,39
	xcall empy16s
	movw R30,R16
	subi R30,0
	sbci R31,83
	add R30,R24
	adc R31,R25
	lds R2,_d
	ldi R24,100
	mul R24,R2
	movw R24,R0
	subi R24,192
	sbci R25,18
	add R30,R24
	adc R31,R25
	lds R2,_e
	ldi R24,10
	mul R24,R2
	movw R24,R0
	subi R24,224
	sbci R25,1
	add R30,R24
	adc R31,R25
	lds R24,_f
	clr R25
	sbiw R24,48
	add R30,R24
	adc R31,R25
	movw R2,R30
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	sts _juli+1,R3
	sts _juli,R2
	sts _juli+2+1,R5
	sts _juli+2,R4
	.dbline 201
; 		   all=0;return;}
	clr R2
	sts _all,R2
	.dbline 201
	xjmp L8
L25:
	.dbline 202
; 	   else if (a=='-')
	lds R24,_a
	cpi R24,45
	breq X8
	xjmp L27
X8:
	.dbline 203
; 	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
	.dbline 203
	lds R18,_c
	clr R19
	ldi R16,1000
	ldi R17,3
	xcall empy16s
	movw R24,R16
	subi R24,128
	sbci R25,187
	lds R18,_b
	clr R19
	ldi R16,10000
	ldi R17,39
	xcall empy16s
	movw R30,R16
	subi R30,0
	sbci R31,83
	add R30,R24
	adc R31,R25
	lds R2,_d
	ldi R24,100
	mul R24,R2
	movw R24,R0
	subi R24,192
	sbci R25,18
	add R30,R24
	adc R31,R25
	lds R2,_e
	ldi R24,10
	mul R24,R2
	movw R24,R0
	subi R24,224
	sbci R25,1
	add R30,R24
	adc R31,R25
	lds R24,_f
	clr R25
	sbiw R24,48
	add R30,R24
	adc R31,R25
	com R30
	com R31
	subi R30,0xFF
	sbci R31,0xFF
	movw R2,R30
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	sts _juli+1,R3
	sts _juli,R2
	sts _juli+2+1,R5
	sts _juli+2,R4
	.dbline 204
; 		   all=0;return;}
	clr R2
	sts _all,R2
	.dbline 204
	xjmp L8
L27:
	.dbline 205
; 	   if (a!=0) {all=0;return;}
	lds R2,_a
	tst R2
	brne X9
	xjmp L21
X9:
	.dbline 205
	.dbline 205
	clr R2
	sts _all,R2
	.dbline 205
	xjmp L8
X1:
	.dbline 207
; 	   //PORTF=a;
; 	}
L20:
	.dbline 208
;  else   if (all==0)//(johu!=3)&&(johu!=5)  //5:7-bit    3:8-bit
	lds R2,_all
	tst R2
	breq X10
	xjmp L31
X10:
	.dbline 209
;       {
	.dbline 210
; 	   a=b;
	lds R2,_b
	sts _a,R2
	.dbline 211
; 	   b=c;
	lds R2,_c
	sts _b,R2
	.dbline 212
; 	   c=d;
	lds R2,_d
	sts _c,R2
	.dbline 213
; 	   d=UDR1;
	lds R2,156
	sts _d,R2
	.dbline 214
; 	   if ((a=='c')&&(b=='i')&&(c=='r'))
	lds R24,_a
	cpi R24,99
	brne L33
	lds R24,_b
	cpi R24,105
	brne L33
	lds R24,_c
	cpi R24,114
	brne L33
	.dbline 215
; 	     {
	.dbline 216
; 		   all=CIR;
	ldi R24,1
	sts _all,R24
	.dbline 217
; 		   a=0;b=0;c=0;d=0;e=0;f=0;
	clr R2
	sts _a,R2
	.dbline 217
	sts _b,R2
	.dbline 217
	sts _c,R2
	.dbline 217
	sts _d,R2
	.dbline 217
	sts _e,R2
	.dbline 217
	sts _f,R2
	.dbline 218
; 		   return; }//RXlen=4;{johu=3;RXlen=3;return;}
	xjmp L8
L33:
	.dbline 219
; 	   else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
	lds R24,_a
	cpi R24,108
	brne L35
	lds R24,_b
	cpi R24,105
	brne L35
	lds R24,_c
	cpi R24,110
	brne L35
	lds R24,_d
	cpi R24,101
	brne L35
	.dbline 220
; 	     {
	.dbline 221
; 		   all=LINE;
	ldi R24,2
	sts _all,R24
	.dbline 222
; 		   a=0;b=0;c=0;d=0;e=0;f=0;
	clr R2
	sts _a,R2
	.dbline 222
	sts _b,R2
	.dbline 222
	sts _c,R2
	.dbline 222
	sts _d,R2
	.dbline 222
	sts _e,R2
	.dbline 222
	sts _f,R2
	.dbline 223
; 		   return; }//RXlen=4;{johu=5;RXlen=3;return;}
	xjmp L8
L35:
	.dbline 224
; 	   else if ((b=='c')&&(c=='l')&&(d=='s')) 
	lds R24,_b
	cpi R24,99
	brne L37
	lds R24,_c
	cpi R24,108
	brne L37
	lds R24,_d
	cpi R24,115
	brne L37
	.dbline 225
; 	     {
	.dbline 226
; 		  xx=0;
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _xx+1,R21
	sts _xx,R20
	sts _xx+2+1,R23
	sts _xx+2,R22
	.dbline 227
; 		  jiaodu=0;
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _jiaodu+1,R21
	sts _jiaodu,R20
	sts _jiaodu+2+1,R23
	sts _jiaodu+2,R22
	.dbline 228
; 		  juli=0;
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _juli+1,R21
	sts _juli,R20
	sts _juli+2+1,R23
	sts _juli+2,R22
	.dbline 229
; 		 }
L37:
	.dbline 231
; 		   ////////////////////////////////////////////////////////////////////
; 	 }
L31:
L21:
L10:
	.dbline -2
L8:
	xcall pop_gset2
	ld R0,y+
	out 0x3f,R0
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R19,y+
	ld R18,y+
	ld R17,y+
	ld R16,y+
	ld R5,y+
	ld R4,y+
	ld R3,y+
	ld R2,y+
	ld R1,y+
	ld R0,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e number_uart1 _number_uart1 fV
;              n -> y+0
;       huanhang -> R10
;            NUM -> y+10
	.even
_number_uart1::
	xcall push_arg4
	xcall push_gset3
	sbiw R28,4
	ldd R10,y+14
	.dbline -1
	.dbline 251
; }
; 
; 
; 
; /*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK)
; {
;  char code[]={'0','1','2','3','4','5','6','7','8','9',};
;  if (NUM<0)
;  	{LCD_write_String1(X,Y,"-");NUM=-NUM;}
;  else
;  	{LCD_write_String1(X,Y,"+");}
; X=X+6;
;  while(LEN--)
;  	 {
; 	  LCD_write_String1(X+LEN*6,Y,& code[NUM%10]);
; 	  NUM=NUM/10;
; 	 } 
; }*/
; void number_uart1(long NUM,char huanhang)
; {long n=0;
	.dbline 251
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	std z+0,R20
	std z+1,R21
	std z+2,R22
	std z+3,R23
	.dbline 252
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+10
	ldd R3,z+11
	ldd R4,z+12
	ldd R5,z+13
	cp R2,R20
	cpc R3,R21
	cpc R4,R22
	cpc R5,R23
	brge L40
	.dbline 252
	.dbline 252
	movw R30,R28
	ldd R16,z+10
	ldd R17,z+11
	ldd R18,z+12
	ldd R19,z+13
	xcall neg32
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
L42:
	.dbline 252
L43:
	.dbline 252
;  			if (NUM<0){n=-NUM; while(!(UCSR1A&(1<<UDRE1))); UDR1='-';}
	lds R2,155
	sbrs R2,5
	rjmp L42
	.dbline 252
	ldi R24,45
	sts 156,R24
	.dbline 252
	xjmp L49
L40:
	.dbline 253
	.dbline 253
	movw R30,R28
	ldd R2,z+10
	ldd R3,z+11
	ldd R4,z+12
	ldd R5,z+13
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
L45:
	.dbline 253
L46:
	.dbline 253
; 			else  {n=NUM;while(!(UCSR1A&(1<<UDRE1))); UDR1='+';}	
	lds R2,155
	sbrs R2,5
	rjmp L45
	.dbline 253
	ldi R24,43
	sts 156,R24
	.dbline 253
L48:
	.dbline 254
L49:
	.dbline 254
; 		     while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L48
	.dbline 255
; 		     UDR1=(n/10000)%10+48;
	ldi R20,16
	ldi R21,39
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32s
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	xcall mod32s
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts 156,R2
L51:
	.dbline 256
L52:
	.dbline 256
; 		     while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L51
	.dbline 257
; 		     UDR1=(n/1000)%10+48;
	ldi R20,232
	ldi R21,3
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32s
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	xcall mod32s
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts 156,R2
L54:
	.dbline 258
L55:
	.dbline 258
; 			 while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L54
	.dbline 259
; 		     UDR1=(n/100)%10+48;
	ldi R20,100
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32s
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	xcall mod32s
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts 156,R2
L57:
	.dbline 260
L58:
	.dbline 260
; 			 while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L57
	.dbline 261
; 		     UDR1=(n/10)%10+48;
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall div32s
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	xcall mod32s
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts 156,R2
L60:
	.dbline 262
L61:
	.dbline 262
; 			 while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L60
	.dbline 263
; 		     UDR1=n%10+48;
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32s
	movw R2,R16
	movw R4,R18
	ldi R20,48
	ldi R21,0
	ldi R22,0
	ldi R23,0
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts 156,R2
	.dbline 264
; 			if (huanhang)
	tst R10
	breq L72
	.dbline 265
; 			 {
L65:
	.dbline 266
L66:
	.dbline 266
; 			  while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L65
	.dbline 267
; 		      UDR1=0x0d;
	ldi R24,13
	sts 156,R24
L68:
	.dbline 268
L69:
	.dbline 268
; 			  while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L68
	.dbline 269
; 		      UDR1=0x0a;
	ldi R24,10
	sts 156,R24
	.dbline 270
; 			 }
	xjmp L64
X11:
	.dbline 272
; 			 else
; 			 {
L71:
	.dbline 273
L72:
	.dbline 273
; 			  while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155

⌨️ 快捷键说明

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