⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 单片机学习的最好例子, 1.51多任务切换 2.红外解码 3.数码管扫描显示 4.1602LCD的现实,以及文字动画效果 5.系统构架,资源整合,菜单应用,按键板,其它更新中
💻 LST
📖 第 1 页 / 共 5 页
字号:
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 + -