?? spi.lis
字號:
.module SPI.c
.area text(rom, con, rel)
0000 .dbfile C:\AVR\M\1\SPI.c
0000 .dbfunc e SPI_Init _SPI_Init fV
.even
0000 _SPI_Init::
0000 .dbline -1
0000 .dbline 10
0000 ; #include "SPI.h"
0000 ;
0000 ;
0000 ; //---------------------------------
0000 ; //
0000 ; // SPI初始化函數(shù)
0000 ; //
0000 ; //---------------------------------
0000 ; void SPI_Init(void)
0000 ; {
0000 .dbline 11
0000 ; SPI_SCK_OUT();
0000 BF9A sbi 0x17,7
0002 .dbline 12
0002 ; SPI_MOSI_OUT();
0002 BD9A sbi 0x17,5
0004 .dbline 13
0004 ; SPI_MISO_IN();
0004 BE98 cbi 0x17,6
0006 .dbline 14
0006 ; PORTB = 0xFF;
0006 8FEF ldi R24,255
0008 88BB out 0x18,R24
000A .dbline 15
000A ; SPI_Low();
000A 01D0 xcall _SPI_Low
000C .dbline -2
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbend
000E .dbfunc e SPI_Low _SPI_Low fV
.even
000E _SPI_Low::
000E .dbline -1
000E .dbline 25
000E ; }
000E ;
000E ;
000E ; //---------------------------------
000E ; //
000E ; // SPI低速模式設置函數(shù)
000E ; //
000E ; //---------------------------------
000E ; void SPI_Low(void)
000E ; {
000E .dbline 26
000E ; SPCR |=(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);
000E 8DB1 in R24,0xd
0010 8365 ori R24,83
0012 8DB9 out 0xd,R24
0014 .dbline 27
0014 ; SPSR &= ~(1<<SPI2X);
0014 7098 cbi 0xe,0
0016 .dbline -2
0016 L2:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e SPI_High _SPI_High fV
.even
0018 _SPI_High::
0018 .dbline -1
0018 .dbline 38
0018 ; }
0018 ;
0018 ;
0018 ;
0018 ; //---------------------------------
0018 ; //
0018 ; // SPI高速模式設置函數(shù)
0018 ; //
0018 ; //---------------------------------
0018 ; void SPI_High(void)
0018 ; {
0018 .dbline 39
0018 ; SPCR = (1<<SPE)|(1<<MSTR);
0018 80E5 ldi R24,80
001A 8DB9 out 0xd,R24
001C .dbline 40
001C ; SPSR |= (1<<SPI2X);
001C 709A sbi 0xe,0
001E .dbline -2
001E L3:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e SPI_SrByte _SPI_SrByte fc
0020 ; val -> R16
.even
0020 _SPI_SrByte::
0020 .dbline -1
0020 .dbline 52
0020 ; }
0020 ;
0020 ;
0020 ; //---------------------------------
0020 ; //
0020 ; //SPI收發(fā)函數(shù)
0020 ; //val:要發(fā)送的數(shù)據(jù)
0020 ; //SPDR:返回數(shù)據(jù)
0020 ; //
0020 ; //---------------------------------
0020 ; uint8 SPI_SrByte(uint8 val)
0020 ; {
0020 .dbline 53
0020 ; SPDR = val;
0020 0FB9 out 0xf,R16
0022 L5:
0022 .dbline 54
0022 L6:
0022 .dbline 54
0022 ; while(!(SPSR & (1<<SPIF)));
0022 779B sbis 0xe,7
0024 FECF rjmp L5
0026 .dbline 55
0026 ; return SPDR;
0026 0FB1 in R16,0xf
0028 .dbline -2
0028 L4:
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r val 16 c
002A .dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -