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

📄 test_isp.lis

📁 AVR单片机开发中
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module test_isp.c
                        .area text(rom, con, rel)
 0000                   .dbfile H:\m128_test\test_isp.c
 0000                   .dbfunc e spi_tranByte _spi_tranByte fc
 0000           ;              p -> R20,R21
 0000           ;           addr -> R18,R19
 0000           ;          cData -> R16
                        .even
 0000           _spi_tranByte::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 26
 0004           ; //ICC-AVR application builder : 2005-3-21 10:06:01
 0004           ; // Target : M128
 0004           ; // Crystal: 16.000Mhz
 0004           ; 
 0004           ; #include <iom128v.h>
 0004           ; #include <macros.h>
 0004           ; #include <stdio.h>
 0004           ; #define CH1    1
 0004           ; #define CH2    2
 0004           ; #define CH3    4
 0004           ; #define  READY 0XAA
 0004           ; #define  STOP  0X00
 0004           ; #define  TEST  0x1A
 0004           ; 
 0004           ; extern long len;
 0004           ; //SPI initialize
 0004           ; // clock rate: 2000000hz
 0004           ; 
 0004           ; 
 0004           ;   
 0004           ;   
 0004           ; 
 0004           ; 
 0004           ; 
 0004           ; unsigned char spi_tranByte (unsigned char cData, int addr)
 0004           ; {     
 0004                   .dbline 28
 0004           ;       
 0004           ;         unsigned char *p = (unsigned char *) addr;
 0004 A901              movw R20,R18
 0006                   .dbline 30
 0006           ;  
 0006           ;       *p = 0x00;
 0006 2224              clr R2
 0008 FA01              movw R30,R20
 000A 2082              std z+0,R2
 000C                   .dbline 31
 000C           ;       SPDR = cData;
 000C 0FB9              out 0xf,R16
 000E           L2:
 000E                   .dbline 32
 000E           L3:
 000E                   .dbline 32
 000E           ;         while (!(SPSR&0x80));
 000E 779B              sbis 0xe,7
 0010 FECF              rjmp L2
 0012                   .dbline 33
 0012           ;         return SPDR;
 0012 0FB1              in R16,0xf
 0014                   .dbline -2
 0014           L1:
 0014 0E940000          xcall pop_gset1
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbsym r p 20 pc
 001A                   .dbsym r addr 18 I
 001A                   .dbsym r cData 16 c
 001A                   .dbend
 001A                   .dbfunc e spi_cnt _spi_cnt fL
 001A           ;           temp -> y+0
 001A           ;            buf -> R10
 001A           ;            cha -> R12
                        .even
 001A           _spi_cnt::
 001A 0E940000          xcall push_gset4
 001E C02E              mov R12,R16
 0020 2497              sbiw R28,4
 0022                   .dbline -1
 0022                   .dbline 40
 0022           ; 
 0022           ; }
 0022           ; 
 0022           ;          
 0022           ;          
 0022           ; long spi_cnt(unsigned char cha)
 0022           ; {  
 0022                   .dbline 41
 0022           ;       long temp=0;
 0022 40E0              ldi R20,0
 0024 50E0              ldi R21,0
 0026 60E0              ldi R22,0
 0028 70E0              ldi R23,0
 002A FE01              movw R30,R28
 002C 4083              std z+0,R20
 002E 5183              std z+1,R21
 0030 6283              std z+2,R22
 0032 7383              std z+3,R23
 0034                   .dbline 42
 0034           ;       unsigned char buf=0;
 0034 AA24              clr R10
 0036                   .dbline 43
 0036           ;         temp=0;
 0036 40E0              ldi R20,0
 0038 50E0              ldi R21,0
 003A 60E0              ldi R22,0
 003C 70E0              ldi R23,0
 003E 4083              std z+0,R20
 0040 5183              std z+1,R21
 0042 6283              std z+2,R22
 0044 7383              std z+3,R23
 0046                   .dbline 44
 0046           ;         switch (cha)
 0046 DD24              clr R13
 0048 C601              movw R24,R12
 004A 8130              cpi R24,1
 004C E0E0              ldi R30,0
 004E 9E07              cpc R25,R30
 0050 59F0              breq L9
 0052 8230              cpi R24,2
 0054 E0E0              ldi R30,0
 0056 9E07              cpc R25,R30
 0058 09F4              brne X1
 005A 8CC0              xjmp L13
 005C           X1:
 005C 8430              cpi R24,4
 005E E0E0              ldi R30,0
 0060 9E07              cpc R25,R30
 0062 09F4              brne X2
 0064 2EC1              xjmp L17
 0066           X2:
 0066 D3C1              xjmp L6
 0068           X0:
 0068                   .dbline 45
 0068           ;         {
 0068           L9:
 0068           L10:
 0068                   .dbline 47
 0068           ;                case CH1:     do
 0068           ;                                      {
 0068                   .dbline 48
 0068           ;                                      buf=spi_tranByte (CH1,0X9000);
 0068 20E0              ldi R18,36864
 006A 30E9              ldi R19,144
 006C 01E0              ldi R16,1
 006E C8DF              xcall _spi_tranByte
 0070 A02E              mov R10,R16
 0072                   .dbline 49
 0072           ;                                                  asm ("nop");
 0072 0000              nop
 0074                   .dbline 50
 0074           ;                                      asm ("nop");  
 0074 0000              nop
 0076                   .dbline 51
 0076           ;                              asm ("nop");
 0076 0000              nop
 0078                   .dbline 52
 0078           ;                                                  }
 0078           L11:
 0078                   .dbline 53
 0078           ;                                                  while(buf!=READY);
 0078 8A2D              mov R24,R10
 007A 8A3A              cpi R24,170
 007C A9F7              brne L10
 007E                   .dbline 54
 007E           ;                                                  delay_nus(100);
 007E 04E6              ldi R16,100
 0080 10E0              ldi R17,0
 0082 0E940000          xcall _delay_nus
 0086                   .dbline 55
 0086           ;                                                  buf=spi_tranByte (CH1,0x9000);
 0086 20E0              ldi R18,36864
 0088 30E9              ldi R19,144
 008A 01E0              ldi R16,1
 008C B9DF              xcall _spi_tranByte
 008E A02E              mov R10,R16
 0090                   .dbline 56
 0090           ;                                                  temp=buf;
 0090 2A2C              mov R2,R10
 0092 3324              clr R3
 0094 4424              clr R4
 0096 5524              clr R5
 0098 FE01              movw R30,R28
 009A 2082              std z+0,R2
 009C 3182              std z+1,R3
 009E 4282              std z+2,R4
 00A0 5382              std z+3,R5
 00A2                   .dbline 57
 00A2           ;                                                  temp=temp*256;
 00A2 40E0              ldi R20,0
 00A4 51E0              ldi R21,1
 00A6 60E0              ldi R22,0
 00A8 70E0              ldi R23,0
 00AA 5A92              st -y,R5
 00AC 4A92              st -y,R4
 00AE 3A92              st -y,R3
 00B0 2A92              st -y,R2
 00B2 8A01              movw R16,R20
 00B4 9B01              movw R18,R22
 00B6 0E940000          xcall empy32s
 00BA FE01              movw R30,R28
 00BC 0083              std z+0,R16
 00BE 1183              std z+1,R17
 00C0 2283              std z+2,R18
 00C2 3383              std z+3,R19
 00C4                   .dbline 59
 00C4           ;                                                 
 00C4           ;                                                  buf=spi_tranByte (CH1,0x9000);
 00C4 20E0              ldi R18,36864
 00C6 30E9              ldi R19,144
 00C8 01E0              ldi R16,1
 00CA 9ADF              xcall _spi_tranByte
 00CC A02E              mov R10,R16
 00CE                   .dbline 60
 00CE           ;                                                  temp=temp+buf;
 00CE 2A2C              mov R2,R10
 00D0 3324              clr R3
 00D2 4424              clr R4
 00D4 5524              clr R5
 00D6 FE01              movw R30,R28
 00D8 6080              ldd R6,z+0
 00DA 7180              ldd R7,z+1
 00DC 8280              ldd R8,z+2
 00DE 9380              ldd R9,z+3
 00E0 620C              add R6,R2
 00E2 731C              adc R7,R3
 00E4 841C              adc R8,R4
 00E6 951C              adc R9,R5
 00E8 6082              std z+0,R6
 00EA 7182              std z+1,R7
 00EC 8282              std z+2,R8
 00EE 9382              std z+3,R9
 00F0                   .dbline 61
 00F0           ;                                                  temp=temp*256;
 00F0 2080              ldd R2,z+0
 00F2 3180              ldd R3,z+1
 00F4 4280              ldd R4,z+2
 00F6 5380              ldd R5,z+3
 00F8 40E0              ldi R20,0
 00FA 51E0              ldi R21,1
 00FC 60E0              ldi R22,0
 00FE 70E0              ldi R23,0
 0100 5A92              st -y,R5
 0102 4A92              st -y,R4
 0104 3A92              st -y,R3
 0106 2A92              st -y,R2
 0108 8A01              movw R16,R20
 010A 9B01              movw R18,R22
 010C 0E940000          xcall empy32s
 0110 FE01              movw R30,R28
 0112 0083              std z+0,R16
 0114 1183              std z+1,R17
 0116 2283              std z+2,R18
 0118 3383              std z+3,R19
 011A                   .dbline 62
 011A           ;                                                  buf=spi_tranByte (CH1,0x9000);
 011A 20E0              ldi R18,36864
 011C 30E9              ldi R19,144
 011E 01E0              ldi R16,1
 0120 6FDF              xcall _spi_tranByte
 0122 A02E              mov R10,R16
 0124                   .dbline 63
 0124           ;                                                  temp=temp+buf;
 0124 2A2C              mov R2,R10
 0126 3324              clr R3
 0128 4424              clr R4
 012A 5524              clr R5
 012C FE01              movw R30,R28
 012E 6080              ldd R6,z+0
 0130 7180              ldd R7,z+1
 0132 8280              ldd R8,z+2
 0134 9380              ldd R9,z+3
 0136 620C              add R6,R2
 0138 731C              adc R7,R3
 013A 841C              adc R8,R4
 013C 951C              adc R9,R5
 013E 6082              std z+0,R6
 0140 7182              std z+1,R7
 0142 8282              std z+2,R8
 0144 9382              std z+3,R9
 0146                   .dbline 64
 0146           ;                                                  temp*256;

⌨️ 快捷键说明

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