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

📄 main.lis

📁 avr单片机与flash存储器通信程序,调试通过,希望对大家有所帮助.
💻 LIS
字号:
                        .module main.c
                        .area lit(rom, con, rel)
 0000           _Tab::
 0000 21F9              .byte 33,249
 0002 1351              .byte 19,'Q
 0004 C945              .byte 201,'E
 0006 05F1              .byte 5,241
 0008 0141              .byte 1,'A
 000A 810D              .byte 129,13
 000C 2719              .byte 39,25
 000E 0787              .byte 7,135
 0010                   .dbfile C:\ATMega8515\数码管/ForATmega8515.h
 0010                   .dbsym e Tab _Tab A[16:16]kc
                        .area text(rom, con, rel)
 0000                   .dbfile C:\ATMega8515\数码管/ForATmega8515.h
 0000                   .dbfile C:\ATMega8515\数码管\main.c
 0000                   .dbfunc e main _main fV
 0000           ;      softdelay -> R20,R21
 0000           ;          count -> R22
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 8
 0000           ; #include <iom8515v.h>
 0000           ; #include"ForATmega8515.h"
 0000           ; 
 0000           ; void delay(uint ticks);
 0000           ; void display(uchar left,uchar right);
 0000           ; 
 0000           ; void main()
 0000           ; {
 0000                   .dbline 9
 0000           ;  uchar count=0;
 0000 6627              clr R22
 0002                   .dbline 10
 0002           ;  uint softdelay=1000;
 0002 48EE              ldi R20,1000
 0004 53E0              ldi R21,3
 0006                   .dbline 11
 0006           ;  init_devices();
 0006 00D0              rcall _init_devices
 0008 17C0              rjmp L3
 000A           X0:
 000A                   .dbline 13
 000A           ;  while(1)
 000A           ;  {
 000A           L5:
 000A                   .dbline 14
 000A 1AE0              ldi R17,10
 000C 062F              mov R16,R22
 000E 00D0              rcall mod8u
 0010 202F              mov R18,R16
 0012 1AE0              ldi R17,10
 0014 062F              mov R16,R22
 0016 00D0              rcall div8u
 0018 1FD0              rcall _display
 001A           L6:
 001A                   .dbline 14
 001A           ;  while(softdelay--)display(count/10,count%10);
 001A 1A01              movw R2,R20
 001C 4150              subi R20,1
 001E 5040              sbci R21,0
 0020 2220              tst R2
 0022 99F7              brne L5
 0024 3320              tst R3
 0026 89F7              brne L5
 0028           X1:
 0028                   .dbline 15
 0028           ;  softdelay=1000;
 0028 48EE              ldi R20,1000
 002A 53E0              ldi R21,3
 002C                   .dbline 16
 002C           ;  if(++count==100)count=0;
 002C 862F              mov R24,R22
 002E 8F5F              subi R24,255    ; addi 1
 0030 682F              mov R22,R24
 0032 6436              cpi R22,100
 0034 09F4              brne L8
 0036                   .dbline 16
 0036 6627              clr R22
 0038           L8:
 0038                   .dbline 17
 0038           L3:
 0038                   .dbline 12
 0038 F0CF              rjmp L6
 003A           X2:
 003A                   .dbline -2
 003A           L1:
 003A                   .dbline 0 ; func end
 003A 0895              ret
 003C                   .dbsym r softdelay 20 i
 003C                   .dbsym r count 22 c
 003C                   .dbend
 003C                   .dbfunc e delay _delay fV
 003C           ;              i -> R20
 003C           ;          ticks -> R16,R17
                        .even
 003C           _delay::
 003C 00D0              rcall push_gset1
 003E                   .dbline -1
 003E                   .dbline 21
 003E           ;  }
 003E           ; }
 003E           ; 
 003E           ; void delay(uint ticks)
 003E           ; {
 003E                   .dbline 23
 003E 07C0              rjmp L14
 0040           L11:
 0040                   .dbline 23
 0040 48EC              ldi R20,200
 0042 01C0              rjmp L18
 0044           L15:
 0044                   .dbline 23
 0044           L16:
 0044                   .dbline 23
 0044 4A95              dec R20
 0046           L18:
 0046                   .dbline 23
 0046 4423              tst R20
 0048 E9F7              brne L15
 004A           L12:
 004A                   .dbline 23
 004A 0150              subi R16,1
 004C 1040              sbci R17,0
 004E           L14:
 004E                   .dbline 23
 004E           ;  uchar i;
 004E           ;  for(;ticks!=0;ticks--)for(i=200;i!=0;i--);
 004E 0030              cpi R16,0
 0050 0107              cpc R16,R17
 0052 B1F7              brne L11
 0054           X3:
 0054                   .dbline -2
 0054           L10:
 0054 00D0              rcall pop_gset1
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbsym r i 20 c
 0058                   .dbsym r ticks 16 i
 0058                   .dbend
 0058                   .dbfunc e display _display fV
 0058           ;          right -> R20
 0058           ;           left -> R22
                        .even
 0058           _display::
 0058 00D0              rcall push_gset2
 005A 422F              mov R20,R18
 005C 602F              mov R22,R16
 005E                   .dbline -1
 005E                   .dbline 27
 005E           ; }
 005E           ; 
 005E           ; void display(uchar left,uchar right)
 005E           ; {
 005E                   .dbline 28
 005E           ;  PORTA=Tab[left];//查表显示数码管
 005E 80E0              ldi R24,<_Tab
 0060 90E0              ldi R25,>_Tab
 0062 E62F              mov R30,R22
 0064 FF27              clr R31
 0066 E80F              add R30,R24
 0068 F91F              adc R31,R25
 006A E491              lpm R30,Z
 006C EBBB              out 0x1b,R30
 006E                   .dbline 29
 006E           ;  PORTC&=~SEG0;  //选通左边的数码管
 006E AF98              cbi 0x15,7
 0070                   .dbline 30
 0070           ;  delay(1);            //延时
 0070 01E0              ldi R16,1
 0072 10E0              ldi R17,0
 0074 E3DF              rcall _delay
 0076                   .dbline 31
 0076           ;  PORTC|=SEG0;   //关左边的数码管
 0076 AF9A              sbi 0x15,7
 0078                   .dbline 32
 0078           ;  PORTA=Tab[right];//查表显示数码管
 0078 80E0              ldi R24,<_Tab
 007A 90E0              ldi R25,>_Tab
 007C E42F              mov R30,R20
 007E FF27              clr R31
 0080 E80F              add R30,R24
 0082 F91F              adc R31,R25
 0084 E491              lpm R30,Z
 0086 EBBB              out 0x1b,R30
 0088                   .dbline 33
 0088           ;  PORTC&=~SEG1;                //选通右边的数码管                        
 0088 AE98              cbi 0x15,6
 008A                   .dbline 34
 008A           ;  delay(1);
 008A 01E0              ldi R16,1
 008C 10E0              ldi R17,0
 008E D6DF              rcall _delay
 0090                   .dbline 35
 0090           ;  PORTC|=SEG1;    //关右边的数码管
 0090 AE9A              sbi 0x15,6
 0092                   .dbline -2
 0092           L19:
 0092 00D0              rcall pop_gset2
 0094                   .dbline 0 ; func end
 0094 0895              ret
 0096                   .dbsym r right 20 c
 0096                   .dbsym r left 22 c
 0096                   .dbend

⌨️ 快捷键说明

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