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

📄 main.lis

📁 文档里面的代码是可以正常使用的
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00E2           ;                                                               if(t==TOKEN) {
 00E2 4E30              cpi R20,14
 00E4 49F4              brne L22
 00E6                   .dbline 114
 00E6                   .dbline 115
 00E6           ;                                                                       state = ST_GET_DATA;
 00E6 85E0              ldi R24,61445
 00E8 90EF              ldi R25,240
 00EA 7C01              movw R14,R24
 00EC                   .dbline 116
 00EC           ;                                                                       checksum ^= t;
 00EC C426              eor R12,R20
 00EE                   .dbline 117
 00EE           ;                                                                       i=0;
 00EE 0024              clr R0
 00F0 1124              clr R1
 00F2 1A82              std y+2,R1
 00F4 0982              std y+1,R0
 00F6                   .dbline 118
 00F6           ;                                                                       }
 00F6 2BC0              rjmp L21
 00F8           L22:
 00F8                   .dbline 119
 00F8           ;                                                               else {
 00F8                   .dbline 120
 00F8           ;                                                                       state = ST_START;
 00F8 80E0              ldi R24,61440
 00FA 90EF              ldi R25,240
 00FC 7C01              movw R14,R24
 00FE                   .dbline 121
 00FE           ;                                                                       }
 00FE                   .dbline 122
 00FE           ;                                                               }
 00FE 27C0              rjmp L21
 0100           L20:
 0100                   .dbline 123
 0100           ;                                                       else {
 0100                   .dbline 124
 0100           ;                                                               if(state==ST_GET_DATA) {
 0100 C701              movw R24,R14
 0102 8530              cpi R24,5
 0104 E0EF              ldi R30,240
 0106 9E07              cpc R25,R30
 0108 B1F4              brne L24
 010A                   .dbline 124
 010A                   .dbline 125
 010A           ;                                                                       msg_buffer[i++] = t;
 010A 2980              ldd R2,y+1
 010C 3A80              ldd R3,y+2
 010E C101              movw R24,R2
 0110 0196              adiw R24,1
 0112 9A83              std y+2,R25
 0114 8983              std y+1,R24
 0116 80E0              ldi R24,<_msg_buffer
 0118 90E0              ldi R25,>_msg_buffer
 011A F101              movw R30,R2
 011C E80F              add R30,R24
 011E F91F              adc R31,R25
 0120 4083              std z+0,R20
 0122                   .dbline 126
 0122           ;                                                                       checksum ^= t;
 0122 C426              eor R12,R20
 0124                   .dbline 127
 0124           ;                                                                       if(i==msg_size) {
 0124 0980              ldd R0,y+1
 0126 1A80              ldd R1,y+2
 0128 0616              cp R0,R22
 012A 1706              cpc R1,R23
 012C 81F4              brne L25
 012E                   .dbline 127
 012E                   .dbline 128
 012E           ;                                                                               state = ST_GET_CHECK;
 012E 86E0              ldi R24,61446
 0130 90EF              ldi R25,240
 0132 7C01              movw R14,R24
 0134                   .dbline 129
 0134           ;                                                                               }
 0134                   .dbline 130
 0134           ;                                                                       }
 0134 0CC0              rjmp L25
 0136           L24:
 0136                   .dbline 131
 0136           ;                                                               else {
 0136                   .dbline 132
 0136           ;                                                                       if(state==ST_GET_CHECK) {
 0136 C701              movw R24,R14
 0138 8630              cpi R24,6
 013A E0EF              ldi R30,240
 013C 9E07              cpc R25,R30
 013E 39F4              brne L28
 0140                   .dbline 132
 0140                   .dbline 133
 0140           ;                                                                               if(t==checksum) {
 0140 4C15              cp R20,R12
 0142 11F4              brne L30
 0144                   .dbline 133
 0144                   .dbline 134
 0144           ;                                                                                       process_command(seq_num);
 0144 0881              ldd R16,y+0
 0146 22D0              rcall _process_command
 0148                   .dbline 135
 0148           ;                                                                                       }
 0148           L30:
 0148                   .dbline 136
 0148           ;                                                                               state = ST_START;
 0148 80E0              ldi R24,61440
 014A 90EF              ldi R25,240
 014C 7C01              movw R14,R24
 014E                   .dbline 137
 014E           ;                                                                               }
 014E           L28:
 014E                   .dbline 138
 014E           ;                                                                       }
 014E           L25:
 014E                   .dbline 139
 014E           ;                                                               }
 014E           L21:
 014E                   .dbline 140
 014E           ;                                                       }
 014E           L19:
 014E                   .dbline 141
 014E           ;                                               }
 014E           L17:
 014E                   .dbline 142
 014E           ;                                       }
 014E           L15:
 014E                   .dbline 143
 014E           ;                               }
 014E           L11:
 014E                   .dbline 144
 014E           ;                       }
 014E           L8:
 014E                   .dbline 145
 014E           L6:
 014E                   .dbline 82
 014E 85CF              rjmp L5
 0150           X0:
 0150                   .dbline -2
 0150           L2:
 0150 2396              adiw R28,3
 0152                   .dbline 0 ; func end
 0152 0895              ret
 0154                   .dbsym l i 1 i
 0154                   .dbsym r msg_size 22 i
 0154                   .dbsym l seq_num 0 c
 0154                   .dbsym r checksum 12 c
 0154                   .dbsym r t 20 c
 0154                   .dbsym r state 14 i
 0154                   .dbsym r rec_data 10 I
 0154                   .dbend
 0154                   .dbfunc e adc_get _adc_get fc
 0154           ;              n -> R16
                        .even
 0154           _adc_get::
 0154                   .dbline -1
 0154                   .dbline 156
 0154           ;               }
 0154           ; }
 0154           ; 
 0154           ; /**
 0154           ;       Returns the value of the selected adc channel
 0154           ; 
 0154           ;       @param n Number of ADC channel
 0154           ; 
 0154           ;       @return  Value of ADC channel
 0154           ; */
 0154           ; unsigned char adc_get(char n)
 0154           ; {
 0154                   .dbline 157
 0154           ;       ADMUX&=0xF0;
 0154 80917C00          lds R24,124
 0158 807F              andi R24,240
 015A 80937C00          sts 124,R24
 015E                   .dbline 158
 015E           ;       ADMUX|=n&0x7;
 015E 802F              mov R24,R16
 0160 8770              andi R24,7
 0162 20907C00          lds R2,124
 0166 282A              or R2,R24
 0168 20927C00          sts 124,R2
 016C           L33:
 016C                   .dbline 160
 016C           L34:
 016C                   .dbline 160
 016C           ; 
 016C           ;       while(ADCSRA&0x40);
 016C 20907A00          lds R2,122
 0170 26FC              sbrc R2,6
 0172 FCCF              rjmp L33
 0174                   .dbline 161
 0174           ;       ADCSRA|=(1<<ADSC);
 0174 80917A00          lds R24,122
 0178 8064              ori R24,64
 017A 80937A00          sts 122,R24
 017E           L36:
 017E                   .dbline 162
 017E           L37:
 017E                   .dbline 162
 017E           ;       while(ADCSRA&0x40);
 017E 20907A00          lds R2,122
 0182 26FC              sbrc R2,6
 0184 FCCF              rjmp L36
 0186                   .dbline 164
 0186           ; 
 0186           ;       return ADCH;
 0186 00917900          lds R16,121
 018A                   .dbline -2
 018A           L32:
 018A                   .dbline 0 ; func end
 018A 0895              ret
 018C                   .dbsym r n 16 c
 018C                   .dbend
 018C                   .dbfunc e process_command _process_command fV
 018C           ;           mode -> R14
 018C           ;     block_size -> R10,R11
 018C           ;  start_address -> y+6
 018C           ; polling_address -> y+2
 018C           ;            tmp -> y+13
 018C           ;            cmd -> y+12
 018C           ;      num_bytes -> y+10
 018C           ;              i -> R12,R13
 018C           ;        seq_num -> y+24
                        .even
 018C           _process_command::
 018C 1A93              st -y,r17
 018E 0A93              st -y,r16
 0190 00D0              rcall push_gset5
 0192 2E97              sbiw R28,14
 0194                   .dbline -1
 0194                   .dbline 173
 0194           ; }
 0194           ; 
 0194           ; /**
 0194           ;       Processes a command packet received in main loop and located in the global buffer
 0194           ; 
 0194           ;       @param  seq_num The sequence number of the command packet
 0194           ; */
 0194           ; void process_command(unsigned char seq_num)
 0194           ; {
 0194                   .dbline 175
 0194           ;       unsigned char cmd;
 0194           ;       unsigned char tmp=0;
 0194 0024              clr R0
 0196 0D86              std y+13,R0
 0198                   .dbline 179
 0198           ;       unsigned char mode;
 0198           ;       unsigned int block_size;
 0198           ;       unsigned int i;
 0198           ;       unsigned int num_bytes=0;
 0198 1124              clr R1
 019A 1B86              std y+11,R1
 019C 0A86              std y+10,R0
 019E                   .dbline 180
 019E           ;       unsigned long polling_address=0;
 019E 40E0              ldi R20,0
 01A0 50E0              ldi R21,0
 01A2 60E0              ldi R22,0
 01A4 70E0              ldi R23,0
 01A6 FE01              movw R30,R28
 01A8 4283              std z+2,R20
 01AA 5383              std z+3,R21
 01AC 6483              std z+4,R22
 01AE 7583              std z+5,R23
 01B0                   .dbline 181
 01B0           ;       unsigned long start_address = address;
 01B0 40900200          lds R4,_address+2
 01B4 50900300          lds R5,_address+2+1
 01B8 20900000          lds R2,_address
 01BC 30900100          lds R3,_address+1
 01C0 FE01              movw R30,R28
 01C2 2682              std z+6,R2
 01C4 3782              std z+7,R3
 01C6 4086              std z+8,R4
 01C8 5186              std z+9,R5
 01CA                   .dbline 183
 01CA           ; 
 01CA           ;       cmd = msg_buffer[0];
 01CA 20900800          lds R2,_msg_buffer
 01CE 2C86              std y+12,R2
 01D0                   .dbline 188
 01D0           ; 
 01D0           ;       //////////////////////////////////////
 01D0           ;       //CMD_SIGN_ON
 01D0           ;       //////////////////////////////////////
 01D0           ;       if(cmd==CMD_SIGN_ON)
 01D0 822D              mov R24,R2
 01D2 8130              cpi R24,1
 01D4 A9F4              brne L40
 01D6                   .dbline 189
 01D6           ;       {
 01D6                   .dbline 190
 01D6           ;               num_bytes = 11;
 01D6 8BE0              ldi R24,11
 01D8 90E0              ldi R25,0
 01DA 9B87              std y+11,R25
 01DC 8A87              std y+10,R24
 01DE                   .dbline 191
 01DE           ;               msg_buffer[0] = CMD_SIGN_ON;
 01DE 81E0              ldi R24,1
 01E0 80930800          sts _msg_buffer,R24
 01E4                   .dbline 192
 01E4           ;               msg_buffer[1] = STATUS_CMD_OK;
 01E4 2224              clr R2

⌨️ 快捷键说明

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