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

📄 spi.lis

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

⌨️ 快捷键说明

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