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

📄 main.lis

📁 前两年在一家模型公司开发的
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00D8           ;       temp = adc_colect(1);
 00D8 01E0              ldi R16,1
 00DA 00D0              rcall _adc_colect
 00DC A801              movw R20,R16
 00DE                   .dbline 130
 00DE           ;       if(temp<0x1D0 && power<200) power ++;
 00DE 003D              cpi R16,208
 00E0 E1E0              ldi R30,1
 00E2 1E07              cpc R17,R30
 00E4 40F4              brsh L20
 00E6 80910300          lds R24,_power
 00EA 883C              cpi R24,200
 00EC 20F4              brsh L20
 00EE                   .dbline 130
 00EE 8F5F              subi R24,255    ; addi 1
 00F0 80930300          sts _power,R24
 00F4 08C0              rjmp L21
 00F6           L20:
 00F6                   .dbline 131
 00F6           ;       else if(temp>0x1DF)power = 0;
 00F6 8FED              ldi R24,479
 00F8 91E0              ldi R25,1
 00FA 8417              cp R24,R20
 00FC 9507              cpc R25,R21
 00FE 18F4              brsh L22
 0100                   .dbline 131
 0100 2224              clr R2
 0102 20920300          sts _power,R2
 0106           L22:
 0106           L21:
 0106                   .dbline 133
 0106           ;       
 0106           ;       if(power>3 && PWM<50)
 0106 83E0              ldi R24,3
 0108 20900300          lds R2,_power
 010C 8215              cp R24,R2
 010E E0F4              brsh L24
 0110 80910D00          lds R24,_PWM
 0114 8233              cpi R24,50
 0116 C0F4              brsh L24
 0118                   .dbline 134
 0118           ;       {
 0118                   .dbline 135
 0118           ;               PWM = 0;
 0118 2224              clr R2
 011A 20920D00          sts _PWM,R2
 011E                   .dbline 136
 011E           ;               Pwm_set(0,0);
 011E 2227              clr R18
 0120 0027              clr R16
 0122 00D0              rcall _Pwm_set
 0124                   .dbline 137
 0124           ;               delay(5);
 0124 05E0              ldi R16,5
 0126 10E0              ldi R17,0
 0128 AEDF              rcall _delay
 012A                   .dbline 138
 012A           ;               temp = 0;
 012A 4427              clr R20
 012C 5527              clr R21
 012E 08C0              rjmp L27
 0130           L26:
 0130                   .dbline 140
 0130                   .dbline 141
 0130 01E0              ldi R16,1
 0132 00D0              rcall _adc_colect
 0134 A801              movw R20,R16
 0136                   .dbline 142
 0136 C6DF              rcall _LED_set
 0138                   .dbline 143
 0138 3ED1              rcall _Buz
 013A                   .dbline 144
 013A 04E1              ldi R16,20
 013C 10E0              ldi R17,0
 013E A3DF              rcall _delay
 0140                   .dbline 145
 0140           L27:
 0140                   .dbline 139
 0140           ;               while(temp<0x1df)
 0140 4F3D              cpi R20,223
 0142 E1E0              ldi R30,1
 0144 5E07              cpc R21,R30
 0146 A0F3              brlo L26
 0148                   .dbline 146
 0148           ;               {
 0148           ;                       temp = adc_colect(1);
 0148           ;                       LED_set();
 0148           ;                       Buz();
 0148           ;                       delay(20);
 0148           ;               }
 0148           ;       }
 0148           L24:
 0148                   .dbline 149
 0148           ;       
 0148           ;       
 0148           ;       temp = adc_colect(2);
 0148 02E0              ldi R16,2
 014A 00D0              rcall _adc_colect
 014C A801              movw R20,R16
 014E                   .dbline 150
 014E           ;       if(temp>0x3BF && heat<200) heat ++;             // >110度
 014E 8FEB              ldi R24,959
 0150 93E0              ldi R25,3
 0152 8017              cp R24,R16
 0154 9107              cpc R25,R17
 0156 40F4              brsh L29
 0158 80910200          lds R24,_heat
 015C 883C              cpi R24,200
 015E 20F4              brsh L29
 0160                   .dbline 150
 0160 8F5F              subi R24,255    ; addi 1
 0162 80930200          sts _heat,R24
 0166 07C0              rjmp L30
 0168           L29:
 0168                   .dbline 151
 0168           ;       else if(temp<0x38E)heat = 0;                    // <80度
 0168 4E38              cpi R20,142
 016A E3E0              ldi R30,3
 016C 5E07              cpc R21,R30
 016E 18F4              brsh L31
 0170                   .dbline 151
 0170 2224              clr R2
 0172 20920200          sts _heat,R2
 0176           L31:
 0176           L30:
 0176                   .dbline 153
 0176           ;       
 0176           ;       if(heat>3 && PWM<50)
 0176 83E0              ldi R24,3
 0178 20900200          lds R2,_heat
 017C 8215              cp R24,R2
 017E F8F4              brsh L33
 0180 80910D00          lds R24,_PWM
 0184 8233              cpi R24,50
 0186 D8F4              brsh L33
 0188                   .dbline 154
 0188           ;       {
 0188                   .dbline 155
 0188           ;               PWM = 0;
 0188 2224              clr R2
 018A 20920D00          sts _PWM,R2
 018E                   .dbline 156
 018E           ;               Pwm_set(0,0);
 018E 2227              clr R18
 0190 0027              clr R16
 0192 00D0              rcall _Pwm_set
 0194                   .dbline 157
 0194           ;               delay(5);
 0194 05E0              ldi R16,5
 0196 10E0              ldi R17,0
 0198 76DF              rcall _delay
 019A                   .dbline 158
 019A           ;               temp = 0xfff;
 019A 4FEF              ldi R20,4095
 019C 5FE0              ldi R21,15
 019E 0AC0              rjmp L36
 01A0           L35:
 01A0                   .dbline 160
 01A0                   .dbline 161
 01A0 02E0              ldi R16,2
 01A2 00D0              rcall _adc_colect
 01A4 A801              movw R20,R16
 01A6                   .dbline 162
 01A6 8EDF              rcall _LED_set
 01A8                   .dbline 163
 01A8 8DDF              rcall _LED_set
 01AA                   .dbline 164
 01AA 05D1              rcall _Buz
 01AC                   .dbline 165
 01AC 04D1              rcall _Buz
 01AE                   .dbline 166
 01AE 04E1              ldi R16,20
 01B0 10E0              ldi R17,0
 01B2 69DF              rcall _delay
 01B4                   .dbline 167
 01B4           L36:
 01B4                   .dbline 159
 01B4 8EE8              ldi R24,910
 01B6 93E0              ldi R25,3
 01B8 8417              cp R24,R20
 01BA 9507              cpc R25,R21
 01BC 88F3              brlo L35
 01BE                   .dbline 168
 01BE           L33:
 01BE                   .dbline -2
 01BE           L19:
 01BE 00D0              rcall pop_gset1
 01C0                   .dbline 0 ; func end
 01C0 0895              ret
 01C2                   .dbsym r temp 20 i
 01C2                   .dbend
 01C2                   .dbfunc e Gun_set _Gun_set fV
                        .even
 01C2           _Gun_set::
 01C2                   .dbline -1
 01C2                   .dbline 176
 01C2           ;               while(temp>0x38E)
 01C2           ;               {
 01C2           ;                       temp = adc_colect(2);
 01C2           ;                       LED_set();
 01C2           ;                       LED_set();
 01C2           ;                       Buz();
 01C2           ;                       Buz();
 01C2           ;                       delay(20);
 01C2           ;               }
 01C2           ;       }
 01C2           ; }
 01C2           ; 
 01C2           ; /*---------------------------------------------------------------
 01C2           ;                       油门处理
 01C2           ; ----------------------------------------------------------------*/
 01C2           ; 
 01C2           ; void Gun_set(void)
 01C2           ; {             
 01C2                   .dbline 177
 01C2           ;       if(rxd_flag)    // 接收已完成
 01C2 20900E00          lds R2,_rxd_flag
 01C6 2220              tst R2
 01C8 09F4              brne X0
 01CA BFC0              rjmp L39
 01CC           X0:
 01CC                   .dbline 178
 01CC           ;       {
 01CC                   .dbline 179
 01CC           ;               rxd_flag = 0;
 01CC 2224              clr R2
 01CE 20920E00          sts _rxd_flag,R2
 01D2                   .dbline 181
 01D2           ;               
 01D2           ;               if(Timer>high) Timer = high;    // 确保接收到的数据在正常范围内
 01D2 20900900          lds R2,_high
 01D6 30900A00          lds R3,_high+1
 01DA 40900B00          lds R4,_Timer
 01DE 50900C00          lds R5,_Timer+1
 01E2 2414              cp R2,R4
 01E4 3504              cpc R3,R5
 01E6 20F4              brsh L41
 01E8                   .dbline 181
 01E8 30920C00          sts _Timer+1,R3
 01EC 20920B00          sts _Timer,R2
 01F0           L41:
 01F0                   .dbline 182
 01F0           ;               if(Timer<low)  Timer = low;
 01F0 20900500          lds R2,_low
 01F4 30900600          lds R3,_low+1
 01F8 40900B00          lds R4,_Timer
 01FC 50900C00          lds R5,_Timer+1
 0200 4214              cp R4,R2
 0202 5304              cpc R5,R3
 0204 20F4              brsh L43
 0206                   .dbline 182
 0206 30920C00          sts _Timer+1,R3
 020A 20920B00          sts _Timer,R2
 020E           L43:
 020E                   .dbline 184
 020E           ;               
 020E           ;               if(Timer>(middle+50))           // 前进 1550us
 020E 80910700          lds R24,_middle
 0212 90910800          lds R25,_middle+1
 0216 C296              adiw R24,50
 0218 20900B00          lds R2,_Timer
 021C 30900C00          lds R3,_Timer+1
 0220 8215              cp R24,R2
 0222 9305              cpc R25,R3
 0224 90F5              brsh L45
 0226                   .dbline 185
 0226           ;               {
 0226                   .dbline 186
 0226           ;                       if(power>3 || heat>3)
 0226 83E0              ldi R24,3
 0228 20900300          lds R2,_power
 022C 8215              cp R24,R2
 022E 20F0              brlo L49
 0230 20900200          lds R2,_heat
 0234 8215              cp R24,R2
 0236 30F4              brsh L47
 0238           L49:
 0238                   .dbline 187
 0238           ;                       {
 0238                   .dbline 188
 0238           ;                               PWM --;
 0238 80910D00          lds R24,_PWM
 023C 8150              subi R24,1
 023E 80930D00          sts _PWM,R24
 0242                   .dbline 189
 0242           ;                       }
 0242 1AC0              rjmp L48
 0244           L47:
 0244                   .dbline 191
 0244           ;                       else 
 0244           ;                       {       
 0244                   .dbline 192
 0244           ;                               PWM = ((Timer-middle)*10)/PE1;  // 计算占空比
 0244 20900700          lds R2,_middle
 0248 30900800          lds R3,_middle+1
 024C 20910B00          lds R18,_Timer
 0250 30910C00          lds R19,_Timer+1
 0254 2219              sub R18,R2
 0256 3309              sbc R19,R3
 0258 0AE0              ldi R16,10
 025A 10E0              ldi R17,0
 025C 00D0              rcall empy16s
 025E 20911200          lds R18,_PE1
 0262 30911300          lds R19,_PE1+1
 0266 00D0              rcall div16u
 0268 00930D00          sts _PWM,R16
 026C                   .dbline 193
 026C           ;                               if(PWM>210) PWM = 255;          
 026C 82ED              ldi R24,210
 026E 8017              cp R24,R16
 0270 18F4              brsh L50
 0272                   .dbline 193
 0272 8FEF              ldi R24,255
 0274 80930D00          sts _PWM,R24
 0278           L50:
 0278                   .dbline 195
 0278           ;                               
 0278           ;                       }
 0278           L48:
 0278                   .dbline 196
 0278           ;                       Pwm_set(PWM,1);         // 设置PWM占空比
 0278 21E0              ldi R18,1
 027A 00910D00          lds R16,_PWM
 027E 00D0              rcall _Pwm_set
 0280                   .dbline 197
 0280           ;                       mode = 1;
 0280 81E0              ldi R24,1
 0282 80930F00          sts _mode,R24
 0286                   .dbline 198
 0286           ;                       SET_LED;
 0286 5C9A              sbi 0xb,4
 0288                   .dbline 199
 0288           ;               }
 0288 60C0              rjmp L46
 028A           L45:
 028A                   .dbline 200
 028A           ;               else if(Timer<(middle-50))      
 028A 80910700          lds R24,_middle
 028E 90910800          lds R25,_middle+1
 0292 C297              sbiw R24,50
 0294 20900B00          lds R2,_Timer
 0298 30900C00          lds R3,_Timer+1
 029C 2816              cp R2,R24
 029E 3906              cpc R3,R25
 02A0 08F0              brlo X1
 02A2 4FC0              rjmp L52
 02A4           X1:

⌨️ 快捷键说明

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