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

📄 spi.lis

📁 AVR单片机的C语言编写,用语SPI通讯,用iccavr编写,可以学习
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module SPI.C
                        .area data(ram, con, rel)
 0000           _Table::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .dbfile J:\AVRpractice\BOOK\SPI\SPI.C
 000A                   .dbsym e Table _Table A[10:10]c
 000A           _Data::
 000A                   .blkb 2
                        .area idata
 000A 0000              .byte 0,0
                        .area data(ram, con, rel)
 000C                   .dbfile J:\AVRpractice\BOOK\SPI\SPI.C
 000C                   .blkb 2
                        .area idata
 000C 0000              .byte 0,0
                        .area data(ram, con, rel)
 000E                   .dbfile J:\AVRpractice\BOOK\SPI\SPI.C
 000E                   .dbsym e Data _Data A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile J:\AVRpractice\BOOK\SPI\SPI.C
 0000                   .dbfunc e DelayMs _DelayMs fV
 0000           ;              j -> R20
 0000           ;              i -> R16,R17
                        .even
 0000           _DelayMs::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 10
 0002           ; #include<io8535v.h>
 0002           ; #include<macros.h>
 0002           ; #define uchar unsigned char
 0002           ; #define uint  unsigned int
 0002           ; 
 0002           ; uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0002           ; uchar Data[4]={0,0,0,0};
 0002           ; 
 0002           ; void DelayMs(uint i)  
 0002           ; {uchar j;
 0002                   .dbline 11
 0002           ;  for(;i!=0;i--)
 0002 07C0              rjmp L5
 0004           L2:
 0004                   .dbline 12
 0004                   .dbline 12
 0004 40ED              ldi R20,208
 0006 01C0              rjmp L9
 0008           L6:
 0008                   .dbline 12
 0008                   .dbline 12
 0008                   .dbline 12
 0008           L7:
 0008                   .dbline 12
 0008 4A95              dec R20
 000A           L9:
 000A                   .dbline 12
 000A 4423              tst R20
 000C E9F7              brne L6
 000E                   .dbline 12
 000E           L3:
 000E                   .dbline 11
 000E 0150              subi R16,1
 0010 1040              sbci R17,0
 0012           L5:
 0012                   .dbline 11
 0012 0030              cpi R16,0
 0014 0107              cpc R16,R17
 0016 B1F7              brne L2
 0018           X0:
 0018                   .dbline -2
 0018                   .dbline 13
 0018           ;   {for(j=2000;j!=0;j--) {;}}
 0018           ; }
 0018           L1:
 0018 00D0              rcall pop_gset1
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbsym r j 20 c
 001C                   .dbsym r i 16 i
 001C                   .dbend
 001C                   .dbfunc e Display _Display fV
 001C           ;            sel -> R20
 001C           ;              i -> R22
 001C           ;              p -> R10,R11
                        .even
 001C           _Display::
 001C 00D0              rcall push_gset3
 001E A02E              mov R10,R16
 0020 B12E              mov R11,R17
 0022                   .dbline -1
 0022                   .dbline 16
 0022           ; 
 0022           ; void Display(uchar *p)
 0022           ; {uchar i,sel=0x01;
 0022                   .dbline 16
 0022 41E0              ldi R20,1
 0024                   .dbline 17
 0024           ;  for(i=0;i<4;i++)
 0024 6627              clr R22
 0026 17C0              rjmp L14
 0028           L11:
 0028                   .dbline 18
 0028                   .dbline 18
 0028 4BBB              out 0x1b,R20
 002A                   .dbline 19
 002A E62F              mov R30,R22
 002C FF27              clr R31
 002E EA0D              add R30,R10
 0030 FB1D              adc R31,R11
 0032 E081              ldd R30,z+0
 0034 FF27              clr R31
 0036 80E0              ldi R24,<_Table
 0038 90E0              ldi R25,>_Table
 003A E80F              add R30,R24
 003C F91F              adc R31,R25
 003E 2080              ldd R2,z+0
 0040 3324              clr R3
 0042 8FEF              ldi R24,255
 0044 90E0              ldi R25,0
 0046 8219              sub R24,R2
 0048 9309              sbc R25,R3
 004A 85BB              out 0x15,R24
 004C                   .dbline 20
 004C 0AE0              ldi R16,10
 004E 10E0              ldi R17,0
 0050 D7DF              rcall _DelayMs
 0052                   .dbline 21
 0052 440F              lsl R20
 0054                   .dbline 22
 0054           L12:
 0054                   .dbline 17
 0054 6395              inc R22
 0056           L14:
 0056                   .dbline 17
 0056 6430              cpi R22,4
 0058 38F3              brlo L11
 005A                   .dbline -2
 005A                   .dbline 23
 005A           ;   {PORTA=sel;
 005A           ;    PORTC=0xff-Table[p[i]];
 005A           ;    DelayMs(10);
 005A           ;    sel=sel<<1;
 005A           ;   }
 005A           ; }
 005A           L10:
 005A 00D0              rcall pop_gset3
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbsym r sel 20 c
 005E                   .dbsym r i 22 c
 005E                   .dbsym r p 10 pc
 005E                   .dbend
 005E                   .dbfunc e DelayNOP _DelayNOP fV
 005E           ;              i -> R16
                        .even
 005E           _DelayNOP::
 005E                   .dbline -1
 005E                   .dbline 26
 005E           ; 
 005E           ; void DelayNOP(uchar i)
 005E           ; {for(;i!=0;i--)  
 005E                   .dbline 26
 005E 02C0              rjmp L19
 0060           L16:
 0060                   .dbline 27
 0060                   .dbline 27
 0060 0000              nop
 0062                   .dbline 27
 0062           L17:
 0062                   .dbline 26
 0062 0A95              dec R16
 0064           L19:
 0064                   .dbline 26
 0064 0023              tst R16
 0066 E1F7              brne L16
 0068                   .dbline -2
 0068                   .dbline 28
 0068           ;     { NOP();}
 0068           ; } 
 0068           L15:
 0068                   .dbline 0 ; func end
 0068 0895              ret
 006A                   .dbsym r i 16 c
 006A                   .dbend
 006A                   .dbfunc e Convert _Convert fV
 006A           ;              i -> R22
 006A           ;              p -> R20,R21
                        .even
 006A           _Convert::
 006A 00D0              rcall push_gset2
 006C 622F              mov R22,R18
 006E 402F              mov R20,R16
 0070 512F              mov R21,R17
 0072                   .dbline -1
 0072                   .dbline 31
 0072           ; 
 0072           ; void Convert(uchar *p,uchar i)
 0072           ; {p[0]=0;
 0072                   .dbline 31
 0072 2224              clr R2
 0074 E42F              mov R30,R20
 0076 F52F              mov R31,R21
 0078 2082              std z+0,R2
 007A                   .dbline 32
 007A           ;  p[1]=i/100;
 007A 14E6              ldi R17,100
 007C 062F              mov R16,R22
 007E 00D0              rcall div8u
 0080 E42F              mov R30,R20
 0082 F52F              mov R31,R21
 0084 0183              std z+1,R16
 0086                   .dbline 33
 0086           ;  p[2]=(i-p[1]*100)/10;
 0086 E42F              mov R30,R20
 0088 F52F              mov R31,R21
 008A 1181              ldd R17,z+1
 008C 04E6              ldi R16,100
 008E 00D0              rcall mpy8s
 0090 202E              mov R2,R16
 0092 062F              mov R16,R22
 0094 0219              sub R16,R2
 0096 1AE0              ldi R17,10
 0098 00D0              rcall div8u
 009A E42F              mov R30,R20
 009C F52F              mov R31,R21
 009E 0283              std z+2,R16
 00A0                   .dbline 34
 00A0           ;  p[3]=i-p[1]*100-p[2]*10;
 00A0 E42F              mov R30,R20

⌨️ 快捷键说明

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