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

📄 led.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -