📄 dtm48-td.lst
字号:
010D 90300101 LDS R3,mark+1
010F 1502 CP R16,R2
0110 0513 CPC R17,R3
0111 F44C BGE 0x011B
(0165) {
(0166) flag=0;
0112 2422 CLR R2
0113 92200106 STS flag,R2
(0167) bc=mark-bb;
0115 91400100 LDS R20,mark
0117 91500101 LDS R21,mark+1
0119 1B40 SUB R20,R16
011A 0B51 SBC R21,R17
(0168) }
(0169) if(bc<=25) { LED1; } else { LED0; }
011B E189 LDI R24,0x19
011C E090 LDI R25,0
011D 1784 CP R24,R20
011E 0795 CPC R25,R21
011F F014 BLT 0x0122
0120 9A2B SBI 0x05,3
0121 C001 RJMP 0x0123
0122 982B CBI 0x05,3
(0170) if(bc<=50) return(0);
0123 E382 LDI R24,0x32
0124 E090 LDI R25,0
0125 1784 CP R24,R20
0126 0795 CPC R25,R21
0127 F01C BLT 0x012B
0128 2700 CLR R16
0129 2711 CLR R17
012A C00A RJMP 0x0135
(0171) if(bc>=305) return(255);
012B 3341 CPI R20,0x31
012C E0E1 LDI R30,1
012D 075E CPC R21,R30
012E F01C BLT 0x0132
012F EF0F LDI R16,0xFF
0130 E010 LDI R17,0
0131 C003 RJMP 0x0135
(0172) else return(bc-50);
0132 018A MOVW R16,R20
0133 5302 SUBI R16,0x32
0134 4010 SBCI R17,0
0135 D0B4 RCALL pop_gset1
0136 9508 RET
(0173) }
(0174)
(0175) void cy(void)
(0176) {
(0177) if(!(PINC&0x04))
_cy:
0137 9932 SBIC 0x06,2
0138 C016 RJMP 0x014F
(0178) {
(0179) TCNT1=0;
0139 2422 CLR R2
013A 2433 CLR R3
013B 92300085 STS 0x85,R3
013D 92200084 STS 0x84,R2
013F C001 RJMP 0x0141
(0180) while(!(PINC&0x04)) WDR();
0140 95A8 WDR
0141 9B32 SBIS 0x06,2
0142 CFFD RJMP 0x0140
(0181) aa=TCNT1;
0143 90200084 LDS R2,0x84
0145 90300085 LDS R3,0x85
0147 9230010B STS aa+1,R3
0149 9220010A STS aa,R2
(0182) zb=fenc(aa);
014B 0181 MOVW R16,R2
014C DF9B RCALL _fenc
014D 93000104 STS zb,R16
(0183) }
014F 9508 RET
_main:
tr --> Y+3
0150 9722 SBIW R28,2
(0184) }
(0185)
(0186) void main(void)
(0187) {
(0188) unit tr;
(0189) EEPROM_READ(0x10,ai);//校正振荡频率
0151 E082 LDI R24,2
0152 E090 LDI R25,0
0153 8399 STD Y+1,R25
0154 8388 STD Y+0,R24
0155 E02C LDI R18,0xC
0156 E031 LDI R19,1
0157 E100 LDI R16,0x10
0158 E010 LDI R17,0
0159 D0B8 RCALL _EEPROMReadBytes_extIO
(0190) OSCCAL=ai;
015A 9020010C LDS R2,ai
015C 9030010D LDS R3,ai+1
015E 92200066 STS 0x66,R2
(0191) init_devices();
0160 DF17 RCALL _init_devices
(0192)
(0193) EEPROM_READ(0x112,ai);
0161 E082 LDI R24,2
0162 E090 LDI R25,0
0163 8399 STD Y+1,R25
0164 8388 STD Y+0,R24
0165 E02C LDI R18,0xC
0166 E031 LDI R19,1
0167 E102 LDI R16,0x12
0168 E011 LDI R17,1
0169 D0A8 RCALL _EEPROMReadBytes_extIO
(0194)
(0195)
(0196) if(ai==0xFFFF)
016A 9180010C LDS R24,ai
016C 9190010D LDS R25,ai+1
016E 3F8F CPI R24,0xFF
016F EFEF LDI R30,0xFF
0170 079E CPC R25,R30
0171 F4F1 BNE 0x0190
(0197) {
(0198) mark=1500; //0xD805
0172 ED8C LDI R24,0xDC
0173 E095 LDI R25,5
0174 93900101 STS mark+1,R25
0176 93800100 STS mark,R24
(0199) EEPROM_WRITE(0x110,mark);
0178 E082 LDI R24,2
0179 E090 LDI R25,0
017A 8399 STD Y+1,R25
017B 8388 STD Y+0,R24
017C E020 LDI R18,0
017D E031 LDI R19,1
017E E100 LDI R16,0x10
017F E011 LDI R17,1
0180 D0B2 RCALL _EEPROMWriteBytes_extIO
(0200) aa=0;
0181 2422 CLR R2
0182 2433 CLR R3
0183 9230010B STS aa+1,R3
0185 9220010A STS aa,R2
(0201) EEPROM_WRITE(0x112,aa);
0187 E082 LDI R24,2
0188 E090 LDI R25,0
0189 8399 STD Y+1,R25
018A 8388 STD Y+0,R24
018B E02A LDI R18,0xA
018C E031 LDI R19,1
018D E102 LDI R16,0x12
018E E011 LDI R17,1
018F D0A3 RCALL _EEPROMWriteBytes_extIO
(0202) }
(0203) EEPROM_READ(0x110,mark);
0190 E082 LDI R24,2
0191 E090 LDI R25,0
0192 8399 STD Y+1,R25
0193 8388 STD Y+0,R24
0194 E020 LDI R18,0
0195 E031 LDI R19,1
0196 E100 LDI R16,0x10
0197 E011 LDI R17,1
0198 D079 RCALL _EEPROMReadBytes_extIO
0199 C03E RJMP 0x01D8
(0204)
(0205)
(0206) while(1)
(0207) {
(0208)
(0209) //cy();
(0210)
(0211) if(!(PINC&0x04))
019A 9932 SBIC 0x06,2
019B C014 RJMP 0x01B0
(0212) {
(0213) TCNT1=0;
019C 2422 CLR R2
019D 2433 CLR R3
019E 92300085 STS 0x85,R3
01A0 92200084 STS 0x84,R2
(0214) while(!(PINC&0x04)) ;
01A2 9B32 SBIS 0x06,2
01A3 CFFE RJMP 0x01A2
(0215) aa=TCNT1;
01A4 90200084 LDS R2,0x84
01A6 90300085 LDS R3,0x85
01A8 9230010B STS aa+1,R3
01AA 9220010A STS aa,R2
(0216) zb=fenc(aa);
01AC 0181 MOVW R16,R2
01AD DF3A RCALL _fenc
01AE 93000104 STS zb,R16
(0217) }
(0218)
(0219) WDR();
01B0 95A8 WDR
(0220)
(0221) if(!(PINB&0x20))
01B1 991D SBIC 0x03,5
01B2 C025 RJMP 0x01D8
(0222) {
(0223) delay(300);
01B3 E20C LDI R16,0x2C
01B4 E011 LDI R17,1
01B5 DEF1 RCALL _delay
(0224) if(!(PINB&0x20))
01B6 991D SBIC 0x03,5
01B7 C020 RJMP 0x01D8
(0225) {
(0226) cy();
01B8 DF7E RCALL _cy
(0227) WDR();
01B9 95A8 WDR
(0228) LED1;
01BA 9A2B SBI 0x05,3
(0229) delay(10);
01BB E00A LDI R16,0xA
01BC E010 LDI R17,0
01BD DEE9 RCALL _delay
(0230) mark=aa; EEPROM_WRITE(0x110,mark);
01BE 9020010A LDS R2,aa
01C0 9030010B LDS R3,aa+1
01C2 92300101 STS mark+1,R3
01C4 92200100 STS mark,R2
01C6 E082 LDI R24,2
01C7 E090 LDI R25,0
01C8 8399 STD Y+1,R25
01C9 8388 STD Y+0,R24
01CA E020 LDI R18,0
01CB E031 LDI R19,1
01CC E100 LDI R16,0x10
01CD E011 LDI R17,1
01CE D064 RCALL _EEPROMWriteBytes_extIO
(0231) j10;j20;j30;j40;
01CF 9859 CBI 0x0B,1
01D0 985C CBI 0x0B,4
01D1 982E CBI 0x05,6
01D2 985E CBI 0x0B,6
(0232) CLI();
01D3 94F8 BCLR 7
(0233) delay(500);
01D4 EF04 LDI R16,0xF4
01D5 E011 LDI R17,1
01D6 DED0 RCALL _delay
(0234) SEI();
FILE: <library>
01D7 9478 BSET 7
01D8 CFC1 RJMP 0x019A
01D9 9622 ADIW R28,2
01DA 9508 RET
pop_gset2:
01DB E0E2 LDI R30,2
01DC C00E RJMP pop
pop_gset4:
01DD E0E8 LDI R30,0x8
01DE C00C RJMP pop
push_gset5:
01DF 92FA ST R15,-Y
01E0 92EA ST R14,-Y
push_gset4:
01E1 92DA ST R13,-Y
01E2 92CA ST R12,-Y
push_gset3:
01E3 92BA ST R11,-Y
01E4 92AA ST R10,-Y
push_gset2:
01E5 937A ST R23,-Y
01E6 936A ST R22,-Y
push_gset1:
01E7 935A ST R21,-Y
01E8 934A ST R20,-Y
01E9 9508 RET
pop_gset1:
01EA E0E1 LDI R30,1
pop:
01EB 9149 LD R20,Y+
01EC 9159 LD R21,Y+
01ED FDE0 SBRC R30,0
01EE 9508 RET
01EF 9169 LD R22,Y+
01F0 9179 LD R23,Y+
01F1 FDE1 SBRC R30,1
01F2 9508 RET
01F3 90A9 LD R10,Y+
01F4 90B9 LD R11,Y+
01F5 FDE2 SBRC R30,2
01F6 9508 RET
01F7 90C9 LD R12,Y+
01F8 90D9 LD R13,Y+
01F9 FDE3 SBRC R30,3
01FA 9508 RET
01FB 90E9 LD R14,Y+
01FC 90F9 LD R15,Y+
01FD 9508 RET
_EEPROMread_extIO:
01FE BD12 OUT 0x22,R17
01FF BD01 OUT 0x21,R16
0200 9AF8 SBI 0x1F,0
0201 B500 IN R16,0x20
0202 9508 RET
_EEPROMwrite_extIO:
0203 DFE3 RCALL push_gset1
0204 BD12 OUT 0x22,R17
0205 BD01 OUT 0x21,R16
0206 BD20 OUT 0x20,R18
0207 B74F IN R20,0x3F
0208 94F8 BCLR 7
0209 9AFA SBI 0x1F,2
020A 9AF9 SBI 0x1F,1
020B 99F9 SBIC 0x1F,1
020C CFFE RJMP 0x020B
020D BF4F OUT 0x3F,R20
020E 2700 CLR R16
020F 2711 CLR R17
0210 DFD9 RCALL pop_gset1
0211 9508 RET
_EEPROMReadBytes_extIO:
0212 DFCE RCALL push_gset4
0213 2EC2 MOV R12,R18
0214 2ED3 MOV R13,R19
0215 2EA0 MOV R10,R16
0216 2EB1 MOV R11,R17
0217 8568 LDD R22,Y+8
0218 8579 LDD R23,Y+9
0219 2D4C MOV R20,R12
021A 2D5D MOV R21,R13
021B C00D RJMP 0x0229
021C 2D0A MOV R16,R10
021D 2D1B MOV R17,R11
021E DFDF RCALL _EEPROMread_extIO
021F 2FE4 MOV R30,R20
0220 2FF5 MOV R31,R21
0221 8300 STD Z+0,R16
0222 2D8A MOV R24,R10
0223 2D9B MOV R25,R11
0224 9601 ADIW R24,1
0225 2EA8 MOV R10,R24
0226 2EB9 MOV R11,R25
0227 5F4F SUBI R20,0xFF
0228 4F5F SBCI R21,0xFF
0229 2E26 MOV R2,R22
022A 2E37 MOV R3,R23
022B 5061 SUBI R22,1
022C 4070 SBCI R23,0
022D 2022 TST R2
022E F769 BNE 0x021C
022F 2033 TST R3
0230 F759 BNE 0x021C
0231 DFAB RCALL pop_gset4
0232 9508 RET
_EEPROMWriteBytes_extIO:
0233 DFAD RCALL push_gset4
0234 2EC2 MOV R12,R18
0235 2ED3 MOV R13,R19
0236 2EA0 MOV R10,R16
0237 2EB1 MOV R11,R17
0238 8568 LDD R22,Y+8
0239 8579 LDD R23,Y+9
023A 2D4C MOV R20,R12
023B 2D5D MOV R21,R13
023C C00D RJMP 0x024A
023D 2FE4 MOV R30,R20
023E 2FF5 MOV R31,R21
023F 8120 LDD R18,Z+0
0240 2D0A MOV R16,R10
0241 2D1B MOV R17,R11
0242 DFC0 RCALL _EEPROMwrite_extIO
0243 2D8A MOV R24,R10
0244 2D9B MOV R25,R11
0245 9601 ADIW R24,1
0246 2EA8 MOV R10,R24
0247 2EB9 MOV R11,R25
0248 5F4F SUBI R20,0xFF
0249 4F5F SBCI R21,0xFF
024A 2E26 MOV R2,R22
024B 2E37 MOV R3,R23
024C 5061 SUBI R22,1
024D 4070 SBCI R23,0
024E 2022 TST R2
024F F769 BNE 0x023D
0250 2033 TST R3
0251 F759 BNE 0x023D
0252 DF8A RCALL pop_gset4
0253 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -