                        .module LED_flashing.c
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\BK-AVR~2\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÒ»~1\LED_flashing.c
 0000                   .dbfile F:\²©¿Æµç×ÓÌÔ±¦µêËùÓÐ×ÊÁÏ\²©¿Æ²úÆ·ÅäÌ×ÎÄ¼þ\AVRÏà¹Ø²úÆ·\ATMEGA128ÏµÁÐ¿ª·¢°å\BK-AVR~2\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÒ»~1\LED_flashing.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 20
 0000           ; 
 0000           ; /********************************************************
 0000           ; ÊµÑéÒ»:   ¿ØÖÆLEDÉÁË¸ÊµÑé
 0000           ; ËµÃ÷:     °´ÖÆD1Ã¿¸ô500MSÁÁÒ»´Î      
 0000           ;           
 0000           ; CPUÐÍºÅ:   ATMEGA128A
 0000           ; ¾§ÕñÆµÂÊ:     8MHZ
 0000           ; ÈÕÆÚ£º    2011-3-12
 0000           ; ÁªÏµ·½·¨: MCU.2000@163.com 
 0000           ;  ********************************************************/
 0000           ; 
 0000           ; #include<iom128v.h>
 0000           ; #define uchar unsigned char
 0000           ; #define uint  unsigned int
 0000           ; 
 0000           ; void Delayus(uint US);
 0000           ; void Delayms(uint MS);
 0000           ;       
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 21
 0000           ;        DDRA=0XFF;             //LED IO¿ÚÉèÎªÊä³ö
 0000 8FEF              ldi R24,255
 0002 8ABB              out 0x1a,R24
 0004                   .dbline 22
 0004           ;        DDRC=0XFF;             //ÊýÂë¹Ü¶ÎÑ¡ÉèÎªÊä³ö
 0004 84BB              out 0x14,R24
 0006                   .dbline 23
 0006           ;        DDRF |=0X03;           //LED¼°ÊýÂë¹ÜËø´æIO¿ÚÉèÎªÊä³ö
 0006 80916100          lds R24,97
 000A 8360              ori R24,3
 000C 80936100          sts 97,R24
 0010                   .dbline 24
 0010           ;        PORTF|=0X0E;           
 0010 80916200          lds R24,98
 0014 8E60              ori R24,14
 0016 80936200          sts 98,R24
 001A                   .dbline 25
 001A           ;        PORTA=0XFF;
 001A 8FEF              ldi R24,255
 001C 8BBB              out 0x1b,R24
 001E                   .dbline 26
 001E           ;        PORTC=0XFF;            
 001E 85BB              out 0x15,R24
 0020                   .dbline 27
 0020           ;        PORTF&=0xF9;           //Ëø´æÊý¾Ý¹Ø±ÕÊýÂë¹Ü
 0020 80916200          lds R24,98
 0024 897F              andi R24,249
 0026 80936200          sts 98,R24
 002A                   .dbline 29
 002A           ;        
 002A           ;        DDRB |=0X10;           //PB4ÉèÎªÊä³ö
 002A BC9A              sbi 0x17,4
 002C                   .dbline 30
 002C           ;        PORTB|=0X10;           //¹Ø±ÕPB4Íâ½ÓµÄLED
 002C C49A              sbi 0x18,4
 002E 0AC0              xjmp L3
 0030           L2:
 0030                   .dbline 33
 0030           ;    
 0030           ;      while(1)
 0030           ;        {
 0030                   .dbline 34
 0030           ;      PORTA=0xFE;            //µãÁÁLED1
 0030 8EEF              ldi R24,254
 0032 8BBB              out 0x1b,R24
 0034                   .dbline 35
 0034           ;      Delayms(500);          //ÑÓÊ±500MS
 0034 04EF              ldi R16,500
 0036 11E0              ldi R17,1
 0038 1ED0              xcall _Delayms
 003A                   .dbline 36
 003A           ;      PORTA=0xff;            //¹Ø±ÕLED1        
 003A 8FEF              ldi R24,255
 003C 8BBB              out 0x1b,R24
 003E                   .dbline 37
 003E           ;        Delayms(500);   
 003E 04EF              ldi R16,500
 0040 11E0              ldi R17,1
 0042 19D0              xcall _Delayms
 0044                   .dbline 38
 0044           ;      }
 0044           L3:
 0044                   .dbline 32
 0044 F5CF              xjmp L2
 0046           X0:
 0046                   .dbline -2
 0046           L1:
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbend
 0048                   .dbfunc e Delayus _Delayus fV
 0048           ;              i -> R20,R21
 0048           ;             US -> R10,R11
                        .even
 0048           _Delayus::
 0048 0E940000          xcall push_xgset300C
 004C 5801              movw R10,R16
 004E                   .dbline -1
 004E                   .dbline 48
 004E           ; }
 004E           ; 
 004E           ; /****************************************************
 004E           ; º¯ÊýÃû³Æ: Delayus
 004E           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨Î¢Ãë£¨8M¾§Õñ£©
 004E           ; ²Î    Êý: US--ÑÓÊ±µÄÎ¢ÃëÊý(´óÔ¼£¬²»ÊÇºÜ¾«È·£¬MSÔ½´óÔ½×¼È·)
 004E           ; ·µ»ØÖµ  : ÎÞ
 004E           ; /****************************************************/
 004E           ; void Delayus(uint US)           
 004E           ; {
 004E                   .dbline 50
 004E           ;      uint i;
 004E           ;      US=US*5/4;                        
 004E 05E0              ldi R16,5
 0050 10E0              ldi R17,0
 0052 9501              movw R18,R10
 0054 0E940000          xcall empy16s
 0058 5801              movw R10,R16
 005A B694              lsr R11
 005C A794              ror R10
 005E B694              lsr R11
 0060 A794              ror R10
 0062                   .dbline 51
 0062           ;      for( i=0;i<US;i++); 
 0062 4427              clr R20
 0064 5527              clr R21
 0066 02C0              xjmp L9
 0068           L6:
 0068                   .dbline 51
 0068           L7:
 0068                   .dbline 51
 0068 4F5F              subi R20,255  ; offset = 1
 006A 5F4F              sbci R21,255
 006C           L9:
 006C                   .dbline 51
 006C 4A15              cp R20,R10
 006E 5B05              cpc R21,R11
 0070 D8F3              brlo L6
 0072           X1:
 0072                   .dbline -2
 0072           L5:
 0072                   .dbline 0 ; func end
 0072 0C940000          xjmp pop_xgset300C
 0076                   .dbsym r i 20 i
 0076                   .dbsym r US 10 i
 0076                   .dbend
 0076                   .dbfunc e Delayms _Delayms fV
 0076           ;              i -> R20,R21
 0076           ;              j -> R22,R23
 0076           ;             MS -> R16,R17
                        .even
 0076           _Delayms::
 0076 0E940000          xcall push_xgsetF000
 007A                   .dbline -1
 007A                   .dbline 61
 007A           ; }
 007A           ; /****************************************************
 007A           ; º¯ÊýÃû³Æ: Delayms
 007A           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨ºÁÃë£¨8M¾§Õñ£©
 007A           ; ²Î    Êý: MS--ÑÓÊ±µÄºÁÃëÊý
 007A           ; ·µ»ØÖµ  : ÎÞ
 007A           ; Í¨¹ýÈí¼þ·ÂÕæ·´¸´ÊµÑéµÃµ½µÄÊýÖµ
 007A           ; /****************************************************/
 007A           ; void Delayms(uint MS)           
 007A           ; {
 007A                   .dbline 63
 007A           ;      uint i,j;
 007A           ;      for( i=0;i<MS;i++)
 007A 4427              clr R20
 007C 5527              clr R21
 007E 0BC0              xjmp L14
 0080           L11:
 0080                   .dbline 64
 0080           ;      for(j=0;j<1141;j++);     
 0080 6627              clr R22
 0082 7727              clr R23
 0084 02C0              xjmp L18
 0086           L15:
 0086                   .dbline 64
 0086           L16:
 0086                   .dbline 64
 0086 6F5F              subi R22,255  ; offset = 1
 0088 7F4F              sbci R23,255
 008A           L18:
 008A                   .dbline 64
 008A 6537              cpi R22,117
 008C E4E0              ldi R30,4
 008E 7E07              cpc R23,R30
 0090 D0F3              brlo L15
 0092           X2:
 0092           L12:
 0092                   .dbline 63
 0092 4F5F              subi R20,255  ; offset = 1
 0094 5F4F              sbci R21,255
 0096           L14:
 0096                   .dbline 63
 0096 4017              cp R20,R16
 0098 5107              cpc R21,R17
 009A 90F3              brlo L11
 009C           X3:
 009C                   .dbline -2
 009C           L10:
 009C                   .dbline 0 ; func end
 009C 0C940000          xjmp pop_xgsetF000
 00A0                   .dbsym r i 20 i
 00A0                   .dbsym r j 22 i
 00A0                   .dbsym r MS 16 i
 00A0                   .dbend
 00A0           ; }
