📄 pro.lst
字号:
(0240) if(second_is_ok == 1)
053A 91800084 LDS R24,second_is_ok
053C 3081 CPI R24,1
053D F421 BNE 0x0542
(0241) {
(0242) second_is_ok =0;
053E 2422 CLR R2
053F 92200084 STS second_is_ok,R2
(0243) time();
0541 DC7B RCALL _time
(0244) }
(0245) if(display_is_ok)
0542 90200082 LDS R2,display_is_ok
0544 2022 TST R2
0545 F029 BEQ 0x054B
(0246) {
(0247) display_is_ok=0;
0546 2422 CLR R2
0547 92200082 STS display_is_ok,R2
(0248) PutChar();
0549 DE0D RCALL _PutChar
(0249) display_time();
054A DC8D RCALL _display_time
054B CFEE RJMP 0x053A
054C 9508 RET
FILE: E:\张秋伟\我的实验\数字频率计\delay.c
(0001) //AVR 通用软件延时程序
(0002) #define DELAY_C
(0003) //#include "includes.h"
(0004) #define XTAL 8 //晶振频率,单位MHz
(0005) void delay_1us(void) //1us延时函数
(0006) {
(0007) asm("nop");
_delay_1us:
054D 0000 NOP
054E 9508 RET
_delay_nus:
i --> R20
n --> R22
054F 940E064C CALL push_gset2
0551 01B8 MOVW R22,R16
(0008) }
(0009)
(0010) void delay_nus(unsigned int n) //N us延时函数
(0011) {
(0012) unsigned int i=0;
0552 2744 CLR R20
0553 2755 CLR R21
(0013) for (i=0;i<n;i++)
0554 C003 RJMP 0x0558
(0014) delay_1us();
0555 DFF7 RCALL _delay_1us
0556 5F4F SUBI R20,0xFF
0557 4F5F SBCI R21,0xFF
0558 1746 CP R20,R22
0559 0757 CPC R21,R23
055A F3D0 BCS 0x0555
055B 940E0640 CALL pop_gset2
055D 9508 RET
(0015) }
(0016)
(0017) void delay_1ms(void) //1ms延时函数
(0018) {
(0019) unsigned int i;
(0020) for (i=0;i<(unsigned int)(XTAL*143-2);i++);
_delay_1ms:
i --> R16
055E 2700 CLR R16
055F 2711 CLR R17
0560 C002 RJMP 0x0563
0561 5F0F SUBI R16,0xFF
0562 4F1F SBCI R17,0xFF
0563 3706 CPI R16,0x76
0564 E0E4 LDI R30,4
0565 071E CPC R17,R30
0566 F3D0 BCS 0x0561
0567 9508 RET
_delay_nms:
i --> R20
n --> R22
0568 940E064C CALL push_gset2
056A 01B8 MOVW R22,R16
(0021) }
(0022)
(0023) void delay_nms(unsigned int n) //N ms延时函数
(0024) {
(0025) unsigned int i=0;
056B 2744 CLR R20
056C 2755 CLR R21
(0026) for (i=0;i<n;i++)
056D C003 RJMP 0x0571
(0027) {
(0028) delay_1ms();
FILE: <library>
056E DFEF RCALL _delay_1ms
056F 5F4F SUBI R20,0xFF
0570 4F5F SBCI R21,0xFF
0571 1746 CP R20,R22
0572 0757 CPC R21,R23
0573 F3D0 BCS 0x056E
0574 940E0640 CALL pop_gset2
0576 9508 RET
div32u:
0577 94E8 BCLR 6
0578 C001 RJMP 0x057A
mod32u:
0579 9468 BSET 6
057A D02F RCALL long_div_prolog
057B 24CC CLR R12
057C C008 RJMP 0x0585
div32s:
057D 94E8 BCLR 6
057E C001 RJMP 0x0580
mod32s:
057F 9468 BSET 6
0580 D029 RCALL long_div_prolog
0581 FD37 SBRC R19,7
0582 D053 RCALL neg_R16_R19
0583 FDB7 SBRC R27,7
0584 D05A RCALL neg_R24_R27
0585 2477 CLR R7
0586 2488 CLR R8
0587 2499 CLR R9
0588 24AA CLR R10
0589 24BB CLR R11
058A D041 RCALL tst_R16_R19
058B F0C1 BEQ 0x05A4
058C D044 RCALL tst_R24_R27
058D F0B1 BEQ 0x05A4
058E E2E8 LDI R30,0x28
058F 0F00 LSL R16
0590 1F11 ROL R17
0591 1F22 ROL R18
0592 1F33 ROL R19
0593 1C77 ROL R7
0594 1C88 ROL R8
0595 1C99 ROL R9
0596 1CAA ROL R10
0597 1CBB ROL R11
0598 1688 CP R8,R24
0599 0699 CPC R9,R25
059A 06AA CPC R10,R26
059B 06BB CPC R11,R27
059C F028 BCS 0x05A2
059D 1A88 SUB R8,R24
059E 0A99 SBC R9,R25
059F 0AAA SBC R10,R26
05A0 0ABB SBC R11,R27
05A1 9503 INC R16
05A2 95EA DEC R30
05A3 F759 BNE 0x058F
05A4 F426 BRTC 0x05A9
05A5 2D08 MOV R16,R8
05A6 2D19 MOV R17,R9
05A7 2D2A MOV R18,R10
05A8 2D3B MOV R19,R11
05A9 C013 RJMP long_div_epilog
long_div_prolog:
05AA 927A ST R7,-Y
05AB 928A ST R8,-Y
05AC 929A ST R9,-Y
05AD 92AA ST R10,-Y
05AE 92BA ST R11,-Y
05AF 92CA ST R12,-Y
05B0 93EA ST R30,-Y
05B1 938A ST R24,-Y
05B2 939A ST R25,-Y
05B3 93AA ST R26,-Y
05B4 93BA ST R27,-Y
05B5 858B LDD R24,Y+11
05B6 859C LDD R25,Y+12
05B7 85AD LDD R26,Y+13
05B8 85BE LDD R27,Y+14
05B9 2EC3 MOV R12,R19
05BA F00E BRTS 0x05BC
05BB 26CB EOR R12,R27
05BC 9508 RET
long_div_epilog:
05BD FCC7 SBRC R12,7
05BE D017 RCALL neg_R16_R19
05BF 91B9 LD R27,Y+
05C0 91A9 LD R26,Y+
05C1 9199 LD R25,Y+
05C2 9189 LD R24,Y+
05C3 91E9 LD R30,Y+
05C4 90C9 LD R12,Y+
05C5 90B9 LD R11,Y+
05C6 90A9 LD R10,Y+
05C7 9099 LD R9,Y+
05C8 9089 LD R8,Y+
05C9 9079 LD R7,Y+
05CA 9624 ADIW R28,4
05CB 9508 RET
tst_R16_R19:
05CC 2FE0 MOV R30,R16
05CD 2BE1 OR R30,R17
05CE 2BE2 OR R30,R18
05CF 2BE3 OR R30,R19
05D0 9508 RET
tst_R24_R27:
05D1 2FE8 MOV R30,R24
05D2 2BE9 OR R30,R25
05D3 2BEA OR R30,R26
05D4 2BEB OR R30,R27
05D5 9508 RET
neg_R16_R19:
05D6 9500 COM R16
05D7 9510 COM R17
05D8 9520 COM R18
05D9 9530 COM R19
05DA 5F0F SUBI R16,0xFF
05DB 4F1F SBCI R17,0xFF
05DC 4F2F SBCI R18,0xFF
05DD 4F3F SBCI R19,0xFF
05DE 9508 RET
neg_R24_R27:
05DF 9580 COM R24
05E0 9590 COM R25
05E1 95A0 COM R26
05E2 95B0 COM R27
05E3 5F8F SUBI R24,0xFF
05E4 4F9F SBCI R25,0xFF
05E5 4FAF SBCI R26,0xFF
05E6 4FBF SBCI R27,0xFF
05E7 9508 RET
mod8u:
05E8 9468 BSET 6
05E9 C001 RJMP xdiv8u
div8u:
05EA 94E8 BCLR 6
xdiv8u:
05EB 932A ST R18,-Y
05EC 92FA ST R15,-Y
05ED 92EA ST R14,-Y
05EE 24FF CLR R15
05EF 24EE CLR R14
05F0 E120 LDI R18,0x10
05F1 0F00 LSL R16
05F2 1CFF ROL R15
05F3 1CEE ROL R14
05F4 16E1 CP R14,R17
05F5 F010 BCS 0x05F8
05F6 1AE1 SUB R14,R17
05F7 9503 INC R16
05F8 952A DEC R18
05F9 F7B9 BNE 0x05F1
05FA F40E BRTC 0x05FC
05FB 2D0E MOV R16,R14
05FC 90E9 LD R14,Y+
05FD 90F9 LD R15,Y+
05FE 9129 LD R18,Y+
05FF 9508 RET
empy16s:
0600 920A ST R0,-Y
0601 921A ST R1,-Y
0602 938A ST R24,-Y
0603 939A ST R25,-Y
0604 9F02 MUL R16,R18
0605 01C0 MOVW R24,R0
0606 9F12 MUL R17,R18
0607 0D90 ADD R25,R0
0608 9F03 MUL R16,R19
0609 0D90 ADD R25,R0
060A 018C MOVW R16,R24
060B 9199 LD R25,Y+
060C 9189 LD R24,Y+
060D 9019 LD R1,Y+
060E 9009 LD R0,Y+
060F 9508 RET
empy32s:
empy32u:
0610 940E0665 CALL long_prolog
0612 927F PUSH R7
0613 940E067E CALL tstzero1
0615 F139 BEQ 0x063D
0616 2477 CLR R7
0617 940E0684 CALL tstzero2
0619 F419 BNE 0x061D
061A 018C MOVW R16,R24
061B 019D MOVW R18,R26
061C C020 RJMP 0x063D
061D 9F08 MUL R16,R24
061E 2CB0 MOV R11,R0
061F 2CA1 MOV R10,R1
0620 9F28 MUL R18,R24
0621 2C90 MOV R9,R0
0622 2C81 MOV R8,R1
0623 9F18 MUL R17,R24
0624 0CA0 ADD R10,R0
0625 1C91 ADC R9,R1
0626 1C87 ADC R8,R7
0627 9F09 MUL R16,R25
0628 0CA0 ADD R10,R0
0629 1C91 ADC R9,R1
062A 1C87 ADC R8,R7
062B 9F19 MUL R17,R25
062C 0C90 ADD R9,R0
062D 1C81 ADC R8,R1
062E 9F0A MUL R16,R26
062F 0C90 ADD R9,R0
0630 1C81 ADC R8,R1
0631 9F38 MUL R19,R24
0632 0C80 ADD R8,R0
0633 9F29 MUL R18,R25
0634 0C80 ADD R8,R0
0635 9F1A MUL R17,R26
0636 0C80 ADD R8,R0
0637 9F0B MUL R16,R27
0638 0C80 ADD R8,R0
0639 2D0B MOV R16,R11
063A 2D1A MOV R17,R10
063B 2D29 MOV R18,R9
063C 2D38 MOV R19,R8
063D 907F POP R7
063E 940C0673 JMP long_epilog
pop_gset2:
0640 E0E2 LDI R30,2
0641 940C0652 JMP pop
pop_gset4:
0643 E0E8 LDI R30,0x8
0644 940C0652 JMP pop
push_gset5:
0646 92FA ST R15,-Y
0647 92EA ST R14,-Y
push_gset4:
0648 92DA ST R13,-Y
0649 92CA ST R12,-Y
push_gset3:
064A 92BA ST R11,-Y
064B 92AA ST R10,-Y
push_gset2:
064C 937A ST R23,-Y
064D 936A ST R22,-Y
push_gset1:
064E 935A ST R21,-Y
064F 934A ST R20,-Y
0650 9508 RET
pop_gset1:
0651 E0E1 LDI R30,1
pop:
0652 9149 LD R20,Y+
0653 9159 LD R21,Y+
0654 FDE0 SBRC R30,0
0655 9508 RET
0656 9169 LD R22,Y+
0657 9179 LD R23,Y+
0658 FDE1 SBRC R30,1
0659 9508 RET
065A 90A9 LD R10,Y+
065B 90B9 LD R11,Y+
065C FDE2 SBRC R30,2
065D 9508 RET
065E 90C9 LD R12,Y+
065F 90D9 LD R13,Y+
0660 FDE3 SBRC R30,3
0661 9508 RET
0662 90E9 LD R14,Y+
0663 90F9 LD R15,Y+
0664 9508 RET
long_prolog:
0665 928A ST R8,-Y
0666 929A ST R9,-Y
0667 92AA ST R10,-Y
0668 92BA ST R11,-Y
0669 93EA ST R30,-Y
066A 938A ST R24,-Y
066B 939A ST R25,-Y
066C 93AA ST R26,-Y
066D 93BA ST R27,-Y
066E 8589 LDD R24,Y+9
066F 859A LDD R25,Y+10
0670 85AB LDD R26,Y+11
0671 85BC LDD R27,Y+12
0672 9508 RET
long_epilog:
0673 91B9 LD R27,Y+
0674 91A9 LD R26,Y+
0675 9199 LD R25,Y+
0676 9189 LD R24,Y+
0677 91E9 LD R30,Y+
0678 90B9 LD R11,Y+
0679 90A9 LD R10,Y+
067A 9099 LD R9,Y+
067B 9089 LD R8,Y+
067C 9624 ADIW R28,4
067D 9508 RET
tstzero1:
067E 27EE CLR R30
067F 2BE0 OR R30,R16
0680 2BE1 OR R30,R17
0681 2BE2 OR R30,R18
0682 2BE3 OR R30,R19
0683 9508 RET
tstzero2:
0684 27EE CLR R30
0685 2BE8 OR R30,R24
0686 2BE9 OR R30,R25
0687 2BEA OR R30,R26
0688 2BEB OR R30,R27
0689 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -