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