                        .module LED.C
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑé¶þ~3\LED.C
 0000                   .dbfile F:\²©¿Æ²úÆ·ÅäÌ×ÎÄ¼þ\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑé¶þ~3\LED.C
 0000                   .dbfunc e main _main fV
 0000           ;           temp -> R20
 0000           ;              i -> R10
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 20
 0000           ; 
 0000           ; /********************************************************
 0000           ; ÊµÑé¶þ:   LEDÁ÷Ë®ÊµÑé
 0000           ; ËµÃ÷:          
 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 23
 0000           ;      uchar i,temp;
 0000           ;       
 0000           ;      DDRA=0XFF;             //LED IO¿ÚÉèÎªÊä³ö
 0000 8FEF              ldi R24,255
 0002 8ABB              out 0x1a,R24
 0004                   .dbline 24
 0004           ;        DDRC=0XFF;             //ÊýÂë¹Ü¶ÎÑ¡ÉèÎªÊä³ö
 0004 84BB              out 0x14,R24
 0006                   .dbline 25
 0006           ;        DDRF |=0X0E;           //LED¼°ÊýÂë¹ÜËø´æIO¿ÚÉèÎªÊä³ö
 0006 80916100          lds R24,97
 000A 8E60              ori R24,14
 000C 80936100          sts 97,R24
 0010                   .dbline 26
 0010           ;        PORTF|=0X0E;           
 0010 80916200          lds R24,98
 0014 8E60              ori R24,14
 0016 80936200          sts 98,R24
 001A                   .dbline 27
 001A           ;        PORTA=0XFF;
 001A 8FEF              ldi R24,255
 001C 8BBB              out 0x1b,R24
 001E                   .dbline 28
 001E           ;        PORTC=0XFF;            
 001E 85BB              out 0x15,R24
 0020                   .dbline 29
 0020           ;        PORTF&=0xF9;           //Ëø´æÊý¾Ý¹Ø±ÕÊýÂë¹Ü 
 0020 80916200          lds R24,98
 0024 897F              andi R24,249
 0026 80936200          sts 98,R24
 002A                   .dbline 31
 002A           ;        
 002A           ;        DDRB |=0X10;           //PB4ÉèÎªÊä³ö
 002A BC9A              sbi 0x17,4
 002C                   .dbline 32
 002C           ;        PORTB|=0X10;           //¹Ø±ÕPB4Íâ½ÓµÄLED
 002C C49A              sbi 0x18,4
 002E 0CC0              xjmp L3
 0030           L2:
 0030                   .dbline 35
 0030           ;        
 0030           ;      while(1)
 0030           ;        for(i=0,temp=0XFF;i<=8;i++)
 0030 AA24              clr R10
 0032 4FEF              ldi R20,255
 0034 06C0              xjmp L8
 0036           L5:
 0036                   .dbline 36
 0036           ;        {
 0036                   .dbline 37
 0036           ;           PORTA=temp;
 0036 4BBB              out 0x1b,R20
 0038                   .dbline 38
 0038           ;               Delayms(200);
 0038 08EC              ldi R16,200
 003A 10E0              ldi R17,0
 003C 1ED0              xcall _Delayms
 003E                   .dbline 39
 003E           ;               temp<<=1;       
 003E 440F              lsl R20
 0040                   .dbline 40
 0040           ;        }
 0040           L6:
 0040                   .dbline 35
 0040 A394              inc R10
 0042           L8:
 0042                   .dbline 35
 0042 88E0              ldi R24,8
 0044 8A15              cp R24,R10
 0046 B8F7              brsh L5
 0048           X0:
 0048           L3:
 0048                   .dbline 34
 0048 F3CF              xjmp L2
 004A           X1:
 004A                   .dbline -2
 004A           L1:
 004A                   .dbline 0 ; func end
 004A 0895              ret
 004C                   .dbsym r temp 20 c
 004C                   .dbsym r i 10 c
 004C                   .dbend
 004C                   .dbfunc e Delayus _Delayus fV
 004C           ;              i -> R20,R21
 004C           ;             US -> R10,R11
                        .even
 004C           _Delayus::
 004C 0E940000          xcall push_xgset300C
 0050 5801              movw R10,R16
 0052                   .dbline -1
 0052                   .dbline 50
 0052           ; }
 0052           ; 
 0052           ; /****************************************************
 0052           ; º¯ÊýÃû³Æ: Delayus
 0052           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨Î¢Ãë£¨8M¾§Õñ£©
 0052           ; ²Î    Êý: US--ÑÓÊ±µÄÎ¢ÃëÊý(´óÔ¼£¬²»ÊÇºÜ¾«È·£¬MSÔ½´óÔ½×¼È·)
 0052           ; ·µ»ØÖµ  : ÎÞ
 0052           ; /****************************************************/
 0052           ; void Delayus(uint US)           
 0052           ; {
 0052                   .dbline 52
 0052           ;      uint i;
 0052           ;      US=US*5/4;                        
 0052 05E0              ldi R16,5
 0054 10E0              ldi R17,0
 0056 9501              movw R18,R10
 0058 0E940000          xcall empy16s
 005C 5801              movw R10,R16
 005E B694              lsr R11
 0060 A794              ror R10
 0062 B694              lsr R11
 0064 A794              ror R10
 0066                   .dbline 53
 0066           ;      for( i=0;i<US;i++); 
 0066 4427              clr R20
 0068 5527              clr R21
 006A 02C0              xjmp L13
 006C           L10:
 006C                   .dbline 53
 006C           L11:
 006C                   .dbline 53
 006C 4F5F              subi R20,255  ; offset = 1
 006E 5F4F              sbci R21,255
 0070           L13:
 0070                   .dbline 53
 0070 4A15              cp R20,R10
 0072 5B05              cpc R21,R11
 0074 D8F3              brlo L10
 0076           X2:
 0076                   .dbline -2
 0076           L9:
 0076                   .dbline 0 ; func end
 0076 0C940000          xjmp pop_xgset300C
 007A                   .dbsym r i 20 i
 007A                   .dbsym r US 10 i
 007A                   .dbend
 007A                   .dbfunc e Delayms _Delayms fV
 007A           ;              i -> R20,R21
 007A           ;              j -> R22,R23
 007A           ;             MS -> R16,R17
                        .even
 007A           _Delayms::
 007A 0E940000          xcall push_xgsetF000
 007E                   .dbline -1
 007E                   .dbline 63
 007E           ; }
 007E           ; /****************************************************
 007E           ; º¯ÊýÃû³Æ: Delayms
 007E           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨ºÁÃë£¨8M¾§Õñ£©
 007E           ; ²Î    Êý: MS--ÑÓÊ±µÄºÁÃëÊý
 007E           ; ·µ»ØÖµ  : ÎÞ
 007E           ; Í¨¹ýÈí¼þ·ÂÕæ·´¸´ÊµÑéµÃµ½µÄÊýÖµ
 007E           ; /****************************************************/
 007E           ; void Delayms(uint MS)           
 007E           ; {
 007E                   .dbline 65
 007E           ;      uint i,j;
 007E           ;      for( i=0;i<MS;i++)
 007E 4427              clr R20
 0080 5527              clr R21
 0082 0BC0              xjmp L18
 0084           L15:
 0084                   .dbline 66
 0084           ;      for(j=0;j<1141;j++);     
 0084 6627              clr R22
 0086 7727              clr R23
 0088 02C0              xjmp L22
 008A           L19:
 008A                   .dbline 66
 008A           L20:
 008A                   .dbline 66
 008A 6F5F              subi R22,255  ; offset = 1
 008C 7F4F              sbci R23,255
 008E           L22:
 008E                   .dbline 66
 008E 6537              cpi R22,117
 0090 E4E0              ldi R30,4
 0092 7E07              cpc R23,R30
 0094 D0F3              brlo L19
 0096           X3:
 0096           L16:
 0096                   .dbline 65
 0096 4F5F              subi R20,255  ; offset = 1
 0098 5F4F              sbci R21,255
 009A           L18:
 009A                   .dbline 65
 009A 4017              cp R20,R16
 009C 5107              cpc R21,R17
 009E 90F3              brlo L15
 00A0           X4:
 00A0                   .dbline -2
 00A0           L14:
 00A0                   .dbline 0 ; func end
 00A0 0C940000          xjmp pop_xgsetF000
 00A4                   .dbsym r i 20 i
 00A4                   .dbsym r j 22 i
 00A4                   .dbsym r MS 16 i
 00A4                   .dbend
 00A4           ; }
