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

📄 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双~1\1.c
 000A                   .dbsym e disp _disp A[10:10]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\MYAVRW~1\SPI双~1\1.c
 0000                   .dbfunc e delayms _delayms fV
 0000           ;              a -> R16
                        .even
 0000           _delayms::
 0000                   .dbline -1
 0000                   .dbline 5
 0000           ; #include < iom16v.h>
 0000           ; #include <macros.h>
 0000           ; unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
 0000           ; void delayms(void)
 0000           ; {
 0000                   .dbline 7
 0000           ; char a;
 0000           ; for(a=0;a<141;a++)
 0000 0027              clr R16
 0002 01C0              xjmp L5
 0004           L2:
 0004                   .dbline 8
 0004           L3:
 0004                   .dbline 7
 0004 0395              inc R16
 0006           L5:
 0006                   .dbline 7
 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 11
 0012           ; ;
 0012           ; }
 0012           ; void delay(int a)
 0012           ; {
 0012                   .dbline 13
 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 14
 0018 F3DF              xcall _delayms
 001A           L8:
 001A                   .dbline 13
 001A 4F5F              subi R20,255  ; offset = 1
 001C 5F4F              sbci R21,255
 001E           L10:
 001E                   .dbline 13
 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 17
 002A           ; delayms();
 002A           ; }
 002A           ; void Spi_init()
 002A           ; {
 002A                   .dbline 18
 002A           ; DDRB|=(1<<7)|(1<<5)|(1<<4);
 002A 87B3              in R24,0x17
 002C 806B              ori R24,176
 002E 87BB              out 0x17,R24
 0030                   .dbline 19
 0030           ; SPCR=0x73;
 0030 83E7              ldi R24,115
 0032 8DB9              out 0xd,R24
 0034                   .dbline 20
 0034           ; SPSR=0x00;
 0034 2224              clr R2
 0036 2EB8              out 0xe,R2
 0038                   .dbline -2
 0038           L11:
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbend
 003A                   .dbfunc e Spi_Transmit _Spi_Transmit fV
 003A           ;              a -> R16,R17
                        .even
 003A           _Spi_Transmit::
 003A                   .dbline -1
 003A                   .dbline 23
 003A           ; }
 003A           ; void Spi_Transmit(int a)
 003A           ; {
 003A                   .dbline 24
 003A           ; PORTB&=~(1<<4);
 003A C498              cbi 0x18,4
 003C                   .dbline 25
 003C           ; SPCR |= (1<<MSTR); // MSTR有时会被清零,这里强制进入主机模式
 003C 6C9A              sbi 0xd,4
 003E                   .dbline 26
 003E           ; SPDR=a;
 003E 0FB9              out 0xf,R16
 0040           L13:
 0040                   .dbline 27
 0040           L14:
 0040                   .dbline 27
 0040           ; while(SPSR^0X80);
 0040 80E8              ldi R24,128
 0042 90E0              ldi R25,0
 0044 2EB0              in R2,0xe
 0046 3324              clr R3
 0048 2826              eor R2,R24
 004A 3926              eor R3,R25
 004C 2220              tst R2
 004E C1F7              brne L13
 0050 3320              tst R3
 0052 B1F7              brne L13
 0054           X0:
 0054                   .dbline 28
 0054           ; PORTB|=(1<<4);
 0054 C49A              sbi 0x18,4
 0056                   .dbline -2
 0056           L12:
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbsym r a 16 I
 0058                   .dbend
 0058                   .dbfunc e main _main fV
 0058           ;           data -> R20
                        .even
 0058           _main::
 0058                   .dbline -1
 0058                   .dbline 33
 0058           ; 
 0058           ; }
 0058           ; 
 0058           ; void main()
 0058           ; {
 0058                   .dbline 35
 0058           ; unsigned char data;
 0058           ; DDRA=0x00;
 0058 2224              clr R2
 005A 2ABA              out 0x1a,R2
 005C                   .dbline 36
 005C           ; PORTA=0xFF;
 005C 8FEF              ldi R24,255
 005E 8BBB              out 0x1b,R24
 0060                   .dbline 37
 0060           ; DDRB=0xFF;
 0060 87BB              out 0x17,R24
 0062                   .dbline 38
 0062           ; PORTB=0xFF;
 0062 88BB              out 0x18,R24
 0064                   .dbline 39
 0064           ; DDRC=0x00;
 0064 24BA              out 0x14,R2
 0066                   .dbline 40
 0066           ; PORTC=0x00;
 0066 25BA              out 0x15,R2
 0068                   .dbline 41
 0068           ; DDRD=0x00;
 0068 21BA              out 0x11,R2
 006A                   .dbline 42
 006A           ; PORTD=0x00;
 006A 22BA              out 0x12,R2
 006C                   .dbline 44
 006C           ; 
 006C           ; Spi_init();
 006C DEDF              xcall _Spi_init
 006E 0BC0              xjmp L18
 0070           L17:
 0070                   .dbline 47
 0070           ; 
 0070           ; while(1)
 0070           ; {
 0070                   .dbline 48
 0070           ; for(data=0;data<111;data++)
 0070 4427              clr R20
 0072 07C0              xjmp L23
 0074           L20:
 0074                   .dbline 50
 0074                   .dbline 51
 0074 08EE              ldi R16,1000
 0076 13E0              ldi R17,3
 0078 C9DF              xcall _delay
 007A                   .dbline 52
 007A 042F              mov R16,R20
 007C 1127              clr R17
 007E DDDF              xcall _Spi_Transmit
 0080                   .dbline 54
 0080           L21:
 0080                   .dbline 48
 0080 4395              inc R20
 0082           L23:
 0082                   .dbline 48
 0082 4F36              cpi R20,111
 0084 B8F3              brlo L20
 0086                   .dbline 61
 0086           L18:
 0086                   .dbline 46
 0086 F4CF              xjmp L17
 0088           X1:
 0088                   .dbline -2
 0088           L16:
 0088                   .dbline 0 ; func end
 0088 0895              ret
 008A                   .dbsym r data 20 c
 008A                   .dbend

⌨️ 快捷键说明

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