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

📄 m16pwm-led.lis

📁 电动车控制器
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 038A           ;   ms_delay(delay); 
 038A 042F              mov R16,R20
 038C 1127              clr R17
 038E 03D0              xcall _ms_delay
 0390                   .dbline -2
 0390           L43:
 0390 0E940000          xcall pop_gset3
 0394                   .dbline 0 ; func end
 0394 0895              ret
 0396                   .dbsym r tmp1 22 c
 0396                   .dbsym r tmp0 10 c
 0396                   .dbsym r delay 20 c
 0396                   .dbend
 0396                   .dbfunc e ms_delay _ms_delay fV
 0396           ;             d1 -> R20,R21
 0396           ;             d2 -> R22,R23
 0396           ;          delay -> R16,R17
                        .even
 0396           _ms_delay::
 0396 0E940000          xcall push_gset2
 039A                   .dbline -1
 039A                   .dbline 249
 039A           ;     
 039A           ;   
 039A           ; }
 039A           ; void ms_delay(uint delay)
 039A           ; {
 039A                   .dbline 251
 039A           ;     int d1,d2;
 039A           ;       for(d1=0;d1<delay;d1++)
 039A 4427              clr R20
 039C 5527              clr R21
 039E 0AC0              xjmp L61
 03A0           L58:
 03A0                   .dbline 252
 03A0           ;       {
 03A0                   .dbline 253
 03A0 6627              clr R22
 03A2 7727              clr R23
 03A4           L62:
 03A4                   .dbline 253
 03A4           L63:
 03A4                   .dbline 253
 03A4 6F5F              subi R22,255  ; offset = 1
 03A6 7F4F              sbci R23,255
 03A8                   .dbline 253
 03A8 683E              cpi R22,232
 03AA E3E0              ldi R30,3
 03AC 7E07              cpc R23,R30
 03AE D4F3              brlt L62
 03B0                   .dbline 254
 03B0           L59:
 03B0                   .dbline 251
 03B0 4F5F              subi R20,255  ; offset = 1
 03B2 5F4F              sbci R21,255
 03B4           L61:
 03B4                   .dbline 251
 03B4 4017              cp R20,R16
 03B6 5107              cpc R21,R17
 03B8 98F3              brlo L58
 03BA                   .dbline -2
 03BA           L57:
 03BA 0E940000          xcall pop_gset2
 03BE                   .dbline 0 ; func end
 03BE 0895              ret
 03C0                   .dbsym r d1 20 I
 03C0                   .dbsym r d2 22 I
 03C0                   .dbsym r delay 16 i
 03C0                   .dbend
 03C0                   .dbfunc e init_devices _init_devices fV
                        .even
 03C0           _init_devices::
 03C0                   .dbline -1
 03C0                   .dbline 258
 03C0           ;          for(d2=0;d2<1000;d2++);
 03C0           ;       }
 03C0           ; }
 03C0           ; //call this routine to initialise all peripherals
 03C0           ; void init_devices(void)
 03C0           ; {
 03C0                   .dbline 260
 03C0           ;  //stop errant interrupts until set up
 03C0           ;  CLI(); //disable all interrupts
 03C0 F894              cli
 03C2                   .dbline 261
 03C2           ;  port_init();
 03C2 1EDE              xcall _port_init
 03C4                   .dbline 262
 03C4           ;  uart0_init();
 03C4 44DE              xcall _uart0_init
 03C6                   .dbline 263
 03C6           ;  timer1_init();
 03C6 2DDE              xcall _timer1_init
 03C8                   .dbline 264
 03C8           ;  adc_init();
 03C8 F6DE              xcall _adc_init
 03CA                   .dbline 265
 03CA           ;  MCUCR = 0x02;
 03CA 82E0              ldi R24,2
 03CC 85BF              out 0x35,R24
 03CE                   .dbline 266
 03CE           ;  GICR  = 0x40;
 03CE 80E4              ldi R24,64
 03D0 8BBF              out 0x3b,R24
 03D2                   .dbline 267
 03D2           ;  TIMSK = 0x04; //timer interrupt sources
 03D2 84E0              ldi R24,4
 03D4 89BF              out 0x39,R24
 03D6                   .dbline 269
 03D6           ;  
 03D6           ;  SEI(); //re-enable interrupts
 03D6 7894              sei
 03D8                   .dbline -2
 03D8           L66:
 03D8                   .dbline 0 ; func end
 03D8 0895              ret
 03DA                   .dbend
 03DA                   .dbfunc e main _main fV
 03DA           ;              i -> <dead>
 03DA           ;        leddptt -> R12
 03DA           ;           ttmp -> R12
 03DA           ;            key -> R22,R23
 03DA           ;            led -> R10,R11
 03DA           ;            adc -> R20,R21
                        .even
 03DA           _main::
 03DA                   .dbline -1
 03DA                   .dbline 275
 03DA           ;  //all peripherals are now initialised
 03DA           ; }
 03DA           ; 
 03DA           ; ////////////////////////////////////////////////////////////////////////////////
 03DA           ; void main()
 03DA           ; {
 03DA                   .dbline 276
 03DA           ;   int i,adc=0,led=0,key=0;
 03DA 4427              clr R20
 03DC 5527              clr R21
 03DE                   .dbline 276
 03DE AA24              clr R10
 03E0 BB24              clr R11
 03E2                   .dbline 276
 03E2 6627              clr R22
 03E4 7727              clr R23
 03E6                   .dbline 277
 03E6           ;   uchar ttmp,leddptt=0;
 03E6 CC24              clr R12
 03E8                   .dbline 278
 03E8           ;   init_devices();
 03E8 EBDF              xcall _init_devices
 03EA                   .dbline 279
 03EA           ;   temp_data=0x13;
 03EA 83E1              ldi R24,19
 03EC 80930E00          sts _temp_data,R24
 03F0 4FC0              xjmp L69
 03F2           L68:
 03F2                   .dbline 281
 03F2           ;   while(1)
 03F2           ;   {
 03F2                   .dbline 287
 03F2           ;      
 03F2           ;    //display second flag
 03F2           ;    
 03F2           ;    
 03F2           ;     
 03F2           ;      if(++led>240)
 03F2 C501              movw R24,R10
 03F4 0196              adiw R24,1
 03F6 5C01              movw R10,R24
 03F8 80EF              ldi R24,240
 03FA 90E0              ldi R25,0
 03FC 8A15              cp R24,R10
 03FE 9B05              cpc R25,R11
 0400 94F4              brge L71
 0402                   .dbline 288
 0402           ;      {                
 0402                   .dbline 289
 0402           ;               PORTD ^= (LRledReg<<3);//LR-LED         
 0402 20901800          lds R2,_LRledReg
 0406 220C              lsl R2
 0408 220C              lsl R2
 040A 220C              lsl R2
 040C 32B2              in R3,0x12
 040E 3224              eor R3,R2
 0410 32BA              out 0x12,R3
 0412                   .dbline 290
 0412           ;         led=0;
 0412 AA24              clr R10
 0414 BB24              clr R11
 0416                   .dbline 291
 0416           ;               M8Mode ^= (LRledReg&0x03);
 0416 80911800          lds R24,_LRledReg
 041A 8370              andi R24,3
 041C 20900300          lds R2,_M8Mode
 0420 2826              eor R2,R24
 0422 20920300          sts _M8Mode,R2
 0426                   .dbline 292
 0426           ;      }
 0426           L71:
 0426                   .dbline 293
 0426           ;      if(++adc>100)
 0426 4F5F              subi R20,255  ; offset = 1
 0428 5F4F              sbci R21,255
 042A 84E6              ldi R24,100
 042C 90E0              ldi R25,0
 042E 8417              cp R24,R20
 0430 9507              cpc R25,R21
 0432 24F4              brge L73
 0434                   .dbline 294
 0434           ;      {
 0434                   .dbline 295
 0434           ;          tx_pack();   
 0434 7DDE              xcall _tx_pack
 0436                   .dbline 296
 0436           ;                ADCSRA |=(1<<ADSC);  //启动AD转换 
 0436 369A              sbi 0x6,6
 0438                   .dbline 297
 0438           ;          adc=0;                
 0438 4427              clr R20
 043A 5527              clr R21
 043C                   .dbline 298
 043C           ;      }
 043C           L73:
 043C                   .dbline 299
 043C           ;        if(++key>200)
 043C CB01              movw R24,R22
 043E 0196              adiw R24,1
 0440 BC01              movw R22,R24
 0442 88EC              ldi R24,200
 0444 90E0              ldi R25,0
 0446 8617              cp R24,R22
 0448 9707              cpc R25,R23
 044A 04F5              brge L75
 044C                   .dbline 300
 044C           ;        {           
 044C                   .dbline 301
 044C           ;                key=0;
 044C 6627              clr R22
 044E 7727              clr R23
 0450                   .dbline 302
 0450           ;                ttmp = PINC&0x03; 
 0450 83B3              in R24,0x13
 0452 8370              andi R24,3
 0454 C82E              mov R12,R24
 0456                   .dbline 303
 0456           ;                if(ttmp==0x03)
 0456 8330              cpi R24,3
 0458 49F4              brne L77
 045A                   .dbline 304
 045A           ;                {
 045A                   .dbline 305
 045A           ;                    PORTD |=0x18;//关LR-LED
 045A 82B3              in R24,0x12
 045C 8861              ori R24,24
 045E 82BB              out 0x12,R24
 0460                   .dbline 306
 0460           ;                        M8Mode=0;
 0460 2224              clr R2
 0462 20920300          sts _M8Mode,R2
 0466                   .dbline 307
 0466           ;                    LRledReg=0;
 0466 20921800          sts _LRledReg,R2
 046A                   .dbline 308
 046A           ;                } 
 046A 05C0              xjmp L78
 046C           L77:
 046C                   .dbline 309
 046C           ;          else LRledReg = (~(ttmp))&0x03;
 046C 8C2D              mov R24,R12
 046E 8095              com R24
 0470 8370              andi R24,3
 0472 80931800          sts _LRledReg,R24
 0476           L78:
 0476                   .dbline 310
 0476           ;                LedDp=LedDp<<1;
 0476 20901600          lds R2,_LedDp
 047A 220C              lsl R2
 047C 20921600          sts _LedDp,R2
 0480                   .dbline 311
 0480           ;                if(LedDp>0x08)LedDp=0x01;
 0480 88E0              ldi R24,8
 0482 8215              cp R24,R2
 0484 18F4              brsh L79
 0486                   .dbline 311
 0486 81E0              ldi R24,1
 0488 80931600          sts _LedDp,R24
 048C           L79:
 048C                   .dbline 313
 048C           ;        
 048C           ;        }
 048C           L75:
 048C                   .dbline 314
 048C 01E0              ldi R16,1
 048E 01DF              xcall _led_display
 0490                   .dbline 316
 0490           L69:
 0490                   .dbline 280
 0490 B0CF              xjmp L68
 0492           X0:
 0492                   .dbline -2
 0492           L67:
 0492                   .dbline 0 ; func end
 0492 0895              ret
 0494                   .dbsym l i 1 I
 0494                   .dbsym r leddptt 12 c
 0494                   .dbsym r ttmp 12 c
 0494                   .dbsym r key 22 I
 0494                   .dbsym r led 10 I
 0494                   .dbsym r adc 20 I
 0494                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
 0000           _UartBuf::
 0000                   .blkb 10
 000A                   .dbsym e UartBuf _UartBuf A[10:10]c
 000A           _second_flag::
 000A                   .blkb 1
 000B                   .dbsym e second_flag _second_flag c
 000B           _second_data::
 000B                   .blkb 1
 000C                   .dbsym e second_data _second_data c
 000C           _minut_data::
 000C                   .blkb 1
 000D                   .dbsym e minut_data _minut_data c
 000D           _hour_data::
 000D                   .blkb 1
 000E                   .dbsym e hour_data _hour_data c
 000E           _temp_data::
 000E                   .blkb 1
 000F                   .dbsym e temp_data _temp_data c
 000F           _k::
 000F                   .blkb 2
 0011                   .dbsym e k _k I
 0011           _kk::
 0011                   .blkb 1
 0012                   .dbsym e kk _kk c

⌨️ 快捷键说明

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