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

📄 num_led.lis

📁 液晶显示
💻 LIS
字号:
                        .module num_led.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 C:\work\mega128\num_led\num_led.c
 0010                   .dbsym e seg_table _seg_table A[16:16]c
                        .area data(ram, con, rel)
 0000                   .dbfile C:\work\mega128\num_led\num_led.c
 0000           _led_buff::
 0000                   .blkb 2
                        .area idata
 0000 0000              .byte 0,0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\work\mega128\num_led\num_led.c
 0002                   .blkb 2
                        .area idata
 0002 0000              .byte 0,0
                        .area data(ram, con, rel)
 0004                   .dbfile C:\work\mega128\num_led\num_led.c
 0004                   .dbsym e led_buff _led_buff A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\work\mega128\num_led\num_led.c
 0000                   .dbfunc e delay_1ms _delay_1ms fV
 0000           ;              i -> R16,R17
                        .even
 0000           _delay_1ms::
 0000                   .dbline -1
 0000                   .dbline 8
 0000           ; #include <iom128.h>
 0000           ; #include <macros.h>
 0000           ; #define xtal 4
 0000           ; const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
 0000           ; 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
 0000           ; unsigned char led_buff[4]={0,0,0,0};    
 0000           ; void delay_1ms(void)
 0000           ;        {
 0000                   .dbline 10
 0000           ;         unsigned int i;
 0000           ;         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 11
 0006           L3:
 0006                   .dbline 10
 0006 0F5F              subi R16,255  ; offset = 1
 0008 1F4F              sbci R17,255
 000A           L5:
 000A                   .dbline 10
 000A 0A33              cpi R16,58
 000C E2E0              ldi R30,2
 000E 1E07              cpc R17,R30
 0010 D0F3              brlo L2
 0012                   .dbline -2
 0012                   .dbline 12
 0012           ;               ; 
 0012           ;        }
 0012           L1:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbsym r i 16 i
 0014                   .dbend
 0014                   .dbfunc e led_display _led_display fV
 0014           ;              i -> R20
                        .even
 0014           _led_display::
 0014 0E940000          xcall push_gset1
 0018                   .dbline -1
 0018                   .dbline 23
 0018           ; /*void delay_ms(unsigned int n)
 0018           ;        {
 0018           ;         unsigned int i=0;
 0018           ;         while(i<n)
 0018           ;                       {
 0018           ;                        delay_1ms();
 0018           ;                        i++;
 0018           ;                       }
 0018           ;        }*/
 0018           ; void led_display(void)
 0018           ;        {
 0018                   .dbline 25
 0018           ;         unsigned char i;
 0018           ;         DDRA=0xff;
 0018 8FEF              ldi R24,255
 001A 8ABB              out 0x1a,R24
 001C                   .dbline 26
 001C           ;         PORTA=0xff;
 001C 8BBB              out 0x1b,R24
 001E                   .dbline 27
 001E           ;         DDRC|=0xf0;
 001E 84B3              in R24,0x14
 0020 806F              ori R24,240
 0022 84BB              out 0x14,R24
 0024                   .dbline 28
 0024           ;         PORTC|=0xf0;
 0024 85B3              in R24,0x15
 0026 806F              ori R24,240
 0028 85BB              out 0x15,R24
 002A                   .dbline 29
 002A           ;         for(i=0;i<4;i++)
 002A 4427              clr R20
 002C 17C0              xjmp L10
 002E           L7:
 002E                   .dbline 30
 002E                   .dbline 31
 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 32
 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 33
 0052 D6DF              xcall _delay_1ms
 0054                   .dbline 34
 0054 85B3              in R24,0x15
 0056 806F              ori R24,240
 0058 85BB              out 0x15,R24
 005A                   .dbline 35
 005A           L8:
 005A                   .dbline 29
 005A 4395              inc R20
 005C           L10:
 005C                   .dbline 29
 005C 4430              cpi R20,4
 005E 38F3              brlo L7
 0060                   .dbline -2
 0060                   .dbline 36
 0060           ;                {                
 0060           ;                 PORTA=led_buff[i];
 0060           ;                 PORTC&=~(1<<(i+4));
 0060           ;                 delay_1ms();
 0060           ;                 PORTC|=0xf0;
 0060           ;                }
 0060           ;        }
 0060           L6:
 0060 0E940000          xcall pop_gset1
 0064                   .dbline 0 ; func end
 0064 0895              ret
 0066                   .dbsym r i 20 c
 0066                   .dbend
 0066                   .dbfunc e led_fill _led_fill fV
 0066           ;              i -> R20
 0066           ;          index -> R16
                        .even
 0066           _led_fill::
 0066 0E940000          xcall push_gset1
 006A                   .dbline -1
 006A                   .dbline 38
 006A           ; void led_fill(unsigned char index)
 006A           ;        {       
 006A                   .dbline 40
 006A           ;         unsigned char i;
 006A           ;         for(i=0;i<4;i++)
 006A 4427              clr R20
 006C 13C0              xjmp L15
 006E           L12:
 006E                   .dbline 41
 006E                   .dbline 42
 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 43
 0092           L13:
 0092                   .dbline 40
 0092 4395              inc R20
 0094           L15:
 0094                   .dbline 40
 0094 4430              cpi R20,4
 0096 58F3              brlo L12
 0098                   .dbline -2
 0098                   .dbline 44
 0098           ;            {
 0098           ;                 led_buff[i]=seg_table[index+i];
 0098           ;                }
 0098           ;        }       
 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                   .dbend
 009E                   .dbfunc e main _main fV
 009E           ;              j -> R20
 009E           ;              i -> R22
                        .even
 009E           _main::
 009E                   .dbline -1
 009E                   .dbline 46
 009E           ; void main(void)
 009E           ;        {
 009E 0FC0              xjmp L18
 00A0           L17:
 00A0                   .dbline 49
 00A0           ;         unsigned char i,j;
 00A0           ;         while(1)
 00A0           ;                  {
 00A0                   .dbline 50
 00A0           ;                   for(j=0;j<4;j++)
 00A0 4427              clr R20
 00A2 0BC0              xjmp L23
 00A4           L20:
 00A4                   .dbline 51
 00A4           ;                               {
 00A4                   .dbline 52
 00A4           ;                        led_fill(4*j);
 00A4 84E0              ldi R24,4
 00A6 849F              mul R24,R20
 00A8 002D              mov R16,R0
 00AA DDDF              xcall _led_fill
 00AC                   .dbline 53
 00AC           ;                                for(i=0;i<200;i++)
 00AC 6627              clr R22
 00AE 02C0              xjmp L27
 00B0           L24:
 00B0                   .dbline 54
 00B0 B1DF              xcall _led_display
 00B2           L25:
 00B2                   .dbline 53
 00B2 6395              inc R22
 00B4           L27:
 00B4                   .dbline 53
 00B4 683C              cpi R22,200
 00B6 E0F3              brlo L24
 00B8                   .dbline 55
 00B8           L21:
 00B8                   .dbline 50
 00B8 4395              inc R20
 00BA           L23:
 00BA                   .dbline 50
 00BA 4430              cpi R20,4
 00BC 98F3              brlo L20
 00BE                   .dbline 56
 00BE           L18:
 00BE                   .dbline 48
 00BE F0CF              xjmp L17
 00C0           X0:
 00C0                   .dbline -2
 00C0                   .dbline 57
 00C0           ;                               led_display();
 00C0           ;                               } 
 00C0           ;                  }
 00C0           ;        }
 00C0           L16:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbsym r j 20 c
 00C2                   .dbsym r i 22 c
 00C2                   .dbend

⌨️ 快捷键说明

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