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

📄 ds18x20.lst

📁 这是使用AVR GCC的读取DS18B20的代码。 代码功能很全
💻 LST
📖 第 1 页 / 共 4 页
字号:
 866 0452 0894      		sec
 867 0454 E11C      		adc r14,__zero_reg__
 868 0456 F11C      		adc r15,__zero_reg__
 869 0458 88E0      		ldi r24,lo8(8)
 870 045a E0E0      		ldi r30,lo8(.LC1)
 871 045c F0E0      		ldi r31,hi8(.LC1)
 872 045e D701      		movw r26,r14
 873 0460 0190      		ld __tmp_reg__,Z+
 874 0462 0D92      		st X+,__tmp_reg__
 875 0464 8A95      		dec r24
 876 0466 E1F7      		brne .-8
 877               	.LM100:
 878 0468 242F      		mov r18,r20
 879 046a 3327      		clr r19
 880 046c 81E7      		ldi r24,lo8(625)
 881 046e 92E0      		ldi r25,hi8(625)
 882 0470 289F      		mul r18,r24
 883 0472 B001      		movw r22,r0
 884 0474 299F      		mul r18,r25
 885 0476 700D      		add r23,r0
 886 0478 389F      		mul r19,r24
 887 047a 700D      		add r23,r0
 888 047c 1124      		clr r1
 889 047e CB01      		movw r24,r22
 890 0480 68EE      		ldi r22,lo8(1000)
 891 0482 73E0      		ldi r23,hi8(1000)
 892 0484 0E94 0000 		call __divmodhi4
 893               	.LM101:
 894 0488 8AE0      		ldi r24,lo8(10)
 895 048a 189F      		mul r17,r24
 896 048c C001      		movw r24,r0
 897 048e 1124      		clr r1
 898 0490 680F      		add r22,r24
 899 0492 791F      		adc r23,r25
 900               	.LM102:
 901 0494 0023      		tst r16
 902 0496 59F4      		brne .L80
 903               	.LM103:
 904 0498 902F      		mov r25,r16
 905 049a F701      		movw r30,r14
 906               	.L85:
 907               	.LM104:
 908 049c 8191      		ld r24,Z+
 909 049e 4817      		cp r20,r24
 910 04a0 19F4      		brne .L83
 911               	.LM105:
 912 04a2 6F5F      		subi r22,lo8(-(1))
 913 04a4 7F4F      		sbci r23,hi8(-(1))
 914               	.LM106:
 915 04a6 03C0      		rjmp .L80
 916               	.L83:
 917               	.LM107:
 918 04a8 9F5F      		subi r25,lo8(-(1))
 919 04aa 9830      		cpi r25,lo8(8)
 920 04ac B8F3      		brlo .L85
 921               	.L80:
 922               	.LM108:
 923 04ae CB01      		movw r24,r22
 924               	/* epilogue: frame size=8 */
 925 04b0 2896      		adiw r28,8
 926 04b2 0FB6      		in __tmp_reg__,__SREG__
 927 04b4 F894      		cli
 928 04b6 DEBF      		out __SP_H__,r29
 929 04b8 0FBE      		out __SREG__,__tmp_reg__
 930 04ba CDBF      		out __SP_L__,r28
 931 04bc DF91      		pop r29
 932 04be CF91      		pop r28
 933 04c0 1F91      		pop r17
 934 04c2 0F91      		pop r16
 935 04c4 FF90      		pop r15
 936 04c6 EF90      		pop r14
 937 04c8 0895      		ret
 938               	/* epilogue end (size=13) */
 939               	/* function DS18X20_temp_to_decicel size 77 (50) */
 940               	.LFE10:
 942               	.global	DS18X20_temp_cmp
 944               	DS18X20_temp_cmp:
 945               	.LFB11:
 946               	.LM109:
 947               	/* prologue: frame size=0 */
 948               	/* prologue end (size=0) */
 949               	.LM110:
 950 04ca 8823      		tst r24
 951 04cc 19F0      		breq .L88
 952               	.LM111:
 953 04ce 7095      		com r23
 954 04d0 6195      		neg r22
 955 04d2 7F4F      		sbci r23,lo8(-1)
 956               	.L88:
 957               	.LM112:
 958 04d4 4423      		tst r20
 959 04d6 19F0      		breq .L89
 960 04d8 3095      		com r19
 961 04da 2195      		neg r18
 962 04dc 3F4F      		sbci r19,lo8(-1)
 963               	.L89:
 964               	.LM113:
 965 04de 6217      		cp r22,r18
 966 04e0 7307      		cpc r23,r19
 967 04e2 1CF4      		brge .L90
 968 04e4 8FEF      		ldi r24,lo8(-1)
 969 04e6 9FEF      		ldi r25,hi8(-1)
 970 04e8 0895      		ret
 971               	.L90:
 972               	.LM114:
 973 04ea 2617      		cp r18,r22
 974 04ec 3707      		cpc r19,r23
 975 04ee 1CF4      		brge .L91
 976 04f0 81E0      		ldi r24,lo8(1)
 977 04f2 90E0      		ldi r25,hi8(1)
 978 04f4 0895      		ret
 979               	.L91:
 980               	.LM115:
 981 04f6 80E0      		ldi r24,lo8(0)
 982 04f8 90E0      		ldi r25,hi8(0)
 983               	.LM116:
 984 04fa 0895      		ret
 985               	/* epilogue: frame size=0 */
 986               	/* epilogue: noreturn */
 987               	/* epilogue end (size=0) */
 988               	/* function DS18X20_temp_cmp size 25 (25) */
 989               	.LFE11:
 991               	.global	DS18X20_find_sensor
 993               	DS18X20_find_sensor:
 994               	.LFB12:
 995               	.LM117:
 996               	/* prologue: frame size=0 */
 997 04fc 0F93      		push r16
 998 04fe 1F93      		push r17
 999 0500 CF93      		push r28
 1000 0502 DF93      		push r29
 1001               	/* prologue end (size=4) */
 1002 0504 8C01      		movw r16,r24
 1003 0506 EB01      		movw r28,r22
 1004               	.L93:
 1005               	.LM118:
 1006 0508 BE01      		movw r22,r28
 1007 050a F801      		movw r30,r16
 1008 050c 8081      		ld r24,Z
 1009 050e 0E94 0000 		call ow_rom_search
 1010 0512 982F      		mov r25,r24
 1011 0514 F801      		movw r30,r16
 1012 0516 8083      		st Z,r24
 1013               	.LM119:
 1014 0518 8E5F      		subi r24,lo8(-(2))
 1015 051a 8230      		cpi r24,lo8(2)
 1016 051c 38F0      		brlo .L92
 1017 051e 9923      		tst r25
 1018 0520 29F0      		breq .L92
 1019               	.LM120:
 1020 0522 8881      		ld r24,Y
 1021 0524 8832      		cpi r24,lo8(40)
 1022 0526 11F0      		breq .L92
 1023 0528 8031      		cpi r24,lo8(16)
 1024 052a 71F7      		brne .L93
 1025               	.L92:
 1026               	/* epilogue: frame size=0 */
 1027 052c DF91      		pop r29
 1028 052e CF91      		pop r28
 1029 0530 1F91      		pop r17
 1030 0532 0F91      		pop r16
 1031 0534 0895      		ret
 1032               	/* epilogue end (size=5) */
 1033               	/* function DS18X20_find_sensor size 29 (20) */
 1034               	.LFE12:
 1036               	.global	DS18X20_get_power_status
 1038               	DS18X20_get_power_status:
 1039               	.LFB13:
 1040               	.LM121:
 1041               	/* prologue: frame size=0 */
 1042 0536 0F93      		push r16
 1043 0538 1F93      		push r17
 1044               	/* prologue end (size=2) */
 1045 053a 8C01      		movw r16,r24
 1046               	.LM122:
 1047 053c 0E94 0000 		call ow_reset
 1048               	.LM123:
 1049 0540 B801      		movw r22,r16
 1050 0542 84EB      		ldi r24,lo8(-76)
 1051 0544 0E94 0000 		call ow_command
 1052               	.LM124:
 1053 0548 81E0      		ldi r24,lo8(1)
 1054 054a 0E94 0000 		call ow_bit_io
 1055 054e 182F      		mov r17,r24
 1056               	.LM125:
 1057 0550 0E94 0000 		call ow_reset
 1058               	.LM126:
 1059 0554 80E0      		ldi r24,lo8(0)
 1060 0556 90E0      		ldi r25,hi8(0)
 1061 0558 1123      		tst r17
 1062 055a 11F0      		breq .L100
 1063               	.LM127:
 1064 055c 81E0      		ldi r24,lo8(1)
 1065 055e 90E0      		ldi r25,hi8(1)
 1066               	.L100:
 1067               	/* epilogue: frame size=0 */
 1068 0560 1F91      		pop r17
 1069 0562 0F91      		pop r16
 1070 0564 0895      		ret
 1071               	/* epilogue end (size=3) */
 1072               	/* function DS18X20_get_power_status size 24 (19) */
 1073               	.LFE13:
 1075               		.section	.progmem.data
 1078               	c.4:
 1079 00af 4453 3138 		.string	"DS18X20_start_meas: Short Circuit !\r"
 1079      5832 305F 
 1079      7374 6172 
 1079      745F 6D65 
 1079      6173 3A20 
 1080               		.text
 1081               	.global	DS18X20_start_meas
 1083               	DS18X20_start_meas:
 1084               	.LFB14:
 1085               	.LM128:
 1086               	/* prologue: frame size=0 */
 1087 0566 1F93      		push r17
 1088 0568 CF93      		push r28
 1089 056a DF93      		push r29
 1090               	/* prologue end (size=3) */
 1091 056c 182F      		mov r17,r24
 1092 056e EB01      		movw r28,r22
 1093               	.LM129:
 1094 0570 0E94 0000 		call ow_reset
 1095               	.LM130:
 1096 0574 0E94 0000 		call ow_input_pin_state
 1097 0578 8823      		tst r24
 1098 057a 59F0      		breq .L102
 1099               	.LM131:
 1100 057c BE01      		movw r22,r28
 1101 057e 84E4      		ldi r24,lo8(68)
 1102 0580 0E94 0000 		call ow_command
 1103               	.LM132:
 1104 0584 1130      		cpi r17,lo8(1)
 1105 0586 11F0      		breq .L103
 1106               	.LM133:
 1107 0588 0E94 0000 		call ow_parasite_enable
 1108               	.L103:
 1109               	.LM134:
 1110 058c 80E0      		ldi r24,lo8(0)
 1111 058e 90E0      		ldi r25,hi8(0)
 1112 0590 06C0      		rjmp .L101
 1113               	.L102:
 1114               	.LM135:
 1115 0592 80E0      		ldi r24,lo8(c.4)
 1116 0594 90E0      		ldi r25,hi8(c.4)
 1117 0596 0E94 0000 		call uart_puts_p
 1118               	.LM136:
 1119 059a 82E0      		ldi r24,lo8(2)
 1120 059c 90E0      		ldi r25,hi8(2)
 1121               	.L101:
 1122               	/* epilogue: frame size=0 */
 1123 059e DF91      		pop r29
 1124 05a0 CF91      		pop r28
 1125 05a2 1F91      		pop r17
 1126 05a4 0895      		ret
 1127               	/* epilogue end (size=4) */
 1128               	/* function DS18X20_start_meas size 32 (25) */
 1129               	.LFE14:
 1131               	.global	DS18X20_read_meas
 1133               	DS18X20_read_meas:
 1134               	.LFB15:
 1135               	.LM137:
 1136               	/* prologue: frame size=9 */
 1137 05a6 2F92      		push r2
 1138 05a8 3F92      		push r3
 1139 05aa 4F92      		push r4
 1140 05ac 5F92      		push r5
 1141 05ae 6F92      		push r6
 1142 05b0 7F92      		push r7
 1143 05b2 8F92      		push r8
 1144 05b4 9F92      		push r9
 1145 05b6 BF92      		push r11
 1146 05b8 CF92      		push r12
 1147 05ba DF92      		push r13
 1148 05bc EF92      		push r14
 1149 05be FF92      		push r15
 1150 05c0 0F93      		push r16
 1151 05c2 1F93      		push r17
 1152 05c4 CF93      		push r28
 1153 05c6 DF93      		push r29
 1154 05c8 CDB7      		in r28,__SP_L__
 1155 05ca DEB7      		in r29,__SP_H__
 1156 05cc 2997      		sbiw r28,9
 1157 05ce 0FB6      		in __tmp_reg__,__SREG__
 1158 05d0 F894      		cli
 1159 05d2 DEBF      		out __SP_H__,r29
 1160 05d4 0FBE      		out __SREG__,__tmp_reg__
 1161 05d6 CDBF      		out __SP_L__,r28
 1162               	/* prologue end (size=25) */
 1163 05d8 4C01      		movw r8,r24
 1164 05da 1B01      		movw r2,r22
 1165 05dc 2A01      		movw r4,r20
 1166 05de 3901      		movw r6,r18
 1167               	.LM138:
 1168 05e0 0E94 0000 		call ow_reset
 1169               	.LM139:
 1170 05e4 B401      		movw r22,r8
 1171 05e6 8EEB      		ldi r24,lo8(-66)
 1172 05e8 0E94 0000 		call ow_command
 1173 05ec EE24      		clr r14
 1174 05ee FF24      		clr r15
 1175 05f0 18E0      		ldi r17,lo8(8)
 1176 05f2 B12E      		mov r11,r17
 1177               	.L109:
 1178               	.LM140:
 1179 05f4 6E01      		movw r12,r28
 1180 05f6 0894      		sec
 1181 05f8 C11C      		adc r12,__zero_reg__
 1182 05fa D11C      		adc r13,__zero_reg__
 1183 05fc 8701      		movw r16,r14
 1184 05fe 0C0D      		add r16,r12
 1185 0600 1D1D      		adc r17,r13
 1186 0602 0E94 0000 		call ow_byte_rd
 1187 0606 F801      		movw r30,r16
 1188 0608 8083      		st Z,r24
 1189 060a BA94      		dec r11
 1190 060c 0894      		sec
 1191 060e E11C      		adc r14,__zero_reg__
 1192 0610 F11C      		adc r15,__zero_reg__
 1193 0612 B7FE      		sbrs r11,7
 1194 0614 EFCF      		rjmp .L109
 1195               	.LM141:
 1196 0616 69E0      		ldi r22,lo8(9)
 1197 0618 70E0      		ldi r23,hi8(9)
 1198 061a C601      		movw r24,r12
 1199 061c 0E94 0000 		call crc8
 1200 0620 8823      		tst r24
 1201 0622 19F0      		breq .L110
 1202               	.LM142:
 1203 0624 83E0      		ldi r24,lo8(3)
 1204 0626 90E0      		ldi r25,hi8(3)
 1205 0628 0AC0      		rjmp .L105
 1206               	.L110:
 1207               	.LM143:
 1208 062a 8301      		movw r16,r6
 1209 062c 9201      		movw r18,r4
 1210 062e A101      		movw r20,r2
 1211 0630 B601      		movw r22,r12
 1212 0632 F401      		movw r30,r8
 1213 0634 8081      		ld r24,Z
 1214 0636 0E94 0000 		call DS18X20_meas_to_cel
 1215               	.LM144:
 1216 063a 80E0      		ldi r24,lo8(0)
 1217 063c 90E0      		ldi r25,hi8(0)
 1218               	.L105:
 1219               	/* epilogue: frame size=9 */
 1220 063e 2996      		adiw r28,9
 1221 0640 0FB6      		in __tmp_reg__,__SREG__
 1222 0642 F894      		cli
 1223 0644 DEBF      		out __SP_H__,r29
 1224 0646 0FBE      		out __SREG__,__tmp_reg__
 1225 0648 CDBF      		out __SP_L__,r28
 1226 064a DF91      		pop r29
 1227 064c CF91      		pop r28
 1228 064e 1F91      		pop r17
 1229 0650 0F91      		pop r16
 1230 0652 FF90      		pop r15
 1231 0654 EF90      		pop r14
 1232 0656 DF90      		pop r13
 1233 0658 CF90      		pop r12
 1234 065a BF90      		pop r11
 1235 065c 9F90      		pop r9
 1236 065e 8F90      		pop r8
 1237 0660 7F90      		pop r7
 1238 0662 6F90      		pop r6
 1239 0664 5F90      		pop r5
 1240 0666 4F90      		pop r4
 1241 0668 3F90      		pop r3
 1242 066a 2F90      		pop r2
 1243 066c 0895      		ret
 1244               	/* epilogue end (size=24) */
 1245               	/* function DS18X20_read_meas size 100 (51) */
 1246               	.LFE15:
 1248               	.global	DS18X20_read_meas_single
 1250               	DS18X20_read_meas_single:
 1251               	.LFB16:
 1252               	.LM145:
 1253               	/* prologue: frame size=9 */
 1254 066e 4F92      		push r4
 1255 0670 5F92      		push r5
 1256 0672 6F92      		push r6
 1257 0674 7F92      		push r7
 1258 0676 8F92      		push r8
 1259 0678 9F92      		push r9
 1260 067a AF92      		push r10
 1261 067c BF92      		push r11
 1262 067e CF92      		push r12
 1263 0680 DF92      		push r13
 1264 0682 EF92      		push r14
 1265 0684 FF92      		push r15
 1266 0686 0F93      		push r16
 1267 0688 1F93      		push r17
 1268 068a CF93      		push r28
 1269 068c DF93      		push r29
 1270 068e CDB7      		in r28,__SP_L__
 1271 0690 DEB7      		in r29,__SP_H__
 1272 0692 2997      		sbiw r28,9
 1273 0694 0FB6      		in __tmp_reg__,__SREG__
 1274 0696 F894      		cli
 1275 0698 DEBF      		out __SP_H__,r29
 1276 069a 0FBE      		out __SREG__,__tmp_reg__
 1277 069c CDBF      		out __SP_L__,r28
 1278               	/* prologue end (size=24) */
 1279 069e A82E      		mov r10,r24
 1280 06a0 2B01      		movw r4,r22
 1281 06a2 3A01      		movw r6,r20
 1282 06a4 4901      		movw r8,r18
 1283               	.LM146:
 1284 06a6 60E0      		ldi r22,lo8(0)

⌨️ 快捷键说明

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