📄 count.lst
字号:
0109 91900062 LDS R25,i+1
010B 9601 ADIW R24,1
010C 93900062 STS i+1,R25
010E 93800061 STS i,R24
(0031) flag=0;
0110 2422 CLR R2
0111 92200060 STS flag,R2
(0032) delay_ms(1);
0113 E001 LDI R16,1
0114 E010 LDI R17,0
0115 940E0161 CALL _delay_ms
(0033) display(i);
0117 91000061 LDS R16,i
0119 91100062 LDS R17,i+1
011B 940E007D CALL _display
011D CFE5 RJMP 0x0103
011E 9508 RET
FILE: C:\DOCUME~1\Administrator\桌面\count\delay.c
(0001)
(0002) #include "config.h"
(0003)
(0004) void delay_1us(void)
(0005) {
(0006) asm("nop");
_delay_1us:
011F 0000 NOP
0120 9508 RET
(0007) }
(0008)
(0009) void delay_1ms(void)
(0010) {
(0011) unsigned int i;
(0012) for(i=(xtal*143-2);i>0;i--);
_delay_1ms:
i --> R16
0121 E706 LDI R16,0x76
0122 E014 LDI R17,4
0123 C002 RJMP 0x0126
0124 5001 SUBI R16,1
0125 4010 SBCI R17,0
0126 3000 CPI R16,0
0127 0701 CPC R16,R17
0128 F7D9 BNE 0x0124
0129 9508 RET
_delay_1s:
i --> R20
012A 940E01C7 CALL push_gset1
(0013) }
(0014)
(0015) /***********************
(0016) ** 1S延时,误差可能稍大
(0017) ** 250ms*4=1000ms
(0018) ************************/
(0019) void delay_1s(void)
(0020) {
(0021) unsigned int i;
(0022) for(i=250;i>0;i--) //250ms*4=1000ms
012C EF4A LDI R20,0xFA
012D E050 LDI R21,0
012E C003 RJMP 0x0132
(0023) delay_1ms();
012F DFF1 RCALL _delay_1ms
0130 5041 SUBI R20,1
0131 4050 SBCI R21,0
0132 3040 CPI R20,0
0133 0745 CPC R20,R21
0134 F7D1 BNE 0x012F
(0024) for(i=250;i>0;i--)
0135 EF4A LDI R20,0xFA
0136 E050 LDI R21,0
0137 C003 RJMP 0x013B
(0025) delay_1ms();
0138 DFE8 RCALL _delay_1ms
0139 5041 SUBI R20,1
013A 4050 SBCI R21,0
013B 3040 CPI R20,0
013C 0745 CPC R20,R21
013D F7D1 BNE 0x0138
(0026) for(i=250;i>0;i--)
013E EF4A LDI R20,0xFA
013F E050 LDI R21,0
0140 C003 RJMP 0x0144
(0027) delay_1ms();
0141 DFDF RCALL _delay_1ms
0142 5041 SUBI R20,1
0143 4050 SBCI R21,0
0144 3040 CPI R20,0
0145 0745 CPC R20,R21
0146 F7D1 BNE 0x0141
(0028) for(i=250;i>0;i--)
0147 EF4A LDI R20,0xFA
0148 E050 LDI R21,0
0149 C003 RJMP 0x014D
(0029) delay_1ms();
014A DFD6 RCALL _delay_1ms
014B 5041 SUBI R20,1
014C 4050 SBCI R21,0
014D 3040 CPI R20,0
014E 0745 CPC R20,R21
014F F7D1 BNE 0x014A
0150 940E01CA CALL pop_gset1
0152 9508 RET
_delay_us:
i --> R20
n --> R22
0153 940E01C5 CALL push_gset2
0155 01B8 MOVW R22,R16
(0030) }
(0031)
(0032) /***********************
(0033) **微秒级延时
(0034) ************************/
(0035) void delay_us(unsigned int n)
(0036) {
(0037) unsigned int i;
(0038) for(i=n;i>0;i--)
0156 01AB MOVW R20,R22
0157 C003 RJMP 0x015B
(0039) delay_1us();
0158 DFC6 RCALL _delay_1us
0159 5041 SUBI R20,1
015A 4050 SBCI R21,0
015B 3040 CPI R20,0
015C 0745 CPC R20,R21
015D F7D1 BNE 0x0158
015E 940E01BC CALL pop_gset2
0160 9508 RET
_delay_ms:
i --> R20
n --> R22
0161 940E01C5 CALL push_gset2
0163 01B8 MOVW R22,R16
(0040) }
(0041)
(0042) /***********************
(0043) **毫秒级延时
(0044) ************************/
(0045) void delay_ms(unsigned int n)
(0046) {
(0047) unsigned int i;
(0048) for(i=n;i>0;i--)
0164 01AB MOVW R20,R22
0165 C003 RJMP 0x0169
(0049) delay_1ms();
0166 DFBA RCALL _delay_1ms
0167 5041 SUBI R20,1
0168 4050 SBCI R21,0
0169 3040 CPI R20,0
016A 0745 CPC R20,R21
016B F7D1 BNE 0x0166
016C 940E01BC CALL pop_gset2
016E 9508 RET
_delay_s:
j --> R20
i --> R22
n --> R22
016F 940E01C5 CALL push_gset2
0171 01B8 MOVW R22,R16
(0050) }
(0051)
(0052) /***********************
(0053) **秒级延时,太浪费资源,不建议使用
(0054) ************************/
(0055) void delay_s(unsigned int n)
(0056) {
(0057) unsigned int i,j;
(0058) for(j=n;j>0;j--)
0172 01AB MOVW R20,R22
0173 C026 RJMP 0x019A
(0059) {
(0060) for(i=250;i>0;i--) //250ms*4=1000ms
0174 EF6A LDI R22,0xFA
0175 E070 LDI R23,0
0176 C003 RJMP 0x017A
(0061) delay_1ms();
0177 DFA9 RCALL _delay_1ms
0178 5061 SUBI R22,1
0179 4070 SBCI R23,0
017A 3060 CPI R22,0
017B 0767 CPC R22,R23
017C F7D1 BNE 0x0177
(0062) for(i=250;i>0;i--)
017D EF6A LDI R22,0xFA
017E E070 LDI R23,0
017F C003 RJMP 0x0183
(0063) delay_1ms();
0180 DFA0 RCALL _delay_1ms
0181 5061 SUBI R22,1
0182 4070 SBCI R23,0
0183 3060 CPI R22,0
0184 0767 CPC R22,R23
0185 F7D1 BNE 0x0180
(0064) for(i=250;i>0;i--)
0186 EF6A LDI R22,0xFA
0187 E070 LDI R23,0
0188 C003 RJMP 0x018C
(0065) delay_1ms();
0189 DF97 RCALL _delay_1ms
018A 5061 SUBI R22,1
018B 4070 SBCI R23,0
018C 3060 CPI R22,0
018D 0767 CPC R22,R23
018E F7D1 BNE 0x0189
(0066) for(i=250;i>0;i--)
018F EF6A LDI R22,0xFA
0190 E070 LDI R23,0
0191 C003 RJMP 0x0195
(0067) delay_1ms();
FILE: <library>
0192 DF8E RCALL _delay_1ms
0193 5061 SUBI R22,1
0194 4070 SBCI R23,0
0195 3060 CPI R22,0
0196 0767 CPC R22,R23
0197 F7D1 BNE 0x0192
0198 5041 SUBI R20,1
0199 4050 SBCI R21,0
019A 3040 CPI R20,0
019B 0745 CPC R20,R21
019C F6B9 BNE 0x0174
019D 940E01BC CALL pop_gset2
019F 9508 RET
mod16u:
01A0 9468 BSET 6
01A1 C001 RJMP xdiv16u
div16u:
01A2 94E8 BCLR 6
xdiv16u:
01A3 92EA ST R14,-Y
01A4 92FA ST R15,-Y
01A5 938A ST R24,-Y
01A6 24EE CLR R14
01A7 24FF CLR R15
01A8 E180 LDI R24,0x10
01A9 0F00 LSL R16
01AA 1F11 ROL R17
01AB 1CEE ROL R14
01AC 1CFF ROL R15
01AD 16E2 CP R14,R18
01AE 06F3 CPC R15,R19
01AF F018 BCS 0x01B3
01B0 1AE2 SUB R14,R18
01B1 0AF3 SBC R15,R19
01B2 9503 INC R16
01B3 958A DEC R24
01B4 F7A1 BNE 0x01A9
01B5 F416 BRTC 0x01B8
01B6 2D0E MOV R16,R14
01B7 2D1F MOV R17,R15
01B8 9189 LD R24,Y+
01B9 90F9 LD R15,Y+
01BA 90E9 LD R14,Y+
01BB 9508 RET
pop_gset2:
01BC E0E2 LDI R30,2
01BD 940C01CB JMP pop
push_gset5:
01BF 92FA ST R15,-Y
01C0 92EA ST R14,-Y
push_gset4:
01C1 92DA ST R13,-Y
01C2 92CA ST R12,-Y
push_gset3:
01C3 92BA ST R11,-Y
01C4 92AA ST R10,-Y
push_gset2:
01C5 937A ST R23,-Y
01C6 936A ST R22,-Y
push_gset1:
01C7 935A ST R21,-Y
01C8 934A ST R20,-Y
01C9 9508 RET
pop_gset1:
01CA E0E1 LDI R30,1
pop:
01CB 9149 LD R20,Y+
01CC 9159 LD R21,Y+
01CD FDE0 SBRC R30,0
01CE 9508 RET
01CF 9169 LD R22,Y+
01D0 9179 LD R23,Y+
01D1 FDE1 SBRC R30,1
01D2 9508 RET
01D3 90A9 LD R10,Y+
01D4 90B9 LD R11,Y+
01D5 FDE2 SBRC R30,2
01D6 9508 RET
01D7 90C9 LD R12,Y+
01D8 90D9 LD R13,Y+
01D9 FDE3 SBRC R30,3
01DA 9508 RET
01DB 90E9 LD R14,Y+
01DC 90F9 LD R15,Y+
01DD 9508 RET
lsl8:
01DE 2311 TST R17
01DF F019 BEQ 0x01E3
01E0 0F00 LSL R16
01E1 951A DEC R17
01E2 CFFB RJMP lsl8
01E3 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -