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

📄 spi.lis

📁 sunplus spca514 cdmp3 源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0084 34C0              xjmp L6
 0086                 L13:
 0086                   .dbline 57
                       ;   case SPI_READ_LOW:
                       ;        SPDR = (unsigned char)(dvd_key>>8);
 0086 30900100          lds R3,_dvd_key+1
 008A 20900000          lds R2,_dvd_key
 008E 232C              mov R2,R3
 0090 3324              clr R3
 0092 2FB8              out 0xf,R2
 0094                   .dbline 58
                       ;        spi_command = SPI_READ_HIGH;
 0094 84E0              ldi R24,4
 0096 80930100          sts _spi_command,R24
 009A                   .dbline 59
                       ;        break;
 009A 29C0              xjmp L6
 009C                 L14:
 009C                   .dbline 61
                       ;   case SPI_READ_HIGH:
                       ;        spi_command = SPI_WAIT_COMMAND;
 009C 2224              clr R2
 009E 20920100          sts _spi_command,R2
 00A2                   .dbline 62
                       ;        dvd_key =0xffff;
 00A2 8FEF              ldi R24,-1
 00A4 9FEF              ldi R25,-1
 00A6 90930100          sts _dvd_key+1,R25
 00AA 80930000          sts _dvd_key,R24
 00AE                   .dbline 63
                       ;        asm("CBI 0x17,6");
 00AE BE98              CBI 0x17,6
 00B0                   .dbline 64
                       ;        break;
 00B0 1EC0              xjmp L6
 00B2                 L15:
 00B2                   .dbline 66
                       ;   case SPI_WRITE_LOW:
                       ;        g_vfd_grid_buffer[vfd_address] = spi_data;
 00B2 80E0              ldi R24,<_g_vfd_grid_buffer
 00B4 90E0              ldi R25,>_g_vfd_grid_buffer
 00B6 E0910000          lds R30,_vfd_address
 00BA FF27              clr R31
 00BC E80F              add R30,R24
 00BE F91F              adc R31,R25
 00C0 4083              std z+0,R20
 00C2                   .dbline 67
                       ;        vfd_address++;
 00C2 80910000          lds R24,_vfd_address
 00C6 8F5F              subi R24,255    ; addi 1
 00C8 80930000          sts _vfd_address,R24
 00CC                   .dbline 68
                       ;        spi_command = SPI_WRITE_HIGH;
 00CC 82E0              ldi R24,2
 00CE 80930100          sts _spi_command,R24
 00D2                   .dbline 69
                       ;        break;
 00D2 0DC0              xjmp L6
 00D4                 L16:
 00D4                   .dbline 71
                       ;   case SPI_WRITE_HIGH:
                       ;        g_vfd_grid_buffer[vfd_address] = spi_data;
 00D4 80E0              ldi R24,<_g_vfd_grid_buffer
 00D6 90E0              ldi R25,>_g_vfd_grid_buffer
 00D8 E0910000          lds R30,_vfd_address
 00DC FF27              clr R31
 00DE E80F              add R30,R24
 00E0 F91F              adc R31,R25
 00E2 4083              std z+0,R20
 00E4                   .dbline 75
                       ;        //if(vfd_address>22)
                       ;         //for(i=0;i++;i<24)
                       ;           //g_vfd_grid_buffer[i] = buffer[i];
                       ;        spi_command = SPI_WAIT_COMMAND;
 00E4 2224              clr R2
 00E6 20920100          sts _spi_command,R2
 00EA                   .dbline 76
                       ;        break;
 00EA 01C0              xjmp L6
 00EC                 L5:
 00EC                   .dbline 80
 00EC 05D0              xcall _spi_err
 00EE                   .dbline 81
 00EE                 L6:
 00EE                   .dbline -2
 00EE                   .dbline 84
                       ;  
                       ;   default:
                       ;       // Set_FS2(0);
                       ;        spi_err();
                       ;        break;
                       ;  }
                       ;  //SPCR |=0x80;
                       ; }
 00EE                 L2:
 00EE 0E940000          xcall pop_gset2
 00F2 0E940000          xcall pop_lset
 00F6                   .dbline 0 ; func end
 00F6 1895              reti
 00F8                   .dbsym l i 1 c
 00F8                   .dbsym r spi_data 20 c
 00F8                   .dbsym r spi_status 22 c
 00F8                   .dbfunc s spi_err _spi_err fI
                       ;          delay -> R20,R21
                         .even
 00F8                 _spi_err::
 00F8 0E940000          xcall push_gset1
 00FC                   .dbline -1
 00FC                   .dbline 86
                       ; void spi_err(void)
                       ; {
 00FC                   .dbline 89
                       ;  unsigned int delay;
                       ;  
                       ;  SPCR =00;
 00FC 2224              clr R2
 00FE 2DB8              out 0xd,R2
 0100                   .dbline 90
                       ;  SPSR =00;
 0100 2EB8              out 0xe,R2
 0102                   .dbline 91
                       ;  SEI();
 0102 7894              sei
 0104                   .dbline 92
                       ;  SPDR = 0xff;
 0104 8FEF              ldi R24,255
 0106 8FB9              out 0xf,R24
 0108                   .dbline 93
                       ;  asm("CBI 0X17,6");
 0108 BE98              CBI 0X17,6
 010A                   .dbline 96
                       ;  //dvd_key = 0xffff;
                       ;  //DI();
                       ;  delay=50000;
 010A 40E5              ldi R20,-15536
 010C 53EC              ldi R21,-61
 010E 08C0              xjmp L20
 0110                 L19:
 0110                   .dbline 99
                       ;  //Set_FS1(0);
                       ;  while(!(PINB&0x10))
                       ;  {
 0110                   .dbline 100
                       ;   if(!delay) break;
 0110 4030              cpi R20,0
 0112 4507              cpc R20,R21
 0114 09F4              brne L22
 0116                   .dbline 100
 0116 06C0              xjmp L21
 0118                 L22:
 0118                   .dbline 101
 0118 0E940000          xcall _soft_delay
 011C                   .dbline 102
 011C 4150              subi R20,1
 011E 5040              sbci R21,0
 0120                   .dbline 103
 0120                 L20:
 0120                   .dbline 98
 0120 B49B              sbis 0x16,4
 0122 F6CF              rjmp L19
 0124                 L21:
 0124                   .dbline 104
                       ;   soft_delay();
                       ;   delay--;
                       ;  }
                       ;  SPCR = 0xec;
 0124 8CEE              ldi R24,236
 0126 8DB9              out 0xd,R24
 0128                   .dbline 105
                       ;  delay =SPDR;
 0128 4FB1              in R20,0xf
 012A 5527              clr R21
 012C                   .dbline 106
                       ;  delay=SPSR;
 012C 4EB1              in R20,0xe
 012E 5527              clr R21
 0130                   .dbline 108
                       ;  //delay=SPDR;
                       ;  spi_command = SPI_WAIT_COMMAND;
 0130 2224              clr R2
 0132 20920100          sts _spi_command,R2
 0136                   .dbline -2
 0136                   .dbline 111
                       ; 
                       ; 
                       ; }
 0136                 L18:
 0136 0E940000          xcall pop_gset1
 013A                   .dbline 0 ; func end
 013A 0895              ret
 013C                   .dbsym r delay 20 i

⌨️ 快捷键说明

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