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

📄 led_128.lis

📁 ATmegal128的JTAG测试程序
💻 LIS
字号:
                         .module led_128.c
                         .area lit(rom, con, rel)
 0000                 _seg_table::
 0000 C0F9              .byte 192,249
 0002 A4B0              .byte 164,176
 0004 9992              .byte 153,146
 0006 82F8              .byte 130,248
 0008 8090              .byte 128,144
 000A 8883              .byte 136,131
 000C C6A1              .byte 198,161
 000E 868E              .byte 134,142
 0010                   .dbfile D:\jtag_test\led_128.c
 0010                   .dbsym s seg_table _seg_table A[16:16]c
                         .area data(ram, con, rel)
 0000                   .dbfile D:\jtag_test\led_128.c
 0000                 _led_buff::
 0000                   .blkb 2
                         .area idata
 0000 0000              .byte 0,0
                         .area data(ram, con, rel)
 0002                   .dbfile D:\jtag_test\led_128.c
 0002                   .blkb 2
                         .area idata
 0002 0000              .byte 0,0
                         .area data(ram, con, rel)
 0004                   .dbfile D:\jtag_test\led_128.c
 0004                   .dbsym s led_buff _led_buff A[4:4]c
                         .area text(rom, con, rel)
 0000                   .dbfile D:\jtag_test\led_128.c
 0000                   .dbfunc s delay_1ms _delay_1ms fI
                       ;              i -> R16,R17
                         .even
 0000                 _delay_1ms::
 0000                   .dbline -1
 0000                   .dbline 7
                       ; #include <iom128.h>
                       ; #define xtal 16
                       ; const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
                       ; 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
                       ; unsigned char led_buff[4]={0,0,0,0};      
                       ; void delay_1ms(void)
                       ;      {
 0000                   .dbline 9
                       ;       unsigned int i;
                       ;       for(i=1;i<(unsigned int)(xtal*143-2);i++)
 0000 01E0              ldi R16,1
 0002 10E0              ldi R17,0
 0004 02C0              xjmp L5
 0006                 L2:
 0006                   .dbline 10
 0006                 L3:
 0006                   .dbline 9
 0006 0F5F              subi R16,255  ; offset = 1
 0008 1F4F              sbci R17,255
 000A                 L5:
 000A                   .dbline 9
 000A 0E3E              cpi R16,238
 000C E8E0              ldi R30,8
 000E 1E07              cpc R17,R30
 0010 D0F3              brlo L2
 0012                   .dbline -2
 0012                   .dbline 11
                       ;         ; 
                       ;      }
 0012                 L1:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbsym r i 16 i
 0014                   .dbfunc s led_display _led_display fI
                       ;              i -> R20
                         .even
 0014                 _led_display::
 0014 0E940000          xcall push_gset1
 0018                   .dbline -1
 0018                   .dbline 22
                       ; /*void delay_ms(unsigned int n)
                       ;      {
                       ;       unsigned int i=0;
                       ;       while(i<n)
                       ;             {
                       ;              delay_1ms();
                       ;              i++;
                       ;             }
                       ;      }*/
                       ; void led_display(void)
                       ;      {
 0018                   .dbline 24
                       ;       unsigned char i;
                       ;       DDRA=0xff;
 0018 8FEF              ldi R24,255
 001A 8ABB              out 0x1a,R24
 001C                   .dbline 25
                       ;       PORTA=0xff;
 001C 8BBB              out 0x1b,R24
 001E                   .dbline 26
                       ;       DDRC|=0xf0;
 001E 84B3              in R24,0x14
 0020 806F              ori R24,240
 0022 84BB              out 0x14,R24
 0024                   .dbline 27
                       ;       PORTC|=0xf0;
 0024 85B3              in R24,0x15
 0026 806F              ori R24,240
 0028 85BB              out 0x15,R24
 002A                   .dbline 28
                       ;       for(i=0;i<4;i++)
 002A 4427              clr R20
 002C 17C0              xjmp L10
 002E                 L7:
 002E                   .dbline 29
 002E                   .dbline 30
 002E 80E0              ldi R24,<_led_buff
 0030 90E0              ldi R25,>_led_buff
 0032 E42F              mov R30,R20
 0034 FF27              clr R31
 0036 E80F              add R30,R24
 0038 F91F              adc R31,R25
 003A 2080              ldd R2,z+0
 003C 2BBA              out 0x1b,R2
 003E                   .dbline 31
 003E 142F              mov R17,R20
 0040 1C5F              subi R17,252    ; addi 4
 0042 01E0              ldi R16,1
 0044 0E940000          xcall lsl8
 0048 202E              mov R2,R16
 004A 2094              com R2
 004C 35B2              in R3,0x15
 004E 3220              and R3,R2
 0050 35BA              out 0x15,R3
 0052                   .dbline 32
 0052 D6DF              xcall _delay_1ms
 0054                   .dbline 33
 0054 85B3              in R24,0x15
 0056 806F              ori R24,240
 0058 85BB              out 0x15,R24
 005A                   .dbline 34
 005A                 L8:
 005A                   .dbline 28
 005A 4395              inc R20
 005C                 L10:
 005C                   .dbline 28
 005C 4430              cpi R20,4
 005E 38F3              brlo L7
 0060                   .dbline -2
 0060                   .dbline 35
                       ;          {        
                       ;           PORTA=led_buff[i];
                       ;           PORTC&=~(1<<(i+4));
                       ;           delay_1ms();
                       ;           PORTC|=0xf0;
                       ;          }
                       ;      }
 0060                 L6:
 0060 0E940000          xcall pop_gset1
 0064                   .dbline 0 ; func end
 0064 0895              ret
 0066                   .dbsym r i 20 c
 0066                   .dbfunc s led_fill _led_fill fI
                       ;              i -> R20
                       ;          index -> R16
                         .even
 0066                 _led_fill::
 0066 0E940000          xcall push_gset1
 006A                   .dbline -1
 006A                   .dbline 37
                       ; void led_fill(unsigned char index)
                       ;      {   
 006A                   .dbline 39
                       ;       unsigned char i;
                       ;       for(i=0;i<4;i++)
 006A 4427              clr R20
 006C 13C0              xjmp L15
 006E                 L12:
 006E                   .dbline 40
 006E                   .dbline 41
 006E 242E              mov R2,R20
 0070 3324              clr R3
 0072 E02F              mov R30,R16
 0074 FF27              clr R31
 0076 E20D              add R30,R2
 0078 F31D              adc R31,R3
 007A 80E0              ldi R24,<_seg_table
 007C 90E0              ldi R25,>_seg_table
 007E E80F              add R30,R24
 0080 F91F              adc R31,R25
 0082 E491              lpm R30,Z
 0084 80E0              ldi R24,<_led_buff
 0086 90E0              ldi R25,>_led_buff
 0088 A42F              mov R26,R20
 008A BB27              clr R27
 008C A80F              add R26,R24
 008E B91F              adc R27,R25
 0090 EC93              st x,R30
 0092                   .dbline 42
 0092                 L13:
 0092                   .dbline 39
 0092 4395              inc R20
 0094                 L15:
 0094                   .dbline 39
 0094 4430              cpi R20,4
 0096 58F3              brlo L12
 0098                   .dbline -2
 0098                   .dbline 43
                       ;          {
                       ;           led_buff[i]=seg_table[index+i];
                       ;          }
                       ;      }   
 0098                 L11:
 0098 0E940000          xcall pop_gset1
 009C                   .dbline 0 ; func end
 009C 0895              ret
 009E                   .dbsym r i 20 c
 009E                   .dbsym r index 16 c
 009E                   .dbfunc s main _main fI
                       ;              j -> R20
                       ;              i -> R22
                         .even
 009E                 _main::
 009E                   .dbline -1
 009E                   .dbline 45
                       ; void main(void)
                       ;      {
 009E 0FC0              xjmp L18
 00A0                 L17:
 00A0                   .dbline 48
                       ;       unsigned char i,j;
                       ;       while(1)
                       ;            {
 00A0                   .dbline 49
                       ;             for(j=0;j<4;j++)
 00A0 4427              clr R20
 00A2 0BC0              xjmp L23
 00A4                 L20:
 00A4                   .dbline 50
                       ;                 {
 00A4                   .dbline 51
                       ;                  led_fill(4*j);
 00A4 84E0              ldi R24,4
 00A6 849F              mul R24,R20
 00A8 8001              movw R16,R0
 00AA DDDF              xcall _led_fill
 00AC                   .dbline 52
                       ;                  for(i=0;i<200;i++)
 00AC 6627              clr R22
 00AE 02C0              xjmp L27
 00B0                 L24:
 00B0                   .dbline 53
 00B0 B1DF              xcall _led_display
 00B2                 L25:
 00B2                   .dbline 52
 00B2 6395              inc R22
 00B4                 L27:
 00B4                   .dbline 52
 00B4 683C              cpi R22,200
 00B6 E0F3              brlo L24
 00B8                   .dbline 54
 00B8                 L21:
 00B8                   .dbline 49
 00B8 4395              inc R20
 00BA                 L23:
 00BA                   .dbline 49
 00BA 4430              cpi R20,4
 00BC 98F3              brlo L20
 00BE                   .dbline 55
 00BE                 L18:
 00BE                   .dbline 47
 00BE F0CF              xjmp L17
 00C0                 X0:
 00C0                   .dbline -2
 00C0                   .dbline 56
                       ;                     led_display();
                       ;                 } 
                       ;            }
                       ;      }
 00C0                 L16:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbsym r j 20 c
 00C2                   .dbsym r i 22 c

⌨️ 快捷键说明

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