📄 clock.lst
字号:
(0234) PORTC=0b00010001;
0206 E181 LDI R24,0x11
0207 BB85 OUT P15,R24
(0235) delay_ms(30);
0208 E10E LDI R16,0x1E
0209 E010 LDI R17,0
020A D0A5 RCALL _delay_ms
(0236) send_byte(0xa4);
020B EA04 LDI R16,0xA4
020C DE45 RCALL _send_byte
(0237) setcs;
020D 9AAC SBI P15,4
(0238) initdis();
020E DE6C RCALL _initdis
(0239) opentime();
020F DF60 RCALL _opentime
0210 C04D RJMP 0x025E
(0240) while(1)
(0241) {
(0242) if(flag==0x01)
0211 91800060 LDS R24,0x60
0213 3081 CPI R24,1
0214 F459 BNE 0x0220
(0243) {
(0244) if(dflag==0)
0215 90200061 LDS R2,0x61
0217 2022 TST R2
0218 F411 BNE 0x021B
(0245) inctime();
0219 DF94 RCALL _inctime
021A C001 RJMP 0x021C
(0246) else
(0247) dectime();
021B DFBA RCALL _dectime
(0248) display();
021C DF60 RCALL _display
(0249) flag=0;
021D 2422 CLR R2
021E 92200060 STS R2,0x60
(0250) }
(0251) if((PINC&0x02)==0)//检查shift按键
0220 9999 SBIC P13,1
0221 C019 RJMP 0x023B
(0252) {
(0253) send_byte(0x15);
0222 E105 LDI R16,0x15
0223 DE2E RCALL _send_byte
(0254) temp=receive_byte();
0224 DE11 RCALL _receive_byte
0225 2E20 MOV R2,R16
0226 2E31 MOV R3,R17
0227 2D62 MOV R22,R2
(0255) setcs;
0228 9AAC SBI P15,4
(0256) if(temp==0x17)
0229 3167 CPI R22,0x17
022A F461 BNE 0x0237
(0257) {
(0258) if (dflag==0)
022B 90200061 LDS R2,0x61
022D 2022 TST R2
022E F421 BNE 0x0233
(0259) dflag=1;
022F E081 LDI R24,1
0230 93800061 STS R24,0x61
0232 C006 RJMP 0x0239
(0260) else
(0261) dflag=0;
0233 2422 CLR R2
0234 92200061 STS R2,0x61
(0262) }
0236 C002 RJMP 0x0239
(0263) else
(0264) bpflag^=0x01;
0237 E081 LDI R24,1
0238 2748 EOR R20,R24
(0265) while((PINC&0x02)==0)//按键释放检查
(0266) ;
0239 9B99 SBIS P13,1
023A CFFE RJMP 0x0239
(0267) }
(0268) if ((time.minute==0)&(bpflag==0))
023B 90200065 LDS R2,_time+1
023D 2022 TST R2
023E F429 BNE 0x0244
023F E081 LDI R24,1
0240 E090 LDI R25,0
0241 2EC8 MOV R12,R24
0242 2ED9 MOV R13,R25
0243 C002 RJMP 0x0246
0244 24CC CLR R12
0245 24DD CLR R13
0246 2344 TST R20
0247 F429 BNE 0x024D
0248 E081 LDI R24,1
0249 E090 LDI R25,0
024A 2EA8 MOV R10,R24
024B 2EB9 MOV R11,R25
024C C002 RJMP 0x024F
024D 24AA CLR R10
024E 24BB CLR R11
024F 2C2C MOV R2,R12
0250 2C3D MOV R3,R13
0251 202A AND R2,R10
0252 203B AND R3,R11
0253 2022 TST R2
0254 F411 BNE 0x0257
0255 2033 TST R3
0256 F021 BEQ 0x025B
(0269) TIMSK|=0x02; //整点报时
0257 B789 IN R24,P39
0258 6082 ORI R24,2
0259 BF89 OUT P39,R24
025A C003 RJMP 0x025E
(0270) else
(0271) TIMSK&=0xfd;
025B B789 IN R24,P39
025C 7F8D ANDI R24,0xFD
025D BF89 OUT P39,R24
(0272) }
025E CFB2 RJMP 0x0211
(0273) }
025F 9508 RET
_timer1_ovf:
0260 938A ST R24,-Y
0261 939A ST R25,-Y
0262 B78F IN R24,P3F
0263 938A ST R24,-Y
0264 D0BB RCALL <created procedures>
(0274) void timer1_ovf() //溢出中断子程序
(0275) {
(0276) TCNT1=0x85ee;
(0277) flag=0x01;
0265 E081 LDI R24,1
0266 93800060 STS R24,0x60
(0278) }
0268 9189 LD R24,Y+
0269 BF8F OUT P3F,R24
026A 9199 LD R25,Y+
026B 9189 LD R24,Y+
026C 9518 RETI
_timer0_ovf:
026D 922A ST R2,-Y
026E 923A ST R3,-Y
026F 938A ST R24,-Y
0270 939A ST R25,-Y
0271 93EA ST R30,-Y
0272 B62F IN R2,P3F
0273 922A ST R2,-Y
(0279) void timer0_ovf()
(0280) {
(0281) static unsigned int i;
(0282) TCNT0=0x83;
0274 E883 LDI R24,0x83
0275 BF82 OUT P32,R24
(0283) i++;
0276 91900063 LDS R25,0x63
0278 91800062 LDS R24,0x62
027A 9601 ADIW R24,1
027B 93900063 STS R25,0x63
027D 93800062 STS R24,0x62
(0284) if(i<400)
027F 3980 CPI R24,0x90
0280 E0E1 LDI R30,1
0281 079E CPC R25,R30
0282 F420 BCC 0x0287
(0285) {
(0286) PORTC^=0X01;
0283 E081 LDI R24,1
0284 B225 IN R2,P15
0285 2628 EOR R2,R24
0286 BA25 OUT P15,R2
(0287) }
(0288) if(i>800)
0287 E280 LDI R24,0x20
0288 E093 LDI R25,3
0289 90300063 LDS R3,0x63
028B 90200062 LDS R2,0x62
028D 1582 CP R24,R2
028E 0593 CPC R25,R3
028F F430 BCC 0x0296
(0289) i=0;
0290 2422 CLR R2
0291 2433 CLR R3
0292 92300063 STS R3,0x63
0294 92200062 STS R2,0x62
(0290) }
FILE: <library>
0296 9029 LD R2,Y+
0297 BE2F OUT P3F,R2
0298 91E9 LD R30,Y+
0299 9199 LD R25,Y+
029A 9189 LD R24,Y+
029B 9039 LD R3,Y+
029C 9029 LD R2,Y+
029D 9518 RETI
_delay_us:
029E 5001 SUBI R16,1
029F 4010 SBCI R17,0
02A0 E081 LDI R24,1
02A1 E090 LDI R25,0
02A2 1780 CP R24,R16
02A3 0791 CPC R25,R17
02A4 F3CC BLT 0x029E
02A5 9508 RET
_delay_1ms:
02A6 E001 LDI R16,1
02A7 E010 LDI R17,0
02A8 C002 RJMP 0x02AB
02A9 5F0F SUBI R16,0xFF
02AA 4F1F SBCI R17,0xFF
02AB 3706 CPI R16,0x76
02AC E0E4 LDI R30,4
02AD 071E CPC R17,R30
02AE F3D0 BCS 0x02A9
02AF 9508 RET
_delay_ms:
02B0 D051 RCALL push_gset2
02B1 2F60 MOV R22,R16
02B2 2F71 MOV R23,R17
02B3 2744 CLR R20
02B4 2755 CLR R21
02B5 C003 RJMP 0x02B9
02B6 DFEF RCALL _delay_1ms
02B7 5F4F SUBI R20,0xFF
02B8 4F5F SBCI R21,0xFF
02B9 1746 CP R20,R22
02BA 0757 CPC R21,R23
02BB F3D0 BCS 0x02B6
02BC D051 RCALL pop_gset2
02BD 9508 RET
mpy8s:
02BE 920A ST R0,-Y
02BF 2400 CLR R0
02C0 2300 TST R16
02C1 F029 BEQ 0x02C7
02C2 9506 LSR R16
02C3 F408 BCC 0x02C5
02C4 0E01 ADD R0,R17
02C5 0F11 LSL R17
02C6 CFF9 RJMP 0x02C0
02C7 2D00 MOV R16,R0
02C8 9009 LD R0,Y+
02C9 9508 RET
mod8s:
02CA 9468 BSET 6
02CB C001 RJMP 0x02CD
div8s:
02CC 94E8 BCLR 6
02CD 92EA ST R14,-Y
02CE 92FA ST R15,-Y
02CF 932A ST R18,-Y
02D0 2EE0 MOV R14,R16
02D1 26E1 EOR R14,R17
02D2 FD17 SBRC R17,7
02D3 9511 NEG R17
02D4 FD07 SBRC R16,7
02D5 9501 NEG R16
02D6 18FF SUB R15,R15
02D7 E029 LDI R18,0x9
02D8 1F00 ROL R16
02D9 952A DEC R18
02DA F441 BNE 0x02E3
02DB FCE7 SBRC R14,7
02DC 9501 NEG R16
02DD F40E BRTC 0x02DF
02DE 2D0F MOV R16,R15
02DF 9129 LD R18,Y+
02E0 90F9 LD R15,Y+
02E1 90E9 LD R14,Y+
02E2 9508 RET
02E3 1CFF ROL R15
02E4 1AF1 SUB R15,R17
02E5 F418 BCC 0x02E9
02E6 0EF1 ADD R15,R17
02E7 9488 BCLR 0
02E8 CFEF RJMP 0x02D8
02E9 9408 BSET 0
02EA CFED RJMP 0x02D8
push_gset1:
02EB 935A ST R21,-Y
02EC 934A ST R20,-Y
02ED 9508 RET
pop_gset1:
02EE E0E1 LDI R30,1
pop:
02EF 9149 LD R20,Y+
02F0 9159 LD R21,Y+
02F1 FDE0 SBRC R30,0
02F2 9508 RET
02F3 9169 LD R22,Y+
02F4 9179 LD R23,Y+
02F5 FDE1 SBRC R30,1
02F6 9508 RET
02F7 90A9 LD R10,Y+
02F8 90B9 LD R11,Y+
02F9 FDE2 SBRC R30,2
02FA 9508 RET
02FB 90C9 LD R12,Y+
02FC 90D9 LD R13,Y+
02FD FDE3 SBRC R30,3
02FE 9508 RET
02FF 90E9 LD R14,Y+
0300 90F9 LD R15,Y+
0301 9508 RET
push_gset2:
0302 937A ST R23,-Y
0303 936A ST R22,-Y
0304 CFE6 RJMP push_gset1
push_gset3:
0305 92BA ST R11,-Y
0306 92AA ST R10,-Y
0307 CFFA RJMP push_gset2
push_gset4:
0308 92DA ST R13,-Y
0309 92CA ST R12,-Y
030A CFFA RJMP push_gset3
push_gset5:
030B 92FA ST R15,-Y
030C 92EA ST R14,-Y
030D CFFA RJMP push_gset4
pop_gset2:
030E E0E2 LDI R30,2
030F CFDF RJMP pop
pop_gset5:
0310 27EE CLR R30
0311 CFDD RJMP pop
lpm16:
0312 93EA ST R30,-Y
0313 93FA ST R31,-Y
0314 920A ST R0,-Y
0315 2FE0 MOV R30,R16
0316 2FF1 MOV R31,R17
0317 95C8 LPM
0318 2D00 MOV R16,R0
0319 9631 ADIW R30,1
031A 95C8 LPM
031B 2D10 MOV R17,R0
031C 9009 LD R0,Y+
031D 91F9 LD R31,Y+
031E 91E9 LD R30,Y+
031F 9508 RET
<created procedures>:
0320 EE8E LDI R24,0xEE
0321 E895 LDI R25,0x85
0322 9390004D STS R25,0x4D
0324 9380004C STS R24,0x4C
0326 9508 RET
0327 B385 IN R24,P15
0328 7F87 ANDI R24,0xF7
0329 BB85 OUT P15,R24
032A E00A LDI R16,0xA
032B E010 LDI R17,0
032C 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -