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

📄 spi.lis

📁 M16-Mp3.rar
💻 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 + -