📄 1.lis
字号:
.module _1.c
.area data(ram, con, rel)
0000 _disp::
0000 .blkb 2
.area idata
0000 C0F9 .byte 192,249
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 A4B0 .byte 164,176
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 9992 .byte 153,146
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 82F8 .byte 130,248
.area data(ram, con, rel)
0008 .blkb 2
.area idata
0008 8090 .byte 128,144
.area data(ram, con, rel)
000A .dbfile E:\MYAVRW~1\SPI˫~2\1.c
000A .dbsym e disp _disp A[10:10]c
.area text(rom, con, rel)
0000 .dbfile E:\MYAVRW~1\SPI˫~2\1.c
0000 .dbfunc e delayms _delayms fV
0000 ; a -> R16
.even
0000 _delayms::
0000 .dbline -1
0000 .dbline 6
0000 ; #include < iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "lcd1602.h"
0000 ; unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
0000 ; void delayms(void)
0000 ; {
0000 .dbline 8
0000 ; char a;
0000 ; for(a=0;a<141;a++)
0000 0027 clr R16
0002 01C0 xjmp L5
0004 L2:
0004 .dbline 9
0004 L3:
0004 .dbline 8
0004 0395 inc R16
0006 L5:
0006 .dbline 8
0006 0D38 cpi R16,141
0008 E8F3 brlo L2
000A .dbline -2
000A L1:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbsym r a 16 c
000C .dbend
000C .dbfunc e delay _delay fV
000C ; b -> R20,R21
000C ; a -> R22,R23
.even
000C _delay::
000C 0E940000 xcall push_gset2
0010 B801 movw R22,R16
0012 .dbline -1
0012 .dbline 12
0012 ; ;
0012 ; }
0012 ; void delay(int a)
0012 ; {
0012 .dbline 14
0012 ; int b;
0012 ; for(b=0;b<a;b++)
0012 4427 clr R20
0014 5527 clr R21
0016 03C0 xjmp L10
0018 L7:
0018 .dbline 15
0018 F3DF xcall _delayms
001A L8:
001A .dbline 14
001A 4F5F subi R20,255 ; offset = 1
001C 5F4F sbci R21,255
001E L10:
001E .dbline 14
001E 4617 cp R20,R22
0020 5707 cpc R21,R23
0022 D4F3 brlt L7
0024 .dbline -2
0024 L6:
0024 0E940000 xcall pop_gset2
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r b 20 I
002A .dbsym r a 22 I
002A .dbend
002A .dbfunc e Spi_init _Spi_init fV
.even
002A _Spi_init::
002A .dbline -1
002A .dbline 18
002A ; delayms();
002A ; }
002A ; void Spi_init()
002A ; {
002A .dbline 19
002A ; DDRB|=(1<<6);
002A BE9A sbi 0x17,6
002C .dbline 20
002C ; SPCR=0xE3;
002C 83EE ldi R24,227
002E 8DB9 out 0xd,R24
0030 .dbline 21
0030 ; SPSR=0x00;
0030 2224 clr R2
0032 2EB8 out 0xe,R2
0034 .dbline -2
0034 L11:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbend
0036 .dbfunc e main _main fV
0036 ; str -> R20,R21
.even
0036 _main::
0036 2297 sbiw R28,2
0038 .dbline -1
0038 .dbline 25
0038 ; }
0038 ;
0038 ; void main()
0038 ; {
0038 .dbline 26
0038 ; char *str="receive data :";
0038 40E0 ldi R20,<L13
003A 50E0 ldi R21,>L13
003C .dbline 28
003C ;
003C ; DDRA=0xFF;
003C 8FEF ldi R24,255
003E 8ABB out 0x1a,R24
0040 .dbline 29
0040 ; PORTA=0x00;
0040 2224 clr R2
0042 2BBA out 0x1b,R2
0044 .dbline 30
0044 ; DDRB=0xFF;
0044 87BB out 0x17,R24
0046 .dbline 31
0046 ; PORTB=0x00;
0046 28BA out 0x18,R2
0048 .dbline 32
0048 ; DDRC=0x00;
0048 24BA out 0x14,R2
004A .dbline 33
004A ; PORTC=0x00;
004A 25BA out 0x15,R2
004C .dbline 34
004C ; DDRD=0x00;
004C 21BA out 0x11,R2
004E .dbline 35
004E ; PORTD=0x00;
004E 22BA out 0x12,R2
0050 .dbline 38
0050 ;
0050 ;
0050 ; SEI();
0050 7894 sei
0052 .dbline 40
0052 ;
0052 ; Spi_init();
0052 EBDF xcall _Spi_init
0054 .dbline 42
0054 ;
0054 ; LCD_init();
0054 0E940000 xcall _LCD_init
0058 .dbline 43
0058 ; LCD_write_str(0,0,str);
0058 5983 std y+1,R21
005A 4883 std y+0,R20
005C 2227 clr R18
005E 0027 clr R16
0060 0E940000 xcall _LCD_write_str
0064 L14:
0064 .dbline 47
0064 L15:
0064 .dbline 47
0064 FFCF xjmp L14
0066 X0:
0066 .dbline -2
0066 L12:
0066 2296 adiw R28,2
0068 .dbline 0 ; func end
0068 0895 ret
006A .dbsym r str 20 pc
006A .dbend
.area vector(rom, abs)
.org 40
0028 0C943500 jmp _in
.area text(rom, con, rel)
006A .dbfile E:\MYAVRW~1\SPI˫~2\1.c
006A .dbfunc e in _in fV
006A ; temp -> y+1
.even
006A _in::
006A 0E940000 xcall push_lset
006E 2497 sbiw R28,4
0070 .dbline -1
0070 .dbline 54
0070 ;
0070 ;
0070 ;
0070 ; while(1);
0070 ;
0070 ; }
0070 ;
0070 ;
0070 ; #pragma interrupt_handler in:11
0070 ; void in()
0070 ; {
0070 .dbline 58
0070 ; char temp[3];
0070 ;
0070 ;
0070 ; temp[2]= (SPDR /100)%10+'0';
0070 14E6 ldi R17,100
0072 0FB1 in R16,0xf
0074 0E940000 xcall div8u
0078 1AE0 ldi R17,10
007A 0E940000 xcall mod8u
007E 802F mov R24,R16
0080 805D subi R24,208 ; addi 48
0082 8B83 std y+3,R24
0084 .dbline 59
0084 ; temp[1] = (SPDR /10) %10+'0';
0084 1AE0 ldi R17,10
0086 0FB1 in R16,0xf
0088 0E940000 xcall div8u
008C 1AE0 ldi R17,10
008E 0E940000 xcall mod8u
0092 802F mov R24,R16
0094 805D subi R24,208 ; addi 48
0096 8A83 std y+2,R24
0098 .dbline 60
0098 ; temp[0] = (SPDR % 10)+'0';
0098 1AE0 ldi R17,10
009A 0FB1 in R16,0xf
009C 0E940000 xcall mod8u
00A0 802F mov R24,R16
00A2 805D subi R24,208 ; addi 48
00A4 8983 std y+1,R24
00A6 .dbline 63
00A6 ;
00A6 ;
00A6 ; LCD_write_char(11,1,temp[2]);
00A6 2B80 ldd R2,y+3
00A8 2882 std y+0,R2
00AA 21E0 ldi R18,1
00AC 0BE0 ldi R16,11
00AE 0E940000 xcall _LCD_write_char
00B2 .dbline 65
00B2 ;
00B2 ; LCD_write_char(12,1,temp[1]);
00B2 2A80 ldd R2,y+2
00B4 2882 std y+0,R2
00B6 21E0 ldi R18,1
00B8 0CE0 ldi R16,12
00BA 0E940000 xcall _LCD_write_char
00BE .dbline 67
00BE ;
00BE ; LCD_write_char(13,1,temp[0]);
00BE 2980 ldd R2,y+1
00C0 2882 std y+0,R2
00C2 21E0 ldi R18,1
00C4 0DE0 ldi R16,13
00C6 0E940000 xcall _LCD_write_char
00CA .dbline -2
00CA L17:
00CA 2496 adiw R28,4
00CC 0E940000 xcall pop_lset
00D0 .dbline 0 ; func end
00D0 1895 reti
00D2 .dbsym l temp 1 A[3:3]c
00D2 .dbend
.area data(ram, con, rel)
000A .dbfile E:\MYAVRW~1\SPI˫~2\1.c
000A L13:
000A .blkb 15
.area idata
000A 726563656976652064617461203A00 .byte 'r,'e,'c,'e,'i,'v,'e,32,'d,'a,'t,'a,32,58,0
.area data(ram, con, rel)
0019 .dbfile E:\MYAVRW~1\SPI˫~2\1.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -