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

📄 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 data(ram, con, rel)
 0000                   .dbfile C:\ATMega8515\定时实验/ForATmega8515.h
 0000           _flag::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile C:\ATMega8515\定时实验/ForATmega8515.h
 0001                   .dbfile C:\ATMega8515\定时实验\main.c
 0001                   .dbsym e flag _flag c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\ATMega8515\定时实验\main.c
 0000                   .dbfunc e main _main fV
 0000           ;          count -> R20
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 10
 0000           ; #include <iom8515v.h>
 0000           ; #include"ForATmega8515.h"
 0000           ; 
 0000           ; 
 0000           ; void delay(uint ticks);
 0000           ; void display(uchar left,uchar right);
 0000           ; uchar flag=0;
 0000           ; 
 0000           ; void main()
 0000           ; {
 0000                   .dbline 11
 0000           ;  uchar count=0;
 0000 4427              clr R20
 0002                   .dbline 12
 0002           ;  init_devices();
 0002 00D0              rcall _init_devices
 0004 16C0              rjmp L3
 0006           L2:
 0006                   .dbline 15
 0006           ;  
 0006           ;  while(1)
 0006           ;  {
 0006                   .dbline 16
 0006           ;   display(count/10,count%10);
 0006 1AE0              ldi R17,10
 0008 042F              mov R16,R20
 000A 00D0              rcall mod8u
 000C 202F              mov R18,R16
 000E 1AE0              ldi R17,10
 0010 042F              mov R16,R20
 0012 00D0              rcall div8u
 0014 1ED0              rcall _display
 0016                   .dbline 17
 0016           ;   if(flag)
 0016 20900000          lds R2,_flag
 001A 2220              tst R2
 001C 51F0              breq L5
 001E                   .dbline 18
 001E           ;   {
 001E                   .dbline 19
 001E           ;    if(count++==99)count=0;
 001E 242E              mov R2,R20
 0020 3324              clr R3
 0022 4F5F              subi R20,255    ; addi 1
 0024 822D              mov R24,R2
 0026 8336              cpi R24,99
 0028 09F4              brne L7
 002A                   .dbline 19
 002A 4427              clr R20
 002C           L7:
 002C                   .dbline 20
 002C           ;    flag=0;
 002C 2224              clr R2
 002E 20920000          sts _flag,R2
 0032                   .dbline 21
 0032           ;   }
 0032           L5:
 0032                   .dbline 22
 0032           L3:
 0032                   .dbline 14
 0032 E9CF              rjmp L2
 0034           X0:
 0034                   .dbline -2
 0034           L1:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r count 20 c
 0036                   .dbend
 0036                   .dbfunc e delay _delay fV
 0036           ;              i -> R20
 0036           ;          ticks -> R16,R17
                        .even
 0036           _delay::
 0036 00D0              rcall push_gset1
 0038                   .dbline -1
 0038                   .dbline 26
 0038           ;  }
 0038           ; }
 0038           ; 
 0038           ; void delay(uint ticks)
 0038           ; {
 0038                   .dbline 28
 0038 07C0              rjmp L13
 003A           L10:
 003A                   .dbline 28
 003A 48EC              ldi R20,200
 003C 01C0              rjmp L17
 003E           L14:
 003E                   .dbline 28
 003E           L15:
 003E                   .dbline 28
 003E 4A95              dec R20
 0040           L17:
 0040                   .dbline 28
 0040 4423              tst R20
 0042 E9F7              brne L14
 0044           L11:
 0044                   .dbline 28
 0044 0150              subi R16,1
 0046 1040              sbci R17,0
 0048           L13:
 0048                   .dbline 28
 0048           ;  uchar i;
 0048           ;  for(;ticks!=0;ticks--)for(i=200;i!=0;i--);
 0048 0030              cpi R16,0
 004A 0107              cpc R16,R17
 004C B1F7              brne L10
 004E           X1:
 004E                   .dbline -2
 004E           L9:
 004E 00D0              rcall pop_gset1
 0050                   .dbline 0 ; func end
 0050 0895              ret
 0052                   .dbsym r i 20 c
 0052                   .dbsym r ticks 16 i
 0052                   .dbend
 0052                   .dbfunc e display _display fV
 0052           ;          right -> R20
 0052           ;           left -> R22
                        .even
 0052           _display::
 0052 00D0              rcall push_gset2
 0054 422F              mov R20,R18
 0056 602F              mov R22,R16
 0058                   .dbline -1
 0058                   .dbline 32
 0058           ; }
 0058           ; 
 0058           ; void display(uchar left,uchar right)
 0058           ; {
 0058                   .dbline 33
 0058           ;  PORTA=Tab[left];//查表显示数码管
 0058 80E0              ldi R24,<_Tab
 005A 90E0              ldi R25,>_Tab
 005C E62F              mov R30,R22
 005E FF27              clr R31
 0060 E80F              add R30,R24
 0062 F91F              adc R31,R25
 0064 E491              lpm R30,Z
 0066 EBBB              out 0x1b,R30
 0068                   .dbline 34
 0068           ;  PORTC&=~SEG0;  //选通左边的数码管
 0068 AF98              cbi 0x15,7
 006A                   .dbline 35
 006A           ;  delay(1);            //延时
 006A 01E0              ldi R16,1
 006C 10E0              ldi R17,0
 006E E3DF              rcall _delay
 0070                   .dbline 36
 0070           ;  PORTC|=SEG0;   //关左边的数码管
 0070 AF9A              sbi 0x15,7
 0072                   .dbline 37
 0072           ;  PORTA=Tab[right];//查表显示数码管
 0072 80E0              ldi R24,<_Tab
 0074 90E0              ldi R25,>_Tab
 0076 E42F              mov R30,R20
 0078 FF27              clr R31
 007A E80F              add R30,R24
 007C F91F              adc R31,R25
 007E E491              lpm R30,Z
 0080 EBBB              out 0x1b,R30
 0082                   .dbline 38
 0082           ;  PORTC&=~SEG1;                //选通右边的数码管                        
 0082 AE98              cbi 0x15,6
 0084                   .dbline 39
 0084           ;  delay(1);
 0084 01E0              ldi R16,1
 0086 10E0              ldi R17,0
 0088 D6DF              rcall _delay
 008A                   .dbline 40
 008A           ;  PORTC|=SEG1;    //关右边的数码管
 008A AE9A              sbi 0x15,6
 008C                   .dbline -2
 008C           L18:
 008C 00D0              rcall pop_gset2
 008E                   .dbline 0 ; func end
 008E 0895              ret
 0090                   .dbsym r right 20 c
 0090                   .dbsym r left 22 c
 0090                   .dbend

⌨️ 快捷键说明

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