📄 main.s
字号:
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/1602.h
.blkb 2
.area idata
.byte 0,'C
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/1602.h
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/1602.h
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/DS1820.h
.dbsym e temp_1820 _temp_1820 A[7:7]c
.area text(rom, con, rel)
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/DS1820.h
.dbfunc e delay_10us _delay_10us fV
; i -> R16
.even
_delay_10us::
.dbline -1
.dbline 29
.dbline 31
tst R16
brne L33
.dbline 31
.dbline 32
xjmp L29
L32:
.dbline 34
.dbline 35
.dbline 35
nop
.dbline 35
nop
.dbline 35
nop
.dbline 35
nop
.dbline 35
.dbline 35
.dbline 36
L33:
.dbline 34
mov R2,R16
clr R3
subi R16,1
tst R2
brne L32
.dbline -2
L29:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e ds1820_reset _ds1820_reset fc
; i -> R20
.even
_ds1820_reset::
xcall push_gset1
.dbline -1
.dbline 40
.dbline 43
in R2,0x3f
sts _flag,R2
.dbline 44
cli
.dbline 45
sbi 0x1a,3
.dbline 46
cbi 0x1b,3
.dbline 47
ldi R16,49
xcall _delay_10us
.dbline 48
sbi 0x1b,3
.dbline 49
cbi 0x1a,3
.dbline 50
ldi R16,7
xcall _delay_10us
.dbline 51
in R20,0x19
andi R20,8
.dbline 52
ldi R16,49
xcall _delay_10us
.dbline 53
lds R2,_flag
sbrs R2,7
rjmp L36
.dbline 53
.dbline 54
sei
.dbline 55
L36:
.dbline 56
tst R20
breq L38
.dbline 56
.dbline 57
clr R16
xjmp L35
L38:
.dbline 59
.dbline 60
ldi R16,1
.dbline -2
L35:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
.dbfunc e ds1820_read_byte _ds1820_read_byte fc
; value -> R20
; i -> R22
.even
_ds1820_read_byte::
xcall push_gset2
.dbline -1
.dbline 65
.dbline 68
clr R20
.dbline 69
in R2,0x3f
sts _flag,R2
.dbline 70
cli
.dbline 71
ldi R22,8
xjmp L44
L41:
.dbline 71
.dbline 72
lsr R20
.dbline 73
sbi 0x1a,3
.dbline 74
cbi 0x1b,3
.dbline 75
.dbline 75
nop
.dbline 75
nop
.dbline 75
nop
.dbline 75
nop
.dbline 75
.dbline 75
.dbline 76
sbi 0x1b,3
.dbline 77
cbi 0x1a,3
.dbline 78
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
nop
.dbline 78
.dbline 78
.dbline 79
sbis 0x19,3
rjmp L45
.dbline 79
.dbline 80
ori R20,128
.dbline 81
L45:
.dbline 82
ldi R16,5
xcall _delay_10us
.dbline 83
L42:
.dbline 71
dec R22
L44:
.dbline 71
tst R22
brne L41
.dbline 84
lds R2,_flag
sbrs R2,7
rjmp L47
.dbline 84
.dbline 85
sei
.dbline 86
L47:
.dbline 87
mov R16,R20
.dbline -2
L40:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r value 20 c
.dbsym r i 22 c
.dbend
.dbfunc e ds1820_write_byte _ds1820_write_byte fV
; i -> R20
; value -> R22
.even
_ds1820_write_byte::
xcall push_gset2
mov R22,R16
.dbline -1
.dbline 91
.dbline 94
in R2,0x3f
sts _flag,R2
.dbline 95
cli
.dbline 96
ldi R20,8
xjmp L53
L50:
.dbline 96
.dbline 97
sbi 0x1a,3
.dbline 98
cbi 0x1b,3
.dbline 99
.dbline 99
nop
.dbline 99
nop
.dbline 99
nop
.dbline 99
nop
.dbline 99
.dbline 99
.dbline 100
sbrc R22,0
.dbline 100
.dbline 100
sbi 0x1b,3
.dbline 100
L54:
.dbline 102
ldi R16,7
xcall _delay_10us
.dbline 103
sbi 0x1b,3
.dbline 104
lsr R22
.dbline 105
L51:
.dbline 96
dec R20
L53:
.dbline 96
tst R20
brne L50
.dbline 106
lds R2,_flag
sbrs R2,7
rjmp L56
.dbline 106
.dbline 107
sei
.dbline 108
L56:
.dbline -2
L49:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r value 22 c
.dbend
.dbfunc e ds1820_start _ds1820_start fV
.even
_ds1820_start::
.dbline -1
.dbline 112
.dbline 114
xcall _ds1820_reset
.dbline 115
ldi R16,204
xcall _ds1820_write_byte
.dbline 116
ldi R16,68
xcall _ds1820_write_byte
.dbline -2
L58:
.dbline 0 ; func end
ret
.dbend
.dbfunc e ds1820_read_temp _ds1820_read_temp fi
; buf -> y+0
; i -> R20,R21
.even
_ds1820_read_temp::
xcall push_gset1
sbiw R28,9
.dbline -1
.dbline 120
.dbline 125
xcall _ds1820_reset
.dbline 126
ldi R16,204
xcall _ds1820_write_byte
.dbline 127
ldi R16,190
xcall _ds1820_write_byte
.dbline 128
clr R20
clr R21
xjmp L63
L60:
.dbline 129
.dbline 130
xcall _ds1820_read_byte
movw R24,R28
movw R30,R20
add R30,R24
adc R31,R25
std z+0,R16
.dbline 131
L61:
.dbline 128
subi R20,255 ; offset = 1
sbci R21,255
L63:
.dbline 128
cpi R20,9
ldi R30,0
cpc R21,R30
brlo L60
.dbline 132
ldd R20,y+1
clr R21
.dbline 133
mov R21,R20
clr R20
.dbline 134
ldd R2,y+0
clr R3
or R20,R2
or R21,R3
.dbline 136
movw R16,R20
.dbline -2
L59:
adiw R28,9
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym l buf 0 A[9:9]c
.dbsym r i 20 i
.dbend
.dbfunc e ds1820 _ds1820 fV
; i -> R20,R21
.even
_ds1820::
xcall push_gset1
.dbline -1
.dbline 139
.dbline 140
xcall _ds1820_start
.dbline 141
ldi R16,300
ldi R17,1
xcall _delay_nms
.dbline 142
xcall _ds1820_read_temp
movw R20,R16
.dbline 143
ldi R16,10
ldi R17,0
movw R18,R20
xcall empy16s
movw R20,R16
lsr R21
ror R20
lsr R21
ror R20
lsr R21
ror R20
lsr R21
ror R20
.dbline 144
ldi R18,1000
ldi R19,3
movw R16,R20
xcall div16u
movw R24,R16
adiw R24,48
sts _temp_1820,R24
.dbline 145
ldi R18,1000
ldi R19,3
movw R16,R20
xcall mod16u
movw R20,R16
.dbline 146
; }
ldi R18,100
ldi R19,0
xcall div16u
movw R24,R16
adiw R24,48
sts _temp_1820+1,R24
.dbline 147
; }
ldi R18,100
ldi R19,0
movw R16,R20
xcall mod16u
movw R20,R16
.dbline 148
; }
ldi R18,10
ldi R19,0
xcall div16u
movw R24,R16
adiw R24,48
sts _temp_1820+2,R24
.dbline 149
; }
ldi R18,10
ldi R19,0
movw R16,R20
xcall mod16u
movw R24,R16
adiw R24,48
sts _temp_1820+4,R24
.dbline -2
L65:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbend
.dbfile D:\avr\+++精华+++\+M16范例+\18b20\main.c
.dbfunc e main _main fV
.even
_main::
sbiw R28,2
.dbline -1
.dbline 22
.dbline 26
clr R2
out 0x1a,R2
.dbline 27
ldi R24,255
out 0x1b,R24
.dbline 28
out 0x17,R24
.dbline 29
ldi R24,240
out 0x18,R24
.dbline 30
out 0x14,R2
.dbline 31
ldi R24,255
out 0x15,R24
.dbline 32
out 0x11,R2
.dbline 33
out 0x12,R24
.dbline 35
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 37
xcall _LCD_init
.dbline 38
ldi R24,<L70
ldi R25,>L70
std y+1,R25
std y+0,R24
clr R18
ldi R16,2
xcall _LCD_write_string
xjmp L72
L71:
.dbline 39
.dbline 40
xcall _ds1820
.dbline 41
ldi R24,<_temp_1820
ldi R25,>_temp_1820
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,4
xcall _LCD_write_string
.dbline 43
L72:
.dbline 39
xjmp L71
X0:
.dbline -2
L69:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile D:\avr\+++精华+++\+M16范例+\18b20\main.c
_flag::
.blkb 1
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/DS1820.h
.dbsym e flag _flag c
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/DS1820.h
L70:
.blkb 12
.area idata
.byte 'T,'e,'m,'p,'e,'r,'a,'t,'u,'r,'e,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\+M16范例+\18b20/DS1820.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -