📄 key_display.l
字号:
406 0CAD EB 18 jr ne,key_5_sub_end ;fire off ,exit
407 0CAF 20 14 inc fire_value ;fire+
408 0CB1 A6 14 01 cp fire_value,#01H
409 0CB4 7B 07 jr ult,fire_min
410 0CB6 A6 14 0A cp fire_value,#0AH
411 0CB9 BB 07 jr ugt,fire_max
412 0CBB 8B 0A jr key_5_sub_end
413 0CBD fire_min:
414 0CBD E6 14 01 ld fire_value,#01H
415 0CC0 8B 05 jr key_5_sub_end
416 0CC2 fire_max:
417 0CC2 E6 14 0A ld fire_value,#0AH
418 0CC5 8B 00 jr key_5_sub_end
419 0CC7 key_5_sub_end:
420 ; ld I2C_data,fire_value
421 ; ld I2C_dress,#fire_value_dress
422 ; call WR_24C02
423 ; ld beep_flag,#01h
424 0CC7 AF ret
425 ;***************************************************************
426 ;***************************************************************
427 0CC8 key_6_sub:
428 0CC8 76 10 01 tm fire_status,#01H
429 0CCB EB 18 jr ne,key_6_sub_end ;fire off ,exit
430 0CCD 00 14 dec fire_value ;fire-
431 0CCF A6 14 01 cp fire_value,#01H
432 0CD2 7B 07 jr ult,fire_min_1
433 0CD4 A6 14 0A cp fire_value,#0AH
434 0CD7 BB 07 jr ugt,fire_max_2
435 0CD9 8B 0A jr key_6_sub_end
436 0CDB fire_min_1:
437 0CDB E6 14 01 ld fire_value,#01H
438 0CDE 8B 05 jr key_6_sub_end
439 0CE0 fire_max_2:
440 0CE0 E6 14 0A ld fire_value,#0AH
441 0CE3 8B 00 jr key_6_sub_end
442 0CE5 key_6_sub_end:
443 ; ld I2C_data,fire_value
444 ; ld I2C_dress,#fire_value_dress
445 ; call WR_24C02
446 ; ld beep_flag,#01h
447 0CE5 AF ret
448 ;***************************************************************
449 ;***************************************************************
450 0CE6 key_7_sub:
451 0CE6 A6 10 00 cp fire_status,#00H
452 0CE9 6B 08 jr eq,fire_on ;if fire_status=0=off jump to fire on
453
454 0CEB fire_off: ;if fire_status=1=on to fire off
455 0CEB E6 10 00 ld fire_status,#00H
456 0CEE 56 E0 DF and p0,#11011111B ;clear p0.5 disenble LIGHTS
457
458 0CF1 8B 20 jr key_7_sub_end
459
460 0CF3 fire_on:
461 0CF3 E6 10 01 ld fire_status,#01H
462 0CF6 46 E0 20 or p0,#00100000B ;set p0.5 enble LIGHTS
463
464 0CF9 sound_judge:
465 0CF9 A6 13 01 cp sound_status,#01H
466 0CFC 6B 05 jr eq,sound_judge_1
467 0CFE F6 0D 18 call sound_close
468 0D01 8B 03 jr lamp_judge
469 0D03 sound_judge_1:
470 0D03 F6 0D 14 call sound_open
471
472 0D06 lamp_judge:
473 0D06 A6 12 01 cp lamp_status,#01H
474 0D09 6B 05 jr eq,lamp_judge_1
475 0D0B F6 0D 20 call lamp_close
476 0D0E 8B 03 jr key_7_sub_end
477 0D10 lamp_judge_1:
478 0D10 F6 0D 1C call lamp_open
479
480 0D13 key_7_sub_end:
481
482 ; ld beep_flag,#01h
483 0D13 AF ret
484
485 ;**************************************************************
486 0D14 sound_open:
487 0D14 56 E0 F7 and p0,#11110111B ;clear p0.3 enble spker
488 0D17 AF ret
489
490 0D18 sound_close:
491 0D18 46 E0 08 or p0,#00001000B ;set p0.3 disenble spker
492 0D1B AF ret
493
494 0D1C lamp_open:
495 0D1C 56 E0 EF and p0,#11101111B ;clear p0.4 enble lamp
496 0D1F AF ret
497
498 0D20 lamp_close:
499 0D20 46 E0 08 or p0,#00001000B ;set p0.4 disenble lamp
500 0D23 AF ret
501 ;***************************************************************
502 ;***************************************************************
503 0D24 key_8_sub:
504 0D24 76 10 01 tm fire_status,#01H
505 0D27 EB 13 jr ne,key_8_sub_end
506
507 0D29 A6 13 00 cp sound_status,#00H
508 0D2C 6B 08 jr eq,sound_on ;if sound_status=0=off jump to sound on
509
510 0D2E sound_off: ;if sound_status=1=on to sound off
511 0D2E E6 13 00 ld sound_status,#00H
512 0D31 F6 0D 18 call sound_close
513 0D34 8B 06 jr key_8_sub_end
514
515 0D36 sound_on:
516 0D36 E6 13 01 ld sound_status,#01H
517 0D39 F6 0D 14 call sound_open
518
519 0D3C key_8_sub_end:
520 ; ld I2C_data,sound_status
521 ; ld I2C_dress,#sound_status_dress
522 ; call WR_24C02
523 ; ld beep_flag,#01h
524 0D3C AF ret
525 ;***************************************************************
526
527
528
529
530
531
532
533
534 ;*************************************************************************
535 ;led_display subroutine
536 ;*************************************************************************
537 0D3D led_scan:
538 0D3D A6 1B 01 cp led_display_flag,#01H ;if time=15s led off, else led on
539 0D40 EB 52 jr ne,led_scan_end
540
541
542
543 0D42 led_temp:
544 0D42 2C 0B ld r2,#0bh
545 0D44 38 15 ld r3,temp_value
546 0D46 C3 02 ldc r0,@rr2 ;of00h
547 0D48 46 E1 02 or p1,#02H
548 0D4B 46 E2 03 or p2,#03H ;Q1 Q2 Q3 off
549 0D4E 09 00 ld serial_data,r0 ;temp on
550 0D50 F6 0D 95 call serial_out
551 0D53 56 E2 FD and p2,#11111101B ;Q1 on p2.1
552
553 0D56 2C 0B ld r2,#0bh
554 0D58 38 15 ld r3,temp_value
555 0D5A E7 02 10 ldc r0,#10h[rr2] ;0f10h
556 0D5D 46 E1 02 or p1,#02H
557 0D60 46 E2 03 or p2,#03H ;Q1 Q2 Q3 off
558 0D63 09 00 ld serial_data,r0 ;temp on
559 0D65 F6 0D 95 call serial_out
560 0D68 56 E2 FE and p2,#11111110B ;Q3 on p2.0
561
562 0D6B led_fire:
563 0D6B 2C 0B ld r2,#0bh
564 0D6D 38 14 ld r3,fire_value
565 0D6F C3 02 ldc r0,@rr2 ;of00h
566 0D71 46 E1 02 or p1,#02H
567 0D74 46 E2 03 or p2,#03H ;Q1 Q2 Q3 off
568 0D77 09 00 ld serial_data,r0 ;temp on
569 0D79 F6 0D 95 call serial_out
570 0D7C 56 E1 FD and p1,#11111101B ;Q2 on p1.1
571
572 0D7F 2C 0B ld r2,#0bh
573 0D81 38 14 ld r3,fire_value
574 0D83 E7 02 20 ldc r0,#20h[rr2] ;0f20h
575 0D86 46 E1 02 or p1,#02H
576 0D89 46 E2 03 or p2,#03H ;Q1 Q2 Q3 off
577 0D8C 09 00 ld serial_data,r0 ;temp on
578 0D8E F6 0D 95 call serial_out
579 0D91 56 E2 FE and p2,#11111110B ;Q3 on p2.0
580
581 0D94 led_scan_end:
582 0D94 AF ret
583
584 ;************************************************************************
585 ; serial out subroutine
586 0D95 serial_out:
587 0D95 90 00 rl serial_data ;p2.2=data 2<-data
588 0D97 90 00 rl serial_data
589 0D99 0C 08 ld r0,#08 ;n=8
590
591 0D9B serial_out_loop:
592 0D9B 18 00 ld r1,serial_data
593
594 0D9D 54 01 E2 and p2,serial_clk_0 ;clk=0
595 0DA0 56 C1 04 and r1,#04H ;bit 2 (P2.2) Keep on
596 0DA3 44 C1 E2 or p2,r1 ;bit 2 (P2.2) serial out
597 0DA6 44 02 E2 or p2,serial_clk_1 ;clk=1
598
599 0DA9 E0 00 rr serial_data ;bit 0 first, bit 7 end
600 0DAB 00 C0 dec r0 ;serial_number-1=0?
601 0DAD EB EC jr nz,serial_out_loop ;if serial_number=0 end, else again
602 0DAF AF ret
603 ;***************************************************************************
604
605
606
607 0DB0 .end
Total 440 Lines Assembled - 0 Errors, 0 Warnings
Total code size 0x24D
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -