📄 clock.lis
字号:
; do
; {
00D8 L20:
00D8 .dbline 86
00D8 L21:
00D8 .dbline 85
; while((PINC&0x02)!=0)
00D8 9999 sbic 0x13,1
00DA FECF rjmp L20
00DC .dbline 87
; ;
; send_byte(0x15);
00DC 05E1 ldi R16,21
00DE B0DF rcall _send_byte
00E0 .dbline 88
; key=receive_byte();
00E0 8FDF rcall _receive_byte
00E2 202E mov R2,R16
00E4 312E mov R3,R17
00E6 422D mov R20,R2
00E8 .dbline 89
; setcs;
00E8 AC9A sbi 0x15,4
00EA .dbline 89
00EA .dbline 90
; switch (i)
00EA 6A2D mov R22,R10
00EC 7727 clr R23
00EE 6030 cpi R22,0
00F0 E0E0 ldi R30,0
00F2 7E07 cpc R23,R30
00F4 0CF4 brge X1
00F6 BCC0 rjmp L61
00F8 X1:
00F8 87E0 ldi R24,7
00FA 90E0 ldi R25,0
00FC 8617 cp R24,R22
00FE 9707 cpc R25,R23
0100 0CF4 brge X2
0102 B6C0 rjmp L61
0104 X2:
0104 80E0 ldi R24,<L59
0106 90E0 ldi R25,>L59
0108 062F mov R16,R22
010A 172F mov R17,R23
010C 000F lsl R16
010E 111F rol R17
0110 080F add R16,R24
0112 191F adc R17,R25
0114 00D0 rcall lpm16
0116 E02F mov R30,R16
0118 F12F mov R31,R17
011A 0994 ijmp
011C X0:
011C .dbline 91
; {
011C L26:
011C .dbline 92
; case 7:{
011C .dbline 93
; if(key<3)
011C 4330 cpi R20,3
011E 08F0 brlo X3
0120 A7C0 rjmp L61
0122 X3:
0122 .dbline 94
; {
0122 .dbline 95
; write279(0xc8+i,key);
0122 242F mov R18,R20
0124 0A2D mov R16,R10
0126 0853 subi R16,56 ; addi 200
0128 AEDF rcall _write279
012A .dbline 96
; i--;
012A AA94 dec R10
012C .dbline 97
; write279(0x88,0xbf);
012C 2FEB ldi R18,191
012E 08E8 ldi R16,136
0130 AADF rcall _write279
0132 .dbline 98
; time.hour=time.hour%10+key*10;
0132 0AE0 ldi R16,10
0134 142F mov R17,R20
0136 00D0 rcall mpy8s
0138 202E mov R2,R16
013A 1AE0 ldi R17,10
013C 00910400 lds R16,_time+2
0140 00D0 rcall mod8s
0142 302E mov R3,R16
0144 320C add R3,R2
0146 30920400 sts _time+2,R3
014A .dbline 99
; }
014A .dbline 100
; break;
014A 92C0 rjmp L61
014C L31:
014C .dbline 102
; }
; case 6:{
014C .dbline 103
; if(key<10)
014C 4A30 cpi R20,10
014E 08F0 brlo X4
0150 8FC0 rjmp L61
0152 X4:
0152 .dbline 104
; {
0152 .dbline 105
; if((time.hour<20)|(key<4))
0152 80910400 lds R24,_time+2
0156 8431 cpi R24,20
0158 2CF4 brge L37
015A 81E0 ldi R24,1
015C 90E0 ldi R25,0
015E E82E mov R14,R24
0160 F92E mov R15,R25
0162 02C0 rjmp L38
0164 L37:
0164 EE24 clr R14
0166 FF24 clr R15
0168 L38:
0168 4430 cpi R20,4
016A 28F4 brsh L39
016C 81E0 ldi R24,1
016E 90E0 ldi R25,0
0170 C82E mov R12,R24
0172 D92E mov R13,R25
0174 02C0 rjmp L40
0176 L39:
0176 CC24 clr R12
0178 DD24 clr R13
017A L40:
017A 2E2C mov R2,R14
017C 3F2C mov R3,R15
017E 2C28 or R2,R12
0180 3D28 or R3,R13
0182 2220 tst R2
0184 19F4 brne X5
0186 3320 tst R3
0188 09F4 brne X6
018A 72C0 rjmp L61
018C X6:
018C X5:
018C .dbline 106
; {
018C .dbline 107
; write279(0xc8+i,key);
018C 242F mov R18,R20
018E 0A2D mov R16,R10
0190 0853 subi R16,56 ; addi 200
0192 79DF rcall _write279
0194 .dbline 108
; i--;
0194 AA94 dec R10
0196 .dbline 109
; i--;
0196 AA94 dec R10
0198 .dbline 110
; write279(0x88,0xef);
0198 2FEE ldi R18,239
019A 08E8 ldi R16,136
019C 74DF rcall _write279
019E .dbline 111
; time.hour=(time.hour/10)*10+key;
019E 1AE0 ldi R17,10
01A0 00910400 lds R16,_time+2
01A4 00D0 rcall div8s
01A6 102F mov R17,R16
01A8 0AE0 ldi R16,10
01AA 00D0 rcall mpy8s
01AC 202E mov R2,R16
01AE 240E add R2,R20
01B0 20920400 sts _time+2,R2
01B4 .dbline 112
; }
01B4 .dbline 113
; }
01B4 .dbline 114
; break;
01B4 5DC0 rjmp L61
01B6 L43:
01B6 .dbline 116
; }
; case 4:{
01B6 .dbline 117
; if(key<6)
01B6 4630 cpi R20,6
01B8 08F0 brlo X7
01BA 5AC0 rjmp L61
01BC X7:
01BC .dbline 118
; {
01BC .dbline 119
; write279(0xc8+i,key);
01BC 242F mov R18,R20
01BE 0A2D mov R16,R10
01C0 0853 subi R16,56 ; addi 200
01C2 61DF rcall _write279
01C4 .dbline 120
; i--;
01C4 AA94 dec R10
01C6 .dbline 121
; write279(0x88,0xf7);
01C6 27EF ldi R18,247
01C8 08E8 ldi R16,136
01CA 5DDF rcall _write279
01CC .dbline 122
; time.minute=time.minute%10+key*10;
01CC 0AE0 ldi R16,10
01CE 142F mov R17,R20
01D0 00D0 rcall mpy8s
01D2 202E mov R2,R16
01D4 1AE0 ldi R17,10
01D6 00910300 lds R16,_time+1
01DA 00D0 rcall mod8s
01DC 302E mov R3,R16
01DE 320C add R3,R2
01E0 30920300 sts _time+1,R3
01E4 .dbline 123
; }
01E4 .dbline 124
; break;
01E4 45C0 rjmp L61
01E6 L48:
01E6 .dbline 126
; }
; case 3:{
01E6 .dbline 127
; if(key<10)
01E6 4A30 cpi R20,10
01E8 08F0 brlo X8
01EA 42C0 rjmp L61
01EC X8:
01EC .dbline 128
; {
01EC .dbline 129
; write279(0xc8+i,key);
01EC 242F mov R18,R20
01EE 0A2D mov R16,R10
01F0 0853 subi R16,56 ; addi 200
01F2 49DF rcall _write279
01F4 .dbline 130
; i--;
01F4 AA94 dec R10
01F6 .dbline 131
; i--;
01F6 AA94 dec R10
01F8 .dbline 132
; write279(0x88,0xfd);
01F8 2DEF ldi R18,253
01FA 08E8 ldi R16,136
01FC 44DF rcall _write279
01FE .dbline 133
; time.minute=(time.minute/10)*10+key;
01FE 1AE0 ldi R17,10
0200 00910300 lds R16,_time+1
0204 00D0 rcall div8s
0206 102F mov R17,R16
0208 0AE0 ldi R16,10
020A 00D0 rcall mpy8s
020C 202E mov R2,R16
020E 240E add R2,R20
0210 20920300 sts _time+1,R2
0214 .dbline 134
; }
0214 .dbline 135
; break;
0214 2DC0 rjmp L61
0216 L53:
0216 .dbline 137
; }
; case 1:{
0216 .dbline 138
; if(key<6)
0216 4630 cpi R20,6
0218 58F5 brsh L61
021A .dbline 139
; {
021A .dbline 140
; write279(0xc8+i,key);
021A 242F mov R18,R20
021C 0A2D mov R16,R10
021E 0853 subi R16,56 ; addi 200
0220 32DF rcall _write279
0222 .dbline 141
; i--;
0222 AA94 dec R10
0224 .dbline 142
; write279(0x88,0xfe);
0224 2EEF ldi R18,254
0226 08E8 ldi R16,136
0228 2EDF rcall _write279
022A .dbline 143
; time.second=time.second%10+key*10;
022A 0AE0 ldi R16,10
022C 142F mov R17,R20
022E 00D0 rcall mpy8s
0230 202E mov R2,R16
0232 1AE0 ldi R17,10
0234 00910200 lds R16,_time
0238 00D0 rcall mod8s
023A 302E mov R3,R16
023C 320C add R3,R2
023E 30920200 sts _time,R3
0242 .dbline 144
; }
0242 .dbline 145
; break;
0242 16C0 rjmp L61
0244 L56:
0244 .dbline 147
; }
; case 0:{
0244 .dbline 148
; if(key<10)
0244 4A30 cpi R20,10
0246 A0F4 brsh L61
0248 .dbline 149
; {
0248 .dbline 150
; write279(0xc8+i,key);
0248 242F mov R18,R20
024A 0A2D mov R16,R10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -