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

📄 onewire.lst

📁 这是使用AVR GCC的读取DS18B20的代码。 代码功能很全
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"onewire.c"
   2               		.arch atmega32
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  17               	.Ltext0:
  18               	.global	ow_reset
  20               	ow_reset:
  21               	.LFB7:
  22               	.LM1:
  23               	/* prologue: frame size=0 */
  24               	/* prologue end (size=0) */
  25               	.LM2:
  26 0000 E091 0000 		lds r30,OW_OUT
  27 0004 F091 0000 		lds r31,(OW_OUT)+1
  28 0008 9091 0000 		lds r25,OW_PIN_MASK
  29 000c 9095      		com r25
  30 000e 8081      		ld r24,Z
  31 0010 8923      		and r24,r25
  32 0012 8083      		st Z,r24
  33               	.LM3:
  34 0014 E091 0000 		lds r30,OW_DDR
  35 0018 F091 0000 		lds r31,(OW_DDR)+1
  36 001c 8081      		ld r24,Z
  37 001e 9091 0000 		lds r25,OW_PIN_MASK
  38 0022 892B      		or r24,r25
  39 0024 8083      		st Z,r24
  40               	.LBB2:
  41               	.LM4:
  42 0026 8FEB      		ldi r24,lo8(959)
  43 0028 93E0      		ldi r25,hi8(959)
  44               	.LBB3:
  45               	.LM5:
  46               	/* #APP */
  47 002a 8115      		cp  r24,__zero_reg__ 
  48 002c 9105      		cpc r25,__zero_reg__ 
  49 002e 11F0      		breq L_Exit_24       
  50               		L_LOOP_24:           
  51 0030 0197      		sbiw r24,1            
  52 0032 F1F7      		brne L_LOOP_24       
  53               		L_Exit_24:           
  54               		
  55               	/* #NOAPP */
  56               	.LBE3:
  57               	.LBE2:
  58               	.LM6:
  59 0034 3FB7      		in r19,95-0x20
  60               	.LM7:
  61               	/* #APP */
  62 0036 F894      		cli
  63               	.LM8:
  64               	/* #NOAPP */
  65 0038 E091 0000 		lds r30,OW_DDR
  66 003c F091 0000 		lds r31,(OW_DDR)+1
  67 0040 9091 0000 		lds r25,OW_PIN_MASK
  68 0044 9095      		com r25
  69 0046 8081      		ld r24,Z
  70 0048 8923      		and r24,r25
  71 004a 8083      		st Z,r24
  72               	.LBB4:
  73               	.LM9:
  74 004c 83E8      		ldi r24,lo8(131)
  75 004e 90E0      		ldi r25,hi8(131)
  76               	.LBB5:
  77               	.LM10:
  78               	/* #APP */
  79 0050 8115      		cp  r24,__zero_reg__ 
  80 0052 9105      		cpc r25,__zero_reg__ 
  81 0054 11F0      		breq L_Exit_44       
  82               		L_LOOP_44:           
  83 0056 0197      		sbiw r24,1            
  84 0058 F1F7      		brne L_LOOP_44       
  85               		L_Exit_44:           
  86               		
  87               	/* #NOAPP */
  88               	.LBE5:
  89               	.LBE4:
  90               	.LM11:
  91 005a E091 0000 		lds r30,OW_IN
  92 005e F091 0000 		lds r31,(OW_IN)+1
  93 0062 4081      		ld r20,Z
  94 0064 2091 0000 		lds r18,OW_PIN_MASK
  95 0068 4223      		and r20,r18
  96               	.LM12:
  97 006a 3FBF      		out 95-0x20,r19
  98               	.LBB6:
  99               	.LM13:
 100 006c 8BE3      		ldi r24,lo8(827)
 101 006e 93E0      		ldi r25,hi8(827)
 102               	.LBB7:
 103               	.LM14:
 104               	/* #APP */
 105 0070 8115      		cp  r24,__zero_reg__ 
 106 0072 9105      		cpc r25,__zero_reg__ 
 107 0074 11F0      		breq L_Exit_60       
 108               		L_LOOP_60:           
 109 0076 0197      		sbiw r24,1            
 110 0078 F1F7      		brne L_LOOP_60       
 111               		L_Exit_60:           
 112               		
 113               	/* #NOAPP */
 114               	.LBE7:
 115               	.LBE6:
 116               	.LM15:
 117 007a 8081      		ld r24,Z
 118 007c 8223      		and r24,r18
 119 007e 09F4      		brne .L5
 120               	.LM16:
 121 0080 41E0      		ldi r20,lo8(1)
 122               	.L5:
 123               	.LM17:
 124 0082 842F      		mov r24,r20
 125 0084 9927      		clr r25
 126               	/* epilogue: frame size=0 */
 127 0086 0895      		ret
 128               	/* epilogue end (size=1) */
 129               	/* function ow_reset size 103 (102) */
 130               	.LFE7:
 132               	.global	ow_set_bus
 134               	ow_set_bus:
 135               	.LFB3:
 136               	.LM18:
 137               	/* prologue: frame size=0 */
 138               	/* prologue end (size=0) */
 139               	.LM19:
 140 0088 5093 0000 		sts (OW_DDR)+1,r21
 141 008c 4093 0000 		sts OW_DDR,r20
 142               	.LM20:
 143 0090 7093 0000 		sts (OW_OUT)+1,r23
 144 0094 6093 0000 		sts OW_OUT,r22
 145               	.LM21:
 146 0098 9093 0000 		sts (OW_IN)+1,r25
 147 009c 8093 0000 		sts OW_IN,r24
 148               	.LM22:
 149 00a0 81E0      		ldi r24,lo8(1)
 150 00a2 90E0      		ldi r25,hi8(1)
 151 00a4 02C0      		rjmp 2f
 152 00a6 880F      	1:	lsl r24
 153 00a8 991F      		rol r25
 154 00aa 2A95      	2:	dec r18
 155 00ac E2F7      		brpl 1b
 156 00ae 8093 0000 		sts OW_PIN_MASK,r24
 157               	.LM23:
 158 00b2 0E94 0000 		call ow_reset
 159               	/* epilogue: frame size=0 */
 160 00b6 0895      		ret
 161               	/* epilogue end (size=1) */
 162               	/* function ow_set_bus size 25 (24) */
 163               	.LFE3:
 165               	.global	ow_input_pin_state
 167               	ow_input_pin_state:
 168               	.LFB4:
 169               	.LM24:
 170               	/* prologue: frame size=0 */
 171               	/* prologue end (size=0) */
 172               	.LM25:
 173 00b8 E091 0000 		lds r30,OW_IN
 174 00bc F091 0000 		lds r31,(OW_IN)+1
 175 00c0 8081      		ld r24,Z
 176 00c2 9091 0000 		lds r25,OW_PIN_MASK
 177 00c6 8923      		and r24,r25
 178               	.LM26:
 179 00c8 9927      		clr r25
 180               	/* epilogue: frame size=0 */
 181 00ca 0895      		ret
 182               	/* epilogue end (size=1) */
 183               	/* function ow_input_pin_state size 10 (9) */
 184               	.LFE4:
 186               	.global	ow_parasite_enable
 188               	ow_parasite_enable:
 189               	.LFB5:
 190               	.LM27:
 191               	/* prologue: frame size=0 */
 192               	/* prologue end (size=0) */
 193               	.LM28:
 194 00cc E091 0000 		lds r30,OW_OUT
 195 00d0 F091 0000 		lds r31,(OW_OUT)+1
 196 00d4 8081      		ld r24,Z
 197 00d6 9091 0000 		lds r25,OW_PIN_MASK
 198 00da 892B      		or r24,r25
 199 00dc 8083      		st Z,r24
 200               	.LM29:
 201 00de E091 0000 		lds r30,OW_DDR
 202 00e2 F091 0000 		lds r31,(OW_DDR)+1
 203 00e6 8081      		ld r24,Z
 204 00e8 9091 0000 		lds r25,OW_PIN_MASK
 205 00ec 892B      		or r24,r25
 206 00ee 8083      		st Z,r24
 207               	/* epilogue: frame size=0 */
 208 00f0 0895      		ret
 209               	/* epilogue end (size=1) */
 210               	/* function ow_parasite_enable size 19 (18) */
 211               	.LFE5:
 213               	.global	ow_parasite_disable
 215               	ow_parasite_disable:
 216               	.LFB6:
 217               	.LM30:
 218               	/* prologue: frame size=0 */
 219               	/* prologue end (size=0) */
 220               	.LM31:
 221 00f2 E091 0000 		lds r30,OW_OUT
 222 00f6 F091 0000 		lds r31,(OW_OUT)+1
 223 00fa 9091 0000 		lds r25,OW_PIN_MASK
 224 00fe 9095      		com r25
 225 0100 8081      		ld r24,Z
 226 0102 8923      		and r24,r25
 227 0104 8083      		st Z,r24
 228               	.LM32:
 229 0106 E091 0000 		lds r30,OW_DDR
 230 010a F091 0000 		lds r31,(OW_DDR)+1
 231 010e 9091 0000 		lds r25,OW_PIN_MASK
 232 0112 9095      		com r25
 233 0114 8081      		ld r24,Z
 234 0116 8923      		and r24,r25
 235 0118 8083      		st Z,r24
 236               	/* epilogue: frame size=0 */
 237 011a 0895      		ret
 238               	/* epilogue end (size=1) */
 239               	/* function ow_parasite_disable size 21 (20) */
 240               	.LFE6:
 242               	.global	ow_bit_io
 244               	ow_bit_io:
 245               	.LFB8:
 246               	.LM33:
 247               	/* prologue: frame size=0 */
 248               	/* prologue end (size=0) */
 249 011c 382F      		mov r19,r24
 250               	.LM34:
 251 011e 4FB7      		in r20,95-0x20
 252               	.LM35:
 253               	/* #APP */
 254 0120 F894      		cli
 255               	.LM36:
 256               	/* #NOAPP */
 257 0122 E091 0000 		lds r30,OW_DDR
 258 0126 F091 0000 		lds r31,(OW_DDR)+1
 259 012a 8081      		ld r24,Z
 260 012c 9091 0000 		lds r25,OW_PIN_MASK
 261 0130 892B      		or r24,r25
 262 0132 8083      		st Z,r24
 263               	.LBB8:
 264               	.LM37:
 265 0134 81E0      		ldi r24,lo8(1)
 266 0136 90E0      		ldi r25,hi8(1)
 267               	.LBB9:
 268               	.LM38:
 269               	/* #APP */
 270 0138 8115      		cp  r24,__zero_reg__ 
 271 013a 9105      		cpc r25,__zero_reg__ 
 272 013c 11F0      		breq L_Exit_159       
 273               		L_LOOP_159:           
 274 013e 0197      		sbiw r24,1            
 275 0140 F1F7      		brne L_LOOP_159       
 276               		L_Exit_159:           
 277               		
 278               	/* #NOAPP */
 279               	.LBE9:
 280               	.LBE8:
 281               	.LM39:
 282 0142 3323      		tst r19
 283 0144 51F0      		breq .L12
 284               	.LM40:
 285 0146 E091 0000 		lds r30,OW_DDR
 286 014a F091 0000 		lds r31,(OW_DDR)+1
 287 014e 9091 0000 		lds r25,OW_PIN_MASK
 288 0152 9095      		com r25
 289 0154 8081      		ld r24,Z
 290 0156 8923      		and r24,r25
 291 0158 8083      		st Z,r24
 292               	.L12:
 293               	.LBB10:
 294               	.LM41:
 295 015a 89E1      		ldi r24,lo8(25)
 296 015c 90E0      		ldi r25,hi8(25)
 297               	.LBB11:
 298               	.LM42:
 299               	/* #APP */
 300 015e 8115      		cp  r24,__zero_reg__ 
 301 0160 9105      		cpc r25,__zero_reg__ 
 302 0162 11F0      		breq L_Exit_180       
 303               		L_LOOP_180:           
 304 0164 0197      		sbiw r24,1            
 305 0166 F1F7      		brne L_LOOP_180       
 306               		L_Exit_180:           
 307               		
 308               	/* #NOAPP */
 309               	.LBE11:
 310               	.LBE10:
 311               	.LM43:
 312 0168 E091 0000 		lds r30,OW_IN

⌨️ 快捷键说明

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