?? spi.lis
字號:
.module SPI.c
.area text(rom, con, rel)
0000 .dbfile ..\..\..\..\..\DOCUME~1\浪仔\桌面\教學實驗板\M16_VS1003_test\SPI.c
0000 .dbfile C:\DOCUME~1\浪仔\桌面\教學實驗板\M16_VS1003_test\SPI.c
0000 .dbfunc e SPI_Init _SPI_Init fV
.even
0000 _SPI_Init::
0000 .dbline -1
0000 .dbline 17
0000 ;
0000 ; //---------------------------- SPI驅動程序 ----------------------------
0000 ; //
0000 ; //SPI驅動程序:發送與接收,速度調節
0000 ; //整理日期:2009.7.8
0000 ; //
0000 ; //---------------------------------------------------------------------
0000 ; #include "SPI.h"
0000 ;
0000 ;
0000 ; //---------------------------------
0000 ; //
0000 ; // SPI初始化函數
0000 ; //
0000 ; //---------------------------------
0000 ; void SPI_Init(void)
0000 ; {
0000 .dbline 18
0000 ; SPI_SCK_OUT();
0000 BF9A sbi 0x17,7
0002 .dbline 19
0002 ; SPI_MOSI_OUT();
0002 BD9A sbi 0x17,5
0004 .dbline 20
0004 ; SPI_MISO_IN();
0004 BE98 cbi 0x17,6
0006 .dbline 21
0006 ; PORTB = 0xFF;
0006 8FEF ldi R24,255
0008 88BB out 0x18,R24
000A .dbline 22
000A ; SPI_Low();
000A .dbline -2
000A L1:
000A .dbline 0 ; func end
000A 00C0 xjmp _SPI_Low
000C .dbend
000C .dbfunc e SPI_Low _SPI_Low fV
.even
000C _SPI_Low::
000C .dbline -1
000C .dbline 32
000C ; }
000C ;
000C ;
000C ; //---------------------------------
000C ; //
000C ; // SPI低速模式設置函數
000C ; //
000C ; //---------------------------------
000C ; void SPI_Low(void)
000C ; {
000C .dbline 33
000C ; SPCR |=(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);
000C 8DB1 in R24,0xd
000E 8365 ori R24,83
0010 8DB9 out 0xd,R24
0012 .dbline 34
0012 ; SPSR &= ~(1<<SPI2X);
0012 7098 cbi 0xe,0
0014 .dbline -2
0014 L2:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbend
0016 .dbfunc e SPI_High _SPI_High fV
.even
0016 _SPI_High::
0016 .dbline -1
0016 .dbline 45
0016 ; }
0016 ;
0016 ;
0016 ;
0016 ; //---------------------------------
0016 ; //
0016 ; // SPI高速模式設置函數
0016 ; //
0016 ; //---------------------------------
0016 ; void SPI_High(void)
0016 ; {
0016 .dbline 46
0016 ; SPCR = (1<<SPE)|(1<<MSTR);
0016 80E5 ldi R24,80
0018 8DB9 out 0xd,R24
001A .dbline 47
001A ; SPSR |= (1<<SPI2X);
001A 709A sbi 0xe,0
001C .dbline -2
001C L3:
001C .dbline 0 ; func end
001C 0895 ret
001E .dbend
001E .dbfunc e SPI_SrByte _SPI_SrByte fc
001E ; val -> R16
.even
001E _SPI_SrByte::
001E .dbline -1
001E .dbline 59
001E ; }
001E ;
001E ;
001E ; //---------------------------------
001E ; //
001E ; //SPI收發函數
001E ; //val:要發送的數據
001E ; //SPDR:返回數據
001E ; //
001E ; //---------------------------------
001E ; uint8 SPI_SrByte(uint8 val)
001E ; {
001E .dbline 60
001E ; SPDR = val;
001E 0FB9 out 0xf,R16
0020 L5:
0020 .dbline 61
0020 ; while(!(SPSR & (1<<SPIF)));
0020 L6:
0020 .dbline 61
0020 779B sbis 0xe,7
0022 FECF rjmp L5
0024 X0:
0024 .dbline 62
0024 ; return SPDR;
0024 0FB1 in R16,0xf
0026 .dbline -2
0026 L4:
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbsym r val 16 c
0028 .dbend
0028 ; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -