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

📄 ds1820.lst

📁 基于AVR的超声波测距程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"ds1820.c"
   2               	__SREG__ = 0x3f
   3               	__SP_H__ = 0x3e
   4               	__SP_L__ = 0x3d
   5               	__tmp_reg__ = 0
   6               	__zero_reg__ = 1
   7               		.global __do_copy_data
   8               		.global __do_clear_bss
  16               	.Ltext0:
  17               	.global	read_DS1820
  19               	read_DS1820:
  20               	.LFB9:
  21               	.LM1:
  22               	/* prologue: frame size=0 */
  23 0000 0F93      		push r16
  24 0002 1F93      		push r17
  25               	/* prologue end (size=2) */
  26               	.LM2:
  27 0004 B89A      		sbi 55-0x20,0
  28 0006 00E0      		ldi r16,lo8(0)
  29               	.LVL0:
  30 0008 10E0      		ldi r17,lo8(0)
  31               	.LVL1:
  32               	.L2:
  33               	.LM3:
  34 000a 1695      		lsr r17
  35               	.LM4:
  36 000c C098      		cbi 56-0x20,0
  37               	.LM5:
  38 000e 85E0      		ldi r24,lo8(5)
  39 0010 90E0      		ldi r25,hi8(5)
  40 0012 0E94 0000 		call delay_nus
  41               	.LM6:
  42 0016 B898      		cbi 55-0x20,0
  43               	.LM7:
  44 0018 85E0      		ldi r24,lo8(5)
  45 001a 90E0      		ldi r25,hi8(5)
  46 001c 0E94 0000 		call delay_nus
  47               	.LM8:
  48 0020 B099      		sbic 54-0x20,0
  49               	.LM9:
  50 0022 1068      		ori r17,lo8(-128)
  51               	.L3:
  52               	.LM10:
  53 0024 80E5      		ldi r24,lo8(80)
  54 0026 90E0      		ldi r25,hi8(80)
  55 0028 0E94 0000 		call delay_nus
  56               	.LM11:
  57 002c C09A      		sbi 56-0x20,0
  58               	.LM12:
  59 002e B89A      		sbi 55-0x20,0
  60               	.LM13:
  61 0030 0F5F      		subi r16,lo8(-(1))
  62 0032 0830      		cpi r16,lo8(8)
  63 0034 01F4      		brne .L2
  64               	.LM14:
  65 0036 812F      		mov r24,r17
  66 0038 90E0      		ldi r25,lo8(0)
  67               	/* epilogue: frame size=0 */
  68 003a 1F91      		pop r17
  69 003c 0F91      		pop r16
  70 003e 0895      		ret
  71               	/* epilogue end (size=3) */
  72               	/* function read_DS1820 size 33 (28) */
  73               	.LFE9:
  75               	.global	write_DS1820
  77               	write_DS1820:
  78               	.LFB8:
  79               	.LM15:
  80               	/* prologue: frame size=0 */
  81 0040 0F93      		push r16
  82 0042 1F93      		push r17
  83               	/* prologue end (size=2) */
  84               	.LVL2:
  85 0044 182F      		mov r17,r24
  86               	.LM16:
  87 0046 B89A      		sbi 55-0x20,0
  88 0048 00E0      		ldi r16,lo8(0)
  89               	.LVL3:
  90               	.L10:
  91               	.LM17:
  92 004a C098      		cbi 56-0x20,0
  93               	.LM18:
  94 004c 85E0      		ldi r24,lo8(5)
  95 004e 90E0      		ldi r25,hi8(5)
  96 0050 0E94 0000 		call delay_nus
  97               	.LM19:
  98 0054 10FF      		sbrs r17,0
  99 0056 00C0      		rjmp .L11
 100               	.LM20:
 101 0058 C09A      		sbi 56-0x20,0
 102 005a 00C0      		rjmp .L13
 103               	.L11:
 104               	.LM21:
 105 005c C098      		cbi 56-0x20,0
 106               	.L13:
 107               	.LM22:
 108 005e 8CE3      		ldi r24,lo8(60)
 109 0060 90E0      		ldi r25,hi8(60)
 110 0062 0E94 0000 		call delay_nus
 111               	.LM23:
 112 0066 C09A      		sbi 56-0x20,0
 113               	.LM24:
 114 0068 8AE0      		ldi r24,lo8(10)
 115 006a 90E0      		ldi r25,hi8(10)
 116 006c 0E94 0000 		call delay_nus
 117               	.LM25:
 118 0070 0F5F      		subi r16,lo8(-(1))
 119 0072 0830      		cpi r16,lo8(8)
 120 0074 01F0      		breq .L14
 121               	.LM26:
 122 0076 1695      		lsr r17
 123 0078 00C0      		rjmp .L10
 124               	.L14:
 125               	.LM27:
 126 007a C09A      		sbi 56-0x20,0
 127               	/* epilogue: frame size=0 */
 128 007c 1F91      		pop r17
 129 007e 0F91      		pop r16
 130 0080 0895      		ret
 131               	/* epilogue end (size=3) */
 132               	/* function write_DS1820 size 33 (28) */
 133               	.LFE8:
 135               	.global	Init_DS1820
 137               	Init_DS1820:
 138               	.LFB7:
 139               	.LM28:
 140               	/* prologue: frame size=0 */
 141 0082 1F93      		push r17
 142               	/* prologue end (size=1) */
 143               	.LM29:
 144 0084 B89A      		sbi 55-0x20,0
 145               	.LM30:
 146 0086 C098      		cbi 56-0x20,0
 147               	.LM31:
 148 0088 84EF      		ldi r24,lo8(500)
 149 008a 91E0      		ldi r25,hi8(500)
 150 008c 0E94 0000 		call delay_nus
 151               	.LM32:
 152 0090 B898      		cbi 55-0x20,0
 153               	.LM33:
 154 0092 80E5      		ldi r24,lo8(80)
 155 0094 90E0      		ldi r25,hi8(80)
 156 0096 0E94 0000 		call delay_nus
 157               	.LM34:
 158 009a 16B3      		in r17,54-0x20
 159               	.LM35:
 160 009c 80EF      		ldi r24,lo8(240)
 161 009e 90E0      		ldi r25,hi8(240)
 162 00a0 0E94 0000 		call delay_nus
 163               	.LM36:
 164 00a4 B89A      		sbi 55-0x20,0
 165               	.LM37:
 166 00a6 C09A      		sbi 56-0x20,0
 167 00a8 1095      		com r17
 168 00aa 1170      		andi r17,lo8(1)
 169               	.LM38:
 170 00ac 812F      		mov r24,r17
 171 00ae 90E0      		ldi r25,lo8(0)
 172               	/* epilogue: frame size=0 */
 173 00b0 1F91      		pop r17
 174 00b2 0895      		ret
 175               	/* epilogue end (size=2) */
 176               	/* function Init_DS1820 size 25 (22) */
 177               	.LFE7:
 179               	.global	GetTemperature
 181               	GetTemperature:
 182               	.LFB11:
 183               	.LM39:
 184               	/* prologue: frame size=9 */
 185 00b4 CF92      		push r12
 186 00b6 DF92      		push r13
 187 00b8 EF92      		push r14
 188 00ba FF92      		push r15
 189 00bc 0F93      		push r16
 190 00be 1F93      		push r17
 191 00c0 CF93      		push r28
 192 00c2 DF93      		push r29
 193 00c4 CDB7      		in r28,__SP_L__
 194 00c6 DEB7      		in r29,__SP_H__
 195 00c8 2997      		sbiw r28,9
 196 00ca 0FB6      		in __tmp_reg__,__SREG__
 197 00cc F894      		cli
 198 00ce DEBF      		out __SP_H__,r29
 199 00d0 0FBE      		out __SREG__,__tmp_reg__
 200 00d2 CDBF      		out __SP_L__,r28
 201               	/* prologue end (size=16) */
 202               	.LM40:
 203 00d4 0E94 0000 		call Init_DS1820
 204               	.LM41:
 205 00d8 8CEC      		ldi r24,lo8(-52)
 206 00da 0E94 0000 		call write_DS1820
 207               	.LM42:
 208 00de 84E4      		ldi r24,lo8(68)
 209 00e0 0E94 0000 		call write_DS1820
 210               	.LM43:
 211 00e4 88EE      		ldi r24,lo8(1000)
 212 00e6 93E0      		ldi r25,hi8(1000)
 213 00e8 0E94 0000 		call delay_nms
 214               	.LM44:
 215 00ec 0E94 0000 		call Init_DS1820
 216               	.LM45:
 217 00f0 8CEC      		ldi r24,lo8(-52)
 218 00f2 0E94 0000 		call write_DS1820
 219               	.LM46:
 220 00f6 8EEB      		ldi r24,lo8(-66)
 221 00f8 0E94 0000 		call write_DS1820
 222 00fc 8E01      		movw r16,r28
 223 00fe 0F5F      		subi r16,lo8(-(1))
 224 0100 1F4F      		sbci r17,hi8(-(1))
 225               	.LM47:
 226 0102 6801      		movw r12,r16
 227               	.LM48:
 228 0104 3AE0      		ldi r19,lo8(10)
 229 0106 E32E      		mov r14,r19
 230 0108 F12C      		mov r15,__zero_reg__
 231 010a EC0E      		add r14,r28
 232 010c FD1E      		adc r15,r29
 233               	.L20:
 234               	.LM49:
 235 010e 0E94 0000 		call read_DS1820
 236 0112 F801      		movw r30,r16
 237 0114 8193      		st Z+,r24
 238 0116 8F01      		movw r16,r30
 239               	.LM50:
 240 0118 EE15      		cp r30,r14
 241 011a FF05      		cpc r31,r15
 242 011c 01F4      		brne .L20
 243               	.LM51:
 244 011e E981      		ldd r30,Y+1
 245 0120 F0E0      		ldi r31,lo8(0)
 246 0122 E050      		subi r30,lo8(-(CRC_Code))
 247 0124 F040      		sbci r31,hi8(-(CRC_Code))
 248 0126 E081      		ld r30,Z
 249               	.LVL4:
 250 0128 DE01      		movw r26,r28
 251 012a 1296      		adiw r26,2
 252               	.LM52:
 253 012c 9601      		movw r18,r12
 254 012e 285F      		subi r18,lo8(-(8))
 255 0130 3F4F      		sbci r19,hi8(-(8))
 256               	.L22:
 257               	.LM53:
 258 0132 8D91      		ld r24,X+
 259 0134 E827      		eor r30,r24
 260 0136 F0E0      		ldi r31,lo8(0)
 261 0138 E050      		subi r30,lo8(-(CRC_Code))
 262 013a F040      		sbci r31,hi8(-(CRC_Code))
 263               	.LVL5:
 264 013c E081      		ld r30,Z
 265               	.LVL6:
 266               	.LM54:
 267 013e A217      		cp r26,r18
 268 0140 B307      		cpc r27,r19
 269 0142 01F4      		brne .L22
 270               	.LM55:
 271 0144 8985      		ldd r24,Y+9
 272 0146 E817      		cp r30,r24
 273 0148 01F0      		breq .L24
 274 014a 60E0      		ldi r22,lo8(0xc2c80000)
 275 014c 70E0      		ldi r23,hi8(0xc2c80000)
 276 014e 88EC      		ldi r24,hlo8(0xc2c80000)
 277 0150 92EC      		ldi r25,hhi8(0xc2c80000)
 278               	.LVL7:
 279 0152 00C0      		rjmp .L26
 280               	.LVL8:
 281               	.L24:
 282               	.LM56:
 283 0154 8A81      		ldd r24,Y+2
 284 0156 83FF      		sbrs r24,3
 285 0158 00C0      		rjmp .L27
 286               	.LM57:
 287 015a 8095      		com r24
 288 015c 8A83      		std Y+2,r24
 289               	.LM58:
 290 015e 9981      		ldd r25,Y+1
 291               	.LM59:
 292 0160 8FB7      		in r24,95-0x20
 293 0162 8E7F      		andi r24,lo8(-2)
 294 0164 8FBF      		out 95-0x20,r24
 295               	.LM60:
 296 0166 9195      		neg r25
 297 0168 9983      		std Y+1,r25
 298               	.LM61:
 299 016a 0FB6      		in __tmp_reg__,95-0x20
 300 016c 00FE      		sbrs __tmp_reg__,0
 301 016e 00C0      		rjmp .L27
 302               	.LM62:
 303 0170 8A81      		ldd r24,Y+2
 304 0172 8F5F      		subi r24,lo8(-(1))
 305 0174 8A83      		std Y+2,r24
 306               	.L27:
 307               	.LM63:
 308 0176 6A81      		ldd r22,Y+2
 309 0178 70E0      		ldi r23,lo8(0)
 310 017a 80E0      		ldi r24,lo8(0)
 311 017c 90E0      		ldi r25,hi8(0)
 312 017e 982F      		mov r25,r24
 313 0180 872F      		mov r24,r23
 314 0182 762F      		mov r23,r22
 315 0184 6627      		clr r22
 316               	.LM64:
 317 0186 2981      		ldd r18,Y+1
 318 0188 620F      		add r22,r18
 319 018a 711D      		adc r23,__zero_reg__
 320 018c 811D      		adc r24,__zero_reg__
 321 018e 911D      		adc r25,__zero_reg__
 322 0190 0E94 0000 		call __floatunsisf
 323               	.LVL9:
 324 0194 20E0      		ldi r18,lo8(0x3d800000)
 325 0196 30E0      		ldi r19,hi8(0x3d800000)
 326 0198 40E8      		ldi r20,hlo8(0x3d800000)
 327 019a 5DE3      		ldi r21,hhi8(0x3d800000)
 328 019c 0E94 0000 		call __mulsf3
 329               	.LVL10:
 330               	.L26:
 331               	.LVL11:
 332               	/* epilogue: frame size=9 */
 333 01a0 2996      		adiw r28,9
 334 01a2 0FB6      		in __tmp_reg__,__SREG__
 335 01a4 F894      		cli
 336 01a6 DEBF      		out __SP_H__,r29
 337 01a8 0FBE      		out __SREG__,__tmp_reg__
 338 01aa CDBF      		out __SP_L__,r28
 339 01ac DF91      		pop r29
 340 01ae CF91      		pop r28
 341 01b0 1F91      		pop r17
 342 01b2 0F91      		pop r16
 343 01b4 FF90      		pop r15
 344 01b6 EF90      		pop r14
 345 01b8 DF90      		pop r13
 346 01ba CF90      		pop r12
 347 01bc 0895      		ret
 348               	/* epilogue end (size=15) */
 349               	/* function GetTemperature size 133 (102) */
 350               	.LFE11:
 352               	.global	DS1820CRCDETECT
 354               	DS1820CRCDETECT:
 355               	.LFB10:
 356               	.LM65:
 357               	/* prologue: frame size=8 */
 358 01be EF92      		push r14
 359 01c0 FF92      		push r15
 360 01c2 0F93      		push r16
 361 01c4 1F93      		push r17
 362 01c6 CF93      		push r28
 363 01c8 DF93      		push r29
 364 01ca CDB7      		in r28,__SP_L__
 365 01cc DEB7      		in r29,__SP_H__
 366 01ce 2897      		sbiw r28,8
 367 01d0 0FB6      		in __tmp_reg__,__SREG__
 368 01d2 F894      		cli
 369 01d4 DEBF      		out __SP_H__,r29
 370 01d6 0FBE      		out __SREG__,__tmp_reg__
 371 01d8 CDBF      		out __SP_L__,r28
 372               	/* prologue end (size=14) */
 373               	.LM66:
 374 01da 0E94 0000 		call Init_DS1820
 375               	.LM67:
 376 01de 8CEC      		ldi r24,lo8(-52)
 377 01e0 0E94 0000 		call write_DS1820
 378               	.LM68:
 379 01e4 8EE4      		ldi r24,lo8(78)
 380 01e6 0E94 0000 		call write_DS1820
 381               	.LM69:
 382 01ea 82E0      		ldi r24,lo8(2)
 383 01ec 0E94 0000 		call write_DS1820
 384               	.LM70:
 385 01f0 80E8      		ldi r24,lo8(-128)
 386 01f2 0E94 0000 		call write_DS1820
 387               	.LM71:
 388 01f6 8FE7      		ldi r24,lo8(127)
 389 01f8 0E94 0000 		call write_DS1820
 390               	.LM72:
 391 01fc 0E94 0000 		call Init_DS1820
 392               	.LM73:
 393 0200 83E3      		ldi r24,lo8(51)
 394 0202 0E94 0000 		call write_DS1820
 395 0206 8E01      		movw r16,r28

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -