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

📄 1.lis

📁 AVR mega16双机通讯实验 从机接受数据并发送到lcd1602上显示
💻 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 + -