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

📄 m16pwm-led.lis

📁 电动车控制器
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 01E4 90E0              ldi R25,0
 01E6 8417              cp R24,R20
 01E8 9507              cpc R25,R21
 01EA 08F4              brsh L32
 01EC                   .dbline 184
 01EC 40ED              ldi R20,208
 01EE           L32:
 01EE                   .dbline 185
 01EE           ;    if(ad_tmp<0x30)ad_tmp=0x30;
 01EE 4033              cpi R20,48
 01F0 E0E0              ldi R30,0
 01F2 5E07              cpc R21,R30
 01F4 10F4              brsh L34
 01F6                   .dbline 185
 01F6 40E3              ldi R20,48
 01F8 50E0              ldi R21,0
 01FA           L34:
 01FA                   .dbline 186
 01FA           ;    ad_tmp-=0x30;
 01FA 4053              subi R20,48
 01FC 5040              sbci R21,0
 01FE                   .dbline 187
 01FE           ;    AdResult=(ad_tmp*0xff/0xa0)&0x00ff-1;   
 01FE 0FEF              ldi R16,255
 0200 10E0              ldi R17,0
 0202 9A01              movw R18,R20
 0204 0E940000          xcall empy16s
 0208 20EA              ldi R18,160
 020A 30E0              ldi R19,0
 020C 0E940000          xcall div16u
 0210 C801              movw R24,R16
 0212 8E7F              andi R24,254
 0214 9070              andi R25,0
 0216 80930000          sts _AdResult,R24
 021A                   .dbline -2
 021A           L31:
 021A 0E940000          xcall pop_gset1
 021E 0991              ld R16,y+
 0220 0FBF              out 0x3f,R16
 0222 E991              ld R30,y+
 0224 9991              ld R25,y+
 0226 8991              ld R24,y+
 0228 3991              ld R19,y+
 022A 2991              ld R18,y+
 022C 1991              ld R17,y+
 022E 0991              ld R16,y+
 0230                   .dbline 0 ; func end
 0230 1895              reti
 0232                   .dbsym r ad_tmp 20 i
 0232                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C941901          jmp _timer1_comp_isr
                        .area text(rom, con, rel)
 0232                   .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
 0232                   .dbfunc e timer1_comp_isr _timer1_comp_isr fV
 0232           ;             tt -> <dead>
                        .even
 0232           _timer1_comp_isr::
 0232 2A92              st -y,R2
 0234 8A93              st -y,R24
 0236 9A93              st -y,R25
 0238 2FB6              in R2,0x3f
 023A 2A92              st -y,R2
 023C                   .dbline -1
 023C                   .dbline 192
 023C           ;    //LedBuf[0]=AdResult;
 023C           ; } 
 023C           ; #pragma interrupt_handler timer1_comp_isr:9
 023C           ; void timer1_comp_isr(void)
 023C           ; {
 023C                   .dbline 195
 023C           ;  //compare occured TCNT1=OCR1
 023C           ;  uchar tt;
 023C           ;     TCNT1 = 0xC2F7; //setup 
 023C 87EF              ldi R24,49911
 023E 92EC              ldi R25,194
 0240 9DBD              out 0x2d,R25
 0242 8CBD              out 0x2c,R24
 0244                   .dbline 199
 0244           ;     //PORTD ^=0x60;           
 0244           ;     //LedDp[second_data%4]=1;
 0244           ;       //LedBuf[0]=second_data;
 0244           ;     if(++second_data>=60)
 0244 80910B00          lds R24,_second_data
 0248 8F5F              subi R24,255    ; addi 1
 024A 282E              mov R2,R24
 024C 20920B00          sts _second_data,R2
 0250 8C33              cpi R24,60
 0252 C8F0              brlo L37
 0254                   .dbline 200
 0254           ;     {
 0254                   .dbline 201
 0254           ;           second_data=0;
 0254 2224              clr R2
 0256 20920B00          sts _second_data,R2
 025A                   .dbline 202
 025A           ;         if(++minut_data>=60)
 025A 80910C00          lds R24,_minut_data
 025E 8F5F              subi R24,255    ; addi 1
 0260 282E              mov R2,R24
 0262 20920C00          sts _minut_data,R2
 0266 8C33              cpi R24,60
 0268 70F0              brlo L39
 026A                   .dbline 203
 026A           ;           {
 026A                   .dbline 204
 026A           ;               minut_data=0;
 026A 2224              clr R2
 026C 20920C00          sts _minut_data,R2
 0270                   .dbline 205
 0270           ;                   if(++hour_data>=24)  
 0270 80910D00          lds R24,_hour_data
 0274 8F5F              subi R24,255    ; addi 1
 0276 282E              mov R2,R24
 0278 20920D00          sts _hour_data,R2
 027C 8831              cpi R24,24
 027E 18F0              brlo L41
 0280                   .dbline 206
 0280           ;               {
 0280                   .dbline 207
 0280           ;                   hour_data=0;
 0280 2224              clr R2
 0282 20920D00          sts _hour_data,R2
 0286                   .dbline 208
 0286           ;               }
 0286           L41:
 0286                   .dbline 209
 0286           ;       }
 0286           L39:
 0286                   .dbline 210
 0286           L37:
 0286                   .dbline -2
 0286           L36:
 0286 2990              ld R2,y+
 0288 2FBE              out 0x3f,R2
 028A 9991              ld R25,y+
 028C 8991              ld R24,y+
 028E 2990              ld R2,y+
 0290                   .dbline 0 ; func end
 0290 1895              reti
 0292                   .dbsym l tt 1 c
 0292                   .dbend
 0292                   .dbfunc e led_display _led_display fV
 0292           ;           tmp1 -> R22
 0292           ;           tmp0 -> R10
 0292           ;          delay -> R20
                        .even
 0292           _led_display::
 0292 0E940000          xcall push_gset3
 0296 402F              mov R20,R16
 0298                   .dbline -1
 0298                   .dbline 216
 0298           ;      }                
 0298           ;  
 0298           ; }
 0298           ; 
 0298           ; //led display
 0298           ; void led_display(uchar delay)
 0298           ; {
 0298                   .dbline 218
 0298           ;   uchar tmp0,tmp1;
 0298           ;   tmp0=LedBuf[0];
 0298 A0901400          lds R10,_LedBuf
 029C                   .dbline 219
 029C           ;   tmp1=LedBuf[1];
 029C 60911500          lds R22,_LedBuf+1
 02A0                   .dbline 220
 02A0           ;   if(tmp0>99)tmp0=99;
 02A0 83E6              ldi R24,99
 02A2 8A15              cp R24,R10
 02A4 08F4              brsh L45
 02A6                   .dbline 220
 02A6 A82E              mov R10,R24
 02A8           L45:
 02A8                   .dbline 221
 02A8           ;   if(tmp1>99)tmp1=99;  
 02A8 83E6              ldi R24,99
 02AA 8617              cp R24,R22
 02AC 08F4              brsh L47
 02AE                   .dbline 221
 02AE 63E6              ldi R22,99
 02B0           L47:
 02B0                   .dbline 222
 02B0           ;   PORTB = ~0x08;  
 02B0 87EF              ldi R24,247
 02B2 88BB              out 0x18,R24
 02B4                   .dbline 223
 02B4           ;   PORTA = LedTab[(tmp0%10)]; 
 02B4 2AE0              ldi R18,10
 02B6 30E0              ldi R19,0
 02B8 0A2D              mov R16,R10
 02BA 1127              clr R17
 02BC 0E940000          xcall mod16s
 02C0 F801              movw R30,R16
 02C2 80E0              ldi R24,<_LedTab
 02C4 90E0              ldi R25,>_LedTab
 02C6 E80F              add R30,R24
 02C8 F91F              adc R31,R25
 02CA 2080              ldd R2,z+0
 02CC 2BBA              out 0x1b,R2
 02CE                   .dbline 224
 02CE           ;   if(LedDp&0x01)PORTB|=0x10;
 02CE 20901600          lds R2,_LedDp
 02D2 20FE              sbrs R2,0
 02D4 02C0              rjmp L49
 02D6                   .dbline 224
 02D6 C49A              sbi 0x18,4
 02D8 03C0              xjmp L50
 02DA           L49:
 02DA                   .dbline 225
 02DA           ;   else PORTB&=0xEF;
 02DA 88B3              in R24,0x18
 02DC 8F7E              andi R24,239
 02DE 88BB              out 0x18,R24
 02E0           L50:
 02E0                   .dbline 226
 02E0           ;   ms_delay(delay);
 02E0 042F              mov R16,R20
 02E2 1127              clr R17
 02E4 58D0              xcall _ms_delay
 02E6                   .dbline 228
 02E6           ;      
 02E6           ;   PORTB = ~0x04;  
 02E6 8BEF              ldi R24,251
 02E8 88BB              out 0x18,R24
 02EA                   .dbline 229
 02EA           ;   PORTA = LedTab[((tmp0/10)&0x0f)];
 02EA 2AE0              ldi R18,10
 02EC 30E0              ldi R19,0
 02EE 0A2D              mov R16,R10
 02F0 1127              clr R17
 02F2 0E940000          xcall div16s
 02F6 F801              movw R30,R16
 02F8 EF70              andi R30,15
 02FA F070              andi R31,0
 02FC 80E0              ldi R24,<_LedTab
 02FE 90E0              ldi R25,>_LedTab
 0300 E80F              add R30,R24
 0302 F91F              adc R31,R25
 0304 2080              ldd R2,z+0
 0306 2BBA              out 0x1b,R2
 0308                   .dbline 230
 0308           ;   if(LedDp&0x02)PORTB|=0x10;
 0308 20901600          lds R2,_LedDp
 030C 21FE              sbrs R2,1
 030E 02C0              rjmp L51
 0310                   .dbline 230
 0310 C49A              sbi 0x18,4
 0312 03C0              xjmp L52
 0314           L51:
 0314                   .dbline 231
 0314           ;   else PORTB&=0xEF;
 0314 88B3              in R24,0x18
 0316 8F7E              andi R24,239
 0318 88BB              out 0x18,R24
 031A           L52:
 031A                   .dbline 232
 031A           ;   ms_delay(delay);
 031A 042F              mov R16,R20
 031C 1127              clr R17
 031E 3BD0              xcall _ms_delay
 0320                   .dbline 234
 0320           ;     
 0320           ;   PORTB = ~0x02;  
 0320 8DEF              ldi R24,253
 0322 88BB              out 0x18,R24
 0324                   .dbline 235
 0324           ;   PORTA = LedTab[(tmp1%10)];
 0324 2AE0              ldi R18,10
 0326 30E0              ldi R19,0
 0328 062F              mov R16,R22
 032A 1127              clr R17
 032C 0E940000          xcall mod16s
 0330 F801              movw R30,R16
 0332 80E0              ldi R24,<_LedTab
 0334 90E0              ldi R25,>_LedTab
 0336 E80F              add R30,R24
 0338 F91F              adc R31,R25
 033A 2080              ldd R2,z+0
 033C 2BBA              out 0x1b,R2
 033E                   .dbline 236
 033E           ;   if(LedDp&0x04)PORTB|=0x10;
 033E 20901600          lds R2,_LedDp
 0342 22FE              sbrs R2,2
 0344 02C0              rjmp L53
 0346                   .dbline 236
 0346 C49A              sbi 0x18,4
 0348 03C0              xjmp L54
 034A           L53:
 034A                   .dbline 237
 034A           ;   else PORTB&=0xEF;
 034A 88B3              in R24,0x18
 034C 8F7E              andi R24,239
 034E 88BB              out 0x18,R24
 0350           L54:
 0350                   .dbline 238
 0350           ;   ms_delay(delay); 
 0350 042F              mov R16,R20
 0352 1127              clr R17
 0354 20D0              xcall _ms_delay
 0356                   .dbline 240
 0356           ;    
 0356           ;   PORTB = ~0x01;  
 0356 8EEF              ldi R24,254
 0358 88BB              out 0x18,R24
 035A                   .dbline 241
 035A           ;   PORTA = LedTab[((tmp1/10)&0x0f)];
 035A 2AE0              ldi R18,10
 035C 30E0              ldi R19,0
 035E 062F              mov R16,R22
 0360 1127              clr R17
 0362 0E940000          xcall div16s
 0366 F801              movw R30,R16
 0368 EF70              andi R30,15
 036A F070              andi R31,0
 036C 80E0              ldi R24,<_LedTab
 036E 90E0              ldi R25,>_LedTab
 0370 E80F              add R30,R24
 0372 F91F              adc R31,R25
 0374 2080              ldd R2,z+0
 0376 2BBA              out 0x1b,R2
 0378                   .dbline 242
 0378           ;   if(LedDp&0x08)PORTB|=0x10;
 0378 20901600          lds R2,_LedDp
 037C 23FE              sbrs R2,3
 037E 02C0              rjmp L55
 0380                   .dbline 242
 0380 C49A              sbi 0x18,4
 0382 03C0              xjmp L56
 0384           L55:
 0384                   .dbline 243
 0384           ;   else PORTB&=0xEF;
 0384 88B3              in R24,0x18
 0386 8F7E              andi R24,239
 0388 88BB              out 0x18,R24
 038A           L56:
 038A                   .dbline 244

⌨️ 快捷键说明

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