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

📄 cw1.s

📁 实现无线控制功能
💻 S
📖 第 1 页 / 共 3 页
字号:
	ldi R25,>_code
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_code1
	ldi R25,>_code1
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R3,z+0
	cp R3,R2
	breq L106
	.dbline 212
	.dbline 212
	xjmp L104
L106:
	.dbline 212
L103:
	.dbline 212
	inc R20
L105:
	.dbline 212
; 			
;     		   }
; 			   for(i=0;i<2;++i){if(code1[i]!=code[i]){break;}}
	cpi R20,2
	brlo L102
L104:
	.dbline 213
; 			   if(i==2){flag=1;break;}
	cpi R20,2
	brne L108
	.dbline 213
	.dbline 213
	ldi R22,1
	.dbline 213
	xjmp L87
L108:
	.dbline 214
L86:
	.dbline 198
	xjmp L89
L87:
	.dbline 215
; 	        }
; 			 if(flag==1)	
	cpi R22,1
	breq X7
	xjmp L82
X7:
	.dbline 216
; 			    {    
	.dbline 217
; 				    for(i=0;i<2;++i)
	clr R20
	xjmp L115
L112:
	.dbline 218
	.dbline 219
	ldi R24,<_code
	ldi R25,>_code
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R18,z+0
	mov R16,R20
	xcall _eeprom_writ
	.dbline 220
L113:
	.dbline 217
	inc R20
L115:
	.dbline 217
	cpi R20,2
	brlo L112
	.dbline 221
;     		           {
;    				         eeprom_writ(i,code[i]);
;    			            } 
; 				flag=0;	
	clr R22
	.dbline 222
; 				}	
	.dbline 223
; 			  return;	 
	xjmp L82
L83:
	.dbline 225
; 		}		  
; 	 flag=decode(); 
	xcall _decode
	mov R22,R16
	.dbline 226
; 	 if(flag==1)
	cpi R16,1
	breq X8
	xjmp L116
X8:
	.dbline 227
; 	    {
	.dbline 228
; 		     for(i=0;i<2;++i)
	clr R20
	xjmp L121
L118:
	.dbline 229
;     		           {
	.dbline 230
;    				         if(eeprom_read(i)!=code[i])  {flag=0xff;break;}
	mov R16,R20
	xcall _eeprom_read
	ldi R24,<_code
	ldi R25,>_code
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	cp R16,R2
	breq L122
	.dbline 230
	.dbline 230
	ldi R22,255
	.dbline 230
	xjmp L120
L122:
	.dbline 231
L119:
	.dbline 228
	inc R20
L121:
	.dbline 228
	cpi R20,2
	brlo L118
L120:
	.dbline 232
;    			            } 
; 	        if(flag==1)	
	cpi R22,1
	breq X9
	xjmp L117
X9:
	.dbline 233
; 	          {       
	.dbline 234
; 	             flag==0;
	.dbline 235
; 	             if(code[2]==0xc0)
	lds R24,_code+2
	cpi R24,192
	brne L126
	.dbline 236
; 				       {
	.dbline 237
; 					     for(i=0;i<14;i++)
	clr R20
	xjmp L132
L129:
	.dbline 238
	.dbline 239
	ldi R24,<_forward
	ldi R25,>_forward
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
	.dbline 240
L130:
	.dbline 237
	inc R20
L132:
	.dbline 237
	cpi R20,14
	brlo L129
	.dbline 241
;                          {  
;                           uart_transmit_byte(forward[i]);
;                          }
; 					   }
	xjmp L169
L126:
	.dbline 242
; 			     else if(code[2]==0x30)
	lds R24,_code+2
	cpi R24,48
	brne L133
	.dbline 243
; 				       {
	.dbline 244
; 					     for(i=0;i<14;i++)
	clr R20
	xjmp L139
L136:
	.dbline 245
	.dbline 246
	ldi R24,<_back
	ldi R25,>_back
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
	.dbline 247
L137:
	.dbline 244
	inc R20
L139:
	.dbline 244
	cpi R20,14
	brlo L136
	.dbline 248
;                          {  
;                         uart_transmit_byte(back[i]);
;                          }
; 					   }		   
	xjmp L169
L133:
	.dbline 249
; 	             else if(code[2]==0xf0)   //上
	lds R24,_code+2
	cpi R24,240
	brne L140
	.dbline 250
; 			           {
	.dbline 251
; 			          for(i=0;i<7;i++)
	clr R20
	xjmp L146
L143:
	.dbline 252
	.dbline 253
	ldi R24,<_UP
	ldi R25,>_UP
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
	.dbline 254
	ldi R24,<_UP
	ldi R25,>_UP
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	movw R24,R28
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 255
L144:
	.dbline 251
	inc R20
L146:
	.dbline 251
	cpi R20,7
	brlo L143
	.dbline 256
;                          {  
;                        uart_transmit_byte(UP[i]);
; 					       code_buf[i]=UP[i];
;                          }
; 	                  }
	xjmp L169
L140:
	.dbline 257
; 			      else if(code[2]==0x0c)//下
	lds R24,_code+2
	cpi R24,12
	brne L147
	.dbline 258
; 			          {
	.dbline 259
; 			            for(i=0;i<7;i++)
	clr R20
	xjmp L153
L150:
	.dbline 260
	.dbline 261
	ldi R24,<_DOWN
	ldi R25,>_DOWN
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
	.dbline 262
	ldi R24,<_DOWN
	ldi R25,>_DOWN
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	movw R24,R28
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 263
L151:
	.dbline 259
	inc R20
L153:
	.dbline 259
	cpi R20,7
	brlo L150
	.dbline 264
;                             {  
;                               uart_transmit_byte(DOWN[i]);
; 							  code_buf[i]=DOWN[i];
;                             }
; 			           }
	xjmp L169
L147:
	.dbline 266
; 			
;     		      else if(code[2]==0xcc)//左
	lds R24,_code+2
	cpi R24,204
	brne L154
	.dbline 267
;     		          {
	.dbline 268
; 			           for(i=0;i<7;i++)
	clr R20
	xjmp L160
L157:
	.dbline 269
	.dbline 270
	ldi R24,<_left
	ldi R25,>_left
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
	.dbline 271
	ldi R24,<_left
	ldi R25,>_left
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	movw R24,R28
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 272
L158:
	.dbline 268
	inc R20
L160:
	.dbline 268
	cpi R20,7
	brlo L157
	.dbline 273
;                           {  
;                             uart_transmit_byte(left[i]);
; 							code_buf[i]=left[i];
;                           } 
;     		         }
	xjmp L169
L154:
	.dbline 274
;     		     else if(code[2]==0x3c)//右
	lds R24,_code+2
	cpi R24,60
	breq X10
	xjmp L169
X10:
	.dbline 275
;     		         {
	.dbline 276
;     		          for(i=0;i<7;i++)
	clr R20
	xjmp L167
L164:
	.dbline 277
	.dbline 278
	ldi R24,<_right
	ldi R25,>_right
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
	.dbline 279
L165:
	.dbline 276
	inc R20
L167:
	.dbline 276
	cpi R20,7
	brlo L164
	.dbline 280
;                          {  
;                           uart_transmit_byte(right[i]);
;                          } 
; 						 code_buf[i]=right[i];
	ldi R24,<_right
	ldi R25,>_right
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	movw R24,R28
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 281
;                      } 
	xjmp L169
L168:
	.dbline 283
; 					while(1)
; 					   {
	.dbline 284
; 					      flag=decode();
	xcall _decode
	mov R22,R16
	xjmp L172
L171:
	.dbline 286
; 					      while(flag==0xff)
; 						       {
	.dbline 287
; 							     flag=0;
	clr R22
	.dbline 288
; 							     delay_nms(25);
	ldi R16,25
	ldi R17,0
	xcall _delay_nms
	.dbline 289
; 								 flag=decode();
	xcall _decode
	mov R22,R16
	xjmp L175
L174:
	.dbline 291
; 								 while(flag==0xff)
; 								      {
	.dbline 292
; 										for(i=0;i<7;i++) 
	clr R20
	xjmp L180
L177:
	.dbline 293
	ldi R24,<_STOP
	ldi R25,>_STOP
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
L178:
	.dbline 292
	inc R20
L180:
	.dbline 292
	cpi R20,7
	brlo L177
	.dbline 294
;                                         uart_transmit_byte(STOP[i]);
; 										if(i==7)  {flag=1;break;}
	cpi R20,7
	brne L181
	.dbline 294
	.dbline 294
	ldi R22,1
	.dbline 294
	xjmp L176
L181:
	.dbline 295
L175:
	.dbline 290
	cpi R22,255
	breq L174
L176:
	.dbline 296
; 									  }
; 								  if(flag==1)  {flag=0;return;}	  
	cpi R22,1
	brne L183
	.dbline 296
	.dbline 296
	clr R22
	.dbline 296
	xjmp L82
L183:
	.dbline 297
L172:
	.dbline 285
	cpi R22,255
	breq L171
	.dbline 298
; 							   }
; 							for(i=0;i<7;i++) 
	clr R20
	xjmp L188
L185:
	.dbline 299
	movw R24,R28
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
L186:
	.dbline 298
	inc R20
L188:
	.dbline 298
	cpi R20,7
	brlo L185
	.dbline 300
L169:
	.dbline 282
	xjmp L168
X5:
	.dbline 301
;                               uart_transmit_byte(code_buf[i]);   
; 					   }
; 		         }	
	.dbline 302
; 		  }
	xjmp L117
L116:
	.dbline 303
; 		   else if(flag==0xff)
	cpi R22,255
	brne L189
	.dbline 304
;                 {
	.dbline 305
; 	              flag=0;
	clr R22
	.dbline 306
; 	           for(i=0;i<7;i++) 
	clr R20
	xjmp L194
L191:
	.dbline 307
	ldi R24,<_STOP
	ldi R25,>_STOP
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _uart_transmit_byte
L192:
	.dbline 306
	inc R20
L194:
	.dbline 306
	cpi R20,7
	brlo L191
	.dbline 308
;                     uart_transmit_byte(STOP[i]);
; 	            }	  
L189:
L117:
	.dbline -2
L82:
	adiw R28,7
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r key_var 20 c
	.dbsym l code_buf 0 A[7:7]c
	.dbsym r flag 22 c
	.dbsym r i 20 c
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 311
;   }   
; void   main()
;     {
	.dbline 312
; 	   init_devices();
	xcall _init_devices
	.dbline 315
; 	   //DDRA&=~(1<<wuxian_js);
; 	  // PORTA|=(1<<wuxian_js);
; 	   DDRD=0x02; 
	ldi R24,2
	out 0x11,R24
	.dbline 318
; 	   //DDRC|=(1<<power_led);
; 	   //PORTC&=~(1<<power_led);
; 	   DDRA |=0x40;                      //485使能
	sbi 0x1a,6
	.dbline 319
;        PORTA|=0x40;               // 
	sbi 0x1b,6
	xjmp L197
L196:
	.dbline 321
	.dbline 322
	xcall _ana_decode
	.dbline 323
L197:
	.dbline 320
	xjmp L196
X11:
	.dbline -2
L195:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\无线视频车\程序\cw1.c
_code1::
	.blkb 3
	.dbsym e code1 _code1 A[3:3]c
_code::
	.blkb 3
	.dbsym e code _code A[3:3]c
_count1::
	.blkb 4
	.dbsym e count1 _count1 l
_count::
	.blkb 4
	.dbsym e count _count l

⌨️ 快捷键说明

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