📄 spi.lis
字号:
.module SPI.c
.area text(rom, con, rel)
0000 .dbfile D:\ATP_AVR\SPI.c
0000 .dbfunc e spi_init _spi_init fV
.even
0000 _spi_init::
0000 .dbline -1
0000 .dbline 9
0000 ;
0000 ;
0000 ; #include "public.h"
0000 ; #include <string.h>
0000 ;
0000 ; //SPI initialize
0000 ; // clock rate: 5529498hz
0000 ; void spi_init(void)
0000 ; {
0000 .dbline 10
0000 ; SPCR = 0x50; //disable the spi interrupt
0000 80E5 ldi R24,80
0002 8DB9 out 0xd,R24
0004 .dbline 16
0004 ; //enable spi
0004 ; //MSB first
0004 ; //spi master
0004 ; //mode 0
0004 ; //spi clock rate:fosc/4
0004 ; SPSR = 0x01; //
0004 81E0 ldi R24,1
0006 8EB9 out 0xe,R24
0008 .dbline -2
0008 L1:
0008 .dbline 0 ; func end
0008 0895 ret
000A .dbend
000A .dbfunc e SPISend _SPISend fV
000A ; ucByte -> R16
.even
000A _SPISend::
000A .dbline -1
000A .dbline 21
000A ; }
000A ;
000A ;
000A ; void SPISend(unsigned char ucByte)
000A ; {
000A .dbline 22
000A ; SPDR = ucByte;
000A 0FB9 out 0xf,R16
000C L3:
000C .dbline 23
000C L4:
000C .dbline 23
000C ; while (!(SPSR & 0x80));
000C 779B sbis 0xe,7
000E FECF rjmp L3
0010 .dbline 24
0010 ; ucByte = SPDR;
0010 0FB1 in R16,0xf
0012 .dbline -2
0012 L2:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbsym r ucByte 16 c
0014 .dbend
0014 .dbfunc e SPIReadData _SPIReadData fc
.even
0014 _SPIReadData::
0014 .dbline -1
0014 .dbline 29
0014 ; }
0014 ;
0014 ;
0014 ; unsigned char SPIReadData(void)
0014 ; {
0014 .dbline 30
0014 ; SPDR = 0x00;
0014 2224 clr R2
0016 2FB8 out 0xf,R2
0018 L7:
0018 .dbline 31
0018 L8:
0018 .dbline 31
0018 ; while (!(SPSR & 0x80));
0018 779B sbis 0xe,7
001A FECF rjmp L7
001C .dbline 32
001C ; return SPDR;
001C 0FB1 in R16,0xf
001E .dbline -2
001E L6:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e SPI_CSTiming _SPI_CSTiming fV
.even
0020 _SPI_CSTiming::
0020 .dbline -1
0020 .dbline 36
0020 ; }
0020 ;
0020 ; void SPI_CSTiming(void)
0020 ; {
0020 .dbline 37
0020 ; SETBIT(SPI_OUT,SPI_CS);
0020 C09A sbi 0x18,0
0022 .dbline 38
0022 ; NOP();
0022 0000 nop
0024 .dbline 39
0024 ; NOP();
0024 0000 nop
0026 .dbline 40
0026 ; NOP();
0026 0000 nop
0028 .dbline 41
0028 ; NOP();
0028 0000 nop
002A .dbline 42
002A ; NOP();
002A 0000 nop
002C .dbline 43
002C ; NOP();
002C 0000 nop
002E .dbline 44
002E ; NOP();
002E 0000 nop
0030 .dbline 45
0030 ; NOP();
0030 0000 nop
0032 .dbline 46
0032 ; NOP();
0032 0000 nop
0034 .dbline 47
0034 ; NOP();
0034 0000 nop
0036 .dbline 48
0036 ; NOP();
0036 0000 nop
0038 .dbline 49
0038 ; CLEARBIT(SPI_OUT,SPI_CS);
0038 C098 cbi 0x18,0
003A .dbline -2
003A L10:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -