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

📄 main.lis

📁 avr单片机atmage16驱动小灯的一些例程 并且包括一些收发数据的程序利用usb口
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 035E 30920100          sts _address+1,R3
 0362 20920000          sts _address,R2
 0366 50920300          sts _address+2+1,R5
 036A 40920200          sts _address+2,R4
 036E                   .dbline 271
 036E           ;               address |= ((unsigned long)msg_buffer[4]);
 036E 20900C00          lds R2,_msg_buffer+4
 0372 3324              clr R3
 0374 4424              clr R4
 0376 5524              clr R5
 0378 80900200          lds R8,_address+2
 037C 90900300          lds R9,_address+2+1
 0380 60900000          lds R6,_address
 0384 70900100          lds R7,_address+1
 0388 6228              or R6,R2
 038A 7328              or R7,R3
 038C 8428              or R8,R4
 038E 9528              or R9,R5
 0390 70920100          sts _address+1,R7
 0394 60920000          sts _address,R6
 0398 90920300          sts _address+2+1,R9
 039C 80920200          sts _address+2,R8
 03A0                   .dbline 273
 03A0           ;                               
 03A0           ;               num_bytes = 2;
 03A0 82E0              ldi R24,2
 03A2 90E0              ldi R25,0
 03A4 9B87              std y+11,R25
 03A6 8A87              std y+10,R24
 03A8                   .dbline 274
 03A8           ;               msg_buffer[0] = CMD_LOAD_ADDRESS;
 03A8 86E0              ldi R24,6
 03AA 80930800          sts _msg_buffer,R24
 03AE                   .dbline 275
 03AE           ;               msg_buffer[1] = STATUS_CMD_OK;
 03AE 2224              clr R2
 03B0 20920900          sts _msg_buffer+1,R2
 03B4                   .dbline 276
 03B4           ;       }
 03B4 E9C5              rjmp L71
 03B6           L70:
 03B6                   .dbline 280
 03B6           ;       //////////////////////////////////////
 03B6           ;       //CMD_ENTER_PROGMODE_ISP
 03B6           ;       //////////////////////////////////////
 03B6           ;       else if(cmd==CMD_ENTER_PROGMODE_ISP)
 03B6 8C85              ldd R24,y+12
 03B8 8031              cpi R24,16
 03BA 09F0              breq X9
 03BC 70C0              rjmp L77
 03BE           X9:
 03BE                   .dbline 281
 03BE           ;       {
 03BE                   .dbline 294
 03BE           ;               //msg_buffer[1] //timeout               //Command time-out (in ms)
 03BE           ;               //msg_buffer[2] //stabDelay             //Delay (in ms) used for pin stabilization
 03BE           ;               //msg_buffer[3] //cmdexeDelay   //Delay (in ms) in connection with the EnterProgMode command execution
 03BE           ;               //msg_buffer[4] //synchLoops    //Number of synchronization loops
 03BE           ;               //msg_buffer[5] //byteDelay             //Delay (in ms) between each byte in the EnterProgMode command.
 03BE           ;               //msg_buffer[6] //pollValue             //Poll value: 0x53 for AVR, 0x69 for AT89xx
 03BE           ;               //msg_buffer[7] //pollIndex             //Start address, received byte: 0 = no polling, 3 = AVR, 4 = AT89xx
 03BE           ;               //msg_buffer[8] //cmd1                  //Command Byte # 1 to be transmitted
 03BE           ;               //msg_buffer[9] //cmd2                  //Command Byte # 2 to be transmitted
 03BE           ;               //msg_buffer[10]//cmd3                  //Command Byte # 3 to be transmitted
 03BE           ;               //msg_buffer[11]//cmd4                  //Command Byte # 4 to be transmitted
 03BE           ;               
 03BE           ;               prgmode=1;
 03BE 81E0              ldi R24,1
 03C0 80930400          sts _prgmode,R24
 03C4                   .dbline 296
 03C4           ; 
 03C4           ;               spi_enable();
 03C4 00D0              rcall _spi_enable
 03C6                   .dbline 298
 03C6           ;                                                                                               
 03C6           ;               wait_ms(msg_buffer[2]);
 03C6 00910A00          lds R16,_msg_buffer+2
 03CA 1127              clr R17
 03CC 00D0              rcall _wait_ms
 03CE                   .dbline 300
 03CE           ;               
 03CE           ;               LED_GN_ON;
 03CE C09A              sbi 0x18,0
 03D0                   .dbline 301
 03D0           ;               LED_RT_ON;
 03D0 C19A              sbi 0x18,1
 03D2                   .dbline 304
 03D2           ;               
 03D2           ;               //Try to get connection with the target chip
 03D2           ;               for(i=0;i<msg_buffer[4];i++)
 03D2 CC24              clr R12
 03D4 DD24              clr R13
 03D6 48C0              rjmp L83
 03D8           L80:
 03D8                   .dbline 305
 03D8           ;               {
 03D8                   .dbline 307
 03D8           ;                       //spi_transfer_16(0xAC53);
 03D8           ;                       spi_transfer_8(msg_buffer[8]);
 03D8 00911000          lds R16,_msg_buffer+8
 03DC 00D0              rcall _spi_transfer_8
 03DE                   .dbline 308
 03DE           ;                       wait_ms(msg_buffer[5]);
 03DE 00910D00          lds R16,_msg_buffer+5
 03E2 1127              clr R17
 03E4 00D0              rcall _wait_ms
 03E6                   .dbline 309
 03E6           ;                       spi_transfer_8(msg_buffer[9]);
 03E6 00911100          lds R16,_msg_buffer+9
 03EA 00D0              rcall _spi_transfer_8
 03EC                   .dbline 310
 03EC           ;                       wait_ms(msg_buffer[5]);
 03EC 00910D00          lds R16,_msg_buffer+5
 03F0 1127              clr R17
 03F2 00D0              rcall _wait_ms
 03F4                   .dbline 312
 03F4           ;                       
 03F4           ;                       if(msg_buffer[7]==3)
 03F4 80910F00          lds R24,_msg_buffer+7
 03F8 8330              cpi R24,3
 03FA 81F4              brne L89
 03FC                   .dbline 313
 03FC           ;                       {
 03FC                   .dbline 314
 03FC           ;                               tmp=spi_transfer_8(msg_buffer[10]);
 03FC 00911200          lds R16,_msg_buffer+10
 0400 00D0              rcall _spi_transfer_8
 0402 0D87              std y+13,R16
 0404                   .dbline 315
 0404           ;                               wait_ms(msg_buffer[5]);
 0404 00910D00          lds R16,_msg_buffer+5
 0408 1127              clr R17
 040A 00D0              rcall _wait_ms
 040C                   .dbline 316
 040C           ;                               spi_transfer_8(msg_buffer[11]);
 040C 00911300          lds R16,_msg_buffer+11
 0410 00D0              rcall _spi_transfer_8
 0412                   .dbline 317
 0412           ;                               wait_ms(msg_buffer[5]);
 0412 00910D00          lds R16,_msg_buffer+5
 0416 1127              clr R17
 0418 00D0              rcall _wait_ms
 041A                   .dbline 318
 041A           ;                       }
 041A 0FC0              rjmp L90
 041C           L89:
 041C                   .dbline 320
 041C           ;                       else
 041C           ;                       {
 041C                   .dbline 321
 041C           ;                               spi_transfer_8(msg_buffer[10]);
 041C 00911200          lds R16,_msg_buffer+10
 0420 00D0              rcall _spi_transfer_8
 0422                   .dbline 322
 0422           ;                               wait_ms(msg_buffer[5]);                         
 0422 00910D00          lds R16,_msg_buffer+5
 0426 1127              clr R17
 0428 00D0              rcall _wait_ms
 042A                   .dbline 323
 042A           ;                               tmp=spi_transfer_8(msg_buffer[11]);
 042A 00911300          lds R16,_msg_buffer+11
 042E 00D0              rcall _spi_transfer_8
 0430 0D87              std y+13,R16
 0432                   .dbline 324
 0432           ;                               wait_ms(msg_buffer[5]);
 0432 00910D00          lds R16,_msg_buffer+5
 0436 1127              clr R17
 0438 00D0              rcall _wait_ms
 043A                   .dbline 325
 043A           ;                       }                               
 043A           L90:
 043A                   .dbline 327
 043A           ;                                       
 043A           ;                       if((tmp==msg_buffer[6])||(msg_buffer[7]==0))
 043A 20900E00          lds R2,_msg_buffer+6
 043E 0D84              ldd R0,y+13
 0440 0214              cp R0,R2
 0442 21F0              breq L104
 0444 20900F00          lds R2,_msg_buffer+7
 0448 2220              tst R2
 044A 51F4              brne L100
 044C           L104:
 044C                   .dbline 328
 044C           ;                       {
 044C                   .dbline 329
 044C           ;                               LED_GN_OFF;
 044C 8EEF              ldi R24,-2
 044E 9FEF              ldi R25,-1
 0450 28B2              in R2,0x18
 0452 2822              and R2,R24
 0454 28BA              out 0x18,R2
 0456                   .dbline 330
 0456           ;                               LED_RT_ON;
 0456 C19A              sbi 0x18,1
 0458                   .dbline 331
 0458           ;                               i=0xFF;
 0458 8FEF              ldi R24,255
 045A 90E0              ldi R25,0
 045C 6C01              movw R12,R24
 045E                   .dbline 332
 045E           ;                               break;
 045E 0BC0              rjmp L82
 0460           L100:
 0460                   .dbline 335
 0460 00D0              rcall _spi_clock_pulse
 0462                   .dbline 336
 0462           L81:
 0462                   .dbline 304
 0462 C601              movw R24,R12
 0464 0196              adiw R24,1
 0466 6C01              movw R12,R24
 0468           L83:
 0468                   .dbline 304
 0468 20900C00          lds R2,_msg_buffer+4
 046C 3324              clr R3
 046E C214              cp R12,R2
 0470 D304              cpc R13,R3
 0472 08F4              brsh X10
 0474 B1CF              rjmp L80
 0476           X10:
 0476           L82:
 0476                   .dbline 338
 0476           ;                       }
 0476           ;               
 0476           ;                       spi_clock_pulse();
 0476           ;               }
 0476           ;               
 0476           ;               num_bytes = 2;
 0476 82E0              ldi R24,2
 0478 90E0              ldi R25,0
 047A 9B87              std y+11,R25
 047C 8A87              std y+10,R24
 047E                   .dbline 339
 047E           ;               msg_buffer[0] = CMD_ENTER_PROGMODE_ISP;
 047E 80E1              ldi R24,16
 0480 80930800          sts _msg_buffer,R24
 0484                   .dbline 341
 0484           ;                       
 0484           ;               if(i==0xFF)
 0484 C601              movw R24,R12
 0486 8F3F              cpi R24,255
 0488 E0E0              ldi R30,0
 048A 9E07              cpc R25,R30
 048C 21F4              brne L105
 048E                   .dbline 342
 048E           ;               {                       
 048E                   .dbline 343
 048E           ;                       msg_buffer[1] = STATUS_CMD_OK;                  
 048E 2224              clr R2
 0490 20920900          sts _msg_buffer+1,R2
 0494                   .dbline 344
 0494           ;               }
 0494 79C5              rjmp L78
 0496           L105:
 0496                   .dbline 346
 0496           ;               else
 0496           ;               {                       
 0496                   .dbline 347
 0496           ;                       msg_buffer[1] = STATUS_CMD_FAILED;
 0496 80EC              ldi R24,192
 0498 80930900          sts _msg_buffer+1,R24
 049C                   .dbline 348
 049C           ;               }               
 049C                   .dbline 349
 049C           ;       }
 049C 75C5              rjmp L78
 049E           L77:
 049E                   .dbline 353
 049E           ;       //////////////////////////////////////
 049E           ;       //CMD_LEAVE_PROGMODE_ISP
 049E           ;       //////////////////////////////////////
 049E           ;       else if(cmd==CMD_LEAVE_PROGMODE_ISP)
 049E 8C85              ldd R24,y+12
 04A0 8131              cpi R24,17
 04A2 A9F4              brne L109
 04A4                   .dbline 354
 04A4           ;       {
 04A4                   .dbline 355
 04A4           ;               prgmode=0;
 04A4 2224              clr R2
 04A6 20920400          sts _prgmode,R2
 04AA                   .dbline 357
 04AA           ; 
 04AA           ;               spi_disable();
 04AA 00D0              rcall _spi_disable
 04AC                   .dbline 359
 04AC           ;                               
 04AC           ;               LED_RT_OFF;
 04AC 8DEF              ldi R24,-3
 04AE 9FEF              ldi R25,-1
 04B0 28B2              in R2,0x18
 04B2 2822              and R2,R24
 04B4 28BA              out 0x18,R2
 04B6                   .dbline 360
 04B6           ;               LED_GN_ON;
 04B6 C09A              sbi 0x18,0
 04B8                   .dbline 362
 04B8           ; 
 04B8           ;               num_bytes = 2;

⌨️ 快捷键说明

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