📄 main.lst
字号:
02A7 5174 +1 886 CALL TUBE_SHOW_NUMBER
+1 887
+1 888 ;Display
02A9 43A0F0 +1 889 ORL DEFINE_TUBE_IO_PORT_CONTROL,#11110000B
02AC C2A6 +1 890 CLR DEFINE_TUBE_IO_PORT_CONTROL_2
+1 891
02AE 7801 +1 892 MOV R0,#DEFINE_TUBE_SLEEP_25MS_BYTE0
02B0 7900 +1 893 MOV R1,#DEFINE_TUBE_SLEEP_25MS_BYTE1
02B2 3118 +1 894 CALL TASK_SLEEP
+1 895
02B4 +1 896 TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_3:
02B4 E50F +1 897 MOV A,VAR_TUBE_SHOW_BYTE0
02B6 7904 +1 898 MOV R1,#0x04
+1 899
02B8 +1 900 TUBE_DISPLAY_BY_HEX_RR_1:
02B8 03 +1 901 RR A
02B9 D9FD +1 902 DJNZ R1,TUBE_DISPLAY_BY_HEX_RR_1
02BB A910 +1 903 MOV R1,VAR_TUBE_SHOW_BYTE1
+1 904
02BD 540F +1 905 ANL A,#0x0F
02BF B90005 +1 906 CJNE R1,#0x00,TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_3_VISIBLE
02C2 7003 +1 907 JNZ TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_3_VISIBLE
02C4 0202D5 +1 908 LJMP TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_4
+1 909
02C7 +1 910 TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_3_VISIBLE:
+1 911
+1 912 ;Display Tube 3
02C7 F8 +1 913 MOV R0,A
02C8 5174 +1 914 CALL TUBE_SHOW_NUMBER
+1 915
+1 916 ;Display
02CA 43A0F0 +1 917 ORL DEFINE_TUBE_IO_PORT_CONTROL,#11110000B
02CD C2A5 +1 918 CLR DEFINE_TUBE_IO_PORT_CONTROL_3
+1 919
02CF 7801 +1 920 MOV R0,#DEFINE_TUBE_SLEEP_25MS_BYTE0
02D1 7900 +1 921 MOV R1,#DEFINE_TUBE_SLEEP_25MS_BYTE1
02D3 3118 +1 922 CALL TASK_SLEEP
+1 923
02D5 +1 924 TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_4:
02D5 E50F +1 925 MOV A,VAR_TUBE_SHOW_BYTE0
02D7 540F +1 926 ANL A,#0x0F
+1 927
02D9 +1 928 TUBE_DISPLAY_BY_HEX_DISPLAY_TUBE_4_VISIBLE:
+1 929
+1 930 ;Display Tube 4
02D9 F8 +1 931 MOV R0,A
02DA 5174 +1 932 CALL TUBE_SHOW_NUMBER
+1 933
+1 934 ;Display
02DC 43A0F0 +1 935 ORL DEFINE_TUBE_IO_PORT_CONTROL,#11110000B
02DF C2A4 +1 936 CLR DEFINE_TUBE_IO_PORT_CONTROL_4
+1 937
02E1 7801 +1 938 MOV R0,#DEFINE_TUBE_SLEEP_25MS_BYTE0
02E3 7900 +1 939 MOV R1,#DEFINE_TUBE_SLEEP_25MS_BYTE1
02E5 3118 +1 940 CALL TASK_SLEEP
+1 941
02E7 +1 942 TUBE_DISPLAY_BY_HEX_RETURN:
02E7 22 +1 943 RET
+1 944
02E8 +1 945 TUBE_DISPLAY_BY_DECIMAL:
+1 946 ;do something
02E8 22 +1 947 RET
+1 948
A51 MACRO ASSEMBLER MAIN 04/19/2009 02:07:50 PAGE 16
02E9 +1 949 TUBE_DISPLAY_BY_CLOCK:
+1 950 ;do something
02E9 22 +1 951 RET
+1 952
+1 953 ;Tube process for display
02EA +1 954 TUBE_PROCESS:
+1 955
02EA E50E +1 956 MOV A,VAR_TUBE_SHOW_MODE
02EC 9400 +1 957 SUBB A,#DEFINE_TUBE_SHOW_MODE_HEX
02EE 600C +1 958 JZ TUBE_PROCESS_MODE_HEX
+1 959
02F0 E50E +1 960 MOV A,VAR_TUBE_SHOW_MODE
02F2 9401 +1 961 SUBB A,#DEFINE_TUBE_SHOW_MODE_DECIMAL
02F4 600B +1 962 JZ TUBE_PROCESS_MODE_DECIMAL
+1 963
02F6 E50E +1 964 MOV A,VAR_TUBE_SHOW_MODE
02F8 9402 +1 965 SUBB A,#DEFINE_TUBE_SHOW_MODE_CLOCK
02FA 600A +1 966 JZ TUBE_PROCESS_MODE_CLOCK
+1 967
02FC +1 968 TUBE_PROCESS_MODE_HEX:
02FC 517C +1 969 CALL TUBE_DISPLAY_BY_HEX
02FE 020308 +1 970 LJMP TUBE_PROCESS_RETURN
+1 971
0301 +1 972 TUBE_PROCESS_MODE_DECIMAL:
0301 51E8 +1 973 CALL TUBE_DISPLAY_BY_DECIMAL
0303 020308 +1 974 LJMP TUBE_PROCESS_RETURN
+1 975
0306 +1 976 TUBE_PROCESS_MODE_CLOCK:
0306 51E9 +1 977 CALL TUBE_DISPLAY_BY_CLOCK
+1 978
0308 +1 979 TUBE_PROCESS_RETURN:
0308 0200CB +1 980 LJMP CLOCK_TASK_PROCESS_TUBE_PROCESS_RETURN
+1 981 ;RET return by youself
+1 982
030B +1 983 TUBE_CHARACTER_TABLE:
030B 28 +1 984 DB 00101000B ;0
030C EB +1 985 DB 11101011B ;1
030D 32 +1 986 DB 00110010B ;2
030E A2 +1 987 DB 10100010B ;3
030F E1 +1 988 DB 11100001B ;4
0310 A4 +1 989 DB 10100100B ;5
0311 24 +1 990 DB 00100100B ;6
0312 EA +1 991 DB 11101010B ;7
0313 20 +1 992 DB 00100000B ;8
0314 A0 +1 993 DB 10100000B ;9
0315 60 +1 994 DB 01100000B ;A
0316 25 +1 995 DB 00100101B ;b
0317 3C +1 996 DB 00111100B ;C
0318 23 +1 997 DB 00100011B ;d
0319 34 +1 998 DB 00110100B ;E
031A 74 +1 999 DB 01110100B ;F
031B F7 +1 1000 DB 11110111B ;-
031C FF +1 1001 DB 11111111B ;
1002
1003 ;$include (..\LCD\LCD.inc)
+1 1004 ;LCD part
+1 1005 ;LCD initialization
031D +1 1006 LCD_INITIAL:
031D C290 +1 1007 CLR DEFINE_LCD_IO_RS
031F C291 +1 1008 CLR DEFINE_LCD_IO_RW
+1 1009
0321 7803 +1 1010 MOV R0,#0x03
+1 1011
+1 1012 ;Initial
0323 +1 1013 LCD_INITIAL_LOOP_A:
0323 D292 +1 1014 SETB DEFINE_LCD_IO_EN
A51 MACRO ASSEMBLER MAIN 04/19/2009 02:07:50 PAGE 17
+1 1015
0325 C297 +1 1016 CLR DEFINE_LCD_IO_DATA7
0327 C296 +1 1017 CLR DEFINE_LCD_IO_DATA6
0329 D295 +1 1018 SETB DEFINE_LCD_IO_DATA5
032B D294 +1 1019 SETB DEFINE_LCD_IO_DATA4
+1 1020
032D C292 +1 1021 CLR DEFINE_LCD_IO_EN
+1 1022
032F 71D4 +1 1023 CALL DELAY_5MS
0331 D8F0 +1 1024 DJNZ R0,LCD_INITIAL_LOOP_A
+1 1025
+1 1026 ;Function setting
0333 7428 +1 1027 MOV A,#00101000B
0335 7196 +1 1028 CALL LCD_8BIT_SEND
+1 1029
+1 1030 ;Load cusotmer font
0337 715E +1 1031 CALL LCD_LOAD_FONT
0339 C290 +1 1032 CLR DEFINE_LCD_IO_RS
+1 1033
+1 1034 ;Cursor or display shift
033B 741E +1 1035 MOV A,#00011110B
033D 7196 +1 1036 CALL LCD_8BIT_SEND
+1 1037
+1 1038 ;Display ON/OFF control
033F 740C +1 1039 MOV A,#000001100B
0341 7196 +1 1040 CALL LCD_8BIT_SEND
+1 1041
+1 1042 ;Entry mode setting
0343 7406 +1 1043 MOV A,#00000110B
0345 7196 +1 1044 CALL LCD_8BIT_SEND
+1 1045
+1 1046 ;Return home
0347 7402 +1 1047 MOV A,#00000010B
0349 7196 +1 1048 CALL LCD_8BIT_SEND
+1 1049
+1 1050 ;Clear display
034B 7171 +1 1051 CALL LCD_CLEAR
034D 7184 +1 1052 CALL LCD_CLEAR_LINE_0
034F 718D +1 1053 CALL LCD_CLEAR_LINE_1
+1 1054
+1 1055 ;Background light
0351 C293 +1 1056 CLR DEFINE_LCD_IO_BL
+1 1057
0353 900499 +1 1058 MOV DPTR,#TABLE_STR_WELCOME
0356 71B1 +1 1059 CALL LCD_OUTPUT_TO_LINE_0
+1 1060
0358 9004C2 +1 1061 MOV DPTR,#TABLE_STR_LED_MODULE
035B 71C8 +1 1062 CALL LCD_OUTPUT_TO_LINE_1
035D 22 +1 1063 RET
+1 1064
035E +1 1065 LCD_LOAD_FONT:
035E 7440 +1 1066 MOV A,#01000000B
0360 7196 +1 1067 CALL LCD_8BIT_SEND
+1 1068
0362 900437 +1 1069 MOV DPTR,#TABLE_CUSTOMER_FONT
0365 7F40 +1 1070 MOV R7,#0x40
+1 1071
0367 D290 +1 1072 SETB DEFINE_LCD_IO_RS
+1 1073
0369 +1 1074 LCD_LOAD_FONT_LOOP:
+1 1075
0369 E4 +1 1076 CLR A
036A 93 +1 1077 MOVC A,@A+DPTR
036B 7196 +1 1078 CALL LCD_8BIT_SEND
+1 1079
036D A3 +1 1080 INC DPTR
A51 MACRO ASSEMBLER MAIN 04/19/2009 02:07:50 PAGE 18
036E DFF9 +1 1081 DJNZ R7,LCD_LOAD_FONT_LOOP
0370 22 +1 1082 RET
+1 1083
0371 +1 1084 LCD_CLEAR:
0371 C290 +1 1085 CLR DEFINE_LCD_IO_RS
0373 7401 +1 1086 MOV A,#00000001B
0375 7196 +1 1087 CALL LCD_8BIT_SEND
+1 1088
+1 1089 ;Delay
0377 75F0FF +1 1090 MOV B,#0xFF
037A D5F0FD +1 1091 DJNZ B,$
+1 1092
037D 75F0FF +1 1093 MOV B,#0xFF
0380 D5F0FD +1 1094 DJNZ B,$
0383 22 +1 1095 RET
+1 1096
0384 +1 1097 LCD_CLEAR_LINE_0:
0384 900477 +1 1098 MOV DPTR,#TABLE_STR_CLEAR_0
0387 7480 +1 1099 MOV A,#10000000B
0389 0203B3 +1 1100 LJMP LCD_OUTPUT_TO_LINE_0_START
038C 22 +1 1101 RET
+1 1102
038D +1 1103 LCD_CLEAR_LINE_1:
038D 900488 +1 1104 MOV DPTR,#TABLE_STR_CLEAR_1
0390 74C0 +1 1105 MOV A,#11000000B
0392 0203B3 +1 1106 LJMP LCD_OUTPUT_TO_LINE_0_START
0395 22 +1 1107 RET
+1 1108
0396 +1 1109 LCD_8BIT_SEND:
0396 F5F0 +1 1110 MOV B,A
0398 7A02 +1 1111 MOV R2,#0x02
+1 1112
039A +1 1113 LCD_4BIT_SEND:
039A D292 +1 1114 SETB DEFINE_LCD_IO_EN
039C 54F0 +1 1115 ANL A,#11110000B
039E 5390
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -