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

📄 ze015_1.lst

📁 一款完整的家用电器程序,具有控制商用机的功能,应用广泛,有一定的参考价值
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0159) 	delay_20us();
    0439 D58A      RCALL	_delay_20us
(0160) 	ADStartP();
    043A DFF3      RCALL	_ADStartP
(0161) 	i_defrost_sumADL +=ADCL;////y0-管温读低8位AD值,累加。
    043B B024      IN	R2,0x04
    043C 2433      CLR	R3
    043D 904001D8  LDS	R4,i_defrost_sumADL
    043F 905001D9  LDS	R5,i_defrost_sumADL+1
    0441 0C42      ADD	R4,R2
    0442 1C53      ADC	R5,R3
    0443 925001D9  STS	i_defrost_sumADL+1,R5
    0445 924001D8  STS	i_defrost_sumADL,R4
(0162) 	i_defrost_sumADH +=(ADCH & 0x03);
    0447 B185      IN	R24,0x05
    0448 2799      CLR	R25
    0449 7083      ANDI	R24,3
    044A 7090      ANDI	R25,0
    044B 902001D6  LDS	R2,i_defrost_sumADH
    044D 903001D7  LDS	R3,i_defrost_sumADH+1
    044F 0E28      ADD	R2,R24
    0450 1E39      ADC	R3,R25
    0451 923001D7  STS	i_defrost_sumADH+1,R3
    0453 922001D6  STS	i_defrost_sumADH,R2
(0163) 	NOP();
    0455 0000      NOP
(0164) 	
(0165) 	ADMUX =0x41;	//选择ADC2、右对齐,y0-管温
    0456 E481      LDI	R24,0x41
    0457 B987      OUT	0x07,R24
(0166) 	delay_20us();
    0458 D56B      RCALL	_delay_20us
(0167) 	ADStartP();
    0459 DFD4      RCALL	_ADStartP
(0168) 	i_evin_sumADL +=ADCL;////y0-管温读低8位AD值,累加。
    045A B024      IN	R2,0x04
    045B 2433      CLR	R3
    045C 904001E0  LDS	R4,i_evin_sumADL
    045E 905001E1  LDS	R5,i_evin_sumADL+1
    0460 0C42      ADD	R4,R2
    0461 1C53      ADC	R5,R3
    0462 925001E1  STS	i_evin_sumADL+1,R5
    0464 924001E0  STS	i_evin_sumADL,R4
(0169) 	i_evin_sumADH +=(ADCH & 0x03);
    0466 B185      IN	R24,0x05
    0467 2799      CLR	R25
    0468 7083      ANDI	R24,3
    0469 7090      ANDI	R25,0
    046A 902001DE  LDS	R2,i_evin_sumADH
    046C 903001DF  LDS	R3,i_evin_sumADH+1
    046E 0E28      ADD	R2,R24
    046F 1E39      ADC	R3,R25
    0470 923001DF  STS	i_evin_sumADH+1,R3
    0472 922001DE  STS	i_evin_sumADH,R2
(0170) 	NOP();	
    0474 0000      NOP
(0171) 	
(0172) 	
(0173) 	ADMUX =0x40;	//选择ADC0加湿电流、右对齐
    0475 E480      LDI	R24,0x40
    0476 B987      OUT	0x07,R24
(0174) 	delay_20us();
    0477 D54C      RCALL	_delay_20us
(0175) 	ADStartP();
    0478 DFB5      RCALL	_ADStartP
(0176) 	i_i_humid_sumADL +=ADCL;	//加湿电流读低8位AD值,累加。
    0479 B024      IN	R2,0x04
    047A 2433      CLR	R3
    047B 904001DC  LDS	R4,i_i_humid_sumADL
    047D 905001DD  LDS	R5,i_i_humid_sumADL+1
    047F 0C42      ADD	R4,R2
    0480 1C53      ADC	R5,R3
    0481 925001DD  STS	i_i_humid_sumADL+1,R5
    0483 924001DC  STS	i_i_humid_sumADL,R4
(0177) 	i_i_humid_sumADH +=(ADCH & 0x03);//读高8位AD值,累加。
    0485 B185      IN	R24,0x05
    0486 2799      CLR	R25
    0487 7083      ANDI	R24,3
    0488 7090      ANDI	R25,0
    0489 902001DA  LDS	R2,i_i_humid_sumADH
    048B 903001DB  LDS	R3,i_i_humid_sumADH+1
    048D 0E28      ADD	R2,R24
    048E 1E39      ADC	R3,R25
    048F 923001DB  STS	i_i_humid_sumADH+1,R3
    0491 922001DA  STS	i_i_humid_sumADH,R2
(0178) 	NOP();
    0493 0000      NOP
(0179) 	ADMUX =0x43;	//选择ADC3排气温度、右对齐
    0494 E483      LDI	R24,0x43
    0495 B987      OUT	0x07,R24
(0180) 	delay_20us();
    0496 D52D      RCALL	_delay_20us
(0181) 	ADStartP();	//启动AD并等待转换完成
    0497 DF96      RCALL	_ADStartP
(0182) 	i_exghaust_sumADL +=ADCL;	//读低8位AD值,累加。
    0498 B024      IN	R2,0x04
    0499 2433      CLR	R3
    049A 904001D4  LDS	R4,i_exghaust_sumADL
    049C 905001D5  LDS	R5,i_exghaust_sumADL+1
    049E 0C42      ADD	R4,R2
    049F 1C53      ADC	R5,R3
    04A0 925001D5  STS	i_exghaust_sumADL+1,R5
    04A2 924001D4  STS	i_exghaust_sumADL,R4
(0183) 	i_exghaust_sumADH +=(ADCH & 0x03);	//读高8位AD值,累加。
    04A4 B185      IN	R24,0x05
    04A5 7083      ANDI	R24,3
    04A6 902001D3  LDS	R2,i_exghaust_sumADH
    04A8 0E28      ADD	R2,R24
    04A9 922001D3  STS	i_exghaust_sumADH,R2
(0184) 	NOP();
    04AB 0000      NOP
(0185) 	ADCSRA =0x00;	//采样完成后禁止AD
    04AC 2422      CLR	R2
    04AD B826      OUT	0x06,R2
    04AE 9508      RET
_funADsum:
    04AF 940E26D3  CALL	push_gset1
    04B1 9724      SBIW	R28,4
(0186) }	
(0187) /***********************************************************************
(0188) 每隔100ms启动一次AD采样funADsample(),采64次后取高8位为AD值,清除所有累加值。	
(0189) adtempsum-ADH+ADL的高8位,再右移8位得到最后的AD值。*/
(0190) 
(0191) void funADsum(void)////AD累加程序
(0192) {
(0193) 	funADsample();	//AD采样程序
    04B2 DF82      RCALL	_funADsample
(0194) 	ADsum_times+=1;	//采样次数+1
    04B3 918001F0  LDS	R24,ADsum_times
    04B5 5F8F      SUBI	R24,0xFF
    04B6 938001F0  STS	ADsum_times,R24
(0195) 	ADsumTH_times+=1;	//排气感温包AD采样次数+1
    04B8 9180012E  LDS	R24,ADsumTH_times
    04BA 5F8F      SUBI	R24,0xFF
    04BB 9380012E  STS	ADsumTH_times,R24
(0196) 	NOP();
    04BD 0000      NOP
(0197) 	if (ADsumTH_times>=16)	//采样次数到16次否?到则求AD平均值
    04BE 3180      CPI	R24,0x10
    04BF F408      BCC	0x04C1
    04C0 C0EE      RJMP	0x05AF
(0198) 	{//采样16次 1.6s
(0199) 	//	exghaust_AD=i_exghaust_sumADH+(unsigned char)(i_exghaust_sumADL>>8);	//20080128取高8位
(0200) 	//	defrost_AD=i_defrost_sumADH+(unsigned char)(i_defrost_sumADL>>8);	//20080128取高8位
(0201) 		exghaust_AD=(i_exghaust_sumADH<<2)+(unsigned char)(i_exghaust_sumADL>>6);
    04C1 E026      LDI	R18,6
    04C2 E030      LDI	R19,0
    04C3 910001D4  LDS	R16,i_exghaust_sumADL
    04C5 911001D5  LDS	R17,i_exghaust_sumADL+1
    04C7 940E2735  CALL	lsr16
    04C9 902001D3  LDS	R2,i_exghaust_sumADH
    04CB 0C22      LSL	R2
    04CC 0C22      LSL	R2
    04CD 0E20      ADD	R2,R16
    04CE 922001EA  STS	exghaust_AD,R2
(0202) 		
(0203) 		defrost_AD=(i_defrost_sumADH<<4)+ (i_defrost_sumADL>>4);	//
    04D0 902001D8  LDS	R2,i_defrost_sumADL
    04D2 903001D9  LDS	R3,i_defrost_sumADL+1
    04D4 9436      LSR	R3
    04D5 9427      ROR	R2
    04D6 9436      LSR	R3
    04D7 9427      ROR	R2
    04D8 9436      LSR	R3
    04D9 9427      ROR	R2
    04DA 9436      LSR	R3
    04DB 9427      ROR	R2
    04DC 904001D6  LDS	R4,i_defrost_sumADH
    04DE 905001D7  LDS	R5,i_defrost_sumADH+1
    04E0 0C44      LSL	R4
    04E1 1C55      ROL	R5
    04E2 0C44      LSL	R4
    04E3 1C55      ROL	R5
    04E4 0C44      LSL	R4
    04E5 1C55      ROL	R5
    04E6 0C44      LSL	R4
    04E7 1C55      ROL	R5
    04E8 0C42      ADD	R4,R2
    04E9 1C53      ADC	R5,R3
    04EA 925001EE  STS	defrost_AD+1,R5
    04EC 924001ED  STS	defrost_AD,R4
(0204) 		evin_AD=(i_evin_sumADH<<4) + (i_evin_sumADL>>4);
    04EE 902001E0  LDS	R2,i_evin_sumADL
    04F0 903001E1  LDS	R3,i_evin_sumADL+1
    04F2 9436      LSR	R3
    04F3 9427      ROR	R2
    04F4 9436      LSR	R3
    04F5 9427      ROR	R2
    04F6 9436      LSR	R3
    04F7 9427      ROR	R2
    04F8 9436      LSR	R3
    04F9 9427      ROR	R2
    04FA 904001DE  LDS	R4,i_evin_sumADH
    04FC 905001DF  LDS	R5,i_evin_sumADH+1
    04FE 0C44      LSL	R4
    04FF 1C55      ROL	R5
    0500 0C44      LSL	R4
    0501 1C55      ROL	R5
    0502 0C44      LSL	R4
    0503 1C55      ROL	R5
    0504 0C44      LSL	R4
    0505 1C55      ROL	R5
    0506 0C42      ADD	R4,R2
    0507 1C53      ADC	R5,R3
    0508 925001EC  STS	evin_AD+1,R5
    050A 924001EB  STS	evin_AD,R4
(0205) 		
(0206) 		exghaust_TH =Fun_ad_50k(exghaust_AD);//将AD采样值查表得到温度值
    050C 910001EA  LDS	R16,exghaust_AD
    050E DEB6      RCALL	_Fun_ad_50k
    050F 930001E6  STS	exghaust_TH,R16
(0207) 	if (defrost_AD>=29 && defrost_AD<=968) defrost_TH =Fun_ad_20k10(defrost_AD);	//管温值=环境温度
    0511 918001ED  LDS	R24,defrost_AD
    0513 919001EE  LDS	R25,defrost_AD+1
    0515 318D      CPI	R24,0x1D
    0516 E0E0      LDI	R30,0
    0517 079E      CPC	R25,R30
    0518 F070      BCS	0x0527
    0519 EC88      LDI	R24,0xC8
    051A E093      LDI	R25,3
    051B 902001ED  LDS	R2,defrost_AD
    051D 903001EE  LDS	R3,defrost_AD+1
    051F 1582      CP	R24,R2
    0520 0593      CPC	R25,R3
    0521 F028      BCS	0x0527
    0522 0181      MOVW	R16,R2
    0523 DD84      RCALL	_Fun_ad_20k10
    0524 930001E5  STS	defrost_TH,R16
    0526 C02A      RJMP	0x0551
(0208) 	else if (defrost_AD>=20 && defrost_AD<29) defrost_TH=-40;
    0527 918001ED  LDS	R24,defrost_AD
    0529 919001EE  LDS	R25,defrost_AD+1
    052B 3184      CPI	R24,0x14
    052C E0E0      LDI	R30,0
    052D 079E      CPC	R25,R30
    052E F040      BCS	0x0537
    052F 318D      CPI	R24,0x1D
    0530 E0E0      LDI	R30,0
    0531 079E      CPC	R25,R30
    0532 F420      BCC	0x0537
    0533 ED88      LDI	R24,0xD8
    0534 938001E5  STS	defrost_TH,R24
    0536 C01A      RJMP	0x0551
(0209) 	else if (defrost_AD>968 && defrost_AD<=1000) defrost_TH=105;
    0537 EC88      LDI	R24,0xC8
    0538 E093      LDI	R25,3
    0539 902001ED  LDS	R2,defrost_AD
    053B 903001EE  LDS	R3,defrost_AD+1
    053D 1582      CP	R24,R2
    053E 0593      CPC	R25,R3
    053F F440      BCC	0x0548
    0540 EE88      LDI	R24,0xE8
    0541 1582      CP	R24,R2
    0542 0593      CPC	R25,R3
    0543 F020      BCS	0x0548
    0544 E689      LDI	R24,0x69
    0545 938001E5  STS	defrost_TH,R24
    0547 C009      RJMP	0x0551
(0210) 	else if (defrost_time>=30) b_defrosterr=1;
    0548 918001E4  LDS	R24,defrost_time
    054A 318E      CPI	R24,0x1E
    054B F028      BCS	0x0551
    054C 91800105  LDS	R24,time0
    054E 6084      ORI	R24,4
    054F 93800105  STS	time0,R24
(0211) 		
(0212) 	if (evin_AD>=29 && evin_AD<=968) evin_TH =Fun_ad_20k10(evin_AD);	//管温值=环境温度
    0551 918001EB  LDS	R24,evin_AD
    0553 919001EC  LDS	R25,evin_AD+1
    0555 318D      CPI	R24,0x1D
    0556 E0E0      LDI	R30,0
    0557 079E      CPC	R25,R30
    0558 F070      BCS	0x0567
    0559 EC88      LDI	R24,0xC8
    055A E093      LDI	R25,3
    055B 902001EB  LDS	R2,evin_AD
    055D 903001EC  LDS	R3,evin_AD+1
    055F 1582      CP	R24,R2
    0560 0593      CPC	R25,R3
    0561 F028      BCS	0x0567
    0562 0181      MOVW	R16,R2
    0563 DD44      RCALL	_Fun_ad_20k10
    0564 930001E2  STS	evin_TH,R16
    0566 C02A      RJMP	0x0591
(0213) 	else if (evin_AD>=20 && evin_AD<29) evin_TH=-40;
    0567 918001EB  LDS	R24,evin_AD
    0569 919001EC  LDS	R25,evin_AD+1
    056B 3184      CPI	R24,0x14
    056C E0E0      LDI	R30,0
    056D 079E      CPC	R25,R30
    056E F040      BCS	0x0577
    056F 318D      CPI	R24,0x1D
    0570 E0E0      LDI	R30,0
    0571 079E      CPC	R25,R30
    0572 F420      BCC	0x0577
    0573 ED88      LDI	R24,0xD8
    0574 938001E2  STS	evin_TH,R24
    0576 C01A      RJMP	0x0591
(0214) 	else if (evin_AD>968 && evin_AD<=1000) evin_TH=105;
    0577 EC88      LDI	R24,0xC8
    0578 E093      LDI	R25,3
    0579 902001EB  LDS	R2,evin_AD
    057B 903001EC  LDS	R3,evin_AD+1
    057D 1582      CP	R24,R2
    057E 0593      CPC	R25,R3
    057F F440      BCC	0x0588
    0580 EE88      LDI	R24,0xE8
    0581 1582      CP	R24,R2
    0582 0593      CPC	R25,R3
    0583 F020      BCS	0x0588
    0584 E689      LDI	R24,0x69
    0585 938001E2  STS	evin_TH,R24
    0587 C009      RJMP	0x0591
(0215) 	else if (evin_time>=30) b_evinerr=1;
    0588 918001E3  LDS	R24,evin_time
    058A 318E      CPI	R24,0x1E
    058B F028      BCS	0x0591
    058C 91800105  LDS	R24,time0
    058E 6088      ORI	R24,0x8
    058F 93800105  STS	time0,R24
(0216) outroom_TH=evin_TH;
    0591 902001E2  LDS	R2,evin_TH
    0593 9220018E  STS	outroom_TH,R2
(0217) 		i_exghaust_sumADH=00;
    0595 2422      CLR	R2
    0596 922001D3  STS	i_exghaust_sumADH,R2
(0218) 		i_exghaust_sumADL=00;
    0598 2433      CLR	R3
    0599 923001D5  STS	i_exghaust_sumADL+1,R3
    059B 922001D4  STS	i_exghaust_sumADL,R2
(0219) 		i_defrost_sumADH=00;	//
    059D 923001D7  STS	i_defrost_sumADH+1,R3
    059F 922001D6  STS	i_defrost_sumADH,R2
(0220) 		i_defrost_sumADL=00;	//
    05A1 923001D9  STS	i_defrost_sumADL+1,R3
    05A3 922001D8  STS	i_defrost_sumADL,R2
(0221) 		
(0222) 		i_evin_sumADL=0;
    05A5 923001E1  STS	i_evin_sumADL+1,R3
    05A7 922001E0  STS	i_evin_sumADL,R2
(0223) 		i_evin_sumADH=0;
    05A9 923001DF  STS	i_evin_sumADH+1,R3
    05AB 922001DE  STS	i_evin_sumADH,R2
(0224) 		
(0225) 		ADsumTH_times=0;	//
    05AD 9220012E  STS	ADsumTH_times,R2
(0226) 	}
(0227) 	if (ADsum_times>=64)	//20080128采样次数到64次否?到则求AD平均值
    05AF 918001F0  LDS	R24,ADsum_times
    05B1 3480      CPI	R24,0x40
    05B2 F408      BCC	0x05B4
    05B3 C07B      RJMP	0x062F
(0228) 	{//20080128 加湿采样64次
(0229) 		i_humid_AD=i_i_humid_sumADH+(unsigned char)(i_i_humid_sumADL>>8);	//20080128取高8位
    05B4 902001DC  LDS	R2,i_i_humid_sumADL
    05B6 903001DD  LDS	R3,i_i_humid_sumADL+1
    05B8 2C23      MOV	R2,R3
    05B9 2433      CLR	R3
    05BA 2433      CLR	R3
    05BB 904001DA  LDS	R4,i_i_humid_sumADH
    05BD 905001DB  LDS	R5,i_i_humid_sumADH+1
    05BF 0C42      ADD	R4,R2
    05C0 1C53      ADC	R5,R3

⌨️ 快捷键说明

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