📄 led.lst
字号:
965 0446 FF27 clr r31
966 0448 E050 subi r30,lo8(-(LedSeg))
967 044a F040 sbci r31,hi8(-(LedSeg))
968 /* #APP */
969 044c 8491 lpm r24, Z
970
971 /* #NOAPP */
972 .LBE2:
973 044e 8068 ori r24,lo8(-128)
974 0450 07C0 rjmp .L72
975 .L70:
240:drive/led.c **** //段码最高位叠加小数点位
241:drive/led.c **** }
242:drive/led.c **** else
243:drive/led.c **** {
244:drive/led.c **** LedData[Dig_n] =pgm_read_byte(LedSeg+led_val);
977 .LM74:
978 0452 A050 subi r26,lo8(-(LedData))
979 0454 B040 sbci r27,hi8(-(LedData))
980 .LBB3:
981 0456 E62F mov r30,r22
982 0458 FF27 clr r31
983 045a E050 subi r30,lo8(-(LedSeg))
984 045c F040 sbci r31,hi8(-(LedSeg))
985 /* #APP */
986 045e 8491 lpm r24, Z
987
988 /* #NOAPP */
989 .L72:
990 .LBE3:
991 0460 8C93 st X,r24
992 0462 0895 ret
993 /* epilogue: frame size=0 */
994 /* epilogue: noreturn */
995 /* epilogue end (size=0) */
996 /* function LedUpdateByDig size 40 (40) */
1004 .Lscope10:
1007 .global DisplayHumidity
1009 DisplayHumidity:
1011 .LM75:
1012 /* prologue: frame size=0 */
1013 0464 CF93 push r28
1014 /* prologue end (size=1) */
1015 0466 C82F mov r28,r24
1017 .LM76:
1018 0468 8536 cpi r24,lo8(101)
1019 046a 40F0 brlo .L74
1021 .LM77:
1022 046c 80E4 ldi r24,lo8(64)
1023 046e 8093 0000 sts LedData+4,r24
1025 .LM78:
1026 0472 8093 0000 sts LedData+5,r24
1028 .LM79:
1029 0476 8093 0000 sts LedData+6,r24
1030 047a 16C0 rjmp .L73
1031 .L74:
1033 .LM80:
1034 047c 8436 cpi r24,lo8(100)
1035 047e 39F4 brne .L76
1037 .LM81:
1038 0480 6C2F mov r22,r28
1039 0482 00D0 rcall __udivmodqi4
1040 0484 682F mov r22,r24
1041 0486 84E0 ldi r24,lo8(4)
1042 0488 CBDF rcall LedUpdateByDig
1044 .LM82:
1045 048a 60E0 ldi r22,lo8(0)
1046 048c 05C0 rjmp .L78
1047 .L76:
1049 .LM83:
1050 048e 1092 0000 sts LedData+4,__zero_reg__
1052 .LM84:
1053 0492 6AE0 ldi r22,lo8(10)
1054 0494 00D0 rcall __udivmodqi4
1055 0496 682F mov r22,r24
1056 .L78:
1057 0498 85E0 ldi r24,lo8(5)
1058 049a C2DF rcall LedUpdateByDig
1060 .LM85:
1061 049c 8C2F mov r24,r28
1062 049e 6AE0 ldi r22,lo8(10)
1063 04a0 00D0 rcall __udivmodqi4
1064 04a2 692F mov r22,r25
1065 04a4 86E0 ldi r24,lo8(6)
1066 04a6 BCDF rcall LedUpdateByDig
1067 .L73:
1068 /* epilogue: frame size=0 */
1069 04a8 CF91 pop r28
1070 04aa 0895 ret
1071 /* epilogue end (size=2) */
1072 /* function DisplayHumidity size 36 (33) */
1074 .Lscope11:
1077 .global DisplayTemperatureAlarm
1079 DisplayTemperatureAlarm:
245:drive/led.c **** }
246:drive/led.c ****
247:drive/led.c **** }
248:drive/led.c ****
249:drive/led.c **** /*
250:drive/led.c **** * 显示温度工作状态,TH TL OR NO_ALARM
251:drive/led.c **** */
252:drive/led.c **** void DisplayTemperatureAlarm( u08 on_off)
253:drive/led.c **** {
1081 .LM86:
1082 /* prologue: frame size=0 */
1083 /* prologue end (size=0) */
254:drive/led.c **** //根据报警状态 点亮相应指示灯
255:drive/led.c **** LedData[DIG7] = on_off*SEGA;
1085 .LM87:
1086 04ac 8093 0000 sts LedData+7,r24
1087 /* epilogue: frame size=0 */
1088 04b0 0895 ret
1089 /* epilogue end (size=1) */
1090 /* function DisplayTemperatureAlarm size 3 (2) */
1092 .Lscope12:
1095 .global DisplayHumidityAlarm
1097 DisplayHumidityAlarm:
256:drive/led.c ****
257:drive/led.c **** }
258:drive/led.c ****
259:drive/led.c **** /*
260:drive/led.c **** * 显示适度报警,直接修改对应指示灯的显存值
261:drive/led.c **** */
262:drive/led.c **** void DisplayHumidityAlarm(u08 on_off)
263:drive/led.c **** {
1099 .LM88:
1100 /* prologue: frame size=0 */
1101 /* prologue end (size=0) */
264:drive/led.c ****
265:drive/led.c **** LedData[DIG8] =on_off*SEGE;
1103 .LM89:
1104 04b2 9927 clr r25
1105 04b4 A4E0 ldi r26,4
1106 04b6 880F 1: lsl r24
1107 04b8 991F rol r25
1108 04ba AA95 dec r26
1109 04bc E1F7 brne 1b
1110 04be 8093 0000 sts LedData+8,r24
1111 /* epilogue: frame size=0 */
1112 04c2 0895 ret
1113 /* epilogue end (size=1) */
1114 /* function DisplayHumidityAlarm size 9 (8) */
1116 .Lscope13:
1119 .global DisplayPower
1121 DisplayPower:
266:drive/led.c **** }
267:drive/led.c **** void DisplayPower(u08 on_off)
268:drive/led.c **** {
1123 .LM90:
1124 /* prologue: frame size=0 */
1125 /* prologue end (size=0) */
269:drive/led.c ****
270:drive/led.c **** LedData[DIG9] =on_off*SEGD;
1127 .LM91:
1128 04c4 9927 clr r25
1129 04c6 B3E0 ldi r27,3
1130 04c8 880F 1: lsl r24
1131 04ca 991F rol r25
1132 04cc BA95 dec r27
1133 04ce E1F7 brne 1b
1134 04d0 8093 0000 sts LedData+9,r24
1135 /* epilogue: frame size=0 */
1136 04d4 0895 ret
1137 /* epilogue end (size=1) */
1138 /* function DisplayPower size 9 (8) */
1140 .Lscope14:
1143 .global RstSoftTimer
1145 RstSoftTimer:
271:drive/led.c **** }
272:drive/led.c **** /*
273:drive/led.c **** * 复位软定时器
274:drive/led.c **** */
275:drive/led.c **** void RstSoftTimer(u08 n)
276:drive/led.c **** {
1147 .LM92:
1148 /* prologue: frame size=0 */
1149 /* prologue end (size=0) */
277:drive/led.c **** if (n==_15MS) { tick_15ms = 0; f_15ms = false; }
1151 .LM93:
1152 04d6 8823 tst r24
1153 04d8 29F4 brne .L83
1155 .LM94:
1156 04da 8093 0000 sts tick_15ms,r24
1157 04de 8093 0000 sts f_15ms,r24
1158 04e2 0895 ret
1159 .L83:
278:drive/led.c **** else if (n==_500MS) { tick_500ms = 0; f_500ms = false; }
1161 .LM95:
1162 04e4 8130 cpi r24,lo8(1)
1163 04e6 39F4 brne .L85
1164 04e8 1092 0000 sts (tick_500ms)+1,__zero_reg__
1165 04ec 1092 0000 sts tick_500ms,__zero_reg__
1166 04f0 1092 0000 sts f_500ms,__zero_reg__
1167 04f4 0895 ret
1168 .L85:
279:drive/led.c **** else if (n==_1S) { tick_1s = 0; f_1s = false; }
1170 .LM96:
1171 04f6 8230 cpi r24,lo8(2)
1172 04f8 39F4 brne .L87
1173 04fa 1092 0000 sts (tick_1s)+1,__zero_reg__
1174 04fe 1092 0000 sts tick_1s,__zero_reg__
1175 0502 1092 0000 sts f_1s,__zero_reg__
1176 0506 0895 ret
1177 .L87:
280:drive/led.c **** else if (n==_60S) { tick_60s = 0; f_60s = false; }
1179 .LM97:
1180 0508 8330 cpi r24,lo8(3)
1181 050a 31F4 brne .L82
1182 050c 1092 0000 sts (tick_60s)+1,__zero_reg__
1183 0510 1092 0000 sts tick_60s,__zero_reg__
1184 0514 1092 0000 sts f_60s,__zero_reg__
1185 .L82:
1186 0518 0895 ret
1187 /* epilogue: frame size=0 */
1188 /* epilogue: noreturn */
1189 /* epilogue end (size=0) */
1190 /* function RstSoftTimer size 34 (34) */
1192 .Lscope15:
1195 .global DisplayTemperature
1197 DisplayTemperature:
281:drive/led.c **** }
282:drive/led.c ****
283:drive/led.c ****
284:drive/led.c **** void DisplayTemperature(int16 temperature)
285:drive/led.c **** {
1199 .LM98:
1200 /* prologue: frame size=5 */
1201 051a BF92 push r11
1202 051c CF92 push r12
1203 051e DF92 push r13
1204 0520 EF92 push r14
1205 0522 FF92 push r15
1206 0524 0F93 push r16
1207 0526 1F93 push r17
1208 0528 CF93 push r28
1209 052a DF93 push r29
1210 052c CDB7 in r28,__SP_L__
1211 052e DEB7 in r29,__SP_H__
1212 0530 2597 sbiw r28,5
1213 0532 0FB6 in __tmp_reg__,__SREG__
1214 0534 F894 cli
1215 0536 DEBF out __SP_H__,r29
1216 0538 0FBE out __SREG__,__tmp_reg__
1217 053a CDBF out __SP_L__,r28
1218 /* prologue end (size=17) */
1219 053c 7C01 movw r14,r24
286:drive/led.c **** u08 offset;
287:drive/led.c **** if(SystemStatus==RUN)
1221 .LM99:
1222 053e 8091 0000 lds r24,SystemStatus
1223 0542 8823 tst r24
1224 0544 11F4 brne .L91
288:drive/led.c **** {
289:drive/led.c **** offset =0;
1226 .LM100:
1227 0546 B82E mov r11,r24
1228 0548 02C0 rjmp .L92
1229 .L91:
290:drive/led.c ****
291:drive/led.c **** }
292:drive/led.c **** else
293:drive/led.c **** {
294:drive/led.c **** offset =3;
1231 .LM101:
1232 054a 13E0 ldi r17,lo8(3)
1233 054c B12E mov r11,r17
1234 .L92:
295:drive/led.c **** }
296:drive/led.c ****
297:drive/led.c **** RmvDot(2+offset);
1236 .LM102:
1237 054e 0B2D mov r16,r11
1238 0550 1127 clr r17
1239 0552 0E5F subi r16,lo8(-(2))
1240 0554 1F4F sbci r17,hi8(-(2))
1241 0556 C801 movw r24,r16
1242 0558 54DF rcall RmvDot
298:drive/led.c ****
299:drive/led.c **** if( ( temperature >1250) || (temperature<-550) )
1244 .LM103:
1245 055a C701 movw r24,r14
1246 055c 8A5D subi r24,lo8(-(550))
1247 055e 9D4F sbci r25,hi8(-(550))
1248 0560 8950 subi r24,lo8(1801)
1249 0562 9740 sbci r25,hi8(1801)
1250 0564 60F0 brlo .L93
300:drive/led.c **** {
301:drive/led.c **** RmvDot(2+offset);;
1252 .LM104:
1253 0566 C801 movw r24,r16
1254 0568 4CDF rcall RmvDot
302:drive/led.c **** LedUpdateByDig(1+offset,27);
1256 .LM105:
1257 056a 6BE1 ldi r22,lo8(27)
1258 056c 8B2D mov r24,r11
1259 056e 8F5F subi r24,lo8(-(1))
1260 0570 57DF rcall LedUpdateByDig
303:drive/led.c **** LedUpdateByDig(2+offset,27);
1262 .LM106:
1263 0572 6BE1 ldi r22,lo8(27)
1264 0574 8B2D mov r24,r11
1265 0576 8E5F subi r24,lo8(-(2))
1266 0578 53DF rcall LedUpdateByDig
304:drive/led.c **** LedUpdateByDig(3+offset,27);
1268 .LM107:
1269 057a 6BE1 ldi r22,lo8(27)
1270 057c 70C0 rjmp .L105
1271 .L93:
1272 .LBB4:
305:drive/led.c **** }
306:drive/led.c **** else
307:drive/led.c **** {
308:drive/led.c **** uint8 tempconvertbuffer[5]={0,0,0,0,0};
1274 .LM108:
1275 057e 6E01 movw r12,r28
1276 0580 0894 sec
1277 0582 C11C adc r12,__zero_reg__
1278 0584 D11C adc r13,__zero_reg__
1279 0586 85E0 ldi r24,lo8(5)
1280 0588 F601 movw r30,r12
1281 058a 1192 st Z+,__zero_reg__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -