📄 spi.s
字号:
.module SPI.c
.area text(rom, con, rel)
.dbfile E:\ICC\SPI\SPI.c
.dbfunc e Spi_init _Spi_init fV
.even
_Spi_init::
.dbline -1
.dbline 10
; #include <iom8v.h>
; #include "uart.h"
; #include "mytype.h"
; #include "spi.h"
;
;
; extern uint8 table[];
;
; void Spi_init(void)
; {
.dbline 11
; DDR1=((1<<WP)|(1<<SO)|(1<<SCLK)|(1<<CS));
ldi R24,46
out 0x17,R24
.dbline 12
; SPCR=((1<<SPE)|(1<<MSTR)|(1<<SPR0));
ldi R24,81
out 0xd,R24
.dbline 13
; WP_1;
sbi 0x18,1
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Spi_MT _Spi_MT fV
; data -> R16
.even
_Spi_MT::
.dbline -1
.dbline 17
; }
;
; void Spi_MT(uint8 data)
; {
.dbline 18
; SPDR=data;
out 0xf,R16
L3:
.dbline 19
L4:
.dbline 19
; while(!(SPSR&(1<<SPIF)));
sbis 0xe,7
rjmp L3
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbsym r data 16 c
.dbend
.dbfunc e Spi_MR _Spi_MR fc
; data -> R16
.even
_Spi_MR::
.dbline -1
.dbline 23
; }
;
; uint8 Spi_MR()
; {
.dbline 25
; uint8 data;
; data=SPDR;
in R16,0xf
.dbline 26
; SPDR=data;
out 0xf,R16
L7:
.dbline 27
L8:
.dbline 27
; while(!(SPSR&(1<<SPIF)));
sbis 0xe,7
rjmp L7
.dbline 31
; //Prints("Get data Readdata...",1);
; //Send_abyte(table[SPDR/16]);
; //Send_abyte(table[SPDR/16]);
; return SPDR;
in R16,0xf
.dbline -2
L6:
.dbline 0 ; func end
ret
.dbsym r data 16 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -