📄 key.lst
字号:
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 + -