📄 ds1302.lst
字号:
440 /* #NOAPP */
441 00d0 892F mov r24,r25
442 00d2 9927 clr r25
443 /* epilogue: frame size=0 */
444 00d4 0895 ret
445 /* epilogue end (size=1) */
446 /* function ds1302_read size 81 (80) */
452 .Lscope1:
454 .global check_ds1302
456 check_ds1302:
106:ds1302.c **** uchar check_ds1302(void)
107:ds1302.c **** {
458 .LM93:
459 /* prologue: frame size=0 */
460 /* prologue end (size=0) */
108:ds1302.c **** ds1302_write(ds1302_control_reg,0x80);
462 .LM94:
463 00d6 60E8 ldi r22,lo8(-128)
464 00d8 8EE8 ldi r24,lo8(-114)
465 00da 92DF rcall ds1302_write
109:ds1302.c **** if(ds1302_read(ds1302_control_reg)==0x80) return 1;
467 .LM95:
468 00dc 8EE8 ldi r24,lo8(-114)
469 00de C5DF rcall ds1302_read
470 00e0 8038 cpi r24,lo8(-128)
471 00e2 19F4 brne .L35
473 .LM96:
474 00e4 81E0 ldi r24,lo8(1)
475 00e6 90E0 ldi r25,hi8(1)
476 00e8 0895 ret
477 .L35:
110:ds1302.c **** return 0;
479 .LM97:
480 00ea 80E0 ldi r24,lo8(0)
481 00ec 90E0 ldi r25,hi8(0)
111:ds1302.c **** }
483 .LM98:
484 00ee 0895 ret
485 /* epilogue: frame size=0 */
486 00f0 0895 ret
487 /* epilogue end (size=1) */
488 /* function check_ds1302 size 14 (13) */
490 .Lscope2:
492 .global ds1302_read_time
494 ds1302_read_time:
112:ds1302.c **** void ds1302_read_time(void)
113:ds1302.c **** {
496 .LM99:
497 /* prologue: frame size=0 */
498 /* prologue end (size=0) */
114:ds1302.c **** year=ds1302_read(ds1302_year_reg); //年
500 .LM100:
501 00f2 8CE8 ldi r24,lo8(-116)
502 00f4 BADF rcall ds1302_read
503 00f6 8093 0000 sts year,r24
115:ds1302.c **** month=ds1302_read(ds1302_month_reg);//月
505 .LM101:
506 00fa 88E8 ldi r24,lo8(-120)
507 00fc B6DF rcall ds1302_read
508 00fe 8093 0000 sts month,r24
116:ds1302.c **** day=ds1302_read(ds1302_date_reg); //日
510 .LM102:
511 0102 86E8 ldi r24,lo8(-122)
512 0104 B2DF rcall ds1302_read
513 0106 8093 0000 sts day,r24
117:ds1302.c **** week=ds1302_read(ds1302_day_reg); //周
515 .LM103:
516 010a 8AE8 ldi r24,lo8(-118)
517 010c AEDF rcall ds1302_read
518 010e 8093 0000 sts week,r24
118:ds1302.c **** hour=ds1302_read(ds1302_hr_reg); //时
520 .LM104:
521 0112 84E8 ldi r24,lo8(-124)
522 0114 AADF rcall ds1302_read
523 0116 8093 0000 sts hour,r24
119:ds1302.c **** minute=ds1302_read(ds1302_min_reg); //分
525 .LM105:
526 011a 82E8 ldi r24,lo8(-126)
527 011c A6DF rcall ds1302_read
528 011e 8093 0000 sts minute,r24
120:ds1302.c **** second=ds1302_read(ds1302_sec_reg); //秒
530 .LM106:
531 0122 80E8 ldi r24,lo8(-128)
532 0124 A2DF rcall ds1302_read
533 0126 8093 0000 sts second,r24
534 /* epilogue: frame size=0 */
535 012a 0895 ret
536 /* epilogue end (size=1) */
537 /* function ds1302_read_time size 29 (28) */
539 .Lscope3:
541 .global ds1302_write_time
543 ds1302_write_time:
121:ds1302.c **** }
122:ds1302.c **** void ds1302_write_time(void)
123:ds1302.c **** {
545 .LM107:
546 /* prologue: frame size=0 */
547 /* prologue end (size=0) */
124:ds1302.c **** ds1302_write(ds1302_control_reg,0x00); //关闭写保护
549 .LM108:
550 012c 60E0 ldi r22,lo8(0)
551 012e 8EE8 ldi r24,lo8(-114)
552 0130 67DF rcall ds1302_write
125:ds1302.c **** ds1302_write(ds1302_sec_reg,0x80); //暂停
554 .LM109:
555 0132 60E8 ldi r22,lo8(-128)
556 0134 862F mov r24,r22
557 0136 64DF rcall ds1302_write
126:ds1302.c **** ds1302_write(ds1302_charger_reg,0xa9); //涓流充电
559 .LM110:
560 0138 69EA ldi r22,lo8(-87)
561 013a 80E9 ldi r24,lo8(-112)
562 013c 61DF rcall ds1302_write
127:ds1302.c **** ds1302_write(ds1302_year_reg,year); //年
564 .LM111:
565 013e 6091 0000 lds r22,year
566 0142 8CE8 ldi r24,lo8(-116)
567 0144 5DDF rcall ds1302_write
128:ds1302.c **** ds1302_write(ds1302_month_reg,month); //月
569 .LM112:
570 0146 6091 0000 lds r22,month
571 014a 88E8 ldi r24,lo8(-120)
572 014c 59DF rcall ds1302_write
129:ds1302.c **** ds1302_write(ds1302_date_reg,day); //日
574 .LM113:
575 014e 6091 0000 lds r22,day
576 0152 86E8 ldi r24,lo8(-122)
577 0154 55DF rcall ds1302_write
130:ds1302.c **** ds1302_write(ds1302_day_reg,week); //周
579 .LM114:
580 0156 6091 0000 lds r22,week
581 015a 8AE8 ldi r24,lo8(-118)
582 015c 51DF rcall ds1302_write
131:ds1302.c **** ds1302_write(ds1302_hr_reg,hour); //时
584 .LM115:
585 015e 6091 0000 lds r22,hour
586 0162 84E8 ldi r24,lo8(-124)
587 0164 4DDF rcall ds1302_write
132:ds1302.c **** ds1302_write(ds1302_min_reg,minute); //分
589 .LM116:
590 0166 6091 0000 lds r22,minute
591 016a 82E8 ldi r24,lo8(-126)
592 016c 49DF rcall ds1302_write
133:ds1302.c **** ds1302_write(ds1302_sec_reg,second); //秒
594 .LM117:
595 016e 6091 0000 lds r22,second
596 0172 80E8 ldi r24,lo8(-128)
597 0174 45DF rcall ds1302_write
134:ds1302.c **** ds1302_write(ds1302_control_reg,0x80); //打开写保护
599 .LM118:
600 0176 60E8 ldi r22,lo8(-128)
601 0178 8EE8 ldi r24,lo8(-114)
602 017a 42DF rcall ds1302_write
603 /* epilogue: frame size=0 */
604 017c 0895 ret
605 /* epilogue end (size=1) */
606 /* function ds1302_write_time size 41 (40) */
608 .Lscope4:
610 .global __vector_8
612 __vector_8:
135:ds1302.c **** }
136:ds1302.c **** SIGNAL (SIG_OVERFLOW1)
137:ds1302.c **** {
614 .LM119:
615 /* prologue: frame size=0 */
616 017e 1F92 push __zero_reg__
617 0180 0F92 push __tmp_reg__
618 0182 0FB6 in __tmp_reg__,__SREG__
619 0184 0F92 push __tmp_reg__
620 0186 1124 clr __zero_reg__
621 0188 2F93 push r18
622 018a 3F93 push r19
623 018c 8F93 push r24
624 018e 9F93 push r25
625 /* prologue end (size=9) */
138:ds1302.c **** TCNT1=t1_tcnt;
627 .LM120:
628 0190 8EEE ldi r24,lo8(-3602)
629 0192 91EF ldi r25,hi8(-3602)
630 0194 9DBD out (76)+1-0x20,r25
631 0196 8CBD out 76-0x20,r24
139:ds1302.c **** half_second++;
633 .LM121:
634 0198 2091 0000 lds r18,half_second
635 019c 2F5F subi r18,lo8(-(1))
636 019e 2093 0000 sts half_second,r18
140:ds1302.c **** flash_var^=flash_control;
638 .LM122:
639 01a2 8091 0000 lds r24,flash_var
640 01a6 9091 0000 lds r25,flash_control
641 01aa 8927 eor r24,r25
642 01ac 8093 0000 sts flash_var,r24
141:ds1302.c **** if(2==half_second)
644 .LM123:
645 01b0 2230 cpi r18,lo8(2)
646 01b2 09F0 breq .+2
647 01b4 48C0 rjmp .L38
142:ds1302.c **** {
143:ds1302.c **** half_second=0;
649 .LM124:
650 01b6 1092 0000 sts half_second,__zero_reg__
144:ds1302.c **** second++;
652 .LM125:
653 01ba 8091 0000 lds r24,second
654 01be 8F5F subi r24,lo8(-(1))
655 01c0 8093 0000 sts second,r24
145:ds1302.c **** second_flag=1;
657 .LM126:
658 01c4 81E0 ldi r24,lo8(1)
659 01c6 8093 0000 sts second_flag,r24
146:ds1302.c **** if(flag&(1<<buzzer_flag)) flash_buzzer();
661 .LM127:
662 01ca 3091 0000 lds r19,flag
663 01ce 31FF sbrs r19,1
664 01d0 05C0 rjmp .L40
665 01d2 85B3 in r24,53-0x20
666 01d4 90E1 ldi r25,lo8(16)
667 01d6 8927 eor r24,r25
668 01d8 85BB out 53-0x20,r24
669 01da 01C0 rjmp .L41
670 .L40:
147:ds1302.c **** else set_buzzer();
672 .LM128:
673 01dc AC9A sbi 53-0x20,4
674 .L41:
148:ds1302.c **** if((second&0x0f)>=0x0a)
676 .LM129:
677 01de 2091 0000 lds r18,second
678 01e2 822F mov r24,r18
679 01e4 9927 clr r25
680 01e6 8F70 andi r24,lo8(15)
681 01e8 9070 andi r25,hi8(15)
682 01ea 0A97 sbiw r24,10
683 01ec 64F1 brlt .L38
149:ds1302.c **** {
150:ds1302.c **** second&=0xf0;
685 .LM130:
686 01ee 822F mov r24,r18
687 01f0 807F andi r24,lo8(-16)
151:ds1302.c **** second+=0x10;
689 .LM131:
690 01f2 805F subi r24,lo8(-(16))
691 01f4 8093 0000 sts second,r24
152:ds1302.c **** if((second&0xf0)>=0x60)
693 .LM132:
694 01f8 9927 clr r25
695 01fa 8036 cpi r24,96
696 01fc 9105 cpc r25,__zero_reg__
697 01fe 1CF1 brlt .L38
153:ds1302.c **** {
154:ds1302.c **** second=0;
699 .LM133:
700 0200 1092 0000 sts second,__zero_reg__
155:ds1302.c **** minute++;
702 .LM134:
703 0204 2091 0000 lds r18,minute
704 0208 2F5F subi r18,lo8(-(1))
705 020a 2093 0000 sts minute,r18
156:ds1302.c **** flag&=~(1<<buzzer_flag);
707 .LM135:
708 020e 3D7F andi r19,lo8(-3)
709 0210 3093 0000 sts flag,r19
157:ds1302.c **** if((minute&0x0f)>=0x0a)
711 .LM136:
712 0214 822F mov r24,r18
713 0216 9927 clr r25
714 0218 8F70 andi r24,lo8(15)
715 021a 9070 andi r25,hi8(15)
716 021c 0A97 sbiw r24,10
717 021e 9CF0 brlt .L38
158:ds1302.c **** {
159:ds1302.c **** minute&=0xf0;
719 .LM137:
720 0220 822F mov r24,r18
721 0222 807F andi r24,lo8(-16)
160:ds1302.c **** minute+=0x10;
723 .LM138:
724 0224 805F subi r24,lo8(-(16))
725 0226 8093 0000 sts minute,r24
161:ds1302.c **** if((minute&0xf0)>=0x60)
727 .LM139:
728 022a 9927 clr r25
729 022c 8036 cpi r24,96
730 022e 9105 cpc r25,__zero_reg__
731 0230 54F0 brlt .L38
162:ds1302.c **** {
163:ds1302.c **** minute=0;
733 .LM140:
734 0232 1092 0000 sts minute,__zero_reg__
164:ds1302.c **** hour++;
736 .LM141:
737 0236 8091 0000 lds r24,hour
738 023a 8F5F subi r24,lo8(-(1))
739 023c 8093 0000 sts hour,r24
165:ds1302.c **** flag|=1<<hour_flag;
741 .LM142:
742 0240 3160 ori r19,lo8(1)
743 0242 3093 0000 sts flag,r19
744 .L38:
745 /* epilogue: frame size=0 */
746 0246 9F91 pop r25
747 0248 8F91 pop r24
748 024a 3F91 pop r19
749 024c 2F91 pop r18
750 024e 0F90 pop __tmp_reg__
751 0250 0FBE out __SREG__,__tmp_reg__
752 0252 0F90 pop __tmp_reg__
753 0254 1F90 pop __zero_reg__
754 0256 1895 reti
755 /* epilogue end (size=9) */
756 /* function __vector_8 size 111 (93) */
758 .Lscope5:
760 .global display_time
762 display_time:
166:ds1302.c **** }
167:ds1302.c **** }
168:ds1302.c **** }
169:ds1302.c **** }
170:ds1302.c **** }
171:ds1302.c **** }
172:ds1302.c **** void display_time(void)
173:ds1302.c **** {
764 .LM143:
765 /* prologue: frame size=0 */
766 /* prologue end (size=0) */
174:ds1302.c **** uchar temp=0;
175:ds1302.c ****
176:ds1302.c **** temp=(hour&0xf0)>>4;
768 .LM144:
769 0258 2091 0000 lds r18,hour
770 025c 822F mov r24,r18
771 025e 9927 clr r25
772 0260 54E0 ldi r21,4
773 0262 9695 1: lsr r25
774 0264 8795 ror r24
775 0266 5A95 dec r21
776 0268 E1F7 brne 1b
777 .LBB2:
177:ds1302.c **** display_buffer[0]=pgm_read_byte(display_code+temp);
779 .LM145:
780 026a E82F mov r30,r24
781 026c FF27 clr r31
782 026e E050 subi r30,lo8(-(display_code))
783 0270 F040 sbci r31,hi8(-(display_code))
784 /* #APP */
785 0272 8491 lpm r24, Z
786
787 /* #NOAPP */
788 .LBE2:
789 0274 8093 0000 sts display_buffer,r24
178:ds1302.c **** temp=hour&0x0f;
791 .LM146:
792 0278 2F70 andi r18,lo8(15)
793 .LBB3:
179:ds1302.c **** display_buffer[1]=pgm_read_byte(display_code+temp);
795 .LM147:
796 027a E22F mov r30,r18
797 027c FF27 clr r31
798 027e E050 subi r30,lo8(-(display_code))
799 0280 F040 sbci r31,hi8(-(display_code))
800 /* #APP */
801 0282 8491 lpm r24, Z
802
803 /* #NOAPP */
804 .LBE3:
805 0284 8093 0000 sts display_buffer+1,r24
180:ds1302.c ****
181:ds1302.c **** display_buffer[2]=0x40;//-
807 .LM148:
808 0288 30E4 ldi r19,lo8(64)
809 028a 3093 0000 sts display_buffer+2,r19
182:ds1302.c ****
183:ds1302.c **** temp=(minute&0xf0)>>4;
811 .LM149:
812 028e 2091 0000 lds r18,minute
813 0292 822F mov r24,r18
814 0294 9927 clr r25
815 0296 44E0 ldi r20,4
816 0298 9695 1: lsr r25
817 029a 8795 ror r24
818 029c 4A95 dec r20
819 029e E1F7 brne 1b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -