📄 spi.s
字号:
.module spi.c
.area text(rom, con, rel)
.dbfile C:\ATMega8515\SPI\spi.c
.dbfunc e main _main fV
; temp -> R20
.even
_main::
.dbline -1
.dbline 7
; #include <iom8515v.h>
; #include"ForATmega8515.h"
;
; void delay(uint ticks);
;
; void main()
; {
.dbline 8
; uchar temp=1;
ldi R20,1
.dbline 9
; init_devices();
rcall _init_devices
rjmp L3
L2:
.dbline 11
; while(1)
; {
.dbline 12
; SPDR=temp;//发送数据
out 0xf,R20
.dbline 13
; temp<<=1;
lsl R20
.dbline 14
; delay(1000);
ldi R16,1000
ldi R17,3
rcall _delay
.dbline 15
; if(temp==0){temp=1;SPCR^=0x20;}//改变方向
tst R20
brne L5
.dbline 15
.dbline 15
ldi R20,1
.dbline 15
ldi R24,32
in R2,0xd
eor R2,R24
out 0xd,R2
.dbline 15
L5:
.dbline 16
L3:
.dbline 10
rjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r temp 20 c
.dbend
.dbfunc e delay _delay fV
; i -> R20
; ticks -> R16,R17
.even
_delay::
rcall push_gset1
.dbline -1
.dbline 21
; }
; }
;
;
; void delay(uint ticks)
; {
.dbline 23
rjmp L11
L8:
.dbline 23
ldi R20,200
rjmp L15
L12:
.dbline 23
L13:
.dbline 23
dec R20
L15:
.dbline 23
tst R20
brne L12
L9:
.dbline 23
subi R16,1
sbci R17,0
L11:
.dbline 23
; uchar i;
; for(;ticks!=0;ticks--)for(i=200;i!=0;i--);
cpi R16,0
cpc R16,R17
brne L8
X1:
.dbline -2
L7:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r ticks 16 i
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -