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

📄 keyproc.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
📖 第 1 页 / 共 4 页
字号:
 204:task/keyproc.c **** 	}
 205:task/keyproc.c **** }
 206:task/keyproc.c **** 
 207:task/keyproc.c **** 
 208:task/keyproc.c ****  
 209:task/keyproc.c ****  void key_set_long_press(void)
 210:task/keyproc.c **** {
 211:task/keyproc.c ****      RstSoftTimer(_60S); //avoid escaping the edit mode
 212:task/keyproc.c **** }
 213:task/keyproc.c **** 
 214:task/keyproc.c **** 
 215:task/keyproc.c ****  void key_add_long_press(void)
 216:task/keyproc.c **** {
 217:task/keyproc.c **** 	u08 i;
 218:task/keyproc.c **** 	for(i=0;i<10;i++)
 219:task/keyproc.c **** 	{
 220:task/keyproc.c ****        key_add_click();
 221:task/keyproc.c **** 	}
 222:task/keyproc.c **** }
 223:task/keyproc.c **** 
 224:task/keyproc.c ****  BOOL JudgeTemperature( void )
 225:task/keyproc.c ****  //////////////////////////////////////////////////////
 226:task/keyproc.c **** {
 227:task/keyproc.c ****     u08 ret ;
 228:task/keyproc.c **** 	
 229:task/keyproc.c **** 	ret = true;
 230:task/keyproc.c **** 		
 231:task/keyproc.c ****    if(  TH > TL  )
 232:task/keyproc.c ****     {
 233:task/keyproc.c **** 		if( TL  < -400 )
 234:task/keyproc.c **** 		{
 235:task/keyproc.c **** 			ret = false;
 236:task/keyproc.c **** 		}
 237:task/keyproc.c **** 
 238:task/keyproc.c **** 		if( TH  > 1250 )
 239:task/keyproc.c **** 		{
 240:task/keyproc.c **** 			ret = false;
 241:task/keyproc.c **** 		}
 242:task/keyproc.c ****     }		
 243:task/keyproc.c **** 
 244:task/keyproc.c ****     else
 245:task/keyproc.c ****     {
 246:task/keyproc.c ****         ret =  false;
 247:task/keyproc.c ****     }
 248:task/keyproc.c **** 		return  ret;
 249:task/keyproc.c **** 
 250:task/keyproc.c **** }
 251:task/keyproc.c ****  //////////////////////////////////////////////////////
 252:task/keyproc.c ****  BOOL JudgeHumidity   (void)
 253:task/keyproc.c **** {
 254:task/keyproc.c ****     if( HH<=100 &&HH>=10)
 255:task/keyproc.c ****     {				
 256:task/keyproc.c ****         return  true;
 257:task/keyproc.c ****     }
 258:task/keyproc.c ****     else
 259:task/keyproc.c ****     {
 260:task/keyproc.c ****         return   false;
 261:task/keyproc.c ****     }
 262:task/keyproc.c **** }
 263:task/keyproc.c **** 
 264:task/keyproc.c **** /////////////////////////////////////////
 265:task/keyproc.c **** void AddTempSetVal( int16 * setval  )	
 266:task/keyproc.c **** {
 267:task/keyproc.c **** if( *setval<1250 && *setval>=-400 )//
 268:task/keyproc.c **** {
 269:task/keyproc.c **** 		 if( *setval<1000  &&*setval>=-100)      		//-10-99.9 Celsius degree
 270:task/keyproc.c **** 	{
 271:task/keyproc.c **** 		   *setval+=1;
 272:task/keyproc.c **** 		   if(!JudgeTemperature())   *setval-=1; 	//if invalid,cancel operation
 273:task/keyproc.c **** 	}
 274:task/keyproc.c **** 	else
 275:task/keyproc.c **** 	{
 276:task/keyproc.c **** 		   *setval+=10;
 277:task/keyproc.c **** 		   if(!JudgeTemperature()) *setval-=10;  	//if invalid,cancel operation
 278:task/keyproc.c **** 	}
 279:task/keyproc.c **** }
 280:task/keyproc.c **** }
 281:task/keyproc.c **** 
 282:task/keyproc.c **** void AddHumSetVal(unsigned char * setval)      //DT??êa?èset?μ
 283:task/keyproc.c **** {
 284:task/keyproc.c ****     if(  *setval<=99 )                         //0-98.can add 1;
 285:task/keyproc.c ****     {  
 286:task/keyproc.c ****         (*setval)++;
 287:task/keyproc.c **** 
 288:task/keyproc.c ****      }
 289:task/keyproc.c **** }
 290:task/keyproc.c **** 
 291:task/keyproc.c **** void AddRS485AdrSetVal(u08 * p) //DT??485μ??·
 292:task/keyproc.c **** {
 293:task/keyproc.c ****      (*p)++;
 294:task/keyproc.c **** 
 295:task/keyproc.c **** //      if(*p==0)    *p=255;
 296:task/keyproc.c **** 
 297:task/keyproc.c **** }
 298:task/keyproc.c **** void AddBaudRate(void)
 299:task/keyproc.c **** {
 300:task/keyproc.c ****     if( 192 == BAUDRATE )
 301:task/keyproc.c **** 	{
 302:task/keyproc.c **** 	 	BAUDRATE = 96 ;
 303:task/keyproc.c **** 	}
 304:task/keyproc.c ****     else if(96 == BAUDRATE )
 305:task/keyproc.c **** 	{
 306:task/keyproc.c **** 	 	BAUDRATE = 48;
 307:task/keyproc.c **** 	}
 308:task/keyproc.c **** 	else
 309:task/keyproc.c **** 	{
 310:task/keyproc.c **** 	 	BAUDRATE = 192;
 311:task/keyproc.c **** 	} 
 312:task/keyproc.c **** }
 313:task/keyproc.c **** 
 314:task/keyproc.c **** void AddAutoSwitch(void)
 315:task/keyproc.c **** {
 316:task/keyproc.c ****     if( ON == AUTOSWITCH )
 317:task/keyproc.c **** 
 318:task/keyproc.c **** 	 	AUTOSWITCH = OFF ;
 319:task/keyproc.c ****     else
 320:task/keyproc.c **** 	 	AUTOSWITCH = ON; 
 321:task/keyproc.c **** }
 322:task/keyproc.c **** 
 323:task/keyproc.c **** 
 324:task/keyproc.c **** void DecTempSetVal(int16 * setval)
 325:task/keyproc.c **** {
 326:task/keyproc.c **** 	if(*setval > -400 && *setval<=1250 )
 327:task/keyproc.c **** 	{
 328:task/keyproc.c **** 	     if( *setval<=1000  &&*setval>-100)      //-9.9-99.9 Celsius degree
 329:task/keyproc.c **** 	    {
 330:task/keyproc.c **** 	       *setval-=1;
 331:task/keyproc.c **** 	       if(!JudgeTemperature())   *setval+=1; //if invalid,cancel operation
 332:task/keyproc.c **** 	    }
 333:task/keyproc.c **** 	    else										 //others
 334:task/keyproc.c **** 	    {
 335:task/keyproc.c **** 	       *setval-=10;
 336:task/keyproc.c **** 	       if(!JudgeTemperature()) *setval+=10;  //if invalid,cancel operation
 337:task/keyproc.c **** 	     }
 338:task/keyproc.c **** 	}
 339:task/keyproc.c **** }
 340:task/keyproc.c **** 
 341:task/keyproc.c **** void DecHumSetVal(u08 * setval)     
 342:task/keyproc.c **** {
 343:task/keyproc.c ****     if( 	*setval > 10	)// && *setval <= 99 )
 344:task/keyproc.c ****     {  
 345:task/keyproc.c ****         ( 	*setval )--;
 346:task/keyproc.c ****     }
 347:task/keyproc.c **** }
 348:task/keyproc.c **** 
 349:task/keyproc.c **** void DecRS485AdrSetVal(u08 * p)
 350:task/keyproc.c **** {
 351:task/keyproc.c ****      (*p)--;
 352:task/keyproc.c **** //     if(*p==0) *p=1;
 353:task/keyproc.c **** }
 354:task/keyproc.c **** 
 355:task/keyproc.c **** 
 356:task/keyproc.c **** 
 357:task/keyproc.c **** void MenuIndexDisp	(uint8 editname)
 358:task/keyproc.c **** {
 294               	.LM13:
 295               	/* prologue: frame size=0 */
 296 006c CF93      		push r28
 297               	/* prologue end (size=1) */
 298 006e C82F      		mov r28,r24
 359:task/keyproc.c **** 		 FlashDigOn(1);
 300               	.LM14:
 301 0070 81E0      		ldi r24,lo8(1)
 302 0072 90E0      		ldi r25,hi8(1)
 303 0074 00D0      		rcall FlashDigOn
 360:task/keyproc.c **** 		 FlashDigOn(2);
 305               	.LM15:
 306 0076 82E0      		ldi r24,lo8(2)
 307 0078 90E0      		ldi r25,hi8(2)
 308 007a 00D0      		rcall FlashDigOn
 361:task/keyproc.c **** 		 FlashDigOn(3);		
 310               	.LM16:
 311 007c 83E0      		ldi r24,lo8(3)
 312 007e 90E0      		ldi r25,hi8(3)
 313 0080 00D0      		rcall FlashDigOn
 362:task/keyproc.c **** 	
 363:task/keyproc.c **** 		 if( EDIT11 == editname )
 315               	.LM17:
 316 0082 C130      		cpi r28,lo8(1)
 317 0084 39F4      		brne .L10
 364:task/keyproc.c **** 		{
 365:task/keyproc.c **** 			LedData[1]=0x00;	  
 319               	.LM18:
 320 0086 1092 0000 		sts LedData+1,__zero_reg__
 366:task/keyproc.c **** 			LedData[2]=SEGF+SEGG+SEGE+SEGB+SEGC;
 322               	.LM19:
 323 008a 86E7      		ldi r24,lo8(118)
 324 008c 8093 0000 		sts LedData+2,r24
 367:task/keyproc.c **** 			LedData[3]=SEGF+SEGE;
 326               	.LM20:
 327 0090 80E3      		ldi r24,lo8(48)
 328 0092 12C0      		rjmp .L13
 329               	.L10:
 368:task/keyproc.c **** 		}   
 369:task/keyproc.c **** 		 if( EDIT12 == editname )
 331               	.LM21:
 332 0094 C230      		cpi r28,lo8(2)
 333 0096 39F4      		brne .L11
 370:task/keyproc.c **** 		{
 371:task/keyproc.c **** 			LedData[1]=0;
 335               	.LM22:
 336 0098 1092 0000 		sts LedData+1,__zero_reg__
 372:task/keyproc.c **** 			LedData[2]=SEGF+SEGE+SEGD;	
 338               	.LM23:
 339 009c 88E3      		ldi r24,lo8(56)
 340 009e 8093 0000 		sts LedData+2,r24
 373:task/keyproc.c **** 			LedData[3]=SEGD+SEGE+SEGG+SEGC;
 342               	.LM24:
 343 00a2 8CE5      		ldi r24,lo8(92)
 344 00a4 09C0      		rjmp .L13
 345               	.L11:
 374:task/keyproc.c **** 		}
 375:task/keyproc.c **** 		 if( EDIT13 == editname ) 
 347               	.LM25:
 348 00a6 C330      		cpi r28,lo8(3)
 349 00a8 49F4      		brne .L9
 376:task/keyproc.c **** 		{
 377:task/keyproc.c **** 			LedData[1]=SEGF+SEGG+SEGE+SEGB+SEGC;
 351               	.LM26:
 352 00aa 86E7      		ldi r24,lo8(118)
 353 00ac 8093 0000 		sts LedData+1,r24
 378:task/keyproc.c **** 			LedData[2]=SEGF+SEGE;	//show "Adr"
 355               	.LM27:
 356 00b0 80E3      		ldi r24,lo8(48)
 357 00b2 8093 0000 		sts LedData+2,r24
 379:task/keyproc.c **** 			LedData[3]=SEGA+SEGB+SEGE+SEGF+SEGG;
 359               	.LM28:
 360 00b6 83E7      		ldi r24,lo8(115)
 361               	.L13:
 362 00b8 8093 0000 		sts LedData+3,r24
 363               	.L9:
 364               	/* epilogue: frame size=0 */
 365 00bc CF91      		pop r28
 366 00be 0895      		ret
 367               	/* epilogue end (size=2) */
 368               	/* function MenuIndexDisp size 42 (39) */
 370               	.Lscope2:
 372               	.global	key_do_nothing
 374               	key_do_nothing:
 376               	.LM29:
 377               	/* prologue: frame size=0 */
 378               	/* prologue end (size=0) */
 379               	/* epilogue: frame size=0 */
 380 00c0 0895      		ret
 381               	/* epilogue end (size=1) */
 382               	/* function key_do_nothing size 1 (0) */
 384               	.Lscope3:
 386               	.global	key_set_long_press
 388               	key_set_long_press:
 390               	.LM30:
 391               	/* prologue: frame size=0 */
 392               	/* prologue end (size=0) */
 394               	.LM31:
 395 00c2 83E0      		ldi r24,lo8(3)
 396 00c4 00D0      		rcall RstSoftTimer
 397               	/* epilogue: frame size=0 */
 398 00c6 0895      		ret
 399               	/* epilogue end (size=1) */
 400               	/* function key_set_long_press size 3 (2) */
 402               	.Lscope4:
 404               	.global	JudgeTemperature
 406               	JudgeTemperature:
 408               	.LM32:
 409               	/* prologue: frame size=0 */
 410               	/* prologue end (size=0) */
 412               	.LM33:
 413 00c8 81E0      		ldi r24,lo8(1)
 415               	.LM34:
 416 00ca 4091 0000 		lds r20,TH
 417 00ce 5091 0000 		lds r21,(TH)+1
 418 00d2 2091 0000 		lds r18,TL
 419 00d6 3091 0000 		lds r19,(TL)+1
 420 00da 2417      		cp r18,r20
 421 00dc 3507      		cpc r19,r21
 422 00de 3CF4      		brge .L17
 424               	.LM35:
 425 00e0 2057      		subi r18,lo8(-400)
 426 00e2 3E4F      		sbci r19,hi8(-400)
 427 00e4 0CF4      		brge .L18
 429               	.LM36:
 430 00e6 80E0      		ldi r24,lo8(0)
 431               	.L18:
 433               	.LM37:
 434 00e8 435E      		subi r20,lo8(1251)
 435 00ea 5440      		sbci r21,hi8(1251)
 436 00ec 0CF0      		brlt .L20
 437               	.L17:
 439               	.LM38:
 440 00ee 80E0      		ldi r24,lo8(0)
 441               	.L20:
 443               	.LM39:
 444 00f0 9927      		clr r25
 445               	/* epilogue: frame size=0 */
 446 00f2 0895      		ret
 447               	/* epilogue end (size=1) */
 448               	/* function JudgeTemperature size 24 (23) */
 453               	.Lscope5:
 455               	.global	JudgeHumidity
 457               	JudgeHumidity:
 459               	.LM40:
 460               	/* prologue: frame size=0 */
 461               	/* prologue end (size=0) */
 463               	.LM41:
 464 00f4 8091 0000 		lds r24,HH
 465 00f8 8A50      		subi r24,lo8(-(-10))
 466 00fa 8B35      		cpi r24,lo8(91)
 467 00fc 18F4      		brsh .L22
 469               	.LM42:
 470 00fe 81E0      		ldi r24,lo8(1)
 471 0100 90E0      		ldi r25,hi8(1)
 472 0102 0895      		ret
 473               	.L22:
 475               	.LM43:
 476 0104 80E0      		ldi r24,lo8(0)
 477 0106 90E0      		ldi r25,hi8(0)
 479               	.LM44:
 480 0108 0895      		ret
 481               	/* epilogue: frame size=0 */
 482               	/* epilogue: noreturn */
 483               	/* epilogue end (size=0) */
 484               	/* function JudgeHumidity size 11 (11) */
 486               	.Lscope6:
 489               	.global	AddTempSetVal
 491               	AddTempSetVal:
 493               	.LM45:
 494               	/* prologue: frame size=0 */
 495 010a 0F93      		push r16
 496 010c 1F93      		push r17
 497 010e CF93      		push r28
 498 0110 DF93      		push r29
 499               	/* prologue end (size=4) */
 500 0112 8C01      		movw r16,r24
 502               	.LM46:
 503 0114 FC01      		movw r30,r24
 504 0116 C081      		ld r28,Z
 505 0118 D181      		ldd r29,Z+1
 506 011a CE01      		movw r24,r28
 507 011c 8057      		subi r24,lo8(-(400))
 508 011e 9E4F      		sbci r25,hi8(-(400))
 509 0120 8257      		subi r24,lo8(1650)
 510 0122 9640      		sbci r25,hi8(1650)
 511 0124 D0F4      		brsh .L24

⌨️ 快捷键说明

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