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

📄 key.lst

📁 avr关于1302和18b20的程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 325:key.c         **** 				if((timer1_hour&0x0f)>=0x0a) timer1_hour&=0xf0;
 326:key.c         **** 			}
 327:key.c         **** 			if(0==(in_shift())) key_delay();
 328:key.c         **** 		}while(in_shift());
 329:key.c         **** 		//时十位
 330:key.c         **** 		do{
 331:key.c         **** 			flash_control=0x08;
 332:key.c         **** 			display_timer(2,timer1_hour,timer1_minute);
 333:key.c         **** 			
 334:key.c         **** 			if(0==(in_add())) key_delay();
 335:key.c         **** 			if(0==(in_add()))
 336:key.c         **** 			{
 337:key.c         **** 				timer1_hour+=0x10;
 338:key.c         **** 				if((timer1_hour&0xf0)>=0x30) timer1_hour&=0x0f;
 339:key.c         **** 			}
 340:key.c         **** 			if(0==(in_shift())) key_delay();
 341:key.c         **** 		}while(in_shift());		
 342:key.c         **** 		eeprom_write_byte((uchar *)(timer1_address+0),timer1_hour);
 343:key.c         **** 		eeprom_write_byte((uchar *)(timer1_address+1),timer1_minute);
 344:key.c         **** 		
 345:key.c         **** 		//timer3
 346:key.c         **** 		//分个位
 347:key.c         **** 		do{
 348:key.c         **** 			flash_control=0x80;
 349:key.c         **** 			display_timer(3,timer2_hour,timer2_minute);
 350:key.c         **** 			
 351:key.c         **** 			if(0==(in_add())) key_delay();
 352:key.c         **** 			if(0==(in_add()))
 353:key.c         **** 			{
 354:key.c         **** 				timer2_minute++;
 355:key.c         **** 				if((timer2_minute&0x0f)>=0x0a) timer2_minute&=0xf0;
 356:key.c         **** 			}
 357:key.c         **** 			if(0==(in_shift())) key_delay();
 358:key.c         **** 		}while(in_shift());
 359:key.c         **** 		//分十位
 360:key.c         **** 		do{
 361:key.c         **** 			flash_control=0x40;
 362:key.c         **** 			display_timer(3,timer2_hour,timer2_minute);
 363:key.c         **** 			
 364:key.c         **** 			if(0==(in_add())) key_delay();
 365:key.c         **** 			if(0==(in_add()))
 366:key.c         **** 			{
 367:key.c         **** 				timer2_minute+=0x10;
 368:key.c         **** 				if((timer2_minute&0xf0)>=0x60) timer2_minute&=0x0f;
 369:key.c         **** 			}
 370:key.c         **** 			if(0==(in_shift())) key_delay();
 371:key.c         **** 		}while(in_shift());
 372:key.c         **** 		//时个位
 373:key.c         **** 		do{
 374:key.c         **** 			flash_control=0x10;
 375:key.c         **** 			display_timer(3,timer2_hour,timer2_minute);
 376:key.c         **** 			
 377:key.c         **** 			if(0==(in_add())) key_delay();
 378:key.c         **** 			if(0==(in_add()))
 379:key.c         **** 			{
 380:key.c         **** 				timer2_hour++;
 381:key.c         **** 				if((timer2_hour&0x0f)>=0x0a) timer2_hour&=0xf0;
 382:key.c         **** 			}
 383:key.c         **** 			if(0==(in_shift())) key_delay();
 384:key.c         **** 		}while(in_shift());
 385:key.c         **** 		//时十位
 386:key.c         **** 		do{
 387:key.c         **** 			flash_control=0x08;
 388:key.c         **** 			display_timer(3,timer2_hour,timer2_minute);
 389:key.c         **** 			
 390:key.c         **** 			if(0==(in_add())) key_delay();
 391:key.c         **** 			if(0==(in_add()))
 392:key.c         **** 			{
 393:key.c         **** 				timer2_hour+=0x10;
 394:key.c         **** 				if((timer2_hour&0xf0)>=0x30) timer2_hour&=0x0f;
 395:key.c         **** 			}
 396:key.c         **** 			if(0==(in_shift())) key_delay();
 397:key.c         **** 		}while(in_shift());		
 398:key.c         **** 		eeprom_write_byte((uchar *)(timer2_address+0),timer2_hour);
 399:key.c         **** 		eeprom_write_byte((uchar *)(timer2_address+1),timer2_minute);
 400:key.c         **** 		
 401:key.c         **** 		//timer4
 402:key.c         **** 		//分个位
 403:key.c         **** 		do{
 404:key.c         **** 			flash_control=0x80;
 405:key.c         **** 			display_timer(4,timer3_hour,timer3_minute);
 406:key.c         **** 			
 407:key.c         **** 			if(0==(in_add())) key_delay();
 408:key.c         **** 			if(0==(in_add()))
 409:key.c         **** 			{
 410:key.c         **** 				timer3_minute++;
 411:key.c         **** 				if((timer3_minute&0x0f)>=0x0a) timer3_minute&=0xf0;
 412:key.c         **** 			}
 413:key.c         **** 			if(0==(in_shift())) key_delay();
 414:key.c         **** 		}while(in_shift());
 415:key.c         **** 		//分十位
 416:key.c         **** 		do{
 417:key.c         **** 			flash_control=0x40;
 418:key.c         **** 			display_timer(4,timer3_hour,timer3_minute);
 419:key.c         **** 			
 420:key.c         **** 			if(0==(in_add())) key_delay();
 421:key.c         **** 			if(0==(in_add()))
 422:key.c         **** 			{
 423:key.c         **** 				timer3_minute+=0x10;
 424:key.c         **** 				if((timer3_minute&0xf0)>=0x60) timer3_minute&=0x0f;
 425:key.c         **** 			}
 426:key.c         **** 			if(0==(in_shift())) key_delay();
 427:key.c         **** 		}while(in_shift());
 428:key.c         **** 		//时个位
 429:key.c         **** 		do{
 430:key.c         **** 			flash_control=0x10;
 431:key.c         **** 			display_timer(4,timer3_hour,timer3_minute);
 432:key.c         **** 			
 433:key.c         **** 			if(0==(in_add())) key_delay();
 434:key.c         **** 			if(0==(in_add()))
 435:key.c         **** 			{
 436:key.c         **** 				timer3_hour++;
 437:key.c         **** 				if((timer3_hour&0x0f)>=0x0a) timer3_hour&=0xf0;
 438:key.c         **** 			}
 439:key.c         **** 			if(0==(in_shift())) key_delay();
 440:key.c         **** 		}while(in_shift());
 441:key.c         **** 		//时十位
 442:key.c         **** 		do{
 443:key.c         **** 			flash_control=0x08;
 444:key.c         **** 			display_timer(4,timer3_hour,timer3_minute);
 445:key.c         **** 			
 446:key.c         **** 			if(0==(in_add())) key_delay();
 447:key.c         **** 			if(0==(in_add()))
 448:key.c         **** 			{
 449:key.c         **** 				timer3_hour+=0x10;
 450:key.c         **** 				if((timer3_hour&0xf0)>=0x30) timer3_hour&=0x0f;
 451:key.c         **** 			}
 452:key.c         **** 			if(0==(in_shift())) key_delay();
 453:key.c         **** 		}while(in_shift());		
 454:key.c         **** 		eeprom_write_byte((uchar *)(timer3_address+0),timer3_hour);
 455:key.c         **** 		eeprom_write_byte((uchar *)(timer3_address+1),timer3_minute);
 456:key.c         **** 		
 457:key.c         **** 		//timer5
 458:key.c         **** 		//分个位
 459:key.c         **** 		do{
 460:key.c         **** 			flash_control=0x80;
 461:key.c         **** 			display_timer(5,timer4_hour,timer4_minute);
 462:key.c         **** 			
 463:key.c         **** 			if(0==(in_add())) key_delay();
 464:key.c         **** 			if(0==(in_add()))
 465:key.c         **** 			{
 466:key.c         **** 				timer4_minute++;
 467:key.c         **** 				if((timer4_minute&0x0f)>=0x0a) timer4_minute&=0xf0;
 468:key.c         **** 			}
 469:key.c         **** 			if(0==(in_shift())) key_delay();
 470:key.c         **** 		}while(in_shift());
 471:key.c         **** 		//分十位
 472:key.c         **** 		do{
 473:key.c         **** 			flash_control=0x40;
 474:key.c         **** 			display_timer(5,timer4_hour,timer4_minute);
 475:key.c         **** 			
 476:key.c         **** 			if(0==(in_add())) key_delay();
 477:key.c         **** 			if(0==(in_add()))
 478:key.c         **** 			{
 479:key.c         **** 				timer4_minute+=0x10;
 480:key.c         **** 				if((timer4_minute&0xf0)>=0x60) timer4_minute&=0x0f;
 481:key.c         **** 			}
 482:key.c         **** 			if(0==(in_shift())) key_delay();
 483:key.c         **** 		}while(in_shift());
 484:key.c         **** 		//时个位
 485:key.c         **** 		do{
 486:key.c         **** 			flash_control=0x10;
 487:key.c         **** 			display_timer(5,timer4_hour,timer4_minute);
 488:key.c         **** 			
 489:key.c         **** 			if(0==(in_add())) key_delay();
 490:key.c         **** 			if(0==(in_add()))
 491:key.c         **** 			{
 492:key.c         **** 				timer4_hour++;
 493:key.c         **** 				if((timer4_hour&0x0f)>=0x0a) timer4_hour&=0xf0;
 494:key.c         **** 			}
 495:key.c         **** 			if(0==(in_shift())) key_delay();
 496:key.c         **** 		}while(in_shift());
 497:key.c         **** 		//时十位
 498:key.c         **** 		do{
 499:key.c         **** 			flash_control=0x08;
 500:key.c         **** 			display_timer(5,timer4_hour,timer4_minute);
 501:key.c         **** 			
 502:key.c         **** 			if(0==(in_add())) key_delay();
 503:key.c         **** 			if(0==(in_add()))
 504:key.c         **** 			{
 505:key.c         **** 				timer4_hour+=0x10;
 506:key.c         **** 				if((timer4_hour&0xf0)>=0x30) timer4_hour&=0x0f;
 507:key.c         **** 			}
 508:key.c         **** 			if(0==(in_shift())) key_delay();
 509:key.c         **** 		}while(in_shift());		
 510:key.c         **** 		eeprom_write_byte((uchar *)(timer4_address+0),timer4_hour);
 511:key.c         **** 		eeprom_write_byte((uchar *)(timer4_address+1),timer4_minute);
 512:key.c         **** 		
 513:key.c         **** 		//timer6
 514:key.c         **** 		//分个位
 515:key.c         **** 		do{
 516:key.c         **** 			flash_control=0x80;
 517:key.c         **** 			display_timer(6,timer5_hour,timer5_minute);
 518:key.c         **** 			
 519:key.c         **** 			if(0==(in_add())) key_delay();
 520:key.c         **** 			if(0==(in_add()))
 521:key.c         **** 			{
 522:key.c         **** 				timer5_minute++;
 523:key.c         **** 				if((timer5_minute&0x0f)>=0x0a) timer5_minute&=0xf0;
 524:key.c         **** 			}
 525:key.c         **** 			if(0==(in_shift())) key_delay();
 526:key.c         **** 		}while(in_shift());
 527:key.c         **** 		//分十位
 528:key.c         **** 		do{
 529:key.c         **** 			flash_control=0x40;
 530:key.c         **** 			display_timer(6,timer5_hour,timer5_minute);
 531:key.c         **** 			
 532:key.c         **** 			if(0==(in_add())) key_delay();
 533:key.c         **** 			if(0==(in_add()))
 534:key.c         **** 			{
 535:key.c         **** 				timer5_minute+=0x10;
 536:key.c         **** 				if((timer5_minute&0xf0)>=0x60) timer5_minute&=0x0f;
 537:key.c         **** 			}
 538:key.c         **** 			if(0==(in_shift())) key_delay();
 539:key.c         **** 		}while(in_shift());
 540:key.c         **** 		//时个位
 541:key.c         **** 		do{
 542:key.c         **** 			flash_control=0x10;
 543:key.c         **** 			display_timer(6,timer5_hour,timer5_minute);
 544:key.c         **** 			
 545:key.c         **** 			if(0==(in_add())) key_delay();
 546:key.c         **** 			if(0==(in_add()))
 547:key.c         **** 			{
 548:key.c         **** 				timer5_hour++;
 549:key.c         **** 				if((timer5_hour&0x0f)>=0x0a) timer5_hour&=0xf0;
 550:key.c         **** 			}
 551:key.c         **** 			if(0==(in_shift())) key_delay();
 552:key.c         **** 		}while(in_shift());
 553:key.c         **** 		//时十位
 554:key.c         **** 		do{
 555:key.c         **** 			flash_control=0x08;
 556:key.c         **** 			display_timer(6,timer5_hour,timer5_minute);
 557:key.c         **** 			
 558:key.c         **** 			if(0==(in_add())) key_delay();
 559:key.c         **** 			if(0==(in_add()))
 560:key.c         **** 			{
 561:key.c         **** 				timer5_hour+=0x10;
 562:key.c         **** 				if((timer5_hour&0xf0)>=0x30) timer5_hour&=0x0f;
 563:key.c         **** 			}
 564:key.c         **** 			if(0==(in_ok())) key_delay();
 565:key.c         **** 		}while(in_ok());		
 566:key.c         **** 		eeprom_write_byte((uchar *)(timer5_address+0),timer5_hour);
 567:key.c         **** 		eeprom_write_byte((uchar *)(timer5_address+1),timer5_minute);
 568:key.c         **** 	}
 569:key.c         **** }
 570:key.c         **** void key_delay(void)
 571:key.c         **** {
  76               	.LM1:
  77               	/* prologue: frame size=0 */
  78               	/* prologue end (size=0) */
 572:key.c         **** 	uint i=0;
  80               	.LM2:
  81 0000 80E0      		ldi r24,lo8(0)
  82 0002 90E0      		ldi r25,hi8(0)
  83               	.L9:
  84 0004 27E7      		ldi r18,lo8(119)
  85               	.L8:
 573:key.c         **** 	uchar j=0;
 574:key.c         **** 	for(i=0;i<0xffff;i++)	for(j=0;j<0x78;j++);
  87               	.LM3:
  88 0006 2C53      		subi r18,lo8(-(-60))
  89 0008 27FF      		sbrs r18,7
  90 000a FDCF      		rjmp .L8
  91 000c 0196      		adiw r24,1
  92 000e 2FEF      		ldi r18,hi8(-1)
  93 0010 8F3F      		cpi r24,lo8(-1)
  94 0012 9207      		cpc r25,r18
  95 0014 B9F7      		brne .L9
  96               	/* epilogue: frame size=0 */
  97 0016 0895      		ret
  98               	/* epilogue end (size=1) */
  99               	/* function key_delay size 12 (11) */
 105               	.Lscope0:
 107               	.global	key_scan
 109               	key_scan:
 111               	.LM4:
 112               	/* prologue: frame size=0 */
 113 0018 CF93      		push r28
 114 001a DF93      		push r29
 115               	/* prologue end (size=2) */
 117               	.LM5:
 118 001c 80B3      		in r24,48-0x20
 119 001e 9927      		clr r25
 120 0020 75E0      		ldi r23,5
 121 0022 9695      	1:	lsr r25
 122 0024 8795      		ror r24
 123 0026 7A95      		dec r23
 124 0028 E1F7      		brne 1b
 125 002a 21E0      		ldi r18,lo8(1)
 126 002c 30E0      		ldi r19,hi8(1)
 127 002e 8223      		and r24,r18
 128 0030 9323      		and r25,r19
 129 0032 8217      		cp r24,r18
 130 0034 9307      		cpc r25,r19
 131 0036 09F0      		breq .+2
 132 0038 65C0      		rjmp .L449
 134               	.LM6:
 135 003a 80B3      		in r24,48-0x20
 136 003c 9927      		clr r25
 137 003e 66E0      		ldi r22,6
 138 0040 9695      	1:	lsr r25
 139 0042 8795      		ror r24
 140 0044 6A95      		dec r22
 141 0046 E1F7      		brne 1b
 142 0048 8170      		andi r24,lo8(1)
 143 004a 9070      		andi r25,hi8(1)
 144 004c 8217      		cp r24,r18
 145 004e 9307      		cpc r25,r19
 146 0050 09F0      		breq .+2
 147 0052 54C0      		rjmp .L448
 149               	.LM7:
 150 0054 8799      		sbic 48-0x20,7
 151 0056 4EC0      		rjmp .L139
 152               	.L140:
 154               	.LM8:
 155 0058 81E0      		ldi r24,lo8(1)
 156 005a 8093 0000 		sts flash_control,r24
 158               	.LM9:
 159 005e 4091 0000 		lds r20,timer0_minute
 160 0062 6091 0000 		lds r22,timer0_hour
 161 0066 00D0      		rcall display_timer
 163               	.LM10:
 164 0068 829B      		sbis 48-0x20,2
 165 006a CADF      		rcall key_delay
 166               	.L142:
 168               	.LM11:
 169 006c 8299      		sbic 48-0x20,2
 170 006e F4CF      		rjmp .L140
 171               	.L144:
 173               	.LM12:
 174 0070 81E0      		ldi r24,lo8(1)
 175 0072 8093 0000 		sts flash_control,r24
 177               	.LM13:
 178 0076 4091 0000 		lds r20,timer1_minute
 179 007a 6091 0000 		lds r22,timer1_hour
 180 007e 82E0      		ldi r24,lo8(2)
 181 0080 00D0      		rcall display_timer

⌨️ 快捷键说明

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