⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.s

📁 DS18B20的使用情况以及电路接法和原代码!可以参考做测温电路
💻 S
📖 第 1 页 / 共 2 页
字号:
	.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 + -