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

📄 spi.lis

📁 AVR单片机,STK500下载线制作全套资料,包括程序,电路图
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .even
 00AA           _spi_clock_pulse::
 00AA                   .dbline -1
 00AA                   .dbline 75
 00AA           ;               default:                //Wenn Wert ung黮tig ganz langsam
 00AA           ;                       SPCR|=0x03;
 00AA           ;                       break;
 00AA           ;               }
 00AA           ; }
 00AA           ; 
 00AA           ; void spi_clock_pulse(void)
 00AA           ; {
 00AA                   .dbline 77
 00AA           ;       
 00AA           ;       SPCR&=BIT6_NEG;         //SPI kurz aus
 00AA 8FEB              ldi R24,-65
 00AC 9FEF              ldi R25,-1
 00AE 2DB0              in R2,0xd
 00B0 2822              and R2,R24
 00B2 2DB8              out 0xd,R2
 00B4                   .dbline 78
 00B4           ;       PORTB|=BIT5_POS;        //Taktimpuls
 00B4 C59A              sbi 0x18,5
 00B6                   .dbline 79
 00B6           ;       wait_ms(2);
 00B6 02E0              ldi R16,2
 00B8 10E0              ldi R17,0
 00BA 00D0              rcall _wait_ms
 00BC                   .dbline 80
 00BC           ;       PORTB&=BIT5_NEG;
 00BC 8FED              ldi R24,-33
 00BE 9FEF              ldi R25,-1
 00C0 28B2              in R2,0x18
 00C2 2822              and R2,R24
 00C4 28BA              out 0x18,R2
 00C6                   .dbline 81
 00C6           ;       SPCR|=BIT6_POS;         //SPI wieder an
 00C6 6E9A              sbi 0xd,6
 00C8                   .dbline -2
 00C8           L16:
 00C8                   .dbline 0 ; func end
 00C8 0895              ret
 00CA                   .dbend
 00CA                   .dbfunc e spi_transfer_8 _spi_transfer_8 fc
 00CA           ;              d -> R16
                        .even
 00CA           _spi_transfer_8::
 00CA                   .dbline -1
 00CA                   .dbline 93
 00CA           ; }
 00CA           ; 
 00CA           ; /**
 00CA           ;       Does a 8 bit transfer over the SPI-Interface
 00CA           ;       and gives back the byte received
 00CA           ;       
 00CA           ;       @param  d       the byte to be transmitted
 00CA           ;       
 00CA           ;       @return         the byte received
 00CA           ; */
 00CA           ; unsigned char spi_transfer_8(unsigned char d)
 00CA           ; {
 00CA                   .dbline 94
 00CA           ;       SPDR=d;
 00CA 0FB9              out 0xf,R16
 00CC           L18:
 00CC                   .dbline 95
 00CC           L19:
 00CC                   .dbline 95
 00CC           ;       while(!(SPSR&0x80));
 00CC 779B              sbis 0xe,7
 00CE FECF              rjmp L18
 00D0                   .dbline 97
 00D0           ;               
 00D0           ;       return SPDR;    
 00D0 0FB1              in R16,0xf
 00D2                   .dbline -2
 00D2           L17:
 00D2                   .dbline 0 ; func end
 00D2 0895              ret
 00D4                   .dbsym r d 16 c
 00D4                   .dbend
 00D4                   .dbfunc e spi_transfer_16 _spi_transfer_16 fc
 00D4           ;              d -> R20,R21
                        .even
 00D4           _spi_transfer_16::
 00D4 00D0              rcall push_gset1
 00D6 A801              movw R20,R16
 00D8                   .dbline -1
 00D8                   .dbline 109
 00D8           ; }
 00D8           ; 
 00D8           ; /**
 00D8           ;       Does a 16 bit transfer over the SPI-Interface
 00D8           ;       and gives back the last byte received
 00D8           ;       
 00D8           ;       @param  d       the int to be transmitted
 00D8           ;       
 00D8           ;       @return         the last byte received
 00D8           ; */
 00D8           ; unsigned char spi_transfer_16(unsigned int d)
 00D8           ; {     
 00D8                   .dbline 110
 00D8           ;       spi_transfer_8((d>>8)&0xFF);
 00D8 8A01              movw R16,R20
 00DA 012F              mov R16,R17
 00DC 1127              clr R17
 00DE 1070              andi R17,0
 00E0 F4DF              rcall _spi_transfer_8
 00E2                   .dbline 111
 00E2           ;       return spi_transfer_8(d&0xFF);  
 00E2 042F              mov R16,R20
 00E4 1070              andi R17,0
 00E6 F1DF              rcall _spi_transfer_8
 00E8                   .dbline -2
 00E8           L21:
 00E8 00D0              rcall pop_gset1
 00EA                   .dbline 0 ; func end
 00EA 0895              ret
 00EC                   .dbsym r d 20 i
 00EC                   .dbend
 00EC                   .dbfunc e spi_transfer_32 _spi_transfer_32 fc
 00EC           ;              d -> y+4
                        .even
 00EC           _spi_transfer_32::
 00EC 00D0              rcall push_arg4
 00EE 00D0              rcall push_gset2
 00F0                   .dbline -1
 00F0                   .dbline 123
 00F0           ; }
 00F0           ; 
 00F0           ; /**
 00F0           ;       Does a 32 bit transfer over the SPI-Interface
 00F0           ;       and gives back the last byte received
 00F0           ;       
 00F0           ;       @param  d       the long to be transmitted
 00F0           ;       
 00F0           ;       @return         the last byte received
 00F0           ; */
 00F0           ; unsigned char spi_transfer_32(unsigned long d)
 00F0           ; {
 00F0                   .dbline 124
 00F0           ;       spi_transfer_8((d>>24)&0xFF);
 00F0 88E1              ldi R24,24
 00F2 90E0              ldi R25,0
 00F4 FE01              movw R30,R28
 00F6 2480              ldd R2,z+4
 00F8 3580              ldd R3,z+5
 00FA 4680              ldd R4,z+6
 00FC 5780              ldd R5,z+7
 00FE 8A93              st -y,R24
 0100 8101              movw R16,R2
 0102 9201              movw R18,R4
 0104 00D0              rcall lsr32
 0106 1801              movw R2,R16
 0108 2901              movw R4,R18
 010A 4FEF              ldi R20,255
 010C 50E0              ldi R21,0
 010E 60E0              ldi R22,0
 0110 70E0              ldi R23,0
 0112 2422              and R2,R20
 0114 3522              and R3,R21
 0116 4622              and R4,R22
 0118 5722              and R5,R23
 011A 022D              mov R16,R2
 011C D6DF              rcall _spi_transfer_8
 011E                   .dbline 125
 011E           ;       spi_transfer_8((d>>16)&0xFF);
 011E 4FEF              ldi R20,255
 0120 50E0              ldi R21,0
 0122 60E0              ldi R22,0
 0124 70E0              ldi R23,0
 0126 FE01              movw R30,R28
 0128 2480              ldd R2,z+4
 012A 3580              ldd R3,z+5
 012C 4680              ldd R4,z+6
 012E 5780              ldd R5,z+7
 0130 1201              movw R2,R4
 0132 4424              clr R4
 0134 5524              clr R5
 0136 2422              and R2,R20
 0138 3522              and R3,R21
 013A 4622              and R4,R22
 013C 5722              and R5,R23
 013E 022D              mov R16,R2
 0140 C4DF              rcall _spi_transfer_8
 0142                   .dbline 126
 0142           ;       spi_transfer_8((d>>8)&0xFF);
 0142 88E0              ldi R24,8
 0144 90E0              ldi R25,0
 0146 FE01              movw R30,R28
 0148 2480              ldd R2,z+4
 014A 3580              ldd R3,z+5
 014C 4680              ldd R4,z+6
 014E 5780              ldd R5,z+7
 0150 8A93              st -y,R24
 0152 8101              movw R16,R2
 0154 9201              movw R18,R4
 0156 00D0              rcall lsr32
 0158 1801              movw R2,R16
 015A 2901              movw R4,R18
 015C 4FEF              ldi R20,255
 015E 50E0              ldi R21,0
 0160 60E0              ldi R22,0
 0162 70E0              ldi R23,0
 0164 2422              and R2,R20
 0166 3522              and R3,R21
 0168 4622              and R4,R22
 016A 5722              and R5,R23
 016C 022D              mov R16,R2
 016E ADDF              rcall _spi_transfer_8
 0170                   .dbline 127
 0170           ;       return spi_transfer_8(d&0xFF);
 0170 4FEF              ldi R20,255
 0172 50E0              ldi R21,0
 0174 60E0              ldi R22,0
 0176 70E0              ldi R23,0
 0178 FE01              movw R30,R28
 017A 2480              ldd R2,z+4
 017C 3580              ldd R3,z+5
 017E 4680              ldd R4,z+6
 0180 5780              ldd R5,z+7
 0182 2422              and R2,R20
 0184 3522              and R3,R21
 0186 4622              and R4,R22
 0188 5722              and R5,R23
 018A 022D              mov R16,R2
 018C 9EDF              rcall _spi_transfer_8
 018E                   .dbline -2
 018E           L22:
 018E 00D0              rcall pop_gset2
 0190 2496              adiw R28,4
 0192                   .dbline 0 ; func end
 0192 0895              ret
 0194                   .dbsym l d 4 l
 0194                   .dbend

⌨️ 快捷键说明

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