📄 main.lst
字号:
01E7 3164 +1 657 CALL I2C_STOP
01E9 22 +1 658 RET
659
660
661 ;Module
662 ;$include (..\Main\Flow.inc)
+1 663 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;
+1 664 ;;System flow part
+1 665 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;
+1 666 ;;Flow process
01EA +1 667 FLOW_PROCESS:
+1 668
+1 669
01EA 020565 +1 670 LJMP MAIN_FLOW_PROCESS_RETURN
+1 671 ;RET return by youself
672
673 ;$include (..\IR\IR.inc)
+1 674 ;IR part
01ED +1 675 IR_INITIAL:
01ED 751100 +1 676 MOV VAR_IR_CUSTOMER_CODE,#0x00
01F0 751200 +1 677 MOV VAR_IR_CUSTOMER_CODE_INVERSE,#0x00
01F3 751300 +1 678 MOV VAR_IR_KEY_CODE,#0x00
01F6 751400 +1 679 MOV VAR_IR_KEY_CODE_INVERSE,#0x00
01F9 22 +1 680 RET
+1 681
+1 682 ;IR process
01FA +1 683 IR_PROCESS_00:
01FA 30A203 +1 684 JNB DEFINE_IR_IO_PORT,IR_PROCESS_00_START
A51 MACRO ASSEMBLER MAIN 04/19/2009 02:07:50 PAGE 12
01FD 02023B +1 685 LJMP IR_PROCESS_00_NEXT
+1 686
+1 687 ;Delay 8ms
0200 +1 688 IR_PROCESS_00_START:
0200 7E09 +1 689 MOV R6,#0x09
+1 690
0202 +1 691 IR_PROCESS_00_LEADER_DETECT:
0202 5141 +1 692 ACALL DELAY882
+1 693
+1 694 ;Invalid leader code
0204 20A234 +1 695 JB DEFINE_IR_IO_PORT,IR_PROCESS_00_NEXT
0207 DEF9 +1 696 DJNZ R6,IR_PROCESS_00_LEADER_DETECT
+1 697
+1 698 ;Wait high pulse
0209 30A2FD +1 699 JNB DEFINE_IR_IO_PORT,$
+1 700
+1 701 ;Delay 2.4ms
020C 514F +1 702 ACALL DELAY2400
+1 703
+1 704 ;Series code detect
020E 30A22D +1 705 JNB DEFINE_IR_IO_PORT,IR_PROCESS_00_SERIES_CODE
+1 706
+1 707 ;Delay 2.4ms
0211 514F +1 708 ACALL DELAY2400
+1 709
0213 7911 +1 710 MOV R1,#VAR_IR_BUFFER_START_ADDRESS
0215 7D04 +1 711 MOV R5,#0x04
+1 712
0217 +1 713 IR_PROCESS_00_4BYTE:
0217 7E08 +1 714 MOV R6,#0x08
+1 715
+1 716 ;Wait high pulse
0219 +1 717 IR_PROCESS_00_8BIT:
0219 30A2FD +1 718 JNB DEFINE_IR_IO_PORT,$
+1 719
021C 120241 +1 720 LCALL DELAY882
+1 721
+1 722 ;Receive start
021F A2A2 +1 723 MOV C,DEFINE_IR_IO_PORT
0221 5003 +1 724 JNC IR_PROCESS_00_RECEIVE_BIT
+1 725
0223 120248 +1 726 LCALL DELAY1000
+1 727
0226 +1 728 IR_PROCESS_00_RECEIVE_BIT:
0226 E7 +1 729 MOV A,@R1
0227 13 +1 730 RRC A
0228 F7 +1 731 MOV @R1,A
0229 DEEE +1 732 DJNZ R6,IR_PROCESS_00_8BIT
+1 733
022B 09 +1 734 INC R1
022C DDE9 +1 735 DJNZ R5,IR_PROCESS_00_4BYTE
+1 736
+1 737 ;IR decode finish
+1 738 ;TUBE show code
022E 851110 +1 739 MOV VAR_TUBE_SHOW_BYTE1,VAR_IR_CUSTOMER_CODE
0231 85130F +1 740 MOV VAR_TUBE_SHOW_BYTE0,VAR_IR_KEY_CODE
+1 741
+1 742 ;LED show code
0234 851390 +1 743 MOV DEFINE_LED_IO_PORT,VAR_IR_KEY_CODE
+1 744
+1 745 ;Tone
0237 C2A3 +1 746 CLR DEFINE_TONE_IO_PORT
+1 747
0239 D2A3 +1 748 SETB DEFINE_TONE_IO_PORT
+1 749
023B +1 750 IR_PROCESS_00_NEXT:
A51 MACRO ASSEMBLER MAIN 04/19/2009 02:07:50 PAGE 13
023B +1 751 IR_PROCESS_00_RETURN:
+1 752
023B 02009B +1 753 LJMP TIMER_INTERRUPT_0_FOR_MULTI_TASK__IR_PROCESS_RETURN;IR_PROCESS_00
+1 754
023E +1 755 IR_PROCESS_00_SERIES_CODE:
+1 756 ;do something
023E 02023B +1 757 LJMP IR_PROCESS_00_RETURN
+1 758 ;RET
+1 759
+1 760 ;=============================882
0241 +1 761 DELAY882: ;1.085x ((202x4)+5)=882
0241 7FCA +1 762 MOV R7,#202
0243 +1 763 DELAY882_A:
0243 00 +1 764 NOP
0244 00 +1 765 NOP
0245 DFFC +1 766 DJNZ R7,DELAY882_A
+1 767
0247 22 +1 768 RET
+1 769 ;=============================1000
0248 +1 770 DELAY1000: ;1.085x ((229x4)+5)=999.285
0248 7FE5 +1 771 MOV R7,#229
024A +1 772 DELAY1000_A:
024A 00 +1 773 NOP
024B 00 +1 774 NOP
024C DFFC +1 775 DJNZ R7,DELAY1000_A
024E 22 +1 776 RET
+1 777 ;=============================2400
024F +1 778 DELAY2400: ;1.085x ((245x9)+5)=2397.85
024F 7FF5 +1 779 MOV R7,#245
0251 +1 780 DELAY2400_A:
0251 00 +1 781 NOP
0252 00 +1 782 NOP
0253 00 +1 783 NOP
0254 00 +1 784 NOP
0255 00 +1 785 NOP
0256 00 +1 786 NOP
0257 00 +1 787 NOP
0258 DFF7 +1 788 DJNZ R7,DELAY2400_A
025A 22 +1 789 RET
790
791 ;$include (..\LED\LED.inc)
+1 792 ;LED part
+1 793 ;LED initialization
025B +1 794 LED_INITIAL:
+1 795
025B 22 +1 796 RET
+1 797
+1 798 ;LED process of system flow
025C +1 799 LED_TASK_PROCESS:
+1 800
+1 801
+1 802
+1 803
+1 804
+1 805
+1 806
+1 807
+1 808
+1 809
+1 810
+1 811
+1 812
025C 02025C +1 813 LJMP LED_TASK_PROCESS
025F 22 +1 814 RET
815
816 ;$include (..\Keypad\Keypad.inc)
A51 MACRO ASSEMBLER MAIN 04/19/2009 02:07:50 PAGE 14
+1 817 ;Keypad part
0260 +1 818 KEYPAD_INITIAL:
0260 22 +1 819 RET
+1 820
0261 +1 821 KEYPAD_PROCESS:
+1 822
0261 020565 +1 823 LJMP MAIN_KEYPAD_PROCESS_RETURN
+1 824 ;RET return by youself
825
826 ;$include (..\Tube\Tube.inc)
+1 827 ;Tube part
+1 828 ;Tube initialization
0264 +1 829 TUBE_INITIAL:
0264 750E00 +1 830 MOV VAR_TUBE_SHOW_MODE,#0x00
0267 750F51 +1 831 MOV VAR_TUBE_SHOW_BYTE0,#0x51
026A 751080 +1 832 MOV VAR_TUBE_SHOW_BYTE1,#0x80
+1 833
026D 7801 +1 834 MOV R0,#0x01
026F 790F +1 835 MOV R1,#VAR_TUBE_SHOW_BYTE0
0271 31A6 +1 836 CALL I2C_READ
0273 22 +1 837 RET
+1 838
+1 839 ;Tube show number
0274 +1 840 TUBE_SHOW_NUMBER:
0274 90030B +1 841 MOV DPTR,#TUBE_CHARACTER_TABLE
0277 E8 +1 842 MOV A,R0
0278 93 +1 843 MOVC A,@A+DPTR
0279 F580 +1 844 MOV DEFINE_TUBE_IO_PORT_DATA,A
027B 22 +1 845 RET
+1 846
+1 847 ;Show number by hex
027C +1 848 TUBE_DISPLAY_BY_HEX:
027C E510 +1 849 MOV A,VAR_TUBE_SHOW_BYTE1
027E 6034 +1 850 JZ TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_3
0280 7804 +1 851 MOV R0,#0x04
+1 852
0282 +1 853 TUBE_DISPLAY_BY_HEX_RR_0:
0282 03 +1 854 RR A
0283 D8FD +1 855 DJNZ R0,TUBE_DISPLAY_BY_HEX_RR_0
0285 540F +1 856 ANL A,#0x0F
0287 600F +1 857 JZ TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_2
+1 858
+1 859 ;Tube 1
0289 F8 +1 860 MOV R0,A
028A 5174 +1 861 CALL TUBE_SHOW_NUMBER
+1 862
+1 863 ;Display
028C 43A0F0 +1 864 ORL DEFINE_TUBE_IO_PORT_CONTROL,#11110000B
028F C2A7 +1 865 CLR DEFINE_TUBE_IO_PORT_CONTROL_1
+1 866
0291 FA +1 867 MOV R2,A
+1 868
0292 7801 +1 869 MOV R0,#DEFINE_TUBE_SLEEP_25MS_BYTE0
0294 7900 +1 870 MOV R1,#DEFINE_TUBE_SLEEP_25MS_BYTE1
0296 3118 +1 871 CALL TASK_SLEEP
+1 872
0298 +1 873 TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_2:
0298 EA +1 874 MOV A,R2
0299 F8 +1 875 MOV R0,A
029A E510 +1 876 MOV A,VAR_TUBE_SHOW_BYTE1
029C 540F +1 877 ANL A,#0x0F
029E B80005 +1 878 CJNE R0,#0x00,TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_2_VISIBLE
02A1 7003 +1 879 JNZ TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_2_VISIBLE
02A3 0202B4 +1 880 LJMP TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_3
+1 881
02A6 +1 882 TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_2_VISIBLE:
A51 MACRO ASSEMBLER MAIN 04/19/2009 02:07:50 PAGE 15
+1 883
+1 884 ;Display Tube 2
02A6 F8 +1 885 MOV R0,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -