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

📄 numled.lis

📁 这是关于AVR单片机学习的初步开发
💻 LIS
字号:
                        .module numled.c
                        .area data(ram, con, rel)
 0000           _num::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .dbfile C:\DOCUME~1\alf\MYDOCU~1\开发板\调试程序\num_led\numled.c
 000A                   .dbsym e num _num A[10:10]c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\alf\MYDOCU~1\开发板\调试程序\num_led\numled.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 12
 0000           ; //ICC-AVR application builder : 2005-3-2 下午 09:56:10
 0000           ; // Target : M8
 0000           ; // Crystal: 11.059Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; char num[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0000           ; //0x8,0x7E,0xA2,0x62,0x74,0x61,0x21,0x7A,0x20,0x60
 0000           ; //3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 13
 0000           ;  PORTB = 0xCF;
 0000 8FEC              ldi R24,207
 0002 88BB              out 0x18,R24
 0004                   .dbline 14
 0004           ;  DDRB  = 0x30;
 0004 80E3              ldi R24,48
 0006 87BB              out 0x17,R24
 0008                   .dbline 15
 0008           ;  PORTC = 0x4F; //m103 output only
 0008 8FE4              ldi R24,79
 000A 85BB              out 0x15,R24
 000C                   .dbline 16
 000C           ;  DDRC  = 0x30;
 000C 80E3              ldi R24,48
 000E 84BB              out 0x14,R24
 0010                   .dbline 17
 0010           ;  PORTD = 0xFF;
 0010 8FEF              ldi R24,255
 0012 82BB              out 0x12,R24
 0014                   .dbline 18
 0014           ;  DDRD  = 0xFF;
 0014 81BB              out 0x11,R24
 0016                   .dbline -2
 0016                   .dbline 19
 0016           ; }
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e init_devices _init_devices fV
                        .even
 0018           _init_devices::
 0018                   .dbline -1
 0018                   .dbline 23
 0018           ; 
 0018           ; //call this routine to initialise all peripherals
 0018           ; void init_devices(void)
 0018           ; {
 0018                   .dbline 25
 0018           ;  //stop errant interrupts until set up
 0018           ;  CLI(); //disable all interrupts
 0018 F894              cli
 001A                   .dbline 26
 001A           ;  port_init();
 001A F2DF              rcall _port_init
 001C                   .dbline 28
 001C           ; 
 001C           ;  MCUCR = 0x00;
 001C 2224              clr R2
 001E 25BE              out 0x35,R2
 0020                   .dbline 29
 0020           ;  GICR  = 0x00;
 0020 2BBE              out 0x3b,R2
 0022                   .dbline 30
 0022           ;  TIMSK = 0x00; //timer interrupt sources
 0022 29BE              out 0x39,R2
 0024                   .dbline 31
 0024           ;  SEI(); //re-enable interrupts
 0024 7894              sei
 0026                   .dbline -2
 0026                   .dbline 33
 0026           ;  //all peripherals are now initialised
 0026           ; }
 0026           L2:
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbend
 0028                   .dbfunc e delay _delay fV
 0028           ;              j -> R16,R17
 0028           ;              i -> R18,R19
 0028           ;              z -> R20,R21
                        .even
 0028           _delay::
 0028 00D0              rcall push_gset1
 002A                   .dbline -1
 002A                   .dbline 36
 002A           ; 
 002A           ; void delay(void)
 002A           ; {
 002A                   .dbline 38
 002A 2227              clr R18
 002C 3327              clr R19
 002E 02C0              rjmp L7
 0030           L4:
 0030                   .dbline 38
 0030           L5:
 0030                   .dbline 38
 0030 2F5F              subi R18,255  ; offset = 1
 0032 3F4F              sbci R19,255
 0034           L7:
 0034                   .dbline 38
 0034           ;  unsigned int i,j,z;
 0034           ;  for(i=0;i<10000;i++);
 0034 2031              cpi R18,16
 0036 E7E2              ldi R30,39
 0038 3E07              cpc R19,R30
 003A D0F3              brlo L4
 003C                   .dbline 39
 003C           ;  {    for(j=0;j<10000;j++)
 003C                   .dbline 39
 003C 0027              clr R16
 003E 1127              clr R17
 0040 0BC0              rjmp L11
 0042           L8:
 0042                   .dbline 40
 0042                   .dbline 40
 0042 4427              clr R20
 0044 5527              clr R21
 0046 02C0              rjmp L15
 0048           L12:
 0048                   .dbline 40
 0048           L13:
 0048                   .dbline 40
 0048 4F5F              subi R20,255  ; offset = 1
 004A 5F4F              sbci R21,255
 004C           L15:
 004C                   .dbline 40
 004C 4436              cpi R20,100
 004E E0E0              ldi R30,0
 0050 5E07              cpc R21,R30
 0052 D0F3              brlo L12
 0054                   .dbline 40
 0054           L9:
 0054                   .dbline 39
 0054 0F5F              subi R16,255  ; offset = 1
 0056 1F4F              sbci R17,255
 0058           L11:
 0058                   .dbline 39
 0058 0031              cpi R16,16
 005A E7E2              ldi R30,39
 005C 1E07              cpc R17,R30
 005E 88F3              brlo L8
 0060                   .dbline 41
 0060           ;       {       for(z=0;z<100;z++);}
 0060           ;  }
 0060                   .dbline -2
 0060                   .dbline 42
 0060           ; }
 0060           L3:
 0060 00D0              rcall pop_gset1
 0062                   .dbline 0 ; func end
 0062 0895              ret
 0064                   .dbsym r j 16 i
 0064                   .dbsym r i 18 i
 0064                   .dbsym r z 20 i
 0064                   .dbend
 0064                   .dbfunc e main _main fV
 0064           ;              i -> R20
                        .even
 0064           _main::
 0064                   .dbline -1
 0064                   .dbline 46
 0064           ; 
 0064           ; 
 0064           ; void main(void)
 0064           ; {
 0064                   .dbline 48
 0064           ;  char i;
 0064           ;  init_devices();
 0064 D9DF              rcall _init_devices
 0066 44C0              rjmp L18
 0068           L17:
 0068                   .dbline 51
 0068           ;  
 0068           ;  while(1)
 0068           ;  {
 0068                   .dbline 52
 0068           ;  PORTB |= 0x10;//位选1
 0068 C49A              sbi 0x18,4
 006A                   .dbline 53
 006A           ;  for(i=0;i<=9;i++)
 006A 4427              clr R20
 006C 0AC0              rjmp L23
 006E           L20:
 006E                   .dbline 54
 006E                   .dbline 54
 006E 80E0              ldi R24,<_num
 0070 90E0              ldi R25,>_num
 0072 E42F              mov R30,R20
 0074 FF27              clr R31
 0076 E80F              add R30,R24
 0078 F91F              adc R31,R25
 007A 2080              ldd R2,z+0
 007C 22BA              out 0x12,R2
 007E                   .dbline 55
 007E D4DF              rcall _delay
 0080                   .dbline 56
 0080           L21:
 0080                   .dbline 53
 0080 4395              inc R20
 0082           L23:
 0082                   .dbline 53
 0082 89E0              ldi R24,9
 0084 8417              cp R24,R20
 0086 98F7              brsh L20
 0088                   .dbline 57
 0088           ;  {    PORTD = num[i];
 0088           ;       delay();
 0088           ;  } 
 0088           ;  PORTB &= ~0x10;
 0088 C498              cbi 0x18,4
 008A                   .dbline 59
 008A           ;   
 008A           ;  PORTB |= 0x20;//位选2
 008A C59A              sbi 0x18,5
 008C                   .dbline 60
 008C           ;  for(i=0;i<=9;i++)
 008C 4427              clr R20
 008E 0AC0              rjmp L27
 0090           L24:
 0090                   .dbline 61
 0090                   .dbline 61
 0090 80E0              ldi R24,<_num
 0092 90E0              ldi R25,>_num
 0094 E42F              mov R30,R20
 0096 FF27              clr R31
 0098 E80F              add R30,R24
 009A F91F              adc R31,R25
 009C 2080              ldd R2,z+0
 009E 22BA              out 0x12,R2
 00A0                   .dbline 62
 00A0 C3DF              rcall _delay
 00A2                   .dbline 63
 00A2           L25:
 00A2                   .dbline 60
 00A2 4395              inc R20
 00A4           L27:
 00A4                   .dbline 60
 00A4 89E0              ldi R24,9
 00A6 8417              cp R24,R20
 00A8 98F7              brsh L24
 00AA                   .dbline 64
 00AA           ;  {    PORTD = num[i];
 00AA           ;       delay();
 00AA           ;  }
 00AA           ;  PORTB &= ~0x20;
 00AA C598              cbi 0x18,5
 00AC                   .dbline 66
 00AC           ;   
 00AC           ;  PORTC |= 0x10;//位选3
 00AC AC9A              sbi 0x15,4
 00AE                   .dbline 67
 00AE           ;  for(i=0;i<=9;i++)
 00AE 4427              clr R20
 00B0 0AC0              rjmp L31
 00B2           L28:
 00B2                   .dbline 68
 00B2                   .dbline 68
 00B2 80E0              ldi R24,<_num
 00B4 90E0              ldi R25,>_num
 00B6 E42F              mov R30,R20
 00B8 FF27              clr R31
 00BA E80F              add R30,R24
 00BC F91F              adc R31,R25
 00BE 2080              ldd R2,z+0
 00C0 22BA              out 0x12,R2
 00C2                   .dbline 69
 00C2 B2DF              rcall _delay
 00C4                   .dbline 70
 00C4           L29:
 00C4                   .dbline 67
 00C4 4395              inc R20
 00C6           L31:
 00C6                   .dbline 67
 00C6 89E0              ldi R24,9
 00C8 8417              cp R24,R20
 00CA 98F7              brsh L28
 00CC                   .dbline 71
 00CC           ;  {    PORTD = num[i];
 00CC           ;       delay();
 00CC           ;  }
 00CC           ;  PORTC &= ~0x10;
 00CC AC98              cbi 0x15,4
 00CE                   .dbline 73
 00CE           ;  
 00CE           ;  PORTC |= 0x20;//位选4
 00CE AD9A              sbi 0x15,5
 00D0                   .dbline 74
 00D0           ;  for(i=0;i<=9;i++)
 00D0 4427              clr R20
 00D2 0AC0              rjmp L35
 00D4           L32:
 00D4                   .dbline 75
 00D4                   .dbline 75
 00D4 80E0              ldi R24,<_num
 00D6 90E0              ldi R25,>_num
 00D8 E42F              mov R30,R20
 00DA FF27              clr R31
 00DC E80F              add R30,R24
 00DE F91F              adc R31,R25
 00E0 2080              ldd R2,z+0
 00E2 22BA              out 0x12,R2
 00E4                   .dbline 76
 00E4 A1DF              rcall _delay
 00E6                   .dbline 77
 00E6           L33:
 00E6                   .dbline 74
 00E6 4395              inc R20
 00E8           L35:
 00E8                   .dbline 74
 00E8 89E0              ldi R24,9
 00EA 8417              cp R24,R20
 00EC 98F7              brsh L32
 00EE                   .dbline 78
 00EE AD98              cbi 0x15,5
 00F0                   .dbline 80
 00F0           L18:
 00F0                   .dbline 50
 00F0 BBCF              rjmp L17
 00F2           X0:
 00F2                   .dbline -2
 00F2                   .dbline 81
 00F2           ;  {    PORTD = num[i];
 00F2           ;       delay();
 00F2           ;  }
 00F2           ;  PORTC &= ~0x20;
 00F2           ;  
 00F2           ;  }   
 00F2           ; }
 00F2           L16:
 00F2                   .dbline 0 ; func end
 00F2 0895              ret
 00F4                   .dbsym r i 20 c
 00F4                   .dbend

⌨️ 快捷键说明

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