📄 wdt.lst
字号:
01DB 4010 SBCI R17,0
01DC 2422 CLR R2
01DD 2433 CLR R3
01DE 1620 CP R2,R16
01DF 0631 CPC R3,R17
01E0 F3A4 BLT 0x01D5
(0102) ;
(0103) }
01E1 940E02BA CALL pop_gset1
01E3 9508 RET
_delay50ms:
i --> R20
t --> R16
01E4 940E02B7 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--)
01E6 C00B RJMP 0x01F2
(0116) for(i=0;i<52642;i++)
01E7 2744 CLR R20
01E8 2755 CLR R21
01E9 C002 RJMP 0x01EC
01EA 5F4F SUBI R20,0xFF
01EB 4F5F SBCI R21,0xFF
01EC 3A42 CPI R20,0xA2
01ED ECED LDI R30,0xCD
01EE 075E CPC R21,R30
01EF F3D0 BCS 0x01EA
01F0 5001 SUBI R16,1
01F1 4010 SBCI R17,0
01F2 2422 CLR R2
01F3 2433 CLR R3
01F4 1620 CP R2,R16
01F5 0631 CPC R3,R17
01F6 F384 BLT 0x01E7
(0117) ;
(0118) }
01F7 940E02BA CALL pop_gset1
01F9 9508 RET
FILE: E:\ProductPro\M16SD\ICCAVR\WDT\WDT\WDT.C
(0001) #include <iom16v.h>
(0002) #include "D:\ICC_H\CmmICC.H"
(0003)
(0004) #define DISP_DDR DDRD
(0005) #define DISP_PORT PORTD
(0006)
(0007) void wdt_init(void)
(0008) {
(0009) asm("wdr"); //clr wdt
_wdt_init:
01FA 95A8 WDR
(0010) WDTCR=0x0F; //enable wdt,clk = 2048,2.1S
01FB E08F LDI R24,0xF
01FC BD81 OUT 0x21,R24
(0011) }
01FD 9508 RET
(0012)
(0013) void main(void)
(0014) {
(0015) uint8 i;
(0016) DISP_DDR = 0XFF;
_main:
i --> Y+1
01FE EF8F LDI R24,0xFF
01FF BB81 OUT 0x11,R24
(0017) wdt_init();
0200 DFF9 RCALL _wdt_init
0201 C007 RJMP 0x0209
(0018)
(0019) while(1)
(0020) {
(0021) PORTD++;
0202 B382 IN R24,0x12
0203 5F8F SUBI R24,0xFF
0204 BB82 OUT 0x12,R24
(0022) asm("wdr"); //喂狗,去除此句将导致MCU复位
0205 95A8 WDR
(0023) delay50ms(20);
0206 E104 LDI R16,0x14
0207 E010 LDI R17,0
0208 DFDB RCALL _delay50ms
0209 CFF8 RJMP 0x0202
(0024) }
(0025) }
FILE: <library>
020A 9508 RET
push_arg4:
020B 933A ST R19,-Y
020C 932A ST R18,-Y
push_arg2:
020D 931A ST R17,-Y
020E 930A ST R16,-Y
020F 9508 RET
div32u:
0210 94E8 BCLR 6
0211 C001 RJMP 0x0213
mod32u:
0212 9468 BSET 6
0213 D02F RCALL long_div_prolog
0214 24CC CLR R12
0215 C008 RJMP 0x021E
div32s:
0216 94E8 BCLR 6
0217 C001 RJMP 0x0219
mod32s:
0218 9468 BSET 6
0219 D029 RCALL long_div_prolog
021A FD37 SBRC R19,7
021B D053 RCALL neg_R16_R19
021C FDB7 SBRC R27,7
021D D05A RCALL neg_R24_R27
021E 2477 CLR R7
021F 2488 CLR R8
0220 2499 CLR R9
0221 24AA CLR R10
0222 24BB CLR R11
0223 D041 RCALL tst_R16_R19
0224 F0C1 BEQ 0x023D
0225 D044 RCALL tst_R24_R27
0226 F0B1 BEQ 0x023D
0227 E2E8 LDI R30,0x28
0228 0F00 LSL R16
0229 1F11 ROL R17
022A 1F22 ROL R18
022B 1F33 ROL R19
022C 1C77 ROL R7
022D 1C88 ROL R8
022E 1C99 ROL R9
022F 1CAA ROL R10
0230 1CBB ROL R11
0231 1688 CP R8,R24
0232 0699 CPC R9,R25
0233 06AA CPC R10,R26
0234 06BB CPC R11,R27
0235 F028 BCS 0x023B
0236 1A88 SUB R8,R24
0237 0A99 SBC R9,R25
0238 0AAA SBC R10,R26
0239 0ABB SBC R11,R27
023A 9503 INC R16
023B 95EA DEC R30
023C F759 BNE 0x0228
023D F426 BRTC 0x0242
023E 2D08 MOV R16,R8
023F 2D19 MOV R17,R9
0240 2D2A MOV R18,R10
0241 2D3B MOV R19,R11
0242 C013 RJMP long_div_epilog
long_div_prolog:
0243 927A ST R7,-Y
0244 928A ST R8,-Y
0245 929A ST R9,-Y
0246 92AA ST R10,-Y
0247 92BA ST R11,-Y
0248 92CA ST R12,-Y
0249 93EA ST R30,-Y
024A 938A ST R24,-Y
024B 939A ST R25,-Y
024C 93AA ST R26,-Y
024D 93BA ST R27,-Y
024E 858B LDD R24,Y+11
024F 859C LDD R25,Y+12
0250 85AD LDD R26,Y+13
0251 85BE LDD R27,Y+14
0252 2EC3 MOV R12,R19
0253 F00E BRTS 0x0255
0254 26CB EOR R12,R27
0255 9508 RET
long_div_epilog:
0256 FCC7 SBRC R12,7
0257 D017 RCALL neg_R16_R19
0258 91B9 LD R27,Y+
0259 91A9 LD R26,Y+
025A 9199 LD R25,Y+
025B 9189 LD R24,Y+
025C 91E9 LD R30,Y+
025D 90C9 LD R12,Y+
025E 90B9 LD R11,Y+
025F 90A9 LD R10,Y+
0260 9099 LD R9,Y+
0261 9089 LD R8,Y+
0262 9079 LD R7,Y+
0263 9624 ADIW R28,4
0264 9508 RET
tst_R16_R19:
0265 2FE0 MOV R30,R16
0266 2BE1 OR R30,R17
0267 2BE2 OR R30,R18
0268 2BE3 OR R30,R19
0269 9508 RET
tst_R24_R27:
026A 2FE8 MOV R30,R24
026B 2BE9 OR R30,R25
026C 2BEA OR R30,R26
026D 2BEB OR R30,R27
026E 9508 RET
neg_R16_R19:
026F 9500 COM R16
0270 9510 COM R17
0271 9520 COM R18
0272 9530 COM R19
0273 5F0F SUBI R16,0xFF
0274 4F1F SBCI R17,0xFF
0275 4F2F SBCI R18,0xFF
0276 4F3F SBCI R19,0xFF
0277 9508 RET
neg_R24_R27:
0278 9580 COM R24
0279 9590 COM R25
027A 95A0 COM R26
027B 95B0 COM R27
027C 5F8F SUBI R24,0xFF
027D 4F9F SBCI R25,0xFF
027E 4FAF SBCI R26,0xFF
027F 4FBF SBCI R27,0xFF
0280 9508 RET
empy32u:
empy32s:
0281 940E02DA CALL long_prolog
0283 927F PUSH R7
0284 940E02F3 CALL tstzero1
0286 F139 BEQ 0x02AE
0287 2477 CLR R7
0288 940E02F9 CALL tstzero2
028A F419 BNE 0x028E
028B 018C MOVW R16,R24
028C 019D MOVW R18,R26
028D C020 RJMP 0x02AE
028E 9F08 MUL R16,R24
028F 2CB0 MOV R11,R0
0290 2CA1 MOV R10,R1
0291 9F28 MUL R18,R24
0292 2C90 MOV R9,R0
0293 2C81 MOV R8,R1
0294 9F18 MUL R17,R24
0295 0CA0 ADD R10,R0
0296 1C91 ADC R9,R1
0297 1C87 ADC R8,R7
0298 9F09 MUL R16,R25
0299 0CA0 ADD R10,R0
029A 1C91 ADC R9,R1
029B 1C87 ADC R8,R7
029C 9F19 MUL R17,R25
029D 0C90 ADD R9,R0
029E 1C81 ADC R8,R1
029F 9F0A MUL R16,R26
02A0 0C90 ADD R9,R0
02A1 1C81 ADC R8,R1
02A2 9F38 MUL R19,R24
02A3 0C80 ADD R8,R0
02A4 9F29 MUL R18,R25
02A5 0C80 ADD R8,R0
02A6 9F1A MUL R17,R26
02A7 0C80 ADD R8,R0
02A8 9F0B MUL R16,R27
02A9 0C80 ADD R8,R0
02AA 2D0B MOV R16,R11
02AB 2D1A MOV R17,R10
02AC 2D29 MOV R18,R9
02AD 2D38 MOV R19,R8
02AE 907F POP R7
02AF 940C02E8 JMP long_epilog
pop_gset2:
02B1 E0E2 LDI R30,2
02B2 940C02BB JMP pop
pop_gset4:
02B4 E0E8 LDI R30,0x8
02B5 940C02BB JMP pop
push_gset1:
02B7 935A ST R21,-Y
02B8 934A ST R20,-Y
02B9 9508 RET
pop_gset1:
02BA E0E1 LDI R30,1
pop:
02BB 9149 LD R20,Y+
02BC 9159 LD R21,Y+
02BD FDE0 SBRC R30,0
02BE 9508 RET
02BF 9169 LD R22,Y+
02C0 9179 LD R23,Y+
02C1 FDE1 SBRC R30,1
02C2 9508 RET
02C3 90A9 LD R10,Y+
02C4 90B9 LD R11,Y+
02C5 FDE2 SBRC R30,2
02C6 9508 RET
02C7 90C9 LD R12,Y+
02C8 90D9 LD R13,Y+
02C9 FDE3 SBRC R30,3
02CA 9508 RET
02CB 90E9 LD R14,Y+
02CC 90F9 LD R15,Y+
02CD 9508 RET
push_gset2:
02CE 937A ST R23,-Y
02CF 936A ST R22,-Y
02D0 940C02B7 JMP push_gset1
push_gset3:
02D2 92BA ST R11,-Y
02D3 92AA ST R10,-Y
02D4 940C02CE JMP push_gset2
push_gset4:
02D6 92DA ST R13,-Y
02D7 92CA ST R12,-Y
02D8 940C02D2 JMP push_gset3
long_prolog:
02DA 928A ST R8,-Y
02DB 929A ST R9,-Y
02DC 92AA ST R10,-Y
02DD 92BA ST R11,-Y
02DE 93EA ST R30,-Y
02DF 938A ST R24,-Y
02E0 939A ST R25,-Y
02E1 93AA ST R26,-Y
02E2 93BA ST R27,-Y
02E3 8589 LDD R24,Y+9
02E4 859A LDD R25,Y+10
02E5 85AB LDD R26,Y+11
02E6 85BC LDD R27,Y+12
02E7 9508 RET
long_epilog:
02E8 91B9 LD R27,Y+
02E9 91A9 LD R26,Y+
02EA 9199 LD R25,Y+
02EB 9189 LD R24,Y+
02EC 91E9 LD R30,Y+
02ED 90B9 LD R11,Y+
02EE 90A9 LD R10,Y+
02EF 9099 LD R9,Y+
02F0 9089 LD R8,Y+
02F1 9624 ADIW R28,4
02F2 9508 RET
tstzero1:
02F3 27EE CLR R30
02F4 2BE0 OR R30,R16
02F5 2BE1 OR R30,R17
02F6 2BE2 OR R30,R18
02F7 2BE3 OR R30,R19
02F8 9508 RET
tstzero2:
02F9 27EE CLR R30
02FA 2BE8 OR R30,R24
02FB 2BE9 OR R30,R25
02FC 2BEA OR R30,R26
02FD 2BEB OR R30,R27
02FE 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -