                        .module KEY1_4.C
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
                        .area data(ram, con, rel)
 0000                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0000           _led_discode::
 0000                   .blkb 2
                        .area idata
 0000 C0F9              .byte 192,249
                        .area data(ram, con, rel)
 0002                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0002                   .blkb 2
                        .area idata
 0002 A4B0              .byte 164,176
                        .area data(ram, con, rel)
 0004                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0004                   .blkb 2
                        .area idata
 0004 9992              .byte 153,146
                        .area data(ram, con, rel)
 0006                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0006                   .blkb 2
                        .area idata
 0006 82F8              .byte 130,248
                        .area data(ram, con, rel)
 0008                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0008                   .blkb 2
                        .area idata
 0008 8090              .byte 128,144
                        .area data(ram, con, rel)
 000A                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 000A                   .blkb 2
                        .area idata
 000A 8883              .byte 136,131
                        .area data(ram, con, rel)
 000C                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 000C                   .blkb 2
                        .area idata
 000C C6A1              .byte 198,161
                        .area data(ram, con, rel)
 000E                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 000E                   .blkb 2
                        .area idata
 000E 868E              .byte 134,142
                        .area data(ram, con, rel)
 0010                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0010                   .blkb 1
                        .area idata
 0010 FF                .byte 255
                        .area data(ram, con, rel)
 0011                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0011                   .dbfile E:\²©¿Æ²úÆ·ÅäÌ×ÎÄ¼þ\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0011                   .dbsym e led_discode _led_discode A[17:17]c
 0011           _key_val::
 0011                   .blkb 1
                        .area idata
 0011 00                .byte 0
                        .area data(ram, con, rel)
 0012                   .dbfile E:\²©¿Æ²úÆ·ÅäÌ×ÎÄ¼þ\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0012                   .dbsym e key_val _key_val c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\²©¿Æ²úÆ·ÅäÌ×ÎÄ¼þ\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑéÆß~1\KEY1_4.C
 0000                   .dbfunc e main _main fV
 0000           ;         key_io -> R20
 0000           ;           viod -> <dead>
                        .even
 0000           _main::
 0000 1A93              st -y,r17
 0002 0A93              st -y,r16
 0004                   .dbline -1
 0004                   .dbline 31
 0004           ; /********************************************************
 0004           ; ÊµÑéÆß:   ¾ØÕóÊ½¼üÅÌÊµÑé
 0004           ; ËµÃ÷:     °´°´¼üK1-K16 ÊýÂë¹ÜÏÔÊ¾0-FµÄ¼üÂë
 0004           ; 
 0004           ; ×¢Òâ:     K17-K19Îª¶ÀÁ¢°´¼ü£¬Ê¹ÓÃÕâ¸ö³ÌÐòÊÇÃ»ÓÐ·´Ó¦µÄ    
 0004           ;           
 0004           ; CPUÐÍºÅ:   ATMEGA128A
 0004           ; ¾§ÕñÆµÂÊ:     8MHZ
 0004           ; ÈÕÆÚ£º    2011-3-12
 0004           ; ÁªÏµ·½·¨: MCU.2000@163.com 
 0004           ;  ********************************************************/
 0004           ; 
 0004           ; #include <iom128v.h> 
 0004           ; #include <macros.h>
 0004           ; #define uchar unsigned char
 0004           ; #define uint unsigned int
 0004           ; 
 0004           ; void Delayus(uint US);      //Î¢ÃëÑÓÊ±×Ó³ÌÐò
 0004           ; void Delayms(uint MS);      //ºÁÃëÑÓÊ±×Ó³ÌÐò
 0004           ; 
 0004           ; uchar key_scan(void);
 0004           ; void init_io(void);
 0004           ; 
 0004           ; //¹²ÑôÊýÂë¹ÜÊý×ÖÂë
 0004           ; uchar led_discode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
 0004           ;                        0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
 0004           ;                                               
 0004           ; uchar  key_val=0;
 0004           ; //Ö÷º¯Êý
 0004           ; void main (viod)
 0004           ; {
 0004                   .dbline 33
 0004           ;      uchar key_io;
 0004           ;        init_io();
 0004 C9D0              xcall _init_io
 0006 C5C0              xjmp L3
 0008           L2:
 0008                   .dbline 35
 0008           ;        while(1)
 0008           ;        {
 0008                   .dbline 36
 0008           ;             PORTD=0XF0;
 0008 80EF              ldi R24,240
 000A 82BB              out 0x12,R24
 000C                   .dbline 37
 000C           ;                 Delayms(5);
 000C 05E0              ldi R16,5
 000E 10E0              ldi R17,0
 0010 0CD1              xcall _Delayms
 0012                   .dbline 38
 0012           ;                 key_io=PIND & 0xf0;
 0012 40B3              in R20,0x10
 0014 407F              andi R20,240
 0016                   .dbline 39
 0016           ;             if(key_io !=0xf0)
 0016 403F              cpi R20,240
 0018 09F4              brne X22
 001A A9C0              xjmp L5
 001C           X22:
 001C           X0:
 001C                   .dbline 40
 001C           ;             {
 001C                   .dbline 41
 001C           ;                 PORTD=0XF0;
 001C 80EF              ldi R24,240
 001E 82BB              out 0x12,R24
 0020                   .dbline 42
 0020           ;                 Delayms(1);
 0020 01E0              ldi R16,1
 0022 10E0              ldi R17,0
 0024 02D1              xcall _Delayms
 0026                   .dbline 43
 0026           ;                 key_io=PIND & 0xf0;
 0026 40B3              in R20,0x10
 0028 407F              andi R20,240
 002A                   .dbline 44
 002A           ;                 if(key_io !=0xf0)
 002A 403F              cpi R20,240
 002C 39F0              breq L7
 002E           X1:
 002E                   .dbline 45
 002E           ;                 {
 002E                   .dbline 46
 002E           ;                 key_val=key_scan();   
 002E CDD0              xcall _key_scan
 0030 00931100          sts _key_val,R16
 0034                   .dbline 47
 0034           ;             key_val |= key_io;
 0034 202E              mov R2,R16
 0036 242A              or R2,R20
 0038 20921100          sts _key_val,R2
 003C                   .dbline 48
 003C           ;                 }
 003C           L7:
 003C                   .dbline 49
 003C           ;                 switch(key_val)
 003C 60911100          lds R22,_key_val
 0040 7727              clr R23
 0042 673B              cpi R22,183
 0044 E0E0              ldi R30,0
 0046 7E07              cpc R23,R30
 0048 09F4              brne X23
 004A 8AC0              xjmp L26
 004C           X23:
 004C           X2:
 004C 6B3B              cpi R22,187
 004E E0E0              ldi R30,0
 0050 7E07              cpc R23,R30
 0052 09F4              brne X24
 0054 75C0              xjmp L22
 0056           X24:
 0056           X3:
 0056 6D3B              cpi R22,189
 0058 E0E0              ldi R30,0
 005A 7E07              cpc R23,R30
 005C 09F4              brne X25
 005E 60C0              xjmp L18
 0060           X25:
 0060           X4:
 0060 6E3B              cpi R22,190
 0062 E0E0              ldi R30,0
 0064 7E07              cpc R23,R30
 0066 09F4              brne X26
 0068 4BC0              xjmp L14
 006A           X26:
 006A           X5:
 006A 8EEB              ldi R24,190
 006C 90E0              ldi R25,0
 006E 8617              cp R24,R22
 0070 9707              cpc R25,R23
 0072 ACF0              brlt L29
 0074           X6:
 0074           L28:
 0074 6737              cpi R22,119
 0076 E0E0              ldi R30,0
 0078 7E07              cpc R23,R30
 007A 09F4              brne X27
 007C 75C0              xjmp L27
 007E           X27:
 007E           X7:
 007E 6B37              cpi R22,123
 0080 E0E0              ldi R30,0
 0082 7E07              cpc R23,R30
 0084 09F4              brne X28
 0086 60C0              xjmp L23
 0088           X28:
 0088           X8:
 0088 6D37              cpi R22,125
 008A E0E0              ldi R30,0
 008C 7E07              cpc R23,R30
 008E 09F4              brne X29
 0090 4BC0              xjmp L19
 0092           X29:
 0092           X9:
 0092 6E37              cpi R22,126
 0094 E0E0              ldi R30,0
 0096 7E07              cpc R23,R30
 0098 09F4              brne X30
 009A 36C0              xjmp L15
 009C           X30:
 009C           X10:
 009C 68C0              xjmp L9
 009E           L29:
 009E 673D              cpi R22,215
 00A0 E0E0              ldi R30,0
 00A2 7E07              cpc R23,R30
 00A4 09F4              brne X31
 00A6 58C0              xjmp L25
 00A8           X31:
 00A8           X11:
 00A8 6B3D              cpi R22,219
 00AA E0E0              ldi R30,0
 00AC 7E07              cpc R23,R30
 00AE 09F4              brne X32
 00B0 43C0              xjmp L21
 00B2           X32:
 00B2           X12:
 00B2 6D3D              cpi R22,221
 00B4 E0E0              ldi R30,0
 00B6 7E07              cpc R23,R30
 00B8 79F1              breq L17
 00BA           X13:
 00BA 6E3D              cpi R22,222
 00BC E0E0              ldi R30,0
 00BE 7E07              cpc R23,R30
 00C0 D9F0              breq L13
 00C2           X14:
 00C2 673D              cpi R22,215
 00C4 E0E0              ldi R30,0
 00C6 7E07              cpc R23,R30
 00C8 0CF4              brge X33
 00CA 51C0              xjmp L9
 00CC           X33:
 00CC           X15:
 00CC           L30:
 00CC 673E              cpi R22,231
 00CE E0E0              ldi R30,0
 00D0 7E07              cpc R23,R30
 00D2 09F4              brne X34
 00D4 3DC0              xjmp L24
 00D6           X34:
 00D6           X16:
 00D6 6B3E              cpi R22,235
 00D8 E0E0              ldi R30,0
 00DA 7E07              cpc R23,R30
 00DC 49F1              breq L20
 00DE           X17:
 00DE 6D3E              cpi R22,237
 00E0 E0E0              ldi R30,0
 00E2 7E07              cpc R23,R30
 00E4 A9F0              breq L16
 00E6           X18:
 00E6 6E3E              cpi R22,238
 00E8 E0E0              ldi R30,0
 00EA 7E07              cpc R23,R30
 00EC 09F0              breq L12
 00EE           X19:
 00EE 3FC0              xjmp L9
 00F0           L12:
 00F0                   .dbline 51
 00F0           ;               {     
 00F0           ;                case 0xee: key_val=0x00;   break;     //°´¼üK1
 00F0 2224              clr R2
 00F2 20921100          sts _key_val,R2
 00F6                   .dbline 51
 00F6 3BC0              xjmp L10
 00F8           L13:
 00F8                   .dbline 53
 00F8           ;                                  
 00F8           ;                          case 0xde: key_val=0x01;   break;     //°´¼üK2
 00F8 81E0              ldi R24,1
 00FA 80931100          sts _key_val,R24
 00FE                   .dbline 53
 00FE 37C0              xjmp L10
 0100           L14:
 0100                   .dbline 55
 0100           ;                         
 0100           ;                          case 0xbe: key_val=0x02;   break;     //°´¼üK3
 0100 82E0              ldi R24,2
 0102 80931100          sts _key_val,R24
 0106                   .dbline 55
 0106 33C0              xjmp L10
 0108           L15:
 0108                   .dbline 57
 0108           ;                         
 0108           ;                          case 0x7e: key_val=0x03;   break;     //°´¼üK4
 0108 83E0              ldi R24,3
 010A 80931100          sts _key_val,R24
 010E                   .dbline 57
 010E 2FC0              xjmp L10
 0110           L16:
 0110                   .dbline 59
 0110           ;                                          
 0110           ;                          case 0xed: key_val=0x04;   break;     //°´¼üK5
 0110 84E0              ldi R24,4
 0112 80931100          sts _key_val,R24
 0116                   .dbline 59
 0116 2BC0              xjmp L10
 0118           L17:
 0118                   .dbline 61
 0118           ;                          
 0118           ;                          case 0xdd: key_val=0x05;   break;     //°´¼üK6
 0118 85E0              ldi R24,5
 011A 80931100          sts _key_val,R24
 011E                   .dbline 61
 011E 27C0              xjmp L10
 0120           L18:
 0120                   .dbline 63
 0120           ;                         
 0120           ;                          case 0xbd: key_val=0x06;   break;     //°´¼üK7
 0120 86E0              ldi R24,6
 0122 80931100          sts _key_val,R24
 0126                   .dbline 63
 0126 23C0              xjmp L10
 0128           L19:
 0128                   .dbline 65
 0128           ;                         
 0128           ;                          case 0x7d: key_val=0x07;   break;     //°´¼üK8
 0128 87E0              ldi R24,7
 012A 80931100          sts _key_val,R24
 012E                   .dbline 65
 012E 1FC0              xjmp L10
 0130           L20:
 0130                   .dbline 67
 0130           ;                                          
 0130           ;                          case 0xeb: key_val=0x08;   break;     //°´¼üK9
 0130 88E0              ldi R24,8
 0132 80931100          sts _key_val,R24
 0136                   .dbline 67
 0136 1BC0              xjmp L10
 0138           L21:
 0138                   .dbline 69
 0138           ;                         
 0138           ;                          case 0xdb: key_val=0x09;   break;     //°´¼üK10
 0138 89E0              ldi R24,9
 013A 80931100          sts _key_val,R24
 013E                   .dbline 69
 013E 17C0              xjmp L10
 0140           L22:
 0140                   .dbline 71
 0140           ;                         
 0140           ;                          case 0xbb: key_val=0x0a;   break;     //°´¼üK11
 0140 8AE0              ldi R24,10
 0142 80931100          sts _key_val,R24
 0146                   .dbline 71
 0146 13C0              xjmp L10
 0148           L23:
 0148                   .dbline 73
 0148           ;                         
 0148           ;                          case 0x7b: key_val=0x0b;   break;     //°´¼üK12
 0148 8BE0              ldi R24,11
 014A 80931100          sts _key_val,R24
 014E                   .dbline 73
 014E 0FC0              xjmp L10
 0150           L24:
 0150                   .dbline 75
 0150           ;                                  
 0150           ;                          case 0xe7: key_val=0x0c;   break;     //°´¼üK13
 0150 8CE0              ldi R24,12
 0152 80931100          sts _key_val,R24
 0156                   .dbline 75
 0156 0BC0              xjmp L10
 0158           L25:
 0158                   .dbline 77
 0158           ;                         
 0158           ;                          case 0xd7: key_val=0x0d;   break;     //°´¼üK14
 0158 8DE0              ldi R24,13
 015A 80931100          sts _key_val,R24
 015E                   .dbline 77
 015E 07C0              xjmp L10
 0160           L26:
 0160                   .dbline 79
 0160           ;                             
 0160           ;                case 0xb7: key_val=0x0e;   break;     //°´¼üK15
 0160 8EE0              ldi R24,14
 0162 80931100          sts _key_val,R24
 0166                   .dbline 79
 0166 03C0              xjmp L10
 0168           L27:
 0168                   .dbline 81
 0168           ;                         
 0168           ;                          case 0x77: key_val=0x0f;   break;     //°´¼üK16                        
 0168 8FE0              ldi R24,15
 016A 80931100          sts _key_val,R24
 016E                   .dbline 81
 016E           L9:
 016E           L10:
 016E                   .dbline 83
 016E           ;               }   // switch(key_val)
 016E           ;                 }       // if(key_io !=0xf0) 
 016E           L5:
 016E                   .dbline 85
 016E           ;               
 016E           ;                 PORTD=0XF0;
 016E 80EF              ldi R24,240
 0170 82BB              out 0x12,R24
 0172                   .dbline 87
 0172           ;             //µÈ´ýËÉ¿ª°´¼ü
 0172           ;                 key_io=PIND & 0xf0;
 0172 40B3              in R20,0x10
 0174 407F              andi R20,240
 0176 02C0              xjmp L32
 0178           L31:
 0178                   .dbline 89
 0178           ;                 while(key_io !=0xf0)
 0178           ;                 {
 0178                   .dbline 90
 0178           ;                 key_io=PIND & 0xf0;
 0178 40B3              in R20,0x10
 017A 407F              andi R20,240
 017C                   .dbline 91
 017C           ;                 }
 017C           L32:
 017C                   .dbline 88
 017C 403F              cpi R20,240
 017E E1F7              brne L31
 0180           X20:
 0180                   .dbline 92
 0180           ;                 PORTC=led_discode[key_val];     //ÏÔÊ¾°´¼üÂë
 0180 80E0              ldi R24,<_led_discode
 0182 90E0              ldi R25,>_led_discode
 0184 E0911100          lds R30,_key_val
 0188 FF27              clr R31
 018A E80F              add R30,R24
 018C F91F              adc R31,R25
 018E 2080              ldd R2,z+0
 0190 25BA              out 0x15,R2
 0192                   .dbline 93
 0192           ;        }            // while(1)
 0192           L3:
 0192                   .dbline 34
 0192 3ACF              xjmp L2
 0194           X21:
 0194                   .dbline -2
 0194           L1:
 0194                   .dbline 0 ; func end
 0194 2296              adiw R28,2
 0196 0895              ret
 0198                   .dbsym r key_io 20 c
 0198                   .dbsym l viod 0 I
 0198                   .dbend
 0198                   .dbfunc e init_io _init_io fV
                        .even
 0198           _init_io::
 0198                   .dbline -1
 0198                   .dbline 97
 0198           ; }
 0198           ; 
 0198           ; void init_io(void)
 0198           ; {
 0198                   .dbline 98
 0198           ;      DDRA=0XFF;
 0198 8FEF              ldi R24,255
 019A 8ABB              out 0x1a,R24
 019C                   .dbline 99
 019C           ;        PORTA=0XFF;
 019C 8BBB              out 0x1b,R24
 019E                   .dbline 101
 019E           ;        
 019E           ;        DDRB=0XFf;             
 019E 87BB              out 0x17,R24
 01A0                   .dbline 102
 01A0           ;      PORTB=0XFF;              //ÊýÂë¹ÜÎ»¿ØÖÆ
 01A0 88BB              out 0x18,R24
 01A2                   .dbline 104
 01A2           ;        
 01A2           ;        DDRC=0XFF;               //ÊýÂë¹Ü¶Î¿ØÖÆ
 01A2 84BB              out 0x14,R24
 01A4                   .dbline 105
 01A4           ;        PORTC=0X00;             
 01A4 2224              clr R2
 01A6 25BA              out 0x15,R2
 01A8                   .dbline 107
 01A8           ;        
 01A8           ;        DDRD=0X0F;               //¼üÅÌ½Ó¿Ú
 01A8 8FE0              ldi R24,15
 01AA 81BB              out 0x11,R24
 01AC                   .dbline 108
 01AC           ;      PORTD=0XF0;   
 01AC 80EF              ldi R24,240
 01AE 82BB              out 0x12,R24
 01B0                   .dbline 110
 01B0           ;        
 01B0           ;        DDRF=0X0E;
 01B0 8EE0              ldi R24,14
 01B2 80936100          sts 97,R24
 01B6                   .dbline 111
 01B6           ;        PORTF=0X0E;
 01B6 80936200          sts 98,R24
 01BA                   .dbline 112
 01BA           ;        PORTF&=0XF7;             //Ëø´æ¹Ø±ÕLEDÏÔÊ¾
 01BA 80916200          lds R24,98
 01BE 877F              andi R24,247
 01C0 80936200          sts 98,R24
 01C4                   .dbline 114
 01C4           ;        
 01C4           ;        DDRB |=0X10;           //PB4ÉèÎªÊä³ö
 01C4 BC9A              sbi 0x17,4
 01C6                   .dbline 115
 01C6           ;        PORTB|=0X10;           //¹Ø±ÕPB4Íâ½ÓµÄLED
 01C6 C49A              sbi 0x18,4
 01C8                   .dbline -2
 01C8           L34:
 01C8                   .dbline 0 ; func end
 01C8 0895              ret
 01CA                   .dbend
 01CA                   .dbfunc e key_scan _key_scan fc
 01CA           ;              m -> R22
 01CA           ;           temp -> R20
                        .even
 01CA           _key_scan::
 01CA 4A93              st -y,R20
 01CC 6A93              st -y,R22
 01CE                   .dbline -1
 01CE                   .dbline 119
 01CE           ; }
 01CE           ; 
 01CE           ; uchar key_scan(void)
 01CE           ; {
 01CE                   .dbline 120
 01CE           ;      uchar m,temp=0xf7;
 01CE 47EF              ldi R20,247
 01D0                   .dbline 121
 01D0           ;        for(m=0;m<4;m++)
 01D0 6627              clr R22
 01D2 0FC0              xjmp L39
 01D4           L36:
 01D4                   .dbline 122
 01D4           ;        {
 01D4                   .dbline 123
 01D4           ;            PORTD=temp | 0xf0;
 01D4 842F              mov R24,R20
 01D6 806F              ori R24,240
 01D8 82BB              out 0x12,R24
 01DA                   .dbline 124
 01DA           ;            Delayms(1);
 01DA 01E0              ldi R16,1
 01DC 10E0              ldi R17,0
 01DE 25D0              xcall _Delayms
 01E0                   .dbline 125
 01E0           ;                if((PIND & 0XF0)!=0XF0)
 01E0 80B3              in R24,0x10
 01E2 807F              andi R24,240
 01E4 803F              cpi R24,240
 01E6 19F0              breq L40
 01E8           X35:
 01E8                   .dbline 126
 01E8           ;            return(temp & 0x0f);
 01E8 042F              mov R16,R20
 01EA 0F70              andi R16,15
 01EC 04C0              xjmp L35
 01EE           L40:
 01EE                   .dbline 127
 01EE           ;                temp>>=1;
 01EE 4695              lsr R20
 01F0                   .dbline 128
 01F0           ;        }
 01F0           L37:
 01F0                   .dbline 121
 01F0 6395              inc R22
 01F2           L39:
 01F2                   .dbline 121
 01F2 6430              cpi R22,4
 01F4 78F3              brlo L36
 01F6           X36:
 01F6                   .dbline -2
 01F6           L35:
 01F6                   .dbline 0 ; func end
 01F6 6991              ld R22,y+
 01F8 4991              ld R20,y+
 01FA 0895              ret
 01FC                   .dbsym r m 22 c
 01FC                   .dbsym r temp 20 c
 01FC                   .dbend
 01FC                   .dbfunc e Delayus _Delayus fV
 01FC           ;              i -> R20,R21
 01FC           ;             US -> R10,R11
                        .even
 01FC           _Delayus::
 01FC 0E940000          xcall push_xgset300C
 0200 5801              movw R10,R16
 0202                   .dbline -1
 0202                   .dbline 138
 0202           ; }
 0202           ; 
 0202           ; /****************************************************
 0202           ; º¯ÊýÃû³Æ: Delayus
 0202           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨Î¢Ãë£¨8M¾§Õñ£©
 0202           ; ²Î    Êý: US--ÑÓÊ±µÄÎ¢ÃëÊý(´óÔ¼£¬²»ÊÇºÜ¾«È·£¬MSÔ½´óÔ½×¼È·)
 0202           ; ·µ»ØÖµ  : ÎÞ
 0202           ; /****************************************************/
 0202           ; void Delayus(uint US)           
 0202           ; {
 0202                   .dbline 140
 0202           ;      uint i;
 0202           ;      US=US*5/4;                        
 0202 05E0              ldi R16,5
 0204 10E0              ldi R17,0
 0206 9501              movw R18,R10
 0208 0E940000          xcall empy16s
 020C 5801              movw R10,R16
 020E B694              lsr R11
 0210 A794              ror R10
 0212 B694              lsr R11
 0214 A794              ror R10
 0216                   .dbline 141
 0216           ;      for( i=0;i<US;i++); 
 0216 4427              clr R20
 0218 5527              clr R21
 021A 02C0              xjmp L46
 021C           L43:
 021C                   .dbline 141
 021C           L44:
 021C                   .dbline 141
 021C 4F5F              subi R20,255  ; offset = 1
 021E 5F4F              sbci R21,255
 0220           L46:
 0220                   .dbline 141
 0220 4A15              cp R20,R10
 0222 5B05              cpc R21,R11
 0224 D8F3              brlo L43
 0226           X37:
 0226                   .dbline -2
 0226           L42:
 0226                   .dbline 0 ; func end
 0226 0C940000          xjmp pop_xgset300C
 022A                   .dbsym r i 20 i
 022A                   .dbsym r US 10 i
 022A                   .dbend
 022A                   .dbfunc e Delayms _Delayms fV
 022A           ;              i -> R20,R21
 022A           ;              j -> R22,R23
 022A           ;             MS -> R16,R17
                        .even
 022A           _Delayms::
 022A 0E940000          xcall push_xgsetF000
 022E                   .dbline -1
 022E                   .dbline 151
 022E           ; }
 022E           ; /****************************************************
 022E           ; º¯ÊýÃû³Æ: Delayms
 022E           ; ¹¦    ÄÜ: ÑÓÊ±Ö¸¶¨ºÁÃë£¨8M¾§Õñ£©
 022E           ; ²Î    Êý: MS--ÑÓÊ±µÄºÁÃëÊý
 022E           ; ·µ»ØÖµ  : ÎÞ
 022E           ; Í¨¹ýÈí¼þ·ÂÕæ·´¸´ÊµÑéµÃµ½µÄÊýÖµ
 022E           ; /****************************************************/
 022E           ; void Delayms(uint MS)           
 022E           ; {
 022E                   .dbline 153
 022E           ;      uint i,j;
 022E           ;      for( i=0;i<MS;i++)
 022E 4427              clr R20
 0230 5527              clr R21
 0232 0BC0              xjmp L51
 0234           L48:
 0234                   .dbline 154
 0234           ;      for(j=0;j<1141;j++);     
 0234 6627              clr R22
 0236 7727              clr R23
 0238 02C0              xjmp L55
 023A           L52:
 023A                   .dbline 154
 023A           L53:
 023A                   .dbline 154
 023A 6F5F              subi R22,255  ; offset = 1
 023C 7F4F              sbci R23,255
 023E           L55:
 023E                   .dbline 154
 023E 6537              cpi R22,117
 0240 E4E0              ldi R30,4
 0242 7E07              cpc R23,R30
 0244 D0F3              brlo L52
 0246           X38:
 0246           L49:
 0246                   .dbline 153
 0246 4F5F              subi R20,255  ; offset = 1
 0248 5F4F              sbci R21,255
 024A           L51:
 024A                   .dbline 153
 024A 4017              cp R20,R16
 024C 5107              cpc R21,R17
 024E 90F3              brlo L48
 0250           X39:
 0250                   .dbline -2
 0250           L47:
 0250                   .dbline 0 ; func end
 0250 0C940000          xjmp pop_xgsetF000
 0254                   .dbsym r i 20 i
 0254                   .dbsym r j 22 i
 0254                   .dbsym r MS 16 i
 0254                   .dbend
 0254           ; }
