📄 main.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 _leddata::
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 leddata _leddata c
0001 _left::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile C:\ATMega8515\测试程序\main.c
0002 .dbsym e left _left c
0002 _right::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile C:\ATMega8515\测试程序\main.c
0003 .dbsym e right _right c
0003 _lcdindex::
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile C:\ATMega8515\测试程序\main.c
0004 .dbsym e lcdindex _lcdindex c
0004 _ledflag::
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile C:\ATMega8515\测试程序\main.c
0005 .dbsym e ledflag _ledflag c
0005 _shuflag::
0005 .blkb 1
.area idata
0005 00 .byte 0
.area data(ram, con, rel)
0006 .dbfile C:\ATMega8515\测试程序\main.c
0006 .dbsym e shuflag _shuflag c
0006 _lcdflag::
0006 .blkb 1
.area idata
0006 00 .byte 0
.area data(ram, con, rel)
0007 .dbfile C:\ATMega8515\测试程序\main.c
0007 .dbsym e lcdflag _lcdflag c
0007 _index::
0007 .blkb 1
.area idata
0007 00 .byte 0
.area data(ram, con, rel)
0008 .dbfile C:\ATMega8515\测试程序\main.c
0008 .dbsym e index _index c
.area lit(rom, con, rel)
0010 _str::
0010 30313233343536373839414243444546 .byte 48,49,50,51,52,53,54,55,56,57,'A,'B,'C,'D,'E,'F
0020 00 .byte 0
0021 .dbsym e str _str A[17:17]kc
0021 _line::
0021 0002 .byte 0,2
0023 0406 .byte 4,6
0025 080A .byte 8,10
0027 0C0E .byte 12,14
0029 0002 .byte 0,2
002B 0406 .byte 4,6
002D 080A .byte 8,10
002F 0C0E .byte 12,14
0031 .dbsym e line _line A[16:16]kc
0031 _pic1::
0031 1818 .byte 24,24
0033 99DB .byte 153,219
0035 7E3C .byte 126,60
0037 1800 .byte 24,0
0039 .dbsym e pic1 _pic1 A[8:8]kc
.area text(rom, con, rel)
0000 .dbfile C:\ATMega8515\测试程序\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 .dbline -1
0000 .dbline 41
0000 ; #include <iom8515v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ; #include"ForATmega8515.h"
0000 ;
0000 ; #define SomeNop NOP();NOP();NOP();NOP();NOP();NOP();\
0000 ; NOP();NOP();NOP();NOP();NOP();NOP();\
0000 ; NOP();NOP();NOP();NOP();NOP();NOP();
0000 ;
0000 ; #define C0 0x04
0000 ; #define C1 0x08
0000 ; #define C2 0x10
0000 ; #define R0 0x40
0000 ; #define R1 0x80
0000 ; ///////////////////////////////
0000 ; uchar leddata=0;
0000 ; uchar left=0;
0000 ; uchar right=0;
0000 ; uchar lcdindex=0;
0000 ; unsigned char ledflag=0;
0000 ; unsigned char shuflag=0;
0000 ; unsigned char lcdflag=0;
0000 ; uchar index=0;
0000 ; uchar key,temp;
0000 ; uchar const str[]={"0123456789ABCDEF"};
0000 ; uchar const line[]={0,2,4,6,8,10,12,14,
0000 ; 0,2,4,6,8,10,12,14};//关
0000 ; uchar const pic1[]={0x18,0x18,0x99,0xDB,0x7E,0x3C,0x18,0x00};
0000 ; ///////////////////////////////
0000 ; void delay(uint ticks);
0000 ; void display();
0000 ; /////////LCD///////////
0000 ; void writedata(uchar lcddata);
0000 ; void writecom(uchar lcddata);
0000 ; void writeline(uchar x,uchar const *pt);
0000 ; void initlcd();
0000 ; //////////////////////////////
0000 ; uchar GetKey(void);
0000 ; /////////////////////////////
0000 ; void main()
0000 ; {
0000 .dbline 42
0000 ; init_devices();
0000 00D0 rcall _init_devices
0002 .dbline 43
0002 ; initlcd();
0002 23D1 rcall _initlcd
0004 .dbline 44
0004 ; printf("-----------Test For ATMega8515--------------\n");
0004 00E0 ldi R16,<L2
0006 10E0 ldi R17,>L2
0008 00D0 rcall _printf
000A 87C0 rjmp L4
000C L3:
000C .dbline 46
000C ; while(1)
000C ; {
000C .dbline 47
000C ; display();
000C 96D0 rcall _display
000E .dbline 48
000E 20900400 lds R2,_ledflag
0012 2220 tst R2
0014 A9F0 breq L6
0016 .dbline 48
0016 .dbline 48
0016 80910000 lds R24,_leddata
001A 8F5F subi R24,255 ; addi 1
001C 80930000 sts _leddata,R24
0020 .dbline 48
0020 2224 clr R2
0022 20920400 sts _ledflag,R2
0026 .dbline 48
0026 20900700 lds R2,_index
002A 3324 clr R3
002C 822D mov R24,R2
002E 8F5F subi R24,255 ; addi 1
0030 80930700 sts _index,R24
0034 822D mov R24,R2
0036 8730 cpi R24,7
0038 19F4 brne L8
003A .dbline 48
003A 2224 clr R2
003C 20920700 sts _index,R2
0040 L8:
0040 .dbline 48
0040 ; if(ledflag){leddata++;ledflag=0; if(index++==7)index=0;}
0040 L6:
0040 .dbline 49
0040 20900500 lds R2,_shuflag
0044 2220 tst R2
0046 81F0 breq L10
0048 .dbline 49
0048 .dbline 49
0048 20900100 lds R2,_left
004C 3324 clr R3
004E 822D mov R24,R2
0050 8F5F subi R24,255 ; addi 1
0052 80930100 sts _left,R24
0056 822D mov R24,R2
0058 8930 cpi R24,9
005A 19F4 brne L12
005C .dbline 49
005C 2224 clr R2
005E 20920100 sts _left,R2
0062 L12:
0062 .dbline 49
0062 ; if(shuflag){if(left++==9)left=0;shuflag=0;}
0062 2224 clr R2
0064 20920500 sts _shuflag,R2
0068 .dbline 49
0068 L10:
0068 .dbline 50
0068 20900600 lds R2,_lcdflag
006C 2220 tst R2
006E A9F0 breq L14
0070 .dbline 50
0070 .dbline 50
0070 20900300 lds R2,_lcdindex
0074 3324 clr R3
0076 822D mov R24,R2
0078 8F5F subi R24,255 ; addi 1
007A 80930300 sts _lcdindex,R24
007E 822D mov R24,R2
0080 8031 cpi R24,16
0082 19F4 brne L16
0084 .dbline 50
0084 2224 clr R2
0086 20920300 sts _lcdindex,R2
008A L16:
008A .dbline 50
008A ; if(lcdflag){if(lcdindex++==16)lcdindex=0;writeline(lcdindex,str);lcdflag=0;}
008A 20E0 ldi R18,<_str
008C 30E0 ldi R19,>_str
008E 00910300 lds R16,_lcdindex
0092 C8D0 rcall _writeline
0094 .dbline 50
0094 2224 clr R2
0096 20920600 sts _lcdflag,R2
009A .dbline 50
009A L14:
009A .dbline 51
009A ; if(lcdindex==16)PORTD&=~BEEL;
009A 80910300 lds R24,_lcdindex
009E 8031 cpi R24,16
00A0 11F4 brne L18
00A2 .dbline 51
00A2 9598 cbi 0x12,5
00A4 01C0 rjmp L19
00A6 L18:
00A6 .dbline 52
00A6 ; else PORTD|=BEEL;
00A6 959A sbi 0x12,5
00A8 L19:
00A8 .dbline 54
00A8 ; ///////////////////////////////////
00A8 ; temp=GetKey();
00A8 DDD0 rcall _GetKey
00AA 00930000 sts _temp,R16
00AE .dbline 55
00AE ; key=temp;
00AE 202E mov R2,R16
00B0 20920100 sts _key,R2
00B4 .dbline 56
00B4 ; if((key&0x10)!=0)
00B4 04FF sbrs R16,4
00B6 16C0 rjmp L20
00B8 .dbline 57
00B8 ; {
00B8 .dbline 58
00B8 ; if((temp&0x01)==0)right=1;
00B8 00FD sbrc R16,0
00BA 04C0 rjmp L22
00BC .dbline 58
00BC 81E0 ldi R24,1
00BE 80930200 sts _right,R24
00C2 2BC0 rjmp L21
00C4 L22:
00C4 .dbline 59
00C4 ; else if((temp&0x02)==0)right=3;
00C4 20900000 lds R2,_temp
00C8 21FC sbrc R2,1
00CA 04C0 rjmp L24
00CC .dbline 59
00CC 83E0 ldi R24,3
00CE 80930200 sts _right,R24
00D2 23C0 rjmp L21
00D4 L24:
00D4 .dbline 60
00D4 ; else if((temp&0x04)==0)right=5;
00D4 20900000 lds R2,_temp
00D8 22FC sbrc R2,2
00DA 1FC0 rjmp L21
00DC .dbline 60
00DC 85E0 ldi R24,5
00DE 80930200 sts _right,R24
00E2 .dbline 61
00E2 ; }
00E2 1BC0 rjmp L21
00E4 L20:
00E4 .dbline 62
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -