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

📄 main.lis

📁 AVR单片机,STK500下载线制作全套资料,包括程序,电路图
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00CC C426              eor R12,R20
 00CE                   .dbline 119
 00CE           ;                                                                       i=0;
 00CE 0024              clr R0
 00D0 1124              clr R1
 00D2 1A82              std y+2,R1
 00D4 0982              std y+1,R0
 00D6                   .dbline 120
 00D6           ;                                                                       }
 00D6 2BC0              rjmp L19
 00D8           L20:
 00D8                   .dbline 121
 00D8           ;                                                               else {
 00D8                   .dbline 122
 00D8           ;                                                                       state = ST_START;
 00D8 80E0              ldi R24,61440
 00DA 90EF              ldi R25,240
 00DC 7C01              movw R14,R24
 00DE                   .dbline 123
 00DE           ;                                                                       }
 00DE                   .dbline 124
 00DE           ;                                                               }
 00DE 27C0              rjmp L19
 00E0           L18:
 00E0                   .dbline 125
 00E0           ;                                                       else {
 00E0                   .dbline 126
 00E0           ;                                                               if(state==ST_GET_DATA) {
 00E0 C701              movw R24,R14
 00E2 8530              cpi R24,5
 00E4 E0EF              ldi R30,240
 00E6 9E07              cpc R25,R30
 00E8 B1F4              brne L22
 00EA                   .dbline 126
 00EA                   .dbline 127
 00EA           ;                                                                       msg_buffer[i++] = t;
 00EA 2980              ldd R2,y+1
 00EC 3A80              ldd R3,y+2
 00EE C101              movw R24,R2
 00F0 0196              adiw R24,1
 00F2 9A83              std y+2,R25
 00F4 8983              std y+1,R24
 00F6 80E0              ldi R24,<_msg_buffer
 00F8 90E0              ldi R25,>_msg_buffer
 00FA F101              movw R30,R2
 00FC E80F              add R30,R24
 00FE F91F              adc R31,R25
 0100 4083              std z+0,R20
 0102                   .dbline 128
 0102           ;                                                                       checksum ^= t;
 0102 C426              eor R12,R20
 0104                   .dbline 129
 0104           ;                                                                       if(i==msg_size) {
 0104 0980              ldd R0,y+1
 0106 1A80              ldd R1,y+2
 0108 0616              cp R0,R22
 010A 1706              cpc R1,R23
 010C 81F4              brne L23
 010E                   .dbline 129
 010E                   .dbline 130
 010E           ;                                                                               state = ST_GET_CHECK;
 010E 86E0              ldi R24,61446
 0110 90EF              ldi R25,240
 0112 7C01              movw R14,R24
 0114                   .dbline 131
 0114           ;                                                                               }
 0114                   .dbline 132
 0114           ;                                                                       }
 0114 0CC0              rjmp L23
 0116           L22:
 0116                   .dbline 133
 0116           ;                                                               else {
 0116                   .dbline 134
 0116           ;                                                                       if(state==ST_GET_CHECK) {
 0116 C701              movw R24,R14
 0118 8630              cpi R24,6
 011A E0EF              ldi R30,240
 011C 9E07              cpc R25,R30
 011E 39F4              brne L26
 0120                   .dbline 134
 0120                   .dbline 135
 0120           ;                                                                               if(t==checksum) {
 0120 4C15              cp R20,R12
 0122 11F4              brne L28
 0124                   .dbline 135
 0124                   .dbline 136
 0124           ;                                                                                       process_command(seq_num);
 0124 0881              ldd R16,y+0
 0126 06D0              rcall _process_command
 0128                   .dbline 137
 0128           ;                                                                                       }
 0128           L28:
 0128                   .dbline 138
 0128           ;                                                                               state = ST_START;
 0128 80E0              ldi R24,61440
 012A 90EF              ldi R25,240
 012C 7C01              movw R14,R24
 012E                   .dbline 139
 012E           ;                                                                               }
 012E           L26:
 012E                   .dbline 140
 012E           ;                                                                       }
 012E           L23:
 012E                   .dbline 141
 012E           ;                                                               }
 012E           L19:
 012E                   .dbline 142
 012E           ;                                                       }
 012E           L17:
 012E                   .dbline 143
 012E           ;                                               }
 012E           L15:
 012E                   .dbline 144
 012E           ;                                       }
 012E           L13:
 012E                   .dbline 145
 012E           ;                               }
 012E           L9:
 012E                   .dbline 146
 012E           ;                       }
 012E           L6:
 012E                   .dbline 147
 012E           L4:
 012E                   .dbline 84
 012E 85CF              rjmp L3
 0130           X0:
 0130                   .dbline -2
 0130           L2:
 0130 2396              adiw R28,3
 0132                   .dbline 0 ; func end
 0132 0895              ret
 0134                   .dbsym l i 1 i
 0134                   .dbsym r msg_size 22 i
 0134                   .dbsym l seq_num 0 c
 0134                   .dbsym r checksum 12 c
 0134                   .dbsym r t 20 c
 0134                   .dbsym r state 14 i
 0134                   .dbsym r rec_data 10 I
 0134                   .dbend
 0134                   .dbfunc e process_command _process_command fV
 0134           ;           mode -> R14
 0134           ;     block_size -> R10,R11
 0134           ;  start_address -> y+6
 0134           ; polling_address -> y+2
 0134           ;            tmp -> y+13
 0134           ;            cmd -> y+12
 0134           ;      num_bytes -> y+10
 0134           ;              i -> R12,R13
 0134           ;        seq_num -> y+24
                        .even
 0134           _process_command::
 0134 1A93              st -y,r17
 0136 0A93              st -y,r16
 0138 00D0              rcall push_gset5
 013A 2E97              sbiw R28,14
 013C                   .dbline -1
 013C                   .dbline 175
 013C           ;               }
 013C           ; }
 013C           ; 
 013C           ; /**
 013C           ;       Returns the value of the selected adc channel
 013C           ; 
 013C           ;       @param n Number of ADC channel
 013C           ; 
 013C           ;       @return  Value of ADC channel
 013C           ; */
 013C           ; /*unsigned char adc_get(char n)
 013C           ; {
 013C           ;       ADMUX&=0xF0;
 013C           ;       ADMUX|=n&0x7;
 013C           ; 
 013C           ;       while(ADCSRA&0x40);
 013C           ;       ADCSRA|=(1<<ADSC);
 013C           ;       while(ADCSRA&0x40);
 013C           ; 
 013C           ;       return ADCH;
 013C           ; }*/
 013C           ; 
 013C           ; /**
 013C           ;       Processes a command packet received in main loop and located in the global buffer
 013C           ; 
 013C           ;       @param  seq_num The sequence number of the command packet
 013C           ; */
 013C           ; void process_command(unsigned char seq_num)
 013C           ; {
 013C                   .dbline 177
 013C           ;       unsigned char cmd;
 013C           ;       unsigned char tmp=0;
 013C 0024              clr R0
 013E 0D86              std y+13,R0
 0140                   .dbline 181
 0140           ;       unsigned char mode;
 0140           ;       unsigned int block_size;
 0140           ;       unsigned int i;
 0140           ;       unsigned int num_bytes=0;
 0140 1124              clr R1
 0142 1B86              std y+11,R1
 0144 0A86              std y+10,R0
 0146                   .dbline 182
 0146           ;       unsigned long polling_address=0;
 0146 40E0              ldi R20,0
 0148 50E0              ldi R21,0
 014A 60E0              ldi R22,0
 014C 70E0              ldi R23,0
 014E FE01              movw R30,R28
 0150 4283              std z+2,R20
 0152 5383              std z+3,R21
 0154 6483              std z+4,R22
 0156 7583              std z+5,R23
 0158                   .dbline 183
 0158           ;       unsigned long start_address = address;
 0158 40900200          lds R4,_address+2
 015C 50900300          lds R5,_address+2+1
 0160 20900000          lds R2,_address
 0164 30900100          lds R3,_address+1
 0168 FE01              movw R30,R28
 016A 2682              std z+6,R2
 016C 3782              std z+7,R3
 016E 4086              std z+8,R4
 0170 5186              std z+9,R5
 0172                   .dbline 185
 0172           ; 
 0172           ;       cmd = msg_buffer[0];
 0172 20900800          lds R2,_msg_buffer
 0176 2C86              std y+12,R2
 0178                   .dbline 190
 0178           ; 
 0178           ;       //////////////////////////////////////
 0178           ;       //CMD_SIGN_ON
 0178           ;       //////////////////////////////////////
 0178           ;       if(cmd==CMD_SIGN_ON)
 0178 822D              mov R24,R2
 017A 8130              cpi R24,1
 017C A9F4              brne L31
 017E                   .dbline 191
 017E           ;       {
 017E                   .dbline 192
 017E           ;               num_bytes = 11;
 017E 8BE0              ldi R24,11
 0180 90E0              ldi R25,0
 0182 9B87              std y+11,R25
 0184 8A87              std y+10,R24
 0186                   .dbline 193
 0186           ;               msg_buffer[0] = CMD_SIGN_ON;
 0186 81E0              ldi R24,1
 0188 80930800          sts _msg_buffer,R24
 018C                   .dbline 194
 018C           ;               msg_buffer[1] = STATUS_CMD_OK;
 018C 2224              clr R2
 018E 20920900          sts _msg_buffer+1,R2
 0192                   .dbline 195
 0192           ;               msg_buffer[2] = 8;
 0192 88E0              ldi R24,8
 0194 80930A00          sts _msg_buffer+2,R24
 0198                   .dbline 196
 0198           ;               memcpy(msg_buffer+3,"AVRISP_2",8);
 0198 9983              std y+1,R25
 019A 8883              std y+0,R24
 019C 20E0              ldi R18,<L36
 019E 30E0              ldi R19,>L36
 01A0 00E0              ldi R16,<_msg_buffer+3
 01A2 10E0              ldi R17,>_msg_buffer+3
 01A4 00D0              rcall _memcpy
 01A6                   .dbline 197
 01A6           ;       }
 01A6 E0C6              rjmp L32
 01A8           L31:
 01A8                   .dbline 201
 01A8           ;       //////////////////////////////////////
 01A8           ;       //CMD_SET_PARAMETER
 01A8           ;       //////////////////////////////////////
 01A8           ;       else if(cmd==CMD_SET_PARAMETER)
 01A8 8C85              ldd R24,y+12
 01AA 8230              cpi R24,2
 01AC 81F5              brne L37
 01AE                   .dbline 202
 01AE           ;       {
 01AE                   .dbline 203
 01AE           ;               switch(msg_buffer[1])
 01AE A0900900          lds R10,_msg_buffer+1
 01B2 BB24              clr R11
 01B4 C501              movw R24,R10
 01B6 8839              cpi R24,152
 01B8 E0E0              ldi R30,0
 01BA 9E07              cpc R25,R30
 01BC 71F0              breq L43
 01BE 8839              cpi R24,152
 01C0 E0E0              ldi R30,0
 01C2 9E07              cpc R25,R30
 01C4 D4F0              brlt L39
 01C6           L49:
 01C6 C501              movw R24,R10
 01C8 8E39              cpi R24,158
 01CA E0E0              ldi R30,0
 01CC 9E07              cpc R25,R30
 01CE 61F0              breq L45
 01D0 8F39              cpi R24,159

⌨️ 快捷键说明

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