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

📄 main.s

📁 avr的视频采集
💻 S
📖 第 1 页 / 共 3 页
字号:
; 		   all=0;return;}
	clr R2
	sts _all,R2
	.dbline 136
	xjmp L4
L21:
	.dbline 137
; 	   else if (a=='-')
	lds R24,_a
	cpi R24,45
	breq X8
	xjmp L23
X8:
	.dbline 138
; 	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
	.dbline 138
	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 139
; 		   all=0;return;}
	clr R2
	sts _all,R2
	.dbline 139
	xjmp L4
L23:
	.dbline 140
; 	   if (a!=0) {all=0;return;}
	lds R2,_a
	tst R2
	brne X9
	xjmp L17
X9:
	.dbline 140
	.dbline 140
	clr R2
	sts _all,R2
	.dbline 140
	xjmp L4
X1:
	.dbline 142
; 	   //PORTF=a;
; 	}
L16:
	.dbline 143
;  else   if (all==0)//(johu!=3)&&(johu!=5)  //5:7-bit    3:8-bit
	lds R2,_all
	tst R2
	breq X10
	xjmp L27
X10:
	.dbline 144
;       {
	.dbline 145
; 	   a=b;
	lds R2,_b
	sts _a,R2
	.dbline 146
; 	   b=c;
	lds R2,_c
	sts _b,R2
	.dbline 147
; 	   c=d;
	lds R2,_d
	sts _c,R2
	.dbline 148
; 	   d=UDR1;
	lds R2,156
	sts _d,R2
	.dbline 149
; 	   if ((a=='c')&&(b=='i')&&(c=='r'))
	lds R24,_a
	cpi R24,99
	brne L29
	lds R24,_b
	cpi R24,105
	brne L29
	lds R24,_c
	cpi R24,114
	brne L29
	.dbline 150
; 	     {
	.dbline 151
; 		   all=CIR;
	ldi R24,1
	sts _all,R24
	.dbline 152
; 		   a=0;b=0;c=0;d=0;e=0;f=0;
	clr R2
	sts _a,R2
	.dbline 152
	sts _b,R2
	.dbline 152
	sts _c,R2
	.dbline 152
	sts _d,R2
	.dbline 152
	sts _e,R2
	.dbline 152
	sts _f,R2
	.dbline 153
; 		   return; }//RXlen=4;{johu=3;RXlen=3;return;}
	xjmp L4
L29:
	.dbline 154
; 	   else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
	lds R24,_a
	cpi R24,108
	brne L31
	lds R24,_b
	cpi R24,105
	brne L31
	lds R24,_c
	cpi R24,110
	brne L31
	lds R24,_d
	cpi R24,101
	brne L31
	.dbline 155
; 	     {
	.dbline 156
; 		   all=LINE;
	ldi R24,2
	sts _all,R24
	.dbline 157
; 		   a=0;b=0;c=0;d=0;e=0;f=0;
	clr R2
	sts _a,R2
	.dbline 157
	sts _b,R2
	.dbline 157
	sts _c,R2
	.dbline 157
	sts _d,R2
	.dbline 157
	sts _e,R2
	.dbline 157
	sts _f,R2
	.dbline 158
; 		   return; }//RXlen=4;{johu=5;RXlen=3;return;}
	xjmp L4
L31:
	.dbline 159
; 	   else if ((b=='c')&&(c=='l')&&(d=='s')) 
	lds R24,_b
	cpi R24,99
	brne L33
	lds R24,_c
	cpi R24,108
	brne L33
	lds R24,_d
	cpi R24,115
	brne L33
	.dbline 160
; 	     {
	.dbline 161
; 		  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 162
; 		  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 163
; 		  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 164
; 		 }
L33:
	.dbline 166
; 		   ////////////////////////////////////////////////////////////////////
; 	 }
L27:
L17:
L6:
	.dbline -2
L4:
	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 186
; }
; 
; 
; 
; /*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 186
	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 187
	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 L36
	.dbline 187
	.dbline 187
	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
L38:
	.dbline 187
L39:
	.dbline 187
;  			if (NUM<0){n=-NUM; while(!(UCSR1A&(1<<UDRE1))); UDR1='-';}
	lds R2,155
	sbrs R2,5
	rjmp L38
	.dbline 187
	ldi R24,45
	sts 156,R24
	.dbline 187
	xjmp L45
L36:
	.dbline 188
	.dbline 188
	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
L41:
	.dbline 188
L42:
	.dbline 188
; 			else  {n=NUM;while(!(UCSR1A&(1<<UDRE1))); UDR1='+';}	
	lds R2,155
	sbrs R2,5
	rjmp L41
	.dbline 188
	ldi R24,43
	sts 156,R24
	.dbline 188
L44:
	.dbline 189
L45:
	.dbline 189
; 		     while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L44
	.dbline 190
; 		     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
L47:
	.dbline 191
L48:
	.dbline 191
; 		     while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L47
	.dbline 192
; 		     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
L50:
	.dbline 193
L51:
	.dbline 193
; 			 while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L50
	.dbline 194
; 		     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
L53:
	.dbline 195
L54:
	.dbline 195
; 			 while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L53
	.dbline 196
; 		     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
L56:
	.dbline 197
L57:
	.dbline 197
; 			 while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L56
	.dbline 198
; 		     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 199
; 			if (huanhang)
	tst R10
	breq L68
	.dbline 200
; 			 {
L61:
	.dbline 201
L62:
	.dbline 201
; 			  while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L61
	.dbline 202
; 		      UDR1=0x0d;
	ldi R24,13
	sts 156,R24
L64:
	.dbline 203
L65:
	.dbline 203
; 			  while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L64
	.dbline 204
; 		      UDR1=0x0a;
	ldi R24,10
	sts 156,R24
	.dbline 205
; 			 }
	xjmp L60
X11:
	.dbline 207
; 			 else
; 			 {
L67:
	.dbline 208
L68:
	.dbline 208
; 			  while(!(UCSR1A&(1<<UDRE1)));
	lds R2,155
	sbrs R2,5
	rjmp L67
	.dbline 209
; 		      UDR1=0x20;
	ldi R24,32
	sts 156,R24
L70:
	.dbline 210
L71:
	.dbline 210
	lds R2,155
	sbrs R2,5
	rjmp L70
	.dbline 211
	ldi R24,32
	sts 156,R24
	.dbline 212
L60:
	.dbline -2
L35:
	adiw R28,4
	xcall pop_gset3
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym l n 0 L
	.dbsym r huanhang 10 c
	.dbsym l NUM 10 L
	.dbend
	.area data(ram, con, rel)
	.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
_shuliang::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
	.dbsym e shuliang _shuliang c
_xuanze::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
	.dbsym e xuanze _xuanze c
	.area vector(rom, abs)
	.org 4
	jmp _int0_isr
	.area data(ram, con, rel)
	.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
	.area text(rom, con, rel)
	.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
	.dbfunc e int0_isr _int0_isr fV
	.even
_int0_isr::
	st -y,R2
	st -y,R3
	st -y,R24
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 219
; 			  while(!(UCSR1A&(1<<UDRE1)));
; 		      UDR1=0x20;
; 			 } 
; }
; 
; unsigned char shuliang=0;
; unsigned char xuanze=0;
; #pragma interrupt_handler int0_isr:2
; void int0_isr(void)
; {
	.dbline 222
;  //external interupt on INT0
;  
; x_adc=0;y_adc=0;
	clr R2
	sts _x_adc,R2
	.dbline 222
	sts _y_adc,R2
	.dbline 223
; chang=1;
	ldi R24,1

⌨️ 快捷键说明

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