📄 pd3key.lst
字号:
(0099) uint8 j;
(0100) for(;t>0;t--)
00AC C007 RJMP 0x00B4
(0101) for(j=0;j<70;j++)
00AD 2744 CLR R20
00AE C001 RJMP 0x00B0
00AF 9543 INC R20
00B0 3446 CPI R20,0x46
00B1 F3E8 BCS 0x00AF
00B2 5001 SUBI R16,1
00B3 4010 SBCI R17,0
00B4 2422 CLR R2
00B5 2433 CLR R3
00B6 1620 CP R2,R16
00B7 0631 CPC R3,R17
00B8 F3A4 BLT 0x00AD
(0102) ;
(0103) }
00B9 940E018B CALL pop_gset1
00BB 9508 RET
_delay50ms:
i --> R20
t --> R16
00BC 940E0188 CALL push_gset1
(0104) /*--------------------------------------------------------------------
(0105) 函数全称:50ms 延时
(0106) 函数功能:当然是 50ms延时 啦
(0107) 注意事项:基于7.3728M晶振,稍微有点误差
(0108) 提示说明:调用delay50ms(20),得到1s延时
(0109) 输 入:
(0110) 返 回:无
(0111) --------------------------------------------------------------------*/
(0112) void delay50ms(sint16 t)
(0113) {
(0114) uint16 i;
(0115) for(;t>0;t--)
00BE C00B RJMP 0x00CA
(0116) for(i=0;i<52642;i++)
00BF 2744 CLR R20
00C0 2755 CLR R21
00C1 C002 RJMP 0x00C4
00C2 5F4F SUBI R20,0xFF
00C3 4F5F SBCI R21,0xFF
00C4 3A42 CPI R20,0xA2
00C5 ECED LDI R30,0xCD
00C6 075E CPC R21,R30
00C7 F3D0 BCS 0x00C2
00C8 5001 SUBI R16,1
00C9 4010 SBCI R17,0
00CA 2422 CLR R2
00CB 2433 CLR R3
00CC 1620 CP R2,R16
00CD 0631 CPC R3,R17
00CE F384 BLT 0x00BF
(0117) ;
(0118) }
00CF 940E018B CALL pop_gset1
00D1 9508 RET
FILE: E:\ProductPro\M16SD\ICCAVR\PD3Key\PD3Key\PD3Key.c
(0001) #include <iom16v.h>
(0002) #include "E:\ICC_H\CmmICC.H"
(0003)
(0004) #define IN_PD3 cbi(DDRD,3) //PD3
(0005) #define SET_PD3 sbi(PORTD,3)
(0006) #define GET_PD3 gbi(PIND,3)
(0007)
(0008) #define OUT_BUZ sbi(DDRB,3) //PB3
(0009) #define BUZ_ON sbi(PORTB,3)
(0010) #define BUZ_OFF cbi(PORTB,3)
(0011)
(0012) void main(void)
(0013) {
(0014) IN_PD3;
_main:
00D2 988B CBI 0x11,3
(0015) OUT_BUZ;
00D3 9ABB SBI 0x17,3
00D4 C008 RJMP 0x00DD
(0016) while(1)
(0017) {
(0018) SET_PD3;
00D5 9A93 SBI 0x12,3
(0019) if(!GET_PD3)
00D6 9983 SBIC 0x10,3
00D7 C004 RJMP 0x00DC
(0020) {
(0021) BUZ_ON;
00D8 9AC3 SBI 0x18,3
(0022) delay50ms(20);
00D9 E104 LDI R16,0x14
00DA E010 LDI R17,0
00DB DFE0 RCALL _delay50ms
(0023) }
(0024) BUZ_OFF;
00DC 98C3 CBI 0x18,3
00DD CFF7 RJMP 0x00D5
(0025) }
(0026) }
FILE: <library>
00DE 9508 RET
push_arg4:
00DF 933A ST R19,-Y
00E0 932A ST R18,-Y
push_arg2:
00E1 931A ST R17,-Y
00E2 930A ST R16,-Y
00E3 9508 RET
div32u:
00E4 94E8 BCLR 6
00E5 C001 RJMP 0x00E7
mod32u:
00E6 9468 BSET 6
00E7 D02F RCALL long_div_prolog
00E8 24CC CLR R12
00E9 C008 RJMP 0x00F2
div32s:
00EA 94E8 BCLR 6
00EB C001 RJMP 0x00ED
mod32s:
00EC 9468 BSET 6
00ED D029 RCALL long_div_prolog
00EE FD37 SBRC R19,7
00EF D053 RCALL neg_R16_R19
00F0 FDB7 SBRC R27,7
00F1 D05A RCALL neg_R24_R27
00F2 2477 CLR R7
00F3 2488 CLR R8
00F4 2499 CLR R9
00F5 24AA CLR R10
00F6 24BB CLR R11
00F7 D041 RCALL tst_R16_R19
00F8 F0C1 BEQ 0x0111
00F9 D044 RCALL tst_R24_R27
00FA F0B1 BEQ 0x0111
00FB E2E8 LDI R30,0x28
00FC 0F00 LSL R16
00FD 1F11 ROL R17
00FE 1F22 ROL R18
00FF 1F33 ROL R19
0100 1C77 ROL R7
0101 1C88 ROL R8
0102 1C99 ROL R9
0103 1CAA ROL R10
0104 1CBB ROL R11
0105 1688 CP R8,R24
0106 0699 CPC R9,R25
0107 06AA CPC R10,R26
0108 06BB CPC R11,R27
0109 F028 BCS 0x010F
010A 1A88 SUB R8,R24
010B 0A99 SBC R9,R25
010C 0AAA SBC R10,R26
010D 0ABB SBC R11,R27
010E 9503 INC R16
010F 95EA DEC R30
0110 F759 BNE 0x00FC
0111 F426 BRTC 0x0116
0112 2D08 MOV R16,R8
0113 2D19 MOV R17,R9
0114 2D2A MOV R18,R10
0115 2D3B MOV R19,R11
0116 C013 RJMP long_div_epilog
long_div_prolog:
0117 927A ST R7,-Y
0118 928A ST R8,-Y
0119 929A ST R9,-Y
011A 92AA ST R10,-Y
011B 92BA ST R11,-Y
011C 92CA ST R12,-Y
011D 93EA ST R30,-Y
011E 938A ST R24,-Y
011F 939A ST R25,-Y
0120 93AA ST R26,-Y
0121 93BA ST R27,-Y
0122 858B LDD R24,Y+11
0123 859C LDD R25,Y+12
0124 85AD LDD R26,Y+13
0125 85BE LDD R27,Y+14
0126 2EC3 MOV R12,R19
0127 F00E BRTS 0x0129
0128 26CB EOR R12,R27
0129 9508 RET
long_div_epilog:
012A FCC7 SBRC R12,7
012B D017 RCALL neg_R16_R19
012C 91B9 LD R27,Y+
012D 91A9 LD R26,Y+
012E 9199 LD R25,Y+
012F 9189 LD R24,Y+
0130 91E9 LD R30,Y+
0131 90C9 LD R12,Y+
0132 90B9 LD R11,Y+
0133 90A9 LD R10,Y+
0134 9099 LD R9,Y+
0135 9089 LD R8,Y+
0136 9079 LD R7,Y+
0137 9624 ADIW R28,4
0138 9508 RET
tst_R16_R19:
0139 2FE0 MOV R30,R16
013A 2BE1 OR R30,R17
013B 2BE2 OR R30,R18
013C 2BE3 OR R30,R19
013D 9508 RET
tst_R24_R27:
013E 2FE8 MOV R30,R24
013F 2BE9 OR R30,R25
0140 2BEA OR R30,R26
0141 2BEB OR R30,R27
0142 9508 RET
neg_R16_R19:
0143 9500 COM R16
0144 9510 COM R17
0145 9520 COM R18
0146 9530 COM R19
0147 5F0F SUBI R16,0xFF
0148 4F1F SBCI R17,0xFF
0149 4F2F SBCI R18,0xFF
014A 4F3F SBCI R19,0xFF
014B 9508 RET
neg_R24_R27:
014C 9580 COM R24
014D 9590 COM R25
014E 95A0 COM R26
014F 95B0 COM R27
0150 5F8F SUBI R24,0xFF
0151 4F9F SBCI R25,0xFF
0152 4FAF SBCI R26,0xFF
0153 4FBF SBCI R27,0xFF
0154 9508 RET
empy32s:
empy32u:
0155 940E01AB CALL long_prolog
0157 927F PUSH R7
0158 940E01C4 CALL tstzero1
015A F139 BEQ 0x0182
015B 2477 CLR R7
015C 940E01CA CALL tstzero2
015E F419 BNE 0x0162
015F 018C MOVW R16,R24
0160 019D MOVW R18,R26
0161 C020 RJMP 0x0182
0162 9F08 MUL R16,R24
0163 2CB0 MOV R11,R0
0164 2CA1 MOV R10,R1
0165 9F28 MUL R18,R24
0166 2C90 MOV R9,R0
0167 2C81 MOV R8,R1
0168 9F18 MUL R17,R24
0169 0CA0 ADD R10,R0
016A 1C91 ADC R9,R1
016B 1C87 ADC R8,R7
016C 9F09 MUL R16,R25
016D 0CA0 ADD R10,R0
016E 1C91 ADC R9,R1
016F 1C87 ADC R8,R7
0170 9F19 MUL R17,R25
0171 0C90 ADD R9,R0
0172 1C81 ADC R8,R1
0173 9F0A MUL R16,R26
0174 0C90 ADD R9,R0
0175 1C81 ADC R8,R1
0176 9F38 MUL R19,R24
0177 0C80 ADD R8,R0
0178 9F29 MUL R18,R25
0179 0C80 ADD R8,R0
017A 9F1A MUL R17,R26
017B 0C80 ADD R8,R0
017C 9F0B MUL R16,R27
017D 0C80 ADD R8,R0
017E 2D0B MOV R16,R11
017F 2D1A MOV R17,R10
0180 2D29 MOV R18,R9
0181 2D38 MOV R19,R8
0182 907F POP R7
0183 940C01B9 JMP long_epilog
pop_gset4:
0185 E0E8 LDI R30,0x8
0186 940C018C JMP pop
push_gset1:
0188 935A ST R21,-Y
0189 934A ST R20,-Y
018A 9508 RET
pop_gset1:
018B E0E1 LDI R30,1
pop:
018C 9149 LD R20,Y+
018D 9159 LD R21,Y+
018E FDE0 SBRC R30,0
018F 9508 RET
0190 9169 LD R22,Y+
0191 9179 LD R23,Y+
0192 FDE1 SBRC R30,1
0193 9508 RET
0194 90A9 LD R10,Y+
0195 90B9 LD R11,Y+
0196 FDE2 SBRC R30,2
0197 9508 RET
0198 90C9 LD R12,Y+
0199 90D9 LD R13,Y+
019A FDE3 SBRC R30,3
019B 9508 RET
019C 90E9 LD R14,Y+
019D 90F9 LD R15,Y+
019E 9508 RET
push_gset2:
019F 937A ST R23,-Y
01A0 936A ST R22,-Y
01A1 940C0188 JMP push_gset1
push_gset3:
01A3 92BA ST R11,-Y
01A4 92AA ST R10,-Y
01A5 940C019F JMP push_gset2
push_gset4:
01A7 92DA ST R13,-Y
01A8 92CA ST R12,-Y
01A9 940C01A3 JMP push_gset3
long_prolog:
01AB 928A ST R8,-Y
01AC 929A ST R9,-Y
01AD 92AA ST R10,-Y
01AE 92BA ST R11,-Y
01AF 93EA ST R30,-Y
01B0 938A ST R24,-Y
01B1 939A ST R25,-Y
01B2 93AA ST R26,-Y
01B3 93BA ST R27,-Y
01B4 8589 LDD R24,Y+9
01B5 859A LDD R25,Y+10
01B6 85AB LDD R26,Y+11
01B7 85BC LDD R27,Y+12
01B8 9508 RET
long_epilog:
01B9 91B9 LD R27,Y+
01BA 91A9 LD R26,Y+
01BB 9199 LD R25,Y+
01BC 9189 LD R24,Y+
01BD 91E9 LD R30,Y+
01BE 90B9 LD R11,Y+
01BF 90A9 LD R10,Y+
01C0 9099 LD R9,Y+
01C1 9089 LD R8,Y+
01C2 9624 ADIW R28,4
01C3 9508 RET
tstzero1:
01C4 27EE CLR R30
01C5 2BE0 OR R30,R16
01C6 2BE1 OR R30,R17
01C7 2BE2 OR R30,R18
01C8 2BE3 OR R30,R19
01C9 9508 RET
tstzero2:
01CA 27EE CLR R30
01CB 2BE8 OR R30,R24
01CC 2BE9 OR R30,R25
01CD 2BEA OR R30,R26
01CE 2BEB OR R30,R27
01CF 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -