📄 start.s
字号:
L47:
.dbline 213
; }
cpi R16,116
ldi R30,4
cpc R17,R30
brlo L44
.dbline -2
L43:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_nms _delay_nms fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_nms::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 217
; }
; }
; }
; }
.dbline 217
clr R20
clr R21
.dbline 218
; }
xjmp L52
L49:
.dbline 219
xcall _delay_1ms
L50:
.dbline 218
subi R20,255 ; offset = 1
sbci R21,255
L52:
.dbline 218
cp R20,R22
cpc R21,R23
brlo L49
.dbline -2
L48:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.area data(ram, con, rel)
.dbfile G:\Demo/LCD_1602.h
_KeyTask::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile G:\Demo/LCD_1602.h
.dbfile G:\Demo/Deal.h
.dbsym e KeyTask _KeyTask c
_Keybuf::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile G:\Demo/Deal.h
.dbsym e Keybuf _Keybuf c
_Keydata::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile G:\Demo/Deal.h
.dbsym e Keydata _Keydata c
.area text(rom, con, rel)
.dbfile G:\Demo/Deal.h
.dbfunc e InitalKey _InitalKey fV
.even
_InitalKey::
.dbline -1
.dbline 10
.dbline 10
ldi R24,15
out 0x14,R24
.dbline 11
ldi R24,240
out 0x15,R24
.dbline -2
L53:
.dbline 0 ; func end
ret
.dbend
.dbfunc e ScanKey _ScanKey fc
; i -> R16
; temp -> R18
.even
_ScanKey::
.dbline -1
.dbline 21
.dbline 22
lds R16,_KeyTask
clr R17
cpi R16,0
cpc R16,R17
breq L58
X3:
cpi R16,1
ldi R30,0
cpc R17,R30
breq L61
cpi R16,2
ldi R30,0
cpc R17,R30
breq L62
cpi R16,3
ldi R30,0
cpc R17,R30
brne X5
xjmp L71
X5:
cpi R16,4
ldi R30,0
cpc R17,R30
brne X6
xjmp L74
X6:
cpi R16,5
ldi R30,0
cpc R17,R30
brne X7
xjmp L75
X7:
xjmp L55
X4:
.dbline 23
L58:
.dbline 24
ldi R24,240
out 0x15,R24
.dbline 25
in R24,0x13
andi R24,240
cpi R24,240
brne X8
xjmp L56
X8:
.dbline 26
.dbline 26
ldi R24,1
sts _KeyTask,R24
.dbline 26
.dbline 27
xjmp L56
L61:
.dbline 29
ldi R24,2
sts _KeyTask,R24
.dbline 30
xjmp L56
L62:
.dbline 32
in R24,0x13
andi R24,240
cpi R24,240
breq L63
.dbline 33
.dbline 33
ldi R18,1
.dbline 34
clr R16
xjmp L68
L65:
.dbline 35
.dbline 35
in R24,0x15
ori R24,15
out 0x15,R24
.dbline 36
mov R2,R18
com R2
in R3,0x15
and R3,R2
out 0x15,R3
.dbline 37
nop
.dbline 37
nop
.dbline 37
nop
.dbline 37
nop
.dbline 38
in R24,0x13
andi R24,240
cpi R24,240
breq L69
.dbline 39
.dbline 39
in R24,0x13
andi R24,240
add R24,R18
sts _Keybuf,R24
.dbline 40
ldi R24,3
sts _KeyTask,R24
.dbline 40
ldi R24,240
out 0x15,R24
.dbline 40
ldi R16,1
xjmp L54
L69:
.dbline 42
lsl R18
.dbline 43
L66:
.dbline 34
inc R16
L68:
.dbline 34
cpi R16,4
brlo L65
.dbline 44
L63:
.dbline 45
ldi R24,240
out 0x15,R24
.dbline 46
clr R2
sts _KeyTask,R2
.dbline 47
xjmp L56
L71:
.dbline 49
in R24,0x13
andi R24,240
cpi R24,240
brne L56
.dbline 50
.dbline 50
ldi R24,4
sts _KeyTask,R24
.dbline 50
.dbline 51
xjmp L56
L74:
.dbline 53
ldi R24,5
sts _KeyTask,R24
.dbline 54
xjmp L56
L75:
.dbline 56
in R24,0x13
andi R24,240
cpi R24,240
brne L76
.dbline 57
.dbline 57
clr R2
sts _KeyTask,R2
.dbline 57
xjmp L56
L76:
.dbline 59
.dbline 59
ldi R24,3
sts _KeyTask,R24
.dbline 59
.dbline 60
L55:
L56:
.dbline 62
clr R16
.dbline -2
L54:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbsym r temp 18 c
.dbend
.dbfunc e DealKey _DealKey fV
.even
_DealKey::
.dbline -1
.dbline 66
.dbline 67
lds R16,_Keybuf
clr R17
cpi R16,113
ldi R30,0
cpc R17,R30
breq L80
xjmp L79
X9:
.dbline 68
.dbline 69
L79:
L80:
.dbline -2
L78:
.dbline 0 ; func end
ret
.dbend
.dbfunc e DispTime _DispTime fV
.even
_DispTime::
sbiw R28,3
.dbline -1
.dbline 74
.dbline 75
ldi R24,2
std y+2,R24
lds R2,_Time
clr R3
std y+1,R3
std y+0,R2
clr R18
clr R16
xcall _LCD_write_uint8
.dbline 76
ldi R24,<L84
ldi R25,>L84
std y+1,R25
std y+0,R24
clr R18
ldi R16,2
xcall _LCD_write_string
.dbline 77
ldi R24,2
std y+2,R24
lds R2,_Time+1
clr R3
std y+1,R3
std y+0,R2
clr R18
ldi R16,3
xcall _LCD_write_uint8
.dbline 78
ldi R24,<L84
ldi R25,>L84
std y+1,R25
std y+0,R24
clr R18
ldi R16,5
xcall _LCD_write_string
.dbline 79
ldi R24,2
std y+2,R24
lds R2,_Time+2
clr R3
std y+1,R3
std y+0,R2
clr R18
ldi R16,6
xcall _LCD_write_uint8
.dbline 81
ldi R24,<L87
ldi R25,>L87
std y+1,R25
std y+0,R24
clr R18
ldi R16,8
xcall _LCD_write_string
.dbline 82
ldi R24,2
std y+2,R24
lds R2,_Time+3
clr R3
std y+1,R3
std y+0,R2
clr R18
ldi R16,9
xcall _LCD_write_uint8
.dbline 83
ldi R24,<L89
ldi R25,>L89
std y+1,R25
std y+0,R24
clr R18
ldi R16,11
xcall _LCD_write_string
.dbline 84
ldi R24,2
std y+2,R24
lds R2,_Time+4
clr R3
std y+1,R3
std y+0,R2
clr R18
ldi R16,12
xcall _LCD_write_uint8
.dbline 85
ldi R24,<L89
ldi R25,>L89
std y+1,R25
std y+0,R24
clr R18
ldi R16,14
xcall _LCD_write_string
.dbline 86
ldi R24,2
std y+2,R24
lds R2,_Time+5
clr R3
std y+1,R3
std y+0,R2
clr R18
ldi R16,15
xcall _LCD_write_uint8
.dbline -2
L83:
adiw R28,3
.dbline 0 ; func end
ret
.dbend
.dbfunc e TimeAdd _TimeAdd fV
.even
_TimeAdd::
.dbline -1
.dbline 90
.dbline 91
lds R24,_Time+5
subi R24,255 ; addi 1
sts _Time+5,R24
.dbline 92
cpi R24,60
breq X10
xjmp L94
X10:
.dbline 93
.dbline 93
clr R2
sts _Time+5,R2
.dbline 93
lds R24,_Time+4
subi R24,255 ; addi 1
sts _Time+4,R24
.dbline 94
cpi R24,60
breq X11
xjmp L99
X11:
.dbline 95
.dbline 95
sts _Time+4,R2
.dbline 95
lds R24,_Time+3
subi R24,255 ; addi 1
sts _Time+3,R24
.dbline 96
cpi R24,24
breq X12
xjmp L104
X12:
.dbline 97
.dbline 97
sts _Time+3,R2
.dbline 97
lds R24,_Time+2
subi R24,255 ; addi 1
sts _Time+2,R24
.dbline 99
lds R24,_Time+1
cpi R24,2
breq X13
xjmp L109
X13:
.dbline 100
.dbline 100
ldi R17,4
lds R16,_Time
xcall mod8u
tst R16
brne L112
.dbline 101
.dbline 101
lds R24,_Time+2
cpi R24,29
breq X14
xjmp L110
X14:
.dbline 101
.dbline 101
clr R2
sts _Time+2,R2
.dbline 101
lds R24,_Time+1
subi R24,255 ; addi 1
sts _Time+1,R24
.dbline 101
cpi R24,12
breq X15
xjmp L110
X15:
.dbline 101
.dbline 101
sts _Time+1,R2
.dbline 101
lds R24,_Time
subi R24,255 ; addi 1
sts _Time,R24
.dbline 101
.dbline 101
.dbline 101
xjmp L110
L112:
.dbline 103
.dbline 103
lds R24,_Time+2
cpi R24,30
breq X16
xjmp L110
X16:
.dbline 103
.dbline 103
clr R2
sts _Time+2,R2
.dbline 103
lds R24,_Time+1
subi R24,255 ; addi 1
sts _Time+1,R24
.dbline 103
cpi R24,12
breq X17
xjmp L110
X17:
.dbline 103
.dbline 103
sts _Time+1,R2
.dbline 103
lds R24,_Time
subi R24,255 ; addi 1
sts _Time,R24
.dbline 103
.dbline 103
.dbline 103
.dbline 104
xjmp L110
L109:
.dbline 105
lds R24,_Time+1
cpi R24,4
breq L140
cpi R24,6
breq L140
cpi R24,9
breq L140
cpi R24,11
brne L132
L140:
.dbline 106
.dbline 106
lds R24,_Time+2
cpi R24,31
brne L133
.dbline 106
.dbline 106
clr R2
sts _Time+2,R2
.dbline 106
lds R24,_Time+1
subi R24,255 ; addi 1
sts _Time+1,R24
.dbline 106
cpi R24,12
brne L133
.dbline 106
.dbline 106
sts _Time+1,R2
.dbline 106
lds R24,_Time
subi R24,255 ; addi 1
sts _Time,R24
.dbline 106
.dbline 106
.dbline 106
xjmp L133
L132:
.dbline 108
.dbline 108
lds R24,_Time+2
cpi R24,32
brne L150
.dbline 108
.dbline 108
clr R2
sts _Time+2,R2
.dbline 108
lds R24,_Time+1
subi R24,255 ; addi 1
sts _Time+1,R24
.dbline 108
cpi R24,12
brne L155
.dbline 108
.dbline 108
sts _Time+1,R2
.dbline 108
lds R24,_Time
subi R24,255 ; addi 1
sts _Time,R24
.dbline 108
L155:
.dbline 108
L150:
.dbline 108
L133:
L110:
.dbline 110
L104:
.dbline 111
L99:
.dbline 112
L94:
.dbline -2
L92:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 32
jmp _Timer1
.area text(rom, con, rel)
.dbfile G:\Demo/Deal.h
.dbfile G:\Demo\Start.c
.dbfunc e Timer1 _Timer1 fV
.even
_Timer1::
st -y,R2
st -y,R24
st -y,R25
in R2,0x3f
st -y,R2
.dbline -1
.dbline 11
.dbline 11
ldi R24,64911
ldi R25,253
out 0x2d,R25
out 0x2c,R24
.dbline 12
ldi R24,1
sts _ScanKeyFlag,R24
.dbline 14
lds R24,_SysCount
subi R24,255 ; addi 1
sts _SysCount,R24
.dbline 15
cpi R24,50
brne L160
.dbline 16
.dbline 16
ldi R24,1
sts _DispTimeFlag,R24
.dbline 16
clr R2
sts _SysCount,R2
.dbline 16
L160:
.dbline 18
lds R24,_TimeCount
subi R24,255 ; addi 1
sts _TimeCount,R24
.dbline 19
cpi R24,100
brne L162
.dbline 20
.dbline 20
ldi R24,1
sts _TimeAddFlag,R24
.dbline 20
clr R2
sts _TimeCount,R2
.dbline 20
L162:
.dbline -2
L159:
ld R2,y+
out 0x3f,R2
ld R25,y+
ld R24,y+
ld R2,y+
.dbline 0 ; func end
reti
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 24
.dbline 24
xcall _SysIntial
xjmp L166
L165:
.dbline 27
.dbline 28
lds R24,_ScanKeyFlag
cpi R24,1
brne L168
.dbline 29
.dbline 29
xcall _ScanKey
cpi R16,1
brne L170
.dbline 30
.dbline 30
xcall _DealKey
.dbline 30
L170:
.dbline 31
clr R2
sts _ScanKeyFlag,R2
.dbline 32
L168:
.dbline 34
lds R24,_DispTimeFlag
cpi R24,1
brne L172
.dbline 35
.dbline 35
xcall _DispTime
.dbline 36
clr R2
sts _DispTimeFlag,R2
.dbline 37
L172:
.dbline 39
lds R24,_TimeAddFlag
cpi R24,1
brne L174
.dbline 40
.dbline 40
xcall _TimeAdd
.dbline 40
clr R2
sts _TimeAddFlag,R2
.dbline 40
L174:
.dbline 41
L166:
.dbline 26
xjmp L165
X18:
.dbline -2
L164:
.dbline 0 ; func end
ret
.dbend
.dbfunc e SysIntial _SysIntial fV
.even
_SysIntial::
.dbline -1
.dbline 45
.dbline 45
xcall _InitalKey
.dbline 46
xcall _LCD_init
.dbline 48
ldi R24,64911
ldi R25,253
out 0x2d,R25
out 0x2c,R24
.dbline 49
in R24,0x39
ori R24,4
out 0x39,R24
.dbline 50
bset 7
.dbline 51
ldi R24,4
out 0x2e,R24
.dbline -2
L176:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile G:\Demo\Start.c
_Time::
.blkb 6
.dbfile G:\Demo/Define.h
.dbstruct 0 6 .1
.dbfield 0 year c
.dbfield 1 month c
.dbfield 2 day c
.dbfield 3 hour c
.dbfield 4 minute c
.dbfield 5 second c
.dbend
.dbsym e Time _Time S[.1]
.area data(ram, con, rel)
.dbfile G:\Demo/Define.h
L89:
.blkb 2
.area idata
.byte 58,0
.area data(ram, con, rel)
.dbfile G:\Demo/Define.h
L87:
.blkb 2
.area idata
.byte 32,0
.area data(ram, con, rel)
.dbfile G:\Demo/Define.h
L84:
.blkb 2
.area idata
.byte 45,0
.area data(ram, con, rel)
.dbfile G:\Demo/Define.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -