                        .module INT.C
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÁù~1\INT.C
 0000                   .dbfile E:\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÁù~1\INT.C
 0000                   .dbfunc e main _main fV
 0000           ;           temp -> <dead>
 0000           ;              i -> <dead>
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 22
 0000           ; 
 0000           ; /********************************************************
 0000           ; ÊµÑéÁù:   Íâ²¿ÖÐ¶ÏÊµÑé
 0000           ; ËµÃ÷:     °´¼üK17 INT0²úÉúÖÐ¶Ï£¨µãÁÁ8¸öLED£©
 0000           ;           °´¼üK18 INT1²úÉúÖÐ¶Ï (¹Ø±Õ8¸öLED£©   
 0000           ;           
 0000           ; CPUÐÍºÅ:   ATMEGA128A
 0000           ; ¾§ÕñÆµÂÊ:     8MHZ
 0000           ; ÈÕÆÚ£º    2011-3-12
 0000           ; ÁªÏµ·½·¨: MCU.2000@163.com 
 0000           ;  ********************************************************/
 0000           ; 
 0000           ; #include<iom128v.h>
 0000           ; #include<macros.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 25
 0000           ;      uchar i,temp;
 0000           ;       
 0000           ;      DDRA=0XFF;             //LED IO¿ÚÉèÎªÊä³ö
 0000 8FEF              ldi R24,255
 0002 8ABB              out 0x1a,R24
 0004                   .dbline 26
 0004           ;        DDRC=0XFF;             //ÊýÂë¹Ü¶ÎÑ¡ÉèÎªÊä³ö
 0004 84BB              out 0x14,R24
 0006                   .dbline 27
 0006           ;        DDRF |=0X03;           //LED¼°ÊýÂë¹ÜËø´æIO¿ÚÉèÎªÊä³ö
 0006 80916100          lds R24,97
 000A 8360              ori R24,3
 000C 80936100          sts 97,R24
 0010                   .dbline 28
 0010           ;        PORTF|=0X0E;           
 0010 80916200          lds R24,98
 0014 8E60              ori R24,14
 0016 80936200          sts 98,R24
 001A                   .dbline 29
 001A           ;        PORTA=0XFF;
 001A 8FEF              ldi R24,255
 001C 8BBB              out 0x1b,R24
 001E                   .dbline 30
 001E           ;        PORTC=0XFF;            
 001E 85BB              out 0x15,R24
 0020                   .dbline 31
 0020           ;        PORTF&=0xF9;           //Ëø´æÊý¾Ý¹Ø±ÕÊýÂë¹Ü 
 0020 80916200          lds R24,98
 0024 897F              andi R24,249
 0026 80936200          sts 98,R24
 002A                   .dbline 33
 002A           ;        
 002A           ;        DDRB |=0X10;           //PB4ÉèÎªÊä³ö
 002A BC9A              sbi 0x17,4
 002C                   .dbline 34
 002C           ;        PORTB|=0X10;           //¹Ø±ÕPB4Íâ½ÓµÄLED
 002C C49A              sbi 0x18,4
 002E                   .dbline 36
 002E           ;        
 002E           ;        DDRD=0XFC;
 002E 8CEF              ldi R24,252
 0030 81BB              out 0x11,R24
 0032                   .dbline 37
 0032           ;      PORTD=0XFF;            //INT0 INT1¿ÚÉèÎªÊäÈë(´ò¿ªÉÏÀ­µç×è)
 0032 8FEF              ldi R24,255
 0034 82BB              out 0x12,R24
 0036                   .dbline 39
 0036           ;     
 0036           ;      EIMSK|=(1<<INT0)|(1<<INT1);   //´ò¿ªINT0 INT1ÖÐ¶Ï   
 0036 89B7              in R24,0x39
 0038 8360              ori R24,3
 003A 89BF              out 0x39,R24
 003C                   .dbline 40
 003C           ;      SEI();
 003C 7894              sei
 003E           L2:
 003E                   .dbline 41
 003E           ;      while(1);
 003E           L3:
 003E                   .dbline 41
 003E FFCF              xjmp L2
 0040           X0:
 0040                   .dbline -2
 0040           L1:
 0040                   .dbline 0 ; func end
 0040 0895              ret
 0042                   .dbsym l temp 1 c
 0042                   .dbsym l i 1 c
 0042                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 0C942100          jmp _int0_INT
                        .area text(rom, con, rel)
 0042                   .dbfile E:\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÁù~1\INT.C
 0042                   .dbfunc e int0_INT _int0_INT fV
                        .even
 0042           _int0_INT::
 0042 2A92              st -y,R2
 0044 2FB6              IN R2,63
 0046 2A92              st -y,R2
 0048                   .dbline -1
 0048                   .dbline 47
 0048           ; }
 0048           ; 
 0048           ; //Íâ²¿ÖÐ¶Ï0×Ö³ÌÐò
 0048           ; #pragma interrupt_handler int0_INT:2
 0048           ; void int0_INT(void)
 0048           ; {
 0048                   .dbline 48
 0048           ;    PORTA=0x00;                      //µãÁÁLED 
 0048 2224              clr R2
 004A 2BBA              out 0x1b,R2
 004C                   .dbline -2
 004C           L5:
 004C                   .dbline 0 ; func end
 004C 2990              ld R2,y+
 004E 2FBE              OUT 63,R2
 0050 2990              ld R2,y+
 0052 1895              reti
 0054                   .dbend
                        .area vector(rom, abs)
                        .org 8
 0008 0C942A00          jmp _int1_INT
                        .area text(rom, con, rel)
 0054                   .dbfile E:\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÁù~1\INT.C
 0054                   .dbfunc e int1_INT _int1_INT fV
                        .even
 0054           _int1_INT::
 0054 8A93              st -y,R24
 0056 8FB7              IN R24,63
 0058 8A93              st -y,R24
 005A                   .dbline -1
 005A                   .dbline 54
 005A           ; }
 005A           ; 
 005A           ; //Íâ²¿ÖÐ¶Ï1×Ö³ÌÐò
 005A           ; #pragma interrupt_handler int1_INT:3
 005A           ; void int1_INT(void)
 005A           ; {
 005A                   .dbline 55
 005A           ;    PORTA=0xFF;                      //¹Ø±ÕLED 
 005A 8FEF              ldi R24,255
 005C 8BBB              out 0x1b,R24
 005E                   .dbline -2
 005E           L6:
 005E                   .dbline 0 ; func end
 005E 8991              ld R24,y+
 0060 8FBF              OUT 63,R24
 0062 8991              ld R24,y+
 0064 1895              reti
 0066                   .dbend
 0066                   .dbfunc e Delayus _Delayus fV
 0066           ;              i -> R20,R21
 0066           ;             US -> R10,R11
                        .even
 0066           _Delayus::
 0066 0E940000          xcall push_xgset300C
 006A 5801              movw R10,R16
 006C                   .dbline -1
 006C                   .dbline 65
 006C           ; }
 006C           ; 
 006C           ; /****************************************************
 006C           ; º¯ÊýÃû³Æ: Delayus
 006C           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨Î¢Ãë£¨8M¾§Õñ£©
 006C           ; ²Î    Êý: US--ÑÓÊ±µÄÎ¢ÃëÊý(´óÔ¼£¬²»ÊÇºÜ¾«È·£¬MSÔ½´óÔ½×¼È·)
 006C           ; ·µ»ØÖµ  : ÎÞ
 006C           ; /****************************************************/
 006C           ; void Delayus(uint US)           
 006C           ; {
 006C                   .dbline 67
 006C           ;      uint i;
 006C           ;      US=US*5/4;                        
 006C 05E0              ldi R16,5
 006E 10E0              ldi R17,0
 0070 9501              movw R18,R10
 0072 0E940000          xcall empy16s
 0076 5801              movw R10,R16
 0078 B694              lsr R11
 007A A794              ror R10
 007C B694              lsr R11
 007E A794              ror R10
 0080                   .dbline 68
 0080           ;      for( i=0;i<US;i++); 
 0080 4427              clr R20
 0082 5527              clr R21
 0084 02C0              xjmp L11
 0086           L8:
 0086                   .dbline 68
 0086           L9:
 0086                   .dbline 68
 0086 4F5F              subi R20,255  ; offset = 1
 0088 5F4F              sbci R21,255
 008A           L11:
 008A                   .dbline 68
 008A 4A15              cp R20,R10
 008C 5B05              cpc R21,R11
 008E D8F3              brlo L8
 0090           X1:
 0090                   .dbline -2
 0090           L7:
 0090                   .dbline 0 ; func end
 0090 0C940000          xjmp pop_xgset300C
 0094                   .dbsym r i 20 i
 0094                   .dbsym r US 10 i
 0094                   .dbend
 0094                   .dbfunc e Delayms _Delayms fV
 0094           ;              i -> R20,R21
 0094           ;              j -> R22,R23
 0094           ;             MS -> R16,R17
                        .even
 0094           _Delayms::
 0094 0E940000          xcall push_xgsetF000
 0098                   .dbline -1
 0098                   .dbline 78
 0098           ; }
 0098           ; /****************************************************
 0098           ; º¯ÊýÃû³Æ: Delayms
 0098           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨ºÁÃë£¨8M¾§Õñ£©
 0098           ; ²Î    Êý: MS--ÑÓÊ±µÄºÁÃëÊý
 0098           ; ·µ»ØÖµ  : ÎÞ
 0098           ; Í¨¹ýÈí¼þ·ÂÕæ·´¸´ÊµÑéµÃµ½µÄÊýÖµ
 0098           ; /****************************************************/
 0098           ; void Delayms(uint MS)           
 0098           ; {
 0098                   .dbline 80
 0098           ;      uint i,j;
 0098           ;      for( i=0;i<MS;i++)
 0098 4427              clr R20
 009A 5527              clr R21
 009C 0BC0              xjmp L16
 009E           L13:
 009E                   .dbline 81
 009E           ;      for(j=0;j<1141;j++);     
 009E 6627              clr R22
 00A0 7727              clr R23
 00A2 02C0              xjmp L20
 00A4           L17:
 00A4                   .dbline 81
 00A4           L18:
 00A4                   .dbline 81
 00A4 6F5F              subi R22,255  ; offset = 1
 00A6 7F4F              sbci R23,255
 00A8           L20:
 00A8                   .dbline 81
 00A8 6537              cpi R22,117
 00AA E4E0              ldi R30,4
 00AC 7E07              cpc R23,R30
 00AE D0F3              brlo L17
 00B0           X2:
 00B0           L14:
 00B0                   .dbline 80
 00B0 4F5F              subi R20,255  ; offset = 1
 00B2 5F4F              sbci R21,255
 00B4           L16:
 00B4                   .dbline 80
 00B4 4017              cp R20,R16
 00B6 5107              cpc R21,R17
 00B8 90F3              brlo L13
 00BA           X3:
 00BA                   .dbline -2
 00BA           L12:
 00BA                   .dbline 0 ; func end
 00BA 0C940000          xjmp pop_xgsetF000
 00BE                   .dbsym r i 20 i
 00BE                   .dbsym r j 22 i
 00BE                   .dbsym r MS 16 i
 00BE                   .dbend
 00BE           ; }
