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

📄 main.lis

📁 文档里面的代码是可以正常使用的
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0360 07C0              rjmp L82
 0362           L91:
 0362                   .dbline 255
 0362           ;                       case PARAM_RESET_POLARITY:
 0362           ;                               tmp = reset_polarity;
 0362 20900600          lds R2,_reset_polarity
 0366 2D86              std y+13,R2
 0368                   .dbline 256
 0368           ;                               break;
 0368 03C0              rjmp L82
 036A           L92:
 036A                   .dbline 258
 036A           ;                       case PARAM_CONTROLLER_INIT:
 036A           ;                               tmp = param_controller_init;
 036A 20900500          lds R2,_param_controller_init
 036E 2D86              std y+13,R2
 0370                   .dbline 259
 0370           ;                               break;
 0370           L81:
 0370           L82:
 0370                   .dbline 262
 0370           ;               }
 0370           ;               
 0370           ;               num_bytes = 3;
 0370 83E0              ldi R24,3
 0372 90E0              ldi R25,0
 0374 9B87              std y+11,R25
 0376 8A87              std y+10,R24
 0378                   .dbline 263
 0378           ;               msg_buffer[0] = CMD_GET_PARAMETER;
 0378 80930800          sts _msg_buffer,R24
 037C                   .dbline 264
 037C           ;               msg_buffer[1] = STATUS_CMD_OK;
 037C 2224              clr R2
 037E 20920900          sts _msg_buffer+1,R2
 0382                   .dbline 265
 0382           ;               msg_buffer[2] = tmp;
 0382 0D84              ldd R0,y+13
 0384 00920A00          sts _msg_buffer+2,R0
 0388                   .dbline 266
 0388           ;       }
 0388 59C6              rjmp L80
 038A           L79:
 038A                   .dbline 270
 038A           ;       //////////////////////////////////////
 038A           ;       //CMD_LOAD_ADDRESS
 038A           ;       //////////////////////////////////////
 038A           ;       else if(cmd==CMD_LOAD_ADDRESS)
 038A 8C85              ldd R24,y+12
 038C 8630              cpi R24,6
 038E 09F0              breq X12
 0390 6CC0              rjmp L98
 0392           X12:
 0392                   .dbline 271
 0392           ;       {
 0392                   .dbline 272
 0392           ;               address =  ((unsigned long)msg_buffer[1])<<24;
 0392 88E1              ldi R24,24
 0394 90E0              ldi R25,0
 0396 20900900          lds R2,_msg_buffer+1
 039A 3324              clr R3
 039C 4424              clr R4
 039E 5524              clr R5
 03A0 8A93              st -y,R24
 03A2 8101              movw R16,R2
 03A4 9201              movw R18,R4
 03A6 00D0              rcall lsl32
 03A8 10930100          sts _address+1,R17
 03AC 00930000          sts _address,R16
 03B0 30930300          sts _address+2+1,R19
 03B4 20930200          sts _address+2,R18
 03B8                   .dbline 273
 03B8           ;               address |= ((unsigned long)msg_buffer[2])<<16;
 03B8 20900A00          lds R2,_msg_buffer+2
 03BC 3324              clr R3
 03BE 4424              clr R4
 03C0 5524              clr R5
 03C2 2101              movw R4,R2
 03C4 2224              clr R2
 03C6 3324              clr R3
 03C8 3801              movw R6,R16
 03CA 4901              movw R8,R18
 03CC 6228              or R6,R2
 03CE 7328              or R7,R3
 03D0 8428              or R8,R4
 03D2 9528              or R9,R5
 03D4 70920100          sts _address+1,R7
 03D8 60920000          sts _address,R6
 03DC 90920300          sts _address+2+1,R9
 03E0 80920200          sts _address+2,R8
 03E4                   .dbline 274
 03E4           ;               address |= ((unsigned long)msg_buffer[3])<<8;
 03E4 88E0              ldi R24,8
 03E6 90E0              ldi R25,0
 03E8 20900B00          lds R2,_msg_buffer+3
 03EC 3324              clr R3
 03EE 4424              clr R4
 03F0 5524              clr R5
 03F2 8A93              st -y,R24
 03F4 8101              movw R16,R2
 03F6 9201              movw R18,R4
 03F8 00D0              rcall lsl32
 03FA 40900200          lds R4,_address+2
 03FE 50900300          lds R5,_address+2+1
 0402 20900000          lds R2,_address
 0406 30900100          lds R3,_address+1
 040A 202A              or R2,R16
 040C 312A              or R3,R17
 040E 422A              or R4,R18
 0410 532A              or R5,R19
 0412 30920100          sts _address+1,R3
 0416 20920000          sts _address,R2
 041A 50920300          sts _address+2+1,R5
 041E 40920200          sts _address+2,R4
 0422                   .dbline 275
 0422           ;               address |= ((unsigned long)msg_buffer[4]);
 0422 20900C00          lds R2,_msg_buffer+4
 0426 3324              clr R3
 0428 4424              clr R4
 042A 5524              clr R5
 042C 80900200          lds R8,_address+2
 0430 90900300          lds R9,_address+2+1
 0434 60900000          lds R6,_address
 0438 70900100          lds R7,_address+1
 043C 6228              or R6,R2
 043E 7328              or R7,R3
 0440 8428              or R8,R4
 0442 9528              or R9,R5
 0444 70920100          sts _address+1,R7
 0448 60920000          sts _address,R6
 044C 90920300          sts _address+2+1,R9
 0450 80920200          sts _address+2,R8
 0454                   .dbline 277
 0454           ;                               
 0454           ;               num_bytes = 2;
 0454 82E0              ldi R24,2
 0456 90E0              ldi R25,0
 0458 9B87              std y+11,R25
 045A 8A87              std y+10,R24
 045C                   .dbline 278
 045C           ;               msg_buffer[0] = CMD_LOAD_ADDRESS;
 045C 86E0              ldi R24,6
 045E 80930800          sts _msg_buffer,R24
 0462                   .dbline 279
 0462           ;               msg_buffer[1] = STATUS_CMD_OK;
 0462 2224              clr R2
 0464 20920900          sts _msg_buffer+1,R2
 0468                   .dbline 280
 0468           ;       }
 0468 E9C5              rjmp L99
 046A           L98:
 046A                   .dbline 284
 046A           ;       //////////////////////////////////////
 046A           ;       //CMD_ENTER_PROGMODE_ISP
 046A           ;       //////////////////////////////////////
 046A           ;       else if(cmd==CMD_ENTER_PROGMODE_ISP)
 046A 8C85              ldd R24,y+12
 046C 8031              cpi R24,16
 046E 09F0              breq X13
 0470 70C0              rjmp L105
 0472           X13:
 0472                   .dbline 285
 0472           ;       {
 0472                   .dbline 298
 0472           ;               //msg_buffer[1] //timeout               //Command time-out (in ms)
 0472           ;               //msg_buffer[2] //stabDelay             //Delay (in ms) used for pin stabilization
 0472           ;               //msg_buffer[3] //cmdexeDelay   //Delay (in ms) in connection with the EnterProgMode command execution
 0472           ;               //msg_buffer[4] //synchLoops    //Number of synchronization loops
 0472           ;               //msg_buffer[5] //byteDelay             //Delay (in ms) between each byte in the EnterProgMode command.
 0472           ;               //msg_buffer[6] //pollValue             //Poll value: 0x53 for AVR, 0x69 for AT89xx
 0472           ;               //msg_buffer[7] //pollIndex             //Start address, received byte: 0 = no polling, 3 = AVR, 4 = AT89xx
 0472           ;               //msg_buffer[8] //cmd1                  //Command Byte # 1 to be transmitted
 0472           ;               //msg_buffer[9] //cmd2                  //Command Byte # 2 to be transmitted
 0472           ;               //msg_buffer[10]//cmd3                  //Command Byte # 3 to be transmitted
 0472           ;               //msg_buffer[11]//cmd4                  //Command Byte # 4 to be transmitted
 0472           ;               
 0472           ;               prgmode=1;
 0472 81E0              ldi R24,1
 0474 80930400          sts _prgmode,R24
 0478                   .dbline 300
 0478           ; 
 0478           ;               spi_enable();
 0478 00D0              rcall _spi_enable
 047A                   .dbline 302
 047A           ;                                                                                               
 047A           ;               wait_ms(msg_buffer[2]);
 047A 00910A00          lds R16,_msg_buffer+2
 047E 1127              clr R17
 0480 00D0              rcall _wait_ms
 0482                   .dbline 304
 0482           ;               
 0482           ;               LED_GN_ON;
 0482 289A              sbi 0x5,0
 0484                   .dbline 305
 0484           ;               LED_RT_ON;
 0484 299A              sbi 0x5,1
 0486                   .dbline 308
 0486           ;               
 0486           ;               //Try to get connection with the target chip
 0486           ;               for(i=0;i<msg_buffer[4];i++)
 0486 CC24              clr R12
 0488 DD24              clr R13
 048A 48C0              rjmp L111
 048C           L108:
 048C                   .dbline 309
 048C           ;               {
 048C                   .dbline 311
 048C           ;                       //spi_transfer_16(0xAC53);
 048C           ;                       spi_transfer_8(msg_buffer[8]);
 048C 00911000          lds R16,_msg_buffer+8
 0490 00D0              rcall _spi_transfer_8
 0492                   .dbline 312
 0492           ;                       wait_ms(msg_buffer[5]);
 0492 00910D00          lds R16,_msg_buffer+5
 0496 1127              clr R17
 0498 00D0              rcall _wait_ms
 049A                   .dbline 313
 049A           ;                       spi_transfer_8(msg_buffer[9]);
 049A 00911100          lds R16,_msg_buffer+9
 049E 00D0              rcall _spi_transfer_8
 04A0                   .dbline 314
 04A0           ;                       wait_ms(msg_buffer[5]);
 04A0 00910D00          lds R16,_msg_buffer+5
 04A4 1127              clr R17
 04A6 00D0              rcall _wait_ms
 04A8                   .dbline 316
 04A8           ;                       
 04A8           ;                       if(msg_buffer[7]==3)
 04A8 80910F00          lds R24,_msg_buffer+7
 04AC 8330              cpi R24,3
 04AE 81F4              brne L117
 04B0                   .dbline 317
 04B0           ;                       {
 04B0                   .dbline 318
 04B0           ;                               tmp=spi_transfer_8(msg_buffer[10]);
 04B0 00911200          lds R16,_msg_buffer+10
 04B4 00D0              rcall _spi_transfer_8
 04B6 0D87              std y+13,R16
 04B8                   .dbline 319
 04B8           ;                               wait_ms(msg_buffer[5]);
 04B8 00910D00          lds R16,_msg_buffer+5
 04BC 1127              clr R17
 04BE 00D0              rcall _wait_ms
 04C0                   .dbline 320
 04C0           ;                               spi_transfer_8(msg_buffer[11]);
 04C0 00911300          lds R16,_msg_buffer+11
 04C4 00D0              rcall _spi_transfer_8
 04C6                   .dbline 321
 04C6           ;                               wait_ms(msg_buffer[5]);
 04C6 00910D00          lds R16,_msg_buffer+5
 04CA 1127              clr R17
 04CC 00D0              rcall _wait_ms
 04CE                   .dbline 322
 04CE           ;                       }
 04CE 0FC0              rjmp L118
 04D0           L117:
 04D0                   .dbline 324
 04D0           ;                       else
 04D0           ;                       {
 04D0                   .dbline 325
 04D0           ;                               spi_transfer_8(msg_buffer[10]);
 04D0 00911200          lds R16,_msg_buffer+10
 04D4 00D0              rcall _spi_transfer_8
 04D6                   .dbline 326
 04D6           ;                               wait_ms(msg_buffer[5]);                         
 04D6 00910D00          lds R16,_msg_buffer+5
 04DA 1127              clr R17
 04DC 00D0              rcall _wait_ms
 04DE                   .dbline 327
 04DE           ;                               tmp=spi_transfer_8(msg_buffer[11]);
 04DE 00911300          lds R16,_msg_buffer+11
 04E2 00D0              rcall _spi_transfer_8
 04E4 0D87              std y+13,R16
 04E6                   .dbline 328
 04E6           ;                               wait_ms(msg_buffer[5]);
 04E6 00910D00          lds R16,_msg_buffer+5
 04EA 1127              clr R17
 04EC 00D0              rcall _wait_ms
 04EE                   .dbline 329
 04EE           ;                       }                               
 04EE           L118:
 04EE                   .dbline 331
 04EE           ;                                       
 04EE           ;                       if((tmp==msg_buffer[6])||(msg_buffer[7]==0))
 04EE 20900E00          lds R2,_msg_buffer+6
 04F2 0D84              ldd R0,y+13
 04F4 0214              cp R0,R2
 04F6 21F0              breq L132
 04F8 20900F00          lds R2,_msg_buffer+7
 04FC 2220              tst R2
 04FE 51F4              brne L128
 0500           L132:
 0500                   .dbline 332
 0500           ;                       {
 0500                   .dbline 333
 0500           ;                               LED_GN_OFF;
 0500 8EEF              ldi R24,-2
 0502 9FEF              ldi R25,-1
 0504 25B0              in R2,0x5
 0506 2822              and R2,R24
 0508 25B8              out 0x5,R2
 050A                   .dbline 334
 050A           ;                               LED_RT_ON;

⌨️ 快捷键说明

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