📄 por.lst
字号:
245 ; WAIT KEY IN.............
246 ; RETURN A: DIGIT NO
012E 247 GET_KEY:
012E C200 248 CLR FKEY
0130 11F2 249 CALL SCAN ;
250 ; IF(KEY_ON) WAIT KEY_OFF
0132 200002 251 JB FKEY, GE1
252 ; NO KEY ON WAIT KEY IN..............
0135 80F7 253 JMP GET_KEY
0137 254 GE1:
0137 11F2 255 CALL SCAN
0139 2000FB 256 JB FKEY, GE1
257 ; KEY INDEX TO DIGIT NO.
013C E575 258 MOV A,KEY_NO
013E 9000E2 259 MOV DPTR, #TABLE_DIG
0141 93 260 MOVC A,@A+DPTR
0142 F575 261 MOV KEY_NO,A
0144 22 262 RET
263 ;-----------------------------------------------
0145 264 SO:
0145 7B01 265 MOV R3,#1 ; BIT NO
0147 1135 266 CALL PLAY
0149 22 267 RET
268 ;--------------------------
269 ; JUDGE WHICH KEY.............
270 ; '1'--'7' TONE 1--7
271 ; FBA0--HIGH 1234 EDC 567
272 ; 9--CLEAR 8--PLAY
014A 273 SOP:
014A B40105 274 CJNE A,#1, A1
014D 7C01 275 MOV R4,#1
014F 3145 276 CALL SO
0151 22 277 RET
0152 278 A1:
0152 B40205 279 CJNE A,#2, A2
0155 7C02 280 MOV R4,#2
0157 3145 281 CALL SO
0159 22 282 RET
015A 283 A2:
015A B40305 284 CJNE A,#3, A3
015D 7C03 285 MOV R4,#3
015F 3145 286 CALL SO
0161 22 287 RET
0162 288 A3:
0162 B40405 289 CJNE A,#4, A4
0165 7C04 290 MOV R4,#4
0167 3145 291 CALL SO
0169 22 292 RET
293
016A 294 A4:
016A B40505 295 CJNE A,#5, A5
016D 7C05 296 MOV R4,#5
016F 3145 297 CALL SO
0171 22 298 RET
0172 299 A5:
0172 B40605 300 CJNE A,#6, A6
0175 7C06 301 MOV R4,#6
0177 3145 302 CALL SO
0179 22 303 RET
304
017A 305 A6:
017A B40705 306 CJNE A,#7, A7
017D 7C07 307 MOV R4,#7
A51 MACRO ASSEMBLER POR 01/22/2006 22:35:54 PAGE 6
017F 3145 308 CALL SO
0181 22 309 RET
310
311 ; NEXT HIGH TONE 1--7........................
0182 312 A7:
0182 B40F05 313 CJNE A,#0FH, A8
0185 7C08 314 MOV R4,#8
0187 3145 315 CALL SO
0189 22 316 RET
317
018A 318 A8:
018A B40B05 319 CJNE A,#0BH, A9
018D 7C09 320 MOV R4,#9
018F 3145 321 CALL SO
0191 22 322 RET
323
0192 324 A9:
0192 B40A05 325 CJNE A,#0AH, A10
0195 7C0A 326 MOV R4,#10
0197 3145 327 CALL SO
0199 22 328 RET
329
019A 330 A10:
019A B40005 331 CJNE A,#0, A11
019D 7C0B 332 MOV R4,#11
019F 3145 333 CALL SO
01A1 22 334 RET
335
01A2 336 A11:
01A2 B40E05 337 CJNE A,#0EH, A12
01A5 7C0C 338 MOV R4,#12
01A7 3145 339 CALL SO
01A9 22 340 RET
341
01AA 342 A12:
01AA B40D05 343 CJNE A,#0DH, A13
01AD 7C0D 344 MOV R4,#13
01AF 3145 345 CALL SO
01B1 22 346 RET
347
01B2 348 A13:
01B2 B40C05 349 CJNE A,#0CH, A14
01B5 7C0E 350 MOV R4,#14
01B7 3145 351 CALL SO
01B9 22 352 RET
353
01BA 354 A14:
01BA 22 355 RET
356 ;---------------------------------------
01BB 357 RUN:
01BB 757600 358 MOV NO,#0
01BE 7830 359 MOV R0, #MEM
01C0 360 LOOP:
01C0 E576 361 MOV A,NO
01C2 757800 362 MOV X,#0
01C5 7130 363 CALL SHOW_DIG
364
01C7 312E 365 CALL GET_KEY
366 ; CHECK A=9 CLEAR,
01C9 B4090B 367 CJNE A,#9, B1
01CC 5143 368 CALL BZ
01CE 11D7 369 CALL LED_BL
01D0 757600 370 MOV NO,#0 ; CLEAR NO
01D3 7830 371 MOV R0, #MEM ; RESET ADDRESS POINT
01D5 80E9 372 JMP LOOP
373
A51 MACRO ASSEMBLER POR 01/22/2006 22:35:54 PAGE 7
374 ; A=8 REPLAY........
01D7 B40808 375 B1: CJNE A,#8, B2
01DA 11D7 376 CALL LED_BL
01DC 510D 377 CALL RPLAY
01DE 11D7 378 CALL LED_BL
01E0 80DE 379 JMP LOOP
01E2 380 B2:
01E2 E575 381 MOV A,KEY_NO
01E4 757800 382 MOV X,#0
01E7 714B 383 CALL SHOW_DIG2
384 ; PLAY TONE.....................
01E9 E575 385 MOV A,KEY_NO
01EB 314A 386 CALL SOP
387
388 ; SAVE TO MEM...........................
01ED E575 389 MOV A,KEY_NO
01EF F6 390 MOV @R0,A
391
01F0 0576 392 INC NO
393
394 ; CHECK NO = MNO ?.............
01F2 E576 395 MOV A,NO
01F4 75F040 396 MOV B,#MNO
01F7 B5F00D 397 CJNE A,B,B3
398
399 ; MEMORY LIMITED!!!!!!!!
01FA 5143 400 CALL BZ
01FC 11D7 401 CALL LED_BL
01FE 5143 402 CALL BZ
0200 11D7 403 CALL LED_BL
0202 75763F 404 MOV NO,#(MNO-1)
0205 80B9 405 JMP LOOP
0207 406 B3:
407 ; SAVE TO MEM...........................
0207 E575 408 MOV A,KEY_NO
0209 F6 409 MOV @R0,A
020A 08 410 INC R0
411 ;................................
020B 80B3 412 JMP LOOP
413 ;--------------------------------------
414 ; REPLAY FROM MEM.............
020D 415 RPLAY:
020D E576 416 MOV A,NO
020F 757800 417 MOV X,#0
0212 7130 418 CALL SHOW_DIG
419
0214 E576 420 MOV A,NO
0216 B40001 421 CJNE A,#0,RP0
0219 22 422 RET
423
021A 424 RP0:
021A 857677 425 MOV CO,NO
021D 7830 426 MOV R0, #MEM
021F 7901 427 MOV R1,#1
0221 428 RP1:
429 ; KEY 4 EXIT PLAY.....................
0221 20A707 430 JB K4,RP2
0224 5143 431 CALL BZ
0226 11D7 432 CALL LED_BL
0228 11D7 433 CALL LED_BL
022A 22 434 RET
022B 435 RP2:
436 ; SHOW NOW PLAY NO...............
022B E9 437 MOV A,R1
022C 757803 438 MOV X,#3
022F 7130 439 CALL SHOW_DIG
A51 MACRO ASSEMBLER POR 01/22/2006 22:35:54 PAGE 8
440
0231 E6 441 MOV A,@R0 ; LOAD KEY FROM MEM
0232 C0E0 442 PUSH ACC
443 ; SHOW TONE KEY....................
0234 757800 444 MOV X,#0
0237 714B 445 CALL SHOW_DIG2
446
0239 D0E0 447 POP ACC
023B 314A 448 CALL SOP
449
023D 08 450 INC R0
023E 09 451 INC R1
023F D577DF 452 DJNZ CO,RP1
0242 22 453 RET
454 ;---------------------------------------
0243 455 BZ:
0243 7C01 456 MOV R4,#1
0245 7B01 457 MOV R3,#1
0247 1135 458 CALL PLAY
0249 22 459 RET
460 ;---------------------------
461 ;$include (POR1.ASM)
+1 462 ; OR1.ASM
024A +1 463 SET_LCD:
024A C281 +1 464 CLR EN ; en=0
024C 51BB +1 465 CALL INIT_LCD
+1 466
024E 7D01 +1 467 MOV R5,#1
0250 11CC +1 468 CALL DELAY
+1 469
0252 9002F4 +1 470 MOV DPTR,#LMESS1
0255 7401 +1 471 MOV A,#1 ; LINE1
0257 517F +1 472 CALL LCD_PRINT
+1 473
0259 900305 +1 474 MOV DPTR,#LMESS2
025C 7402 +1 475 MOV A,#2 ; LINE2
025E 517F +1 476 CALL LCD_PRINT
0260 22 +1 477 RET
+1 478 ;---------------------------------
0261 +1 479 INIT_LCD1:
0261 7428 +1 480 MOV A,#28H
0263 51D2 +1 481 CALL WCOM
0265 740C +1 482 MOV A,#0CH
0267 51D2 +1 483 CALL WCOM
0269 740E +1 484 MOV A,#0EH
026B 51D2 +1 485 CALL WCOM
026D 7401 +1 486 MOV A,#01H
026F 51D2 +1 487 CALL WCOM
0271 22 +1 488 RET
+1 489 ;---------------------------------
0272 +1 490 CLR_LINE1:
0272 7480 +1 491 MOV A,#80H
0274 51D2 +1 492 CALL WCOM
0276 7818 +1 493 MOV R0,#24
0278 7420 +1 494 CL: MOV A,#' '
027A 51E3 +1 495 CALL WDATA
027C D8FA +1 496 DJNZ R0,CL
027E 22 +1 497 RET
+1 498 ;-------------------------------
+1 499 ; A=LINE 1 OR 2
+1 500 ; DPTR = MESSAGE POINTER
027F +1 501 LCD_PRINT:
027F B4010C +1 502 CJNE A,#1,LINE2
0282 7480 +1 503 LINE1: MOV A,#80H
0284 51D2 +1 504 CALL WCOM
0286 51A4 +1 505 CALL CLR_LINE
A51 MACRO ASSEMBLER POR 01/22/2006 22:35:54 PAGE 9
0288 7480 +1 506 MOV A,#80H
028A 51D2 +1 507 CALL WCOM
028C 800A +1 508 JMP FILL
+1 509
028E 74C0 +1 510 LINE2: MOV A,#0C0H
0290 51D2 +1 511 CALL WCOM
0292 51A4 +1 512 CALL CLR_LINE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -