📄 clock.lis
字号:
024C 0853 subi R16,56 ; addi 200
024E 1BDF rcall _write279
0250 .dbline 151
; i=7;
0250 87E0 ldi R24,7
0252 A82E mov R10,R24
0254 .dbline 152
; write279(0x88,0x7f);
0254 2FE7 ldi R18,127
0256 08E8 ldi R16,136
0258 16DF rcall _write279
025A .dbline 153
; time.second=(time.second/10)*10+key;
025A 1AE0 ldi R17,10
025C 00910200 lds R16,_time
0260 00D0 rcall div8s
0262 102F mov R17,R16
0264 0AE0 ldi R16,10
0266 00D0 rcall mpy8s
0268 202E mov R2,R16
026A 240E add R2,R20
026C 20920200 sts _time,R2
0270 .dbline 154
; }
0270 .dbline 155
; break;
0270 L60:
0270 .dbline 159
0270 L61:
0270 .dbline 158
; }
; }
; while((PINC&0x02)==0)//按键释放检查
0270 999B sbis 0x13,1
0272 FECF rjmp L60
0274 .dbline 160
; ;
; }
0274 L18:
0274 .dbline 161
; while(key!=0x17);
0274 4731 cpi R20,23
0276 09F0 breq X9
0278 2FCF rjmp L21
027A X9:
027A .dbline 162
; write279(0x88,0xff);
027A 2FEF ldi R18,255
027C 08E8 ldi R16,136
027E 03DF rcall _write279
0280 .dbline -2
0280 .dbline 163
; }
0280 L16:
0280 00D0 rcall pop_gset5
0282 .dbline 0 ; func end
0282 0895 ret
0284 .dbsym r i 10 c
0284 .dbsym r key 20 c
0284 .dbfunc s opentime _opentime fI
.even
0284 _opentime::
0284 .dbline -1
0284 .dbline 166
; /* 设置定时器1及中断系统 */
; void opentime()
; {
0284 .dbline 168
;
; TCNT1=0x85ee;
0284 8EEE ldi R24,-31250
0286 95E8 ldi R25,-123
0288 90934D00 sts 76+1,R25
028C 80934C00 sts 76,R24
0290 .dbline 169
; TCCR1A=0;
0290 2224 clr R2
0292 2FBC out 0x2f,R2
0294 .dbline 170
; TCCR1B=0x04;
0294 84E0 ldi R24,4
0296 8EBD out 0x2e,R24
0298 .dbline 171
; TCNT0=0x83;
0298 83E8 ldi R24,131
029A 82BF out 0x32,R24
029C .dbline 172
; TCCR0=0x03;
029C 83E0 ldi R24,3
029E 83BF out 0x33,R24
02A0 .dbline 173
; TIMSK=0x04;
02A0 84E0 ldi R24,4
02A2 89BF out 0x39,R24
02A4 .dbline 174
; SREG|=0x80;
02A4 7894 bset 7
02A6 .dbline -2
02A6 .dbline 175
; }
02A6 L63:
02A6 .dbline 0 ; func end
02A6 0895 ret
02A8 .dbfunc s display _display fI
.even
02A8 _display::
02A8 .dbline -1
02A8 .dbline 178
; /* 显示刷新 */
; void display(void)
; {
02A8 .dbline 179
; write279(0xc8,time.second%10);
02A8 1AE0 ldi R17,10
02AA 00910200 lds R16,_time
02AE 00D0 rcall mod8s
02B0 202F mov R18,R16
02B2 08EC ldi R16,200
02B4 E8DE rcall _write279
02B6 .dbline 180
; write279(0xc9,time.second/10);
02B6 1AE0 ldi R17,10
02B8 00910200 lds R16,_time
02BC 00D0 rcall div8s
02BE 202F mov R18,R16
02C0 09EC ldi R16,201
02C2 E1DE rcall _write279
02C4 .dbline 181
; write279(0x92,1);
02C4 21E0 ldi R18,1
02C6 02E9 ldi R16,146
02C8 DEDE rcall _write279
02CA .dbline 182
; write279(0xcb,time.minute%10);
02CA 1AE0 ldi R17,10
02CC 00910300 lds R16,_time+1
02D0 00D0 rcall mod8s
02D2 202F mov R18,R16
02D4 0BEC ldi R16,203
02D6 D7DE rcall _write279
02D8 .dbline 183
; write279(0xcc,time.minute/10);
02D8 1AE0 ldi R17,10
02DA 00910300 lds R16,_time+1
02DE 00D0 rcall div8s
02E0 202F mov R18,R16
02E2 0CEC ldi R16,204
02E4 D0DE rcall _write279
02E6 .dbline 184
; write279(0x95,1);
02E6 21E0 ldi R18,1
02E8 05E9 ldi R16,149
02EA CDDE rcall _write279
02EC .dbline 185
; write279(0xce,time.hour%10);
02EC 1AE0 ldi R17,10
02EE 00910400 lds R16,_time+2
02F2 00D0 rcall mod8s
02F4 202F mov R18,R16
02F6 0EEC ldi R16,206
02F8 C6DE rcall _write279
02FA .dbline 186
; write279(0xcf,time.hour/10);
02FA 1AE0 ldi R17,10
02FC 00910400 lds R16,_time+2
0300 00D0 rcall div8s
0302 202F mov R18,R16
0304 0FEC ldi R16,207
0306 BFDE rcall _write279
0308 .dbline -2
0308 .dbline 187
; }
0308 L64:
0308 .dbline 0 ; func end
0308 0895 ret
030A .dbfunc s inctime _inctime fI
.even
030A _inctime::
030A .dbline -1
030A .dbline 190
; /* 正计时 */
; void inctime(void)
; {
030A .dbline 191
; if(time.second<59)
030A 80910200 lds R24,_time
030E 8B33 cpi R24,59
0310 34F4 brge L70
0312 .dbline 192
; time.second++;
0312 80910200 lds R24,_time
0316 8F5F subi R24,255 ; addi 1
0318 80930200 sts _time,R24
031C 1DC0 rjmp L71
031E L70:
031E .dbline 194
; else
; {
031E .dbline 195
; time.second=0;
031E 2224 clr R2
0320 20920200 sts _time,R2
0324 .dbline 196
; if(time.minute<59)
0324 80910300 lds R24,_time+1
0328 8B33 cpi R24,59
032A 34F4 brge L72
032C .dbline 197
; time.minute++;
032C 80910300 lds R24,_time+1
0330 8F5F subi R24,255 ; addi 1
0332 80930300 sts _time+1,R24
0336 10C0 rjmp L73
0338 L72:
0338 .dbline 199
; else
; {
0338 .dbline 200
; time.minute=0;
0338 2224 clr R2
033A 20920300 sts _time+1,R2
033E .dbline 201
; if(time.hour<23)
033E 80910400 lds R24,_time+2
0342 8731 cpi R24,23
0344 34F4 brge L77
0346 .dbline 202
; time.hour++;
0346 80910400 lds R24,_time+2
034A 8F5F subi R24,255 ; addi 1
034C 80930400 sts _time+2,R24
0350 03C0 rjmp L78
0352 L77:
0352 .dbline 204
; else
; time.hour=0;
0352 2224 clr R2
0354 20920400 sts _time+2,R2
0358 L78:
0358 .dbline 205
; }
0358 L73:
0358 .dbline 206
0358 L71:
0358 .dbline -2
0358 .dbline 207
; }
; }
0358 L69:
0358 .dbline 0 ; func end
0358 0895 ret
035A .dbfunc s dectime _dectime fI
.even
035A _dectime::
035A .dbline -1
035A .dbline 210
; /* 倒计时 */
; void dectime(void)
; {
035A .dbline 211
; if(time.second>0)
035A 2224 clr R2
035C 30900200 lds R3,_time
0360 2314 cp R2,R3
0362 34F4 brge L83
0364 .dbline 212
; time.second--;
0364 80910200 lds R24,_time
0368 8150 subi R24,1
036A 80930200 sts _time,R24
036E 1FC0 rjmp L84
0370 L83:
0370 .dbline 214
; else
; {
0370 .dbline 215
; time.second=59;
0370 8BE3 ldi R24,59
0372 80930200 sts _time,R24
0376 .dbline 216
; if(time.minute>0)
0376 2224 clr R2
0378 30900300 lds R3,_time+1
037C 2314 cp R2,R3
037E 34F4 brge L85
0380 .dbline 217
; time.minute--;
0380 80910300 lds R24,_time+1
0384 8150 subi R24,1
0386 80930300 sts _time+1,R24
038A 11C0 rjmp L86
038C L85:
038C .dbline 219
; else
; {
038C .dbline 220
; time.minute=59;
038C 8BE3 ldi R24,59
038E 80930300 sts _time+1,R24
0392 .dbline 221
; if(time.hour>0)
0392 2224 clr R2
0394 30900400 lds R3,_time+2
0398 2314 cp R2,R3
039A 34F4 brge L90
039C .dbline 222
; time.hour--;
039C 80910400 lds R24,_time+2
03A0 8150 subi R24,1
03A2 80930400 sts _time+2,R24
03A6 03C0 rjmp L91
03A8 L90:
03A8 .dbline 224
; else
; time.hour=23;
03A8 87E1 ldi R24,23
03AA 80930400 sts _time+2,R24
03AE L91:
03AE .dbline 225
; }
03AE L86:
03AE .dbline 226
03AE L84:
03AE .dbline -2
03AE .dbline 227
; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -