📄 second.src
字号:
MOV A,R5
CLR C
SUBB A,#00H
JC ?C0035
MOV A,R5
SETB C
SUBB A,#09H
JNC ?C0035
; {switch(i)
; SOURCE LINE # 212
MOV A,R7
DEC A
JZ ?C0029
DEC A
JZ ?C0030
DEC A
JZ ?C0031
DEC A
JZ ?C0032
DEC A
JZ ?C0033
ADD A,#05H
JNZ ?C0035
; { case 0:P2= LedSelect0 | num;
; SOURCE LINE # 213
?C0028:
MOV A,R5
ORL A,#080H
MOV P2,A
; //LedSelect0的高四位为选择第0个数码管的逻辑,低四位则为数码管显示的数字。
; break;
; SOURCE LINE # 215
RET
; case 1:P2= LedSelect1 | num;
; SOURCE LINE # 216
?C0029:
MOV A,R5
ORL A,#090H
MOV P2,A
; //LedSelect1的高四位为选择第1个数码管的逻辑,低四位则为数码管显示的数字。
; break;
; SOURCE LINE # 218
RET
; case 2:P2= LedSelect2 | num;
; SOURCE LINE # 219
?C0030:
MOV A,R5
ORL A,#0A0H
MOV P2,A
; //LedSelect2的高四位为选择第2个数码管的逻辑,低四位则为数码管显示的数字。
; break;
; SOURCE LINE # 221
RET
; case 3:P2= LedSelect3 | num;
; SOURCE LINE # 222
?C0031:
MOV A,R5
ORL A,#0B0H
MOV P2,A
; //LedSelect3的高四位为选择第3个数码管的逻辑,低四位则为数码管显示的数字。
; break;
; SOURCE LINE # 224
RET
; case 4:P2= LedSelect4 | num;
; SOURCE LINE # 225
?C0032:
MOV A,R5
ORL A,#0C0H
MOV P2,A
; //LedSelect4的高四位为选择第4个数码管的逻辑,低四位则为数码管显示的数字。
; break;
; SOURCE LINE # 227
RET
; case 5:P2= LedSelect5 | num;
; SOURCE LINE # 228
?C0033:
MOV A,R5
ORL A,#0D0H
MOV P2,A
; //LedSelect5的高四位为选择第5个数码管的逻辑,低四位则为数码管显示的数字。
; break;
; SOURCE LINE # 230
; default:break;
; SOURCE LINE # 231
; }
; SOURCE LINE # 232
; }
; SOURCE LINE # 233
; }
; SOURCE LINE # 234
?C0035:
RET
; END OF _display
;
; unsigned char keyscan()
RSEG ?PR?keyscan?SECOND
keyscan:
USING 0
; SOURCE LINE # 236
; {
; SOURCE LINE # 237
; PinDrvKey1=TRUE;
; SOURCE LINE # 238
SETB P1_0
; if(PinScanKey1==TRUE)
; SOURCE LINE # 239
JNB P1_4,?C0036
; PinLamp=FALSE;
; SOURCE LINE # 240
CLR P0_0
?C0036:
; PinSpeaker=FALSE;
; SOURCE LINE # 241
; delay(DELAY_VALUE);
; SOURCE LINE # 242
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 243
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 244
SETB P0_1
; return 1;
; SOURCE LINE # 245
MOV R7,#01H
RET
; if(PinScanKey2==TRUE)
; SOURCE LINE # 246
; PinLamp=FALSE;
; SOURCE LINE # 247
?C0038:
; PinSpeaker=FALSE;
; SOURCE LINE # 248
; delay(DELAY_VALUE);
; SOURCE LINE # 249
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 250
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 251
SETB P0_1
; return 5;
; SOURCE LINE # 252
MOV R7,#05H
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 253
; PinLamp=FALSE;
; SOURCE LINE # 254
?C0039:
; PinSpeaker=FALSE;
; SOURCE LINE # 255
; delay(DELAY_VALUE);
; SOURCE LINE # 256
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 257
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 258
SETB P0_1
; return 9;
; SOURCE LINE # 259
MOV R7,#09H
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 260
; PinLamp=FALSE;
; SOURCE LINE # 261
?C0040:
; PinSpeaker=FALSE;
; SOURCE LINE # 262
; delay(DELAY_VALUE);
; SOURCE LINE # 263
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 264
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 265
SETB P0_1
; return 12;
; SOURCE LINE # 266
MOV R7,#0CH
RET
; PinDrvKey1=FALSE; //扫描第一列
; SOURCE LINE # 267
; PinDrvKey2=TRUE;
; SOURCE LINE # 268
; if(PinScanKey1==TRUE)
; SOURCE LINE # 269
; PinLamp=FALSE;
; SOURCE LINE # 270
?C0041:
; PinSpeaker=FALSE;
; SOURCE LINE # 271
; delay(DELAY_VALUE);
; SOURCE LINE # 272
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 273
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 274
SETB P0_1
; return 2;
; SOURCE LINE # 275
DEC R7
RET
; if(PinScanKey2==TRUE)
; SOURCE LINE # 276
; PinLamp=FALSE;
; SOURCE LINE # 277
?C0042:
; PinSpeaker=FALSE;
; SOURCE LINE # 278
; delay(DELAY_VALUE);
; SOURCE LINE # 279
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 280
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 281
SETB P0_1
; return 6;
; SOURCE LINE # 282
MOV R7,#06H
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 283
; PinLamp=FALSE;
; SOURCE LINE # 284
?C0043:
; PinSpeaker=FALSE;
; SOURCE LINE # 285
; delay(DELAY_VALUE);
; SOURCE LINE # 286
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 287
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 288
SETB P0_1
; return 0;
; SOURCE LINE # 289
MOV R7,#00H
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 290
; PinLamp=FALSE;
; SOURCE LINE # 291
?C0044:
; PinSpeaker=FALSE;
; SOURCE LINE # 292
; delay(DELAY_VALUE);
; SOURCE LINE # 293
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 294
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 295
SETB P0_1
; return 13;
; SOURCE LINE # 296
MOV R7,#0DH
RET
; PinDrvKey2=FALSE; //扫描第二列
; SOURCE LINE # 297
; PinDrvKey3=TRUE;
; SOURCE LINE # 298
; if(PinScanKey1==TRUE)
; SOURCE LINE # 299
; PinLamp=FALSE;
; SOURCE LINE # 300
?C0045:
; PinSpeaker=FALSE;
; SOURCE LINE # 301
; delay(DELAY_VALUE);
; SOURCE LINE # 302
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 303
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 304
SETB P0_1
; return 3;
; SOURCE LINE # 305
RET
; if(PinScanKey2==TRUE)
; SOURCE LINE # 306
; PinLamp=FALSE;
; SOURCE LINE # 307
?C0046:
; PinSpeaker=FALSE;
; SOURCE LINE # 308
; delay(DELAY_VALUE);
; SOURCE LINE # 309
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 310
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 311
SETB P0_1
; return 7;
; SOURCE LINE # 312
MOV R7,#07H
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 313
; PinLamp=FALSE;
; SOURCE LINE # 314
?C0047:
; PinSpeaker=FALSE;
; SOURCE LINE # 315
; delay(DELAY_VALUE);
; SOURCE LINE # 316
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 317
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 318
SETB P0_1
; return 10;
; SOURCE LINE # 319
MOV R7,#0AH
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 320
; PinLamp=FALSE;
; SOURCE LINE # 321
?C0048:
; PinSpeaker=FALSE;
; SOURCE LINE # 322
; delay(DELAY_VALUE);
; SOURCE LINE # 323
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 324
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 325
SETB P0_1
; return 14;
; SOURCE LINE # 326
MOV R7,#0EH
RET
; PinDrvKey3=FALSE; //扫描第三列
; SOURCE LINE # 327
; PinDrvKey4=TRUE;
; SOURCE LINE # 328
; if(PinScanKey1==TRUE)
; SOURCE LINE # 329
; PinLamp=FALSE;
; SOURCE LINE # 330
?C0049:
; PinSpeaker=FALSE;
; SOURCE LINE # 331
; delay(DELAY_VALUE);
; SOURCE LINE # 332
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 333
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 334
SETB P0_1
; return 4;
; SOURCE LINE # 335
INC R7
RET
; if(PinScanKey2==TRUE)
; SOURCE LINE # 336
; PinLamp=FALSE;
; SOURCE LINE # 337
?C0050:
; PinSpeaker=FALSE;
; SOURCE LINE # 338
; delay(DELAY_VALUE);
; SOURCE LINE # 339
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 340
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 341
SETB P0_1
; return 8;
; SOURCE LINE # 342
MOV R7,#08H
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 343
; PinLamp=FALSE;
; SOURCE LINE # 344
?C0051:
; PinSpeaker=FALSE;
; SOURCE LINE # 345
; delay(DELAY_VALUE);
; SOURCE LINE # 346
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 347
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 348
SETB P0_1
; return 11;
; SOURCE LINE # 349
MOV R7,#0BH
RET
; if(PinScanKey1==TRUE)
; SOURCE LINE # 350
; PinLamp=FALSE;
; SOURCE LINE # 351
?C0052:
; PinSpeaker=FALSE;
; SOURCE LINE # 352
; delay(DELAY_VALUE);
; SOURCE LINE # 353
LCALL L?0071
; PinLamp=TRUE;
; SOURCE LINE # 354
SETB P0_0
; PinSpeaker=TRUE;
; SOURCE LINE # 355
SETB P0_1
; return 15;
; SOURCE LINE # 356
MOV R7,#0FH
; PinDrvKey3=FALSE; //扫描第四列
; SOURCE LINE # 357
; return 16;
; SOURCE LINE # 358
; }
; SOURCE LINE # 359
?C0037:
RET
; END OF keyscan
;
; void updatee()
RSEG ?PR?updatee?SECOND
updatee:
USING 0
; SOURCE LINE # 361
; {
; SOURCE LINE # 362
; if(s00==9) //如果10ms位需要进位,则进入语句
; SOURCE LINE # 363
MOV A,s00
XRL A,#09H
JNZ ?C0053
; {
; SOURCE LINE # 364
; s00=0;
; SOURCE LINE # 365
MOV s00,A
; if(s01==9) //如果100ms位需要进位,则进入语句
; SOURCE LINE # 366
MOV A,s01
XRL A,#09H
JNZ ?C0054
; {
; SOURCE LINE # 367
; s01=0;
; SOURCE LINE # 368
MOV s01,A
; if(s0==9) //如果1sec位需要进位,则进入语句
; SOURCE LINE # 369
MOV A,s0
XRL A,#09H
JNZ ?C0055
; {
; SOURCE LINE # 370
; s0=0;
; SOURCE LINE # 371
MOV s0,A
; if(s1==5) //如果10sec位需要进位,则进入语句
; SOURCE LINE # 372
MOV A,s1
CJNE A,#05H,?C0056
; {
; SOURCE LINE # 373
; s1=0;
; SOURCE LINE # 374
CLR A
MOV s1,A
; if(m0==9)
; SOURCE LINE # 375
MOV A,m0
CJNE A,#09H,?C0057
; {m0=0;
; SOURCE LINE # 376
CLR A
MOV m0,A
; if(m1==5)m1=0;
; SOURCE LINE # 377
MOV A,m1
CJNE A,#05H,?C0058
CLR A
MOV m1,A
SJMP ?C0064
?C0058:
; else m1+=1;
; SOURCE LINE # 378
INC m1
; }
; SOURCE LINE # 379
SJMP ?C0064
?C0057:
; else m0+=1;
; SOURCE LINE # 380
INC m0
; }
; SOURCE LINE # 381
SJMP ?C0064
?C0056:
; else s1+=1;
; SOURCE LINE # 382
INC s1
; }
; SOURCE LINE # 383
SJMP ?C0064
?C0055:
; else s0+=1;
; SOURCE LINE # 384
INC s0
; }
; SOURCE LINE # 385
SJMP ?C0064
?C0054:
; else s01+=1;
; SOURCE LINE # 386
INC s01
; }
; SOURCE LINE # 387
SJMP ?C0064
?C0053:
; else s00+=1;
; SOURCE LINE # 388
INC s00
?C0064:
; display(0,s00);
; SOURCE LINE # 389
MOV R5,s00
CLR A
MOV R7,A
LCALL _display
; delay(DELAY_VALUE);
; SOURCE LINE # 390
LCALL L?0072
; display(1,s01);
; SOURCE LINE # 391
MOV R5,s01
MOV R7,#01H
LCALL _display
; delay(DELAY_VALUE);
; SOURCE LINE # 392
MOV R7,#03H
LCALL _delay
; display(2,s0);
; SOURCE LINE # 393
MOV R5,s0
DEC R7
LCALL _display
; delay(DELAY_VALUE);
; SOURCE LINE # 394
INC R7
LCALL _delay
; display(3,s1);
; SOURCE LINE # 395
MOV R5,s1
LCALL _display
; delay(DELAY_VALUE);
; SOURCE LINE # 396
LCALL _delay
; display(4,m0);
; SOURCE LINE # 397
MOV R5,m0
INC R7
LCALL _display
; delay(DELAY_VALUE);
; SOURCE LINE # 398
DEC R7
LCALL _delay
; display(5,m1);
; SOURCE LINE # 399
MOV R5,m1
MOV R7,#05H
LCALL _display
; delay(DELAY_VALUE); //以上语句则在数码管上显示各个数字
; SOURCE LINE # 400
MOV R7,#03H
LJMP _delay
; END OF updatee
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -