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

📄 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\LCD/ForATmega8515.h
 0010                   .dbsym e Tab _Tab A[16:16]kc
                        .area text(rom, con, rel)
 0000                   .dbfile C:\ATMega8515\LCD/ForATmega8515.h
 0000                   .dbfile C:\ATMega8515\LCD\main.c
 0000                   .dbfunc e main _main fV
 0000           ;      softdelay -> R20,R21
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 12
 0000           ; #include <iom8515v.h>
 0000           ; #include"ForATmega8515.h"
 0000           ; 
 0000           ; void delay(uint ticks);
 0000           ; ///////////////////////
 0000           ; void writedata(uchar lcddata);//写数据到LCD
 0000           ; void writecom(uchar lcddata);//写命令到LCD
 0000           ; void writeline(uchar *str); //写一串数据到LCD
 0000           ; void initlcd();                  //初始话LCD
 0000           ; ////////////////////////////
 0000           ; void main()
 0000           ; { 
 0000                   .dbline 13
 0000           ;  uint softdelay=1000;
 0000 48EE              ldi R20,1000
 0002 53E0              ldi R21,3
 0004                   .dbline 14
 0004           ;  init_devices();
 0004 00D0              rcall _init_devices
 0006                   .dbline 15
 0006           ;  initlcd();
 0006 5CD0              rcall _initlcd
 0008 28C0              rjmp L3
 000A           L2:
 000A                   .dbline 18
 000A           ; 
 000A           ;  while(1)
 000A           ;  {
 000A                   .dbline 19
 000A           ;  writeline("Hello World!");//在LCD上面显示Hello World!
 000A 00E0              ldi R16,<L5
 000C 10E0              ldi R17,>L5
 000E 4BD0              rcall _writeline
 0010 03C0              rjmp L7
 0012           L6:
 0012                   .dbline 20
 0012 0EE1              ldi R16,30
 0014 10E0              ldi R17,0
 0016 23D0              rcall _delay
 0018           L7:
 0018                   .dbline 20
 0018           ;  while(softdelay--)delay(30);softdelay=1000;//延时
 0018 1A01              movw R2,R20
 001A 4150              subi R20,1
 001C 5040              sbci R21,0
 001E 2220              tst R2
 0020 C1F7              brne L6
 0022 3320              tst R3
 0024 B1F7              brne L6
 0026           X0:
 0026                   .dbline 20
 0026 48EE              ldi R20,1000
 0028 53E0              ldi R21,3
 002A                   .dbline 21
 002A           ;  writecom(0x01);//清屏
 002A 01E0              ldi R16,1
 002C 31D0              rcall _writecom
 002E                   .dbline 22
 002E           ;  writecom(0x80);//回车
 002E 00E8              ldi R16,128
 0030 2FD0              rcall _writecom
 0032                   .dbline 23
 0032           ;  writeline("ForATMega8515");//在LCD上面显示ForATMega8515
 0032 00E0              ldi R16,<L9
 0034 10E0              ldi R17,>L9
 0036 37D0              rcall _writeline
 0038 03C0              rjmp L11
 003A           L10:
 003A                   .dbline 24
 003A 0EE1              ldi R16,30
 003C 10E0              ldi R17,0
 003E 0FD0              rcall _delay
 0040           L11:
 0040                   .dbline 24
 0040 1A01              movw R2,R20
 0042 4150              subi R20,1
 0044 5040              sbci R21,0
 0046 2220              tst R2
 0048 C1F7              brne L10
 004A 3320              tst R3
 004C B1F7              brne L10
 004E           X1:
 004E                   .dbline 24
 004E 48EE              ldi R20,1000
 0050 53E0              ldi R21,3
 0052                   .dbline 25
 0052 01E0              ldi R16,1
 0054 1DD0              rcall _writecom
 0056                   .dbline 26
 0056 00E8              ldi R16,128
 0058 1BD0              rcall _writecom
 005A                   .dbline 28
 005A           L3:
 005A                   .dbline 17
 005A D7CF              rjmp L2
 005C           X2:
 005C                   .dbline -2
 005C           L1:
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbsym r softdelay 20 i
 005E                   .dbend
 005E                   .dbfunc e delay _delay fV
 005E           ;              i -> R20
 005E           ;          ticks -> R16,R17
                        .even
 005E           _delay::
 005E 00D0              rcall push_gset1
 0060                   .dbline -1
 0060                   .dbline 33
 0060           ;  while(softdelay--)delay(30);softdelay=1000;//延时
 0060           ;  writecom(0x01);//清屏
 0060           ;  writecom(0x80);//回车
 0060           ; 
 0060           ;  }
 0060           ; }
 0060           ; 
 0060           ; 
 0060           ; void delay(uint ticks)
 0060           ; {
 0060                   .dbline 35
 0060 07C0              rjmp L17
 0062           L14:
 0062                   .dbline 35
 0062 48EC              ldi R20,200
 0064 01C0              rjmp L21
 0066           L18:
 0066                   .dbline 35
 0066           L19:
 0066                   .dbline 35
 0066 4A95              dec R20
 0068           L21:
 0068                   .dbline 35
 0068 4423              tst R20
 006A E9F7              brne L18
 006C           L15:
 006C                   .dbline 35
 006C 0150              subi R16,1
 006E 1040              sbci R17,0
 0070           L17:
 0070                   .dbline 35
 0070           ;  uchar i;
 0070           ;  for(;ticks!=0;ticks--)for(i=200;i!=0;i--);
 0070 0030              cpi R16,0
 0072 0107              cpc R16,R17
 0074 B1F7              brne L14
 0076           X3:
 0076                   .dbline -2
 0076           L13:
 0076 00D0              rcall pop_gset1
 0078                   .dbline 0 ; func end
 0078 0895              ret
 007A                   .dbsym r i 20 c
 007A                   .dbsym r ticks 16 i
 007A                   .dbend
 007A                   .dbfunc e writedata _writedata fV
 007A           ;        lcddata -> R20
                        .even
 007A           _writedata::
 007A 00D0              rcall push_gset1
 007C 402F              mov R20,R16
 007E                   .dbline -1
 007E                   .dbline 42
 007E           ; }
 007E           ; 
 007E           ; 
 007E           ; 
 007E           ; ///////////////////////////////
 007E           ; void writedata(uchar lcddata)
 007E           ; {
 007E                   .dbline 44
 007E           ; // E=1;
 007E           ;  PORTC|=E;
 007E AC9A              sbi 0x15,4
 0080                   .dbline 46
 0080           ; // RS=1;
 0080           ;  PORTC|=RS;
 0080 AA9A              sbi 0x15,2
 0082                   .dbline 48
 0082           ; // RW=0;
 0082           ;  PORTA=lcddata;
 0082 4BBB              out 0x1b,R20
 0084                   .dbline 50
 0084           ; // E=0;
 0084           ;  PORTC&=~E;
 0084 AC98              cbi 0x15,4
 0086                   .dbline 51
 0086           ;  delay(100);
 0086 04E6              ldi R16,100
 0088 10E0              ldi R17,0
 008A E9DF              rcall _delay
 008C                   .dbline -2
 008C           L22:
 008C 00D0              rcall pop_gset1
 008E                   .dbline 0 ; func end
 008E 0895              ret
 0090                   .dbsym r lcddata 20 c
 0090                   .dbend
 0090                   .dbfunc e writecom _writecom fV
 0090           ;        lcddata -> R20
                        .even
 0090           _writecom::
 0090 00D0              rcall push_gset1
 0092 402F              mov R20,R16
 0094                   .dbline -1
 0094                   .dbline 55
 0094           ; }
 0094           ; /////////////////////////////////
 0094           ; void writecom(uchar lcddata)
 0094           ; {
 0094                   .dbline 57
 0094           ; // E=1;
 0094           ;  PORTC|=E;
 0094 AC9A              sbi 0x15,4
 0096                   .dbline 59
 0096           ; // RS=0;
 0096           ;  PORTC&=~RS;
 0096 AA98              cbi 0x15,2
 0098                   .dbline 61
 0098           ; // RW=0;
 0098           ;  PORTA=lcddata;
 0098 4BBB              out 0x1b,R20
 009A                   .dbline 63
 009A           ; // E=0; 
 009A           ;  PORTC&=~E;
 009A AC98              cbi 0x15,4
 009C                   .dbline 64
 009C           ;  delay(100);
 009C 04E6              ldi R16,100
 009E 10E0              ldi R17,0
 00A0 DEDF              rcall _delay
 00A2                   .dbline -2
 00A2           L23:
 00A2 00D0              rcall pop_gset1
 00A4                   .dbline 0 ; func end
 00A4 0895              ret
 00A6                   .dbsym r lcddata 20 c
 00A6                   .dbend
 00A6                   .dbfunc e writeline _writeline fV
 00A6           ;            str -> R20,R21
                        .even
 00A6           _writeline::
 00A6 00D0              rcall push_gset1
 00A8 A801              movw R20,R16
 00AA                   .dbline -1
 00AA                   .dbline 68
 00AA           ; }
 00AA           ; 
 00AA           ; void writeline(uchar *str)
 00AA           ; {
 00AA 04C0              rjmp L26
 00AC           L25:
 00AC                   .dbline 69
 00AC FA01              movw R30,R20
 00AE 0191              ld R16,Z+
 00B0 AF01              movw R20,R30
 00B2 E3DF              rcall _writedata
 00B4           L26:
 00B4                   .dbline 69
 00B4           ;  while(*str)writedata(*str++);
 00B4 FA01              movw R30,R20
 00B6 2080              ldd R2,z+0
 00B8 2220              tst R2
 00BA C1F7              brne L25
 00BC                   .dbline -2
 00BC           L24:
 00BC 00D0              rcall pop_gset1
 00BE                   .dbline 0 ; func end
 00BE 0895              ret
 00C0                   .dbsym r str 20 pc
 00C0                   .dbend
 00C0                   .dbfunc e initlcd _initlcd fV
                        .even
 00C0           _initlcd::
 00C0                   .dbline -1
 00C0                   .dbline 74
 00C0           ; }
 00C0           ; 
 00C0           ; ///////////////////////////////////
 00C0           ; void initlcd()
 00C0           ; {
 00C0                   .dbline 76
 00C0           ; 
 00C0           ;  writecom(0x01);      //清屏
 00C0 01E0              ldi R16,1
 00C2 E6DF              rcall _writecom
 00C4                   .dbline 77
 00C4           ;  writecom(0x38);      //功能设置
 00C4 08E3              ldi R16,56
 00C6 E4DF              rcall _writecom
 00C8                   .dbline 78
 00C8           ;  writecom(0x0f);      //显示开关控制
 00C8 0FE0              ldi R16,15
 00CA E2DF              rcall _writecom
 00CC                   .dbline 79
 00CC           ;  writecom(0x06);      //设置输入模式
 00CC 06E0              ldi R16,6
 00CE E0DF              rcall _writecom
 00D0                   .dbline 80
 00D0           ;  writecom(0x01);      //清屏
 00D0 01E0              ldi R16,1
 00D2 DEDF              rcall _writecom
 00D4                   .dbline 81
 00D4           ;  writecom(0x80);      //回车
 00D4 00E8              ldi R16,128
 00D6 DCDF              rcall _writecom
 00D8                   .dbline -2
 00D8           L28:
 00D8                   .dbline 0 ; func end
 00D8 0895              ret
 00DA                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile C:\ATMega8515\LCD\main.c
 0000           L9:
 0000                   .blkb 14
                        .area idata
 0000 466F7241544D6567613835313500      .byte 'F,'o,'r,'A,'T,'M,'e,'g,'a,56,53,49,53,0
                        .area data(ram, con, rel)
 000E                   .dbfile C:\ATMega8515\LCD\main.c
 000E           L5:
 000E                   .blkb 13
                        .area idata
 000E 48656C6C6F20576F726C642100        .byte 'H,'e,'l,'l,'o,32,'W,'o,'r,'l,'d,33,0
                        .area data(ram, con, rel)
 001B                   .dbfile C:\ATMega8515\LCD\main.c

⌨️ 快捷键说明

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