📄 rec.lst
字号:
039E F4 553 CPL A
039F B53100 554 CJNE A,31H,EXIT ;进行数据码和数据的反码进行比较
03A2 D0D0 555 EXIT: POP PSW
03A4 D0E0 556 POP ACC
03A6 D211 557 SETB LREC ;置REC的标志位
03A8 D2A8 558 SETB EX0 ;打开INT0的中断
03AA 32 559 RETI
560
561 ;==============================================================================
562 ;INT1的中断处理
563 ;==============================================================================
03AB 564 KEY_INT1:
03AB C0E0 565 PUSH ACC
03AD C0D0 566 PUSH PSW
03AF C2AA 567 CLR EX1 ;关断INT1
03B1 120453 568 LCALL SCANKEY
03B4 71F9 569 CALL KEY_K10 ;置高、中、低的标志位
03B6 9126 570 CALL FENG_3 ;置风类的标志位
03B8 71C3 571 CALL JS ;置定时时间标志位
03BA D210 572 SETB LKEYON ;按键标志位
03BC D2AA 573 SETB EX1 ;打开中断位
03BE D0D0 574 POP PSW
03C0 D0E0 575 POP ACC
A51 MACRO ASSEMBLER REC 08/06/2005 09:37:33 PAGE 8
03C2 32 576 RETI
577 ;------------------------------------------------------------------------------
578 ;定时的置位标志程序
579 ;------------------------------------------------------------------------------
03C3 580 JS:
03C3 C200 581 CLR SJ00
03C5 C201 582 CLR SJ01
03C7 C202 583 CLR SJ02
03C9 C203 584 CLR SJ03
585
03CB E530 586 MOV A,MRD
03CD B40428 587 CJNE A,#04H,KEY_K4D ;
03D0 0552 588 INC TIME
03D2 E552 589 MOV A,TIME
03D4 B40503 590 CJNE A,#5,KEY_K4
03D7 755201 591 MOV TIME,#1
03DA 592 KEY_K4:
03DA E552 593 MOV A,TIME
03DC B40104 594 CJNE A,#1,KEY_K4A ;等1则置ZRF
03DF D200 595 SETB SJ00
03E1 8015 596 JMP KEY_K4D
597
03E3 598 KEY_K4A:
03E3 B40204 599 CJNE A,#2,KEY_K4B ;等2则置SMF
03E6 D201 600 SETB SJ01
03E8 800E 601 JMP KEY_K4D
03EA 602 KEY_K4B:
03EA B40304 603 CJNE A,#3,KEY_K4C ;等3则置ZCF
03ED D202 604 SETB SJ02
03EF 8007 605 JMP KEY_K4D
03F1 606 KEY_K4C:
03F1 B40404 607 CJNE A,#4,KEY_K4D ;等3则置ZCF
03F4 D203 608 SETB SJ03
03F6 8000 609 JMP KEY_K4D
03F8 610 KEY_K4D:
03F8 22 611 RET
612 ;------------------------------------------------------------------------------
613 ;高中低档的置标志位子程序
614 ;------------------------------------------------------------------------------
03F9 615 KEY_K10:
03F9 C204 616 CLR DANG01
03FB C205 617 CLR DANG02
03FD C206 618 CLR DANG03
619
03FF E530 620 MOV A,MRD
0401 B40121 621 CJNE A,#01H,KEY_K1C ;
0404 0550 622 INC FENG
0406 E550 623 MOV A,FENG
0408 B40403 624 CJNE A,#4,KEY_K1
040B 755001 625 MOV FENG,#1
040E 626 KEY_K1:
040E E550 627 MOV A,FENG
0410 B40104 628 CJNE A,#1,KEY_K1A
0413 D204 629 SETB DANG01
0415 800E 630 JMP KEY_K1C
0417 631 KEY_K1A:
0417 B40204 632 CJNE A,#2,KEY_K1B
041A D205 633 SETB DANG02
041C 8007 634 JMP KEY_K1C
635
041E 636 KEY_K1B:
041E B40304 637 CJNE A,#3,KEY_K1C
0421 D206 638 SETB DANG03
0423 8000 639 JMP KEY_K1C
0425 640 KEY_K1C:
0425 22 641 RET
A51 MACRO ASSEMBLER REC 08/06/2005 09:37:33 PAGE 9
642 ;------------------------------------------------------------------------------
643 ;自然风、睡眠风、正常风的置标志位子程序
644 ;------------------------------------------------------------------------------
0426 645 FENG_3:
0426 C208 646 CLR ZRF
0428 C209 647 CLR SMF
042A C20A 648 CLR ZCF
649
042C E530 650 MOV A,MRD
042E B40321 651 CJNE A,#03H,KEY_K3C ;
0431 0551 652 INC FLEI
0433 E551 653 MOV A,FLEI
0435 B40403 654 CJNE A,#4,KEY_K3
0438 755101 655 MOV FLEI,#1
043B 656 KEY_K3:
043B E551 657 MOV A,FLEI
043D B40104 658 CJNE A,#1,KEY_K3A ;等1则置ZRF
0440 D208 659 SETB ZRF
0442 800E 660 JMP KEY_K3C
0444 661 KEY_K3A:
0444 B40204 662 CJNE A,#2,KEY_K3B ;等2则置SMF
0447 D209 663 SETB SMF
0449 8007 664 JMP KEY_K3C
044B 665 KEY_K3B:
044B B40304 666 CJNE A,#3,KEY_K3C ;等3则置ZCF
044E D20A 667 SETB ZCF
0450 8000 668 JMP KEY_K3C
0452 669 KEY_K3C:
0452 22 670 RET
671 ;==============================================================================
672 ;扫描键盘程序。
673 ;==============================================================================
0453 674 SCANKEY:
0453 E590 675 MOV A,P1
0455 F4 676 CPL A
0456 540F 677 ANL A,#0FH
0458 FA 678 MOV R2,A ;将行号存入R2中
0459 7590F0 679 MOV P1,#0F0H ;将列置输入端
045C E590 680 MOV A,P1
045E F4 681 CPL A
045F 54F0 682 ANL A,#0F0H ;取列号并存入A中
0461 7903 683 MOV R1,#03H ;置列初号
0463 7B03 684 MOV R3,#03H ;置循环次数
0465 C3 685 CLR C
0466 33 686 PINT01: RLC A ;取列号
0467 40FD 687 JC PINT01
0469 19 688 DEC R1
046A DBFA 689 DJNZ R3,PINT01
690
046C EA 691 PINT02: MOV A,R2 ;取行号
046D 7A00 692 MOV R2,#00H
046F 7B03 693 MOV R3,#03H ;置循环次数
0471 13 694 PINT03: RRC A
0472 4003 695 JC PINT04
0474 0A 696 INC R2
0475 DBFA 697 DJNZ R3,PINT03
0477 EA 698 PINT04: MOV A,R2
0478 C3 699 CLR C
0479 33 700 RLC A
047A 33 701 RLC A
047B 29 702 ADD A,R1
047C F530 703 MOV MRD,A ;键号存于MRD单元中
047E 22 704 RET
705 ;==============================================================================
047F 706 DY20MS:
A51 MACRO ASSEMBLER REC 08/06/2005 09:37:33 PAGE 10
047F 75538A 707 MOV 53H,#8AH
0482 708 DELAY_0:
0482 C053 709 PUSH 53H
0484 710 DELAY_1:
0484 D553FD 711 DJNZ 53H,DELAY_1
0487 D053 712 POP 53H
0489 D553F6 713 DJNZ 53H,DELAY_0
048C 22 714 RET
715 ;==============================================================================
048D 716 DY6S:
048D 7F12 717 MOV R7,#12H
048F 718 DEYLAY_00:
048F 7553DD 719 MOV 53H,#0DDH
0492 720 DELAY_11:
0492 C053 721 PUSH 53H
0494 722 DELAY_22:
0494 D553FD 723 DJNZ 53H,DELAY_22
0497 D053 724 POP 53H
0499 D553F6 725 DJNZ 53H,DELAY_11
049C DFF1 726 DJNZ R7,DEYLAY_00
049E 22 727 RET
728 ;==============================================================================
049F 7F10 729 DY8S: MOV R7,#16
730
04A1 731 DEYLAY_33:
04A1 7553DD 732 MOV 53H,#0DDH
04A4 733 DELAY_44:
04A4 C053 734 PUSH 53H
04A6 735 DELAY_55:
04A6 D553FD 736 DJNZ 53H,DELAY_55
04A9 D053 737 POP 53H
04AB D553F6 738 DJNZ 53H,DELAY_44
04AE DFF1 739 DJNZ R7,DEYLAY_33
04B0 22 740 RET
741 ;==============================================================================
04B1 7F14 742 DY10S: MOV R7,#20
04B3 7F12 743 MOV R7,#12H
04B5 744 DEYLAY_66:
04B5 7553DD 745 MOV 53H,#0DDH
04B8 746 DELAY_77:
04B8 C053 747 PUSH 53H
04BA 748 DELAY_88:
04BA D553FD 749 DJNZ 53H,DELAY_88
04BD D053 750 POP 53H
04BF D553F6 751 DJNZ 53H,DELAY_77
04C2 DFF1 752 DJNZ R7,DEYLAY_66
04C4 22 753 RET
754 ;==============================================================================
755
04C5 7C14 756 DY882US:MOV R4,#20
04C7 7D14 757 D1: MOV R5,#20
04C9 DDFE 758 DJNZ R5,$
04CB DCFA 759 DJNZ R4,D1
04CD 22 760 RET
04CE 761 DY1000US:
04CE 7C02 762 MOV R4,#2
04D0 7DF8 763 D3: MOV R5,#248
04D2 DDFE 764 DJNZ R5,$
04D4 DCFA 765 DJNZ R4,D3
04D6 22 766 RET
04D7 767 DY4700US:
04D7 7C0A 768 YS2: MOV R4,#10
04D9 7DEB 769 D2: MOV R5,#235
04DB DDFE 770 DJNZ R5,$
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -