📄 main.s
字号:
.module main.c
.area lit(rom, con, rel)
_Tab::
.byte 33,249
.byte 19,'Q
.byte 201,'E
.byte 5,241
.byte 1,'A
.byte 129,13
.byte 39,25
.byte 7,135
.dbfile C:\ATMega8515\LED/ForATmega8515.h
.dbsym e Tab _Tab A[16:16]kc
.area text(rom, con, rel)
.dbfile C:\ATMega8515\LED/ForATmega8515.h
.dbfile C:\ATMega8515\LED\main.c
.dbfunc e main _main fV
; leddata -> R20
.even
_main::
.dbline -1
.dbline 8
; #include <iom8515v.h>
; #include"ForATmega8515.h"
;
;
; void delay(uint ticks);
;
; void main()
; {
.dbline 9
; uchar leddata=1;
ldi R20,1
.dbline 10
; init_devices();
rcall _init_devices
.dbline 11
; PORTC&=~LED; //开LED显示
cbi 0x15,5
rjmp L3
L2:
.dbline 13
; while(1)
; {
.dbline 14
; PORTA=~leddata;//输出数据
mov R2,R20
com R2
out 0x1b,R2
.dbline 15
; leddata<<=1; //LED左移一位
lsl R20
.dbline 16
; delay(5000); //延时
ldi R16,5000
ldi R17,19
rcall _delay
.dbline 17
; if(leddata==0)leddata=1;
tst R20
brne L5
.dbline 17
ldi R20,1
L5:
.dbline 18
L3:
.dbline 12
rjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r leddata 20 c
.dbend
.dbfunc e delay _delay fV
; i -> R20
; ticks -> R16,R17
.even
_delay::
rcall push_gset1
.dbline -1
.dbline 23
; }
; }
;
;
; void delay(uint ticks)
; {
.dbline 25
rjmp L11
L8:
.dbline 25
ldi R20,200
rjmp L15
L12:
.dbline 25
L13:
.dbline 25
dec R20
L15:
.dbline 25
tst R20
brne L12
L9:
.dbline 25
subi R16,1
sbci R17,0
L11:
.dbline 25
; 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 + -