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

📄 display_dhtxx.lst

📁 温湿度检测仪一套
💻 LST
📖 第 1 页 / 共 3 页
字号:
    01F3 9020006F  LDS	R2,U8T_data_H_temp
    01F5 92200074  STS	U8T_data_H,R2
(0335) 	   	  U8T_data_L=U8T_data_L_temp;
    01F7 9020006E  LDS	R2,U8T_data_L_temp
    01F9 92200073  STS	U8T_data_L,R2
(0336) 	   	  U8RH_data_H=U8RH_data_H_temp;
    01FB 9020006D  LDS	R2,U8RH_data_H_temp
    01FD 92200072  STS	U8RH_data_H,R2
(0337) 	   	  U8RH_data_L=U8RH_data_L_temp;
    01FF 9020006C  LDS	R2,U8RH_data_L_temp
    0201 92200071  STS	U8RH_data_L,R2
(0338) 	   	  U8checkdata=U8checkdata_temp;
    0203 9020006B  LDS	R2,U8checkdata_temp
    0205 92200070  STS	U8checkdata,R2
(0339) 	   }//fi
(0340) 	  
(0341) 	  
(0342) 	   COM_IN;
    0207 98A5      CBI	0x14,5
(0343) 	   COM_SET;
    0208 9AAD      SBI	0x15,5
    0209 9508      RET
(0344) 
(0345) 	}
(0346) 	void  Display_data(void) 
(0347) 	{
(0348) 		   if(U8FLAG==1)
_Display_data:
    020A 91800078  LDS	R24,U8FLAG
    020C 3081      CPI	R24,1
    020D F471      BNE	0x021C
(0349) 		   {
(0350) 		         PLAY[0] = 12;
    020E E08C      LDI	R24,0xC
    020F 93800060  STS	PLAY,R24
(0351) 				 PLAY[1] = 13;
    0211 E08D      LDI	R24,0xD
    0212 93800061  STS	PLAY+1,R24
(0352) 				 PLAY[2] = 13;
    0214 93800062  STS	PLAY+2,R24
(0353) 
(0354) 				 PLAY[3] = 12;
    0216 E08C      LDI	R24,0xC
    0217 93800063  STS	PLAY+3,R24
(0355) 				 PLAY[4] = 13;
    0219 E08D      LDI	R24,0xD
    021A D11B      RCALL	0x0336
(0356) 				 PLAY[5] = 13;
(0357) 		   }//fi
    021B C0A4      RJMP	0x02C0
(0358) 		else
(0359) 		{
(0360) 		    ReceiveHighByte=U8T_data_H;
    021C 90200074  LDS	R2,U8T_data_H
    021E 2433      CLR	R3
    021F 92300069  STS	ReceiveHighByte+1,R3
    0221 92200068  STS	ReceiveHighByte,R2
    0223 D108      RCALL	0x032C
(0361) 	       ReceiveHighByte<<=8;
    0224 2C32      MOV	R3,R2
    0225 2422      CLR	R2
    0226 92300069  STS	ReceiveHighByte+1,R3
    0228 92200068  STS	ReceiveHighByte,R2
(0362) 	       ReceiveHighByte|=U8T_data_L;
    022A 90200073  LDS	R2,U8T_data_L
    022C 2433      CLR	R3
    022D 90400068  LDS	R4,ReceiveHighByte
    022F 90500069  LDS	R5,ReceiveHighByte+1
    0231 2842      OR	R4,R2
    0232 2853      OR	R5,R3
    0233 92500069  STS	ReceiveHighByte+1,R5
    0235 92400068  STS	ReceiveHighByte,R4
(0363) 	       ReceiveLowByte=U8RH_data_H;
    0237 90200072  LDS	R2,U8RH_data_H
    0239 2433      CLR	R3
    023A 92300067  STS	ReceiveLowByte+1,R3
    023C 92200066  STS	ReceiveLowByte,R2
(0364) 	       ReceiveLowByte<<=8;
    023E 90200066  LDS	R2,ReceiveLowByte
    0240 90300067  LDS	R3,ReceiveLowByte+1
    0242 2C32      MOV	R3,R2
    0243 2422      CLR	R2
    0244 92300067  STS	ReceiveLowByte+1,R3
    0246 92200066  STS	ReceiveLowByte,R2
(0365) 	       ReceiveLowByte|=U8RH_data_L;
    0248 90200071  LDS	R2,U8RH_data_L
    024A 2433      CLR	R3
    024B 90400066  LDS	R4,ReceiveLowByte
    024D 90500067  LDS	R5,ReceiveLowByte+1
    024F 2842      OR	R4,R2
    0250 2853      OR	R5,R3
    0251 92500067  STS	ReceiveLowByte+1,R5
    0253 92400066  STS	ReceiveLowByte,R4
    0255 D0D6      RCALL	0x032C
(0366) 	     
(0367) 	       
(0368) 		 if(ReceiveHighByte&0x8000)
    0256 FE37      SBRS	R3,7
    0257 C034      RJMP	0x028C
(0369) 			   	{
(0370) 			   	 ReceiveHighByte&=0x7fff;  //清负数标志
    0258 01C1      MOVW	R24,R2
    0259 779F      ANDI	R25,0x7F
    025A 93900069  STS	ReceiveHighByte+1,R25
    025C 93800068  STS	ReceiveHighByte,R24
(0371) 			   	 if(ReceiveHighByte>=199)
    025E 3C87      CPI	R24,0xC7
    025F E0E0      LDI	R30,0
    0260 079E      CPC	R25,R30
    0261 F030      BCS	0x0268
(0372) 			   	 	{
(0373) 			   PLAY[3] = 11;
    0262 E08B      LDI	R24,0xB
    0263 93800063  STS	PLAY+3,R24
(0374) 			   PLAY[4] = 9;
    0265 E089      LDI	R24,0x9
    0266 D0CF      RCALL	0x0336
(0375) 			   PLAY[5] = 9;
(0376) 			   	 	}//fi
    0267 C03B      RJMP	0x02A3
(0377) 			   	 else if(ReceiveHighByte>=100)
    0268 D0BB      RCALL	0x0324
    0269 F088      BCS	0x027B
(0378) 			   	 	{ 
(0379) 			   PLAY[3] = 11;
    026A E08B      LDI	R24,0xB
    026B 93800063  STS	PLAY+3,R24
(0380) 			   PLAY[4] = ReceiveHighByte%100/10;
    026D E624      LDI	R18,0x64
    026E D0A9      RCALL	<created procedures>
    026F D06B      RCALL	mod16u
    0270 E02A      LDI	R18,0xA
    0271 E030      LDI	R19,0
    0272 D06A      RCALL	div16u
    0273 93000064  STS	0x64,R16
(0381) 			   PLAY[5] = ReceiveHighByte%10;
    0275 E02A      LDI	R18,0xA
    0276 D0A1      RCALL	<created procedures>
    0277 D063      RCALL	mod16u
    0278 93000065  STS	0x65,R16
(0382) 			   	 	} //esle if
    027A C028      RJMP	0x02A3
(0383) 			   	 else  
(0384) 			   	 	{
(0385) 			   PLAY[3] = 10;
    027B E08A      LDI	R24,0xA
    027C 93800063  STS	PLAY+3,R24
(0386) 			   PLAY[4] = ReceiveHighByte%100/10;
    027E E624      LDI	R18,0x64
    027F D098      RCALL	<created procedures>
    0280 D05A      RCALL	mod16u
    0281 E02A      LDI	R18,0xA
    0282 E030      LDI	R19,0
    0283 D059      RCALL	div16u
    0284 93000064  STS	0x64,R16
(0387) 			   PLAY[5] = ReceiveHighByte%10;
    0286 E02A      LDI	R18,0xA
    0287 D090      RCALL	<created procedures>
    0288 D052      RCALL	mod16u
    0289 93000065  STS	0x65,R16
(0388) 			   	 	}  //esle
(0389) 			   	 	
(0390) 			   	} //fi
    028B C017      RJMP	0x02A3
(0391) 			   else
(0392) 			   	{
(0393) 			   PLAY[3] = ReceiveHighByte/100;
    028C E624      LDI	R18,0x64
    028D D08A      RCALL	<created procedures>
    028E D04E      RCALL	div16u
    028F 93000063  STS	PLAY+3,R16
(0394) 			   PLAY[4] = ReceiveHighByte%100/10;
    0291 E624      LDI	R18,0x64
    0292 D085      RCALL	<created procedures>
    0293 D047      RCALL	mod16u
    0294 E02A      LDI	R18,0xA
    0295 E030      LDI	R19,0
    0296 D046      RCALL	div16u
    0297 93000064  STS	0x64,R16
(0395) 			   PLAY[5] = ReceiveHighByte%10;
    0299 E02A      LDI	R18,0xA
    029A D07D      RCALL	<created procedures>
    029B D03F      RCALL	mod16u
    029C 93000065  STS	0x65,R16
    029E D085      RCALL	0x0324
(0396) 			     if(ReceiveHighByte<100)
    029F F418      BCC	0x02A3
(0397) 			   {
(0398) 			   	PLAY[3]=14;
    02A0 E08E      LDI	R24,0xE
    02A1 93800063  STS	PLAY+3,R24
(0399) 			   }
(0400) 			   	} //esle
(0401) 			   	
(0402) 			   PLAY[0] = ReceiveLowByte/100;           //湿度 
    02A3 E624      LDI	R18,0x64
    02A4 D079      RCALL	0x031E
    02A5 D037      RCALL	div16u
    02A6 93000060  STS	PLAY,R16
(0403) 			   PLAY[1] = ReceiveLowByte%100/10;
    02A8 E624      LDI	R18,0x64
    02A9 D074      RCALL	0x031E
    02AA D030      RCALL	mod16u
    02AB E02A      LDI	R18,0xA
    02AC E030      LDI	R19,0
    02AD D02F      RCALL	div16u
    02AE 93000061  STS	PLAY+1,R16
(0404) 			   PLAY[2] = ReceiveLowByte%10;
    02B0 E02A      LDI	R18,0xA
    02B1 D06C      RCALL	0x031E
    02B2 D028      RCALL	mod16u
    02B3 93000062  STS	PLAY+2,R16
(0405) 			   if(ReceiveLowByte<100)
    02B5 91800066  LDS	R24,ReceiveLowByte
    02B7 91900067  LDS	R25,ReceiveLowByte+1
    02B9 3684      CPI	R24,0x64
    02BA E0E0      LDI	R30,0
    02BB 079E      CPC	R25,R30
    02BC F418      BCC	0x02C0
(0406) 			   {
(0407) 			   	PLAY[0]=14;
    02BD E08E      LDI	R24,0xE
    02BE 93800060  STS	PLAY,R24
(0408) 			   }
(0409) 			   
(0410) 			}//esle
    02C0 9508      RET
(0411) 		
(0412) 	}
(0413) 	
(0414) /**************************************************************************
(0415) 
(0416) 
(0417) 
(0418)                             主函数
(0419) 							
(0420) 							
(0421) 							
(0422) 							
(0423) **************************************************************************/
(0424) 
(0425) 
(0426) 
(0427) 
(0428)  void main(void)
(0429) {
(0430) 
(0431)  init_devices() ;
_main:
    02C1 DD89      RCALL	_init_devices
(0432)  COM_IN;
    02C2 98A5      CBI	0x14,5
(0433)  COM_SET;
    02C3 9AAD      SBI	0x15,5
    02C4 C014      RJMP	0x02D9
(0434)  while(1)
(0435)  {
(0436)  
(0437)   RH();
    02C5 DEA9      RCALL	_RH
(0438)   Display_data();
    02C6 DF43      RCALL	_Display_data
(0439)   Display();       
    02C7 DDB8      RCALL	_Display
(0440)   //延时2S
(0441)   
(0442)   for(U8temp=0;U8temp<200;U8temp++)
    02C8 2422      CLR	R2
    02C9 92200075  STS	U8temp,R2
    02CB C009      RJMP	0x02D5
(0443)   {
(0444)   DelaymS(5);
    02CC E005      LDI	R16,5
    02CD E010      LDI	R17,0
    02CE DD9E      RCALL	_DelaymS
(0445)   Display();
FILE: <library>
    02CF DDB0      RCALL	_Display
    02D0 91800075  LDS	R24,U8temp
    02D2 5F8F      SUBI	R24,0xFF
    02D3 93800075  STS	U8temp,R24
    02D5 91800075  LDS	R24,U8temp
    02D7 3C88      CPI	R24,0xC8
    02D8 F398      BCS	0x02CC
    02D9 CFEB      RJMP	0x02C5
    02DA 9508      RET
mod16u:
    02DB 9468      BSET	6
    02DC C001      RJMP	xdiv16u
div16u:
    02DD 94E8      BCLR	6
xdiv16u:
    02DE 92EA      ST	R14,-Y
    02DF 92FA      ST	R15,-Y
    02E0 938A      ST	R24,-Y
    02E1 24EE      CLR	R14
    02E2 24FF      CLR	R15
    02E3 E180      LDI	R24,0x10
    02E4 0F00      LSL	R16
    02E5 1F11      ROL	R17
    02E6 1CEE      ROL	R14
    02E7 1CFF      ROL	R15
    02E8 16E2      CP	R14,R18
    02E9 06F3      CPC	R15,R19
    02EA F018      BCS	0x02EE
    02EB 1AE2      SUB	R14,R18
    02EC 0AF3      SBC	R15,R19
    02ED 9503      INC	R16
    02EE 958A      DEC	R24
    02EF F7A1      BNE	0x02E4
    02F0 F416      BRTC	0x02F3
    02F1 2D0E      MOV	R16,R14
    02F2 2D1F      MOV	R17,R15
    02F3 9189      LD	R24,Y+
    02F4 90F9      LD	R15,Y+
    02F5 90E9      LD	R14,Y+
    02F6 9508      RET
pop_gset5:
    02F7 27EE      CLR	R30
    02F8 C00C      RJMP	pop
push_gset5:
    02F9 92FA      ST	R15,-Y
    02FA 92EA      ST	R14,-Y
push_gset4:
    02FB 92DA      ST	R13,-Y
    02FC 92CA      ST	R12,-Y
push_gset3:
    02FD 92BA      ST	R11,-Y
    02FE 92AA      ST	R10,-Y
push_gset2:
    02FF 937A      ST	R23,-Y
    0300 936A      ST	R22,-Y
push_gset1:
    0301 935A      ST	R21,-Y
    0302 934A      ST	R20,-Y
    0303 9508      RET
pop_gset1:
    0304 E0E1      LDI	R30,1
pop:
    0305 9149      LD	R20,Y+
    0306 9159      LD	R21,Y+
    0307 FDE0      SBRC	R30,0
    0308 9508      RET
    0309 9169      LD	R22,Y+
    030A 9179      LD	R23,Y+
    030B FDE1      SBRC	R30,1
    030C 9508      RET
    030D 90A9      LD	R10,Y+
    030E 90B9      LD	R11,Y+
    030F FDE2      SBRC	R30,2
    0310 9508      RET
    0311 90C9      LD	R12,Y+
    0312 90D9      LD	R13,Y+
    0313 FDE3      SBRC	R30,3
    0314 9508      RET
    0315 90E9      LD	R14,Y+
    0316 90F9      LD	R15,Y+
    0317 9508      RET
<created procedures>:
    0318 E030      LDI	R19,0
    0319 91000068  LDS	R16,ReceiveHighByte
    031B 91100069  LDS	R17,ReceiveHighByte+1
    031D 9508      RET
    031E E030      LDI	R19,0
    031F 91000066  LDS	R16,ReceiveLowByte
    0321 91100067  LDS	R17,ReceiveLowByte+1
    0323 9508      RET
    0324 91800068  LDS	R24,ReceiveHighByte
    0326 91900069  LDS	R25,ReceiveHighByte+1
    0328 3684      CPI	R24,0x64
    0329 E0E0      LDI	R30,0
    032A 079E      CPC	R25,R30
    032B 9508      RET
    032C 90200068  LDS	R2,ReceiveHighByte
    032E 90300069  LDS	R3,ReceiveHighByte+1
    0330 9508      RET
    0331 0118      MOVW	R2,R16
    0332 5001      SUBI	R16,1
    0333 4010      SBCI	R17,0
    0334 2022      TST	R2
    0335 9508      RET
    0336 93800064  STS	0x64,R24
    0338 93800065  STS	0x65,R24
    033A 9508      RET

⌨️ 快捷键说明

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