📄 lcd1602_8_test.lst
字号:
28 2 prints(cp1++); //指针后移一位 //▲效果是字符左移
29 2 //delay(5, 142, 251); //500ms-1us //▲清屏利用相对运动原理
30 2 if(*cp1=='\0')cp1=tab1; //达到字符串末尾,则重新指向开头
C51 COMPILER V7.06 LCD1602_8_TEST 07/30/2008 09:52:43 PAGE 6
31 2
32 2 lcd_pos(0,0); //位置不动
33 2 prints(cp0++); //指针后移一位 //▲效果是字符左移
34 2 delay(5, 142, 251); //500ms-1us //▲清屏利用相对运动原理
35 2 if(*cp0=='\0')cp0=tab0; //达到字符串末尾,则重新指向开头
36 2 }
37 1 }
38
39
C51 COMPILER V7.06 LCD1602_8_TEST 07/30/2008 09:52:43 PAGE 7
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION lcd_busy (BEGIN)
; SOURCE LINE # 44
; SOURCE LINE # 45
0000 ?C0003:
; SOURCE LINE # 46
; SOURCE LINE # 47
0000 C2A2 CLR ep
; SOURCE LINE # 48
0002 C2A0 CLR rs
; SOURCE LINE # 49
0004 D2A1 SETB rw
; SOURCE LINE # 50
0006 7580FF MOV io,#0FFH
; SOURCE LINE # 51
0009 D2A2 SETB ep
; SOURCE LINE # 52
000B 00 NOP
; SOURCE LINE # 53
000C 2087F1 JB bz,?C0003
; SOURCE LINE # 54
000F C2A2 CLR ep
; SOURCE LINE # 55
0011 22 RET
; FUNCTION lcd_busy (END)
; FUNCTION _lcd_wcmd (BEGIN)
; SOURCE LINE # 62
;---- Variable 'cmd' assigned to Register 'R7' ----
; SOURCE LINE # 63
; SOURCE LINE # 64
0000 120000 R LCALL lcd_busy
; SOURCE LINE # 65
0003 C2A0 CLR rs
; SOURCE LINE # 66
0005 C2A1 CLR rw
; SOURCE LINE # 67
0007 D2A2 SETB ep
; SOURCE LINE # 68
0009 8F80 MOV P0,R7
; SOURCE LINE # 69
000B C2A2 CLR ep
; SOURCE LINE # 70
000D 22 RET
; FUNCTION _lcd_wcmd (END)
; FUNCTION _lcd_wdat (BEGIN)
; SOURCE LINE # 77
;---- Variable 'Data' assigned to Register 'R7' ----
; SOURCE LINE # 78
; SOURCE LINE # 79
0000 120000 R LCALL lcd_busy
; SOURCE LINE # 80
0003 D2A0 SETB rs
; SOURCE LINE # 81
0005 C2A1 CLR rw
; SOURCE LINE # 82
0007 D2A2 SETB ep
; SOURCE LINE # 83
0009 8F80 MOV io,R7
C51 COMPILER V7.06 LCD1602_8_TEST 07/30/2008 09:52:43 PAGE 8
; SOURCE LINE # 84
000B C2A2 CLR ep
; SOURCE LINE # 85
000D 22 RET
; FUNCTION _lcd_wdat (END)
; FUNCTION _lcd_pos (BEGIN)
; SOURCE LINE # 92
;---- Variable 'x' assigned to Register 'R6' ----
0000 AE07 MOV R6,AR7
; SOURCE LINE # 93
; SOURCE LINE # 94
0002 EE MOV A,R6
0003 300004 R JNB y,?C0007
0006 44C0 ORL A,#0C0H
0008 8002 SJMP ?C0031
000A ?C0007:
; SOURCE LINE # 95
000A 4480 ORL A,#080H
000C ?C0031:
000C FF MOV R7,A
000D 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 96
0010 ?C0009:
0010 22 RET
; FUNCTION _lcd_pos (END)
; FUNCTION _prints (BEGIN)
; SOURCE LINE # 114
0000 8B00 R MOV string,R3
0002 8A00 R MOV string+01H,R2
0004 8900 R MOV string+02H,R1
; SOURCE LINE # 115
; SOURCE LINE # 118
;---- Variable 'i' assigned to Register 'R6' ----
0006 E4 CLR A
0007 FE MOV R6,A
0008 ?C0010:
0008 AB00 R MOV R3,string
000A AA00 R MOV R2,string+01H
000C A900 R MOV R1,string+02H
000E 8E82 MOV DPL,R6
0010 758300 MOV DPH,#00H
0013 120000 E LCALL ?C?CLDOPTR
0016 FF MOV R7,A
0017 6006 JZ ?C0013
0019 120000 R LCALL _lcd_wdat
001C 0E INC R6
001D 80E9 SJMP ?C0010
; SOURCE LINE # 119
001F ?C0013:
001F 22 RET
; FUNCTION _prints (END)
; FUNCTION lcd_init (BEGIN)
; SOURCE LINE # 126
; SOURCE LINE # 127
; SOURCE LINE # 128
0000 7F38 MOV R7,#038H
0002 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 129
0005 7F06 MOV R7,#06H
C51 COMPILER V7.06 LCD1602_8_TEST 07/30/2008 09:52:43 PAGE 9
0007 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 130
000A 7F0C MOV R7,#0CH
000C 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 131
000F 7F01 MOV R7,#01H
0011 020000 R LJMP _lcd_wcmd
; FUNCTION lcd_init (END)
; FUNCTION _delay (BEGIN)
; SOURCE LINE # 10
;---- Variable 'x' assigned to Register 'R7' ----
;---- Variable 'z' assigned to Register 'R3' ----
;---- Variable 'y' assigned to Register 'R5' ----
; SOURCE LINE # 11
; SOURCE LINE # 12
;---- Variable 'tempz' assigned to Register 'R3' ----
0000 ?C0017:
; SOURCE LINE # 13
;---- Variable 'tempy' assigned to Register 'R6' ----
0000 AE05 MOV R6,AR5
0002 ?C0020:
;---- Variable 'tempx' assigned to Register 'R4' ----
0002 AC07 MOV R4,AR7
0004 ?C0021:
0004 DCFE DJNZ R4,?C0021
0006 ?C0018:
0006 DEFA DJNZ R6,?C0020
0008 DBF6 DJNZ R3,?C0017
; SOURCE LINE # 14
000A 22 RET
; FUNCTION _delay (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 19
; SOURCE LINE # 20
; SOURCE LINE # 21
0000 7500FF R MOV cp0,#0FFH
0003 750000 R MOV cp0+01H,#HIGH tab0
0006 750000 R MOV cp0+02H,#LOW tab0
0009 7500FF R MOV cp1,#0FFH
000C 750000 R MOV cp1+01H,#HIGH tab1
000F 750000 R MOV cp1+02H,#LOW tab1
; SOURCE LINE # 22
0012 120000 R LCALL lcd_init
0015 ?C0024:
; SOURCE LINE # 24
; SOURCE LINE # 25
; SOURCE LINE # 26
0015 7F01 MOV R7,#01H
0017 120000 R LCALL _lcd_wcmd
; SOURCE LINE # 27
001A D200 R SETB ?_lcd_pos?BIT
001C 1F DEC R7
001D 120000 R LCALL _lcd_pos
; SOURCE LINE # 28
0020 AB00 R MOV R3,cp1
0022 0500 R INC cp1+02H
0024 E500 R MOV A,cp1+02H
0026 AA00 R MOV R2,cp1+01H
0028 7002 JNZ ?C0029
002A 0500 R INC cp1+01H
C51 COMPILER V7.06 LCD1602_8_TEST 07/30/2008 09:52:43 PAGE 10
002C ?C0029:
002C 14 DEC A
002D F9 MOV R1,A
002E 120000 R LCALL _prints
; SOURCE LINE # 30
0031 AB00 R MOV R3,cp1
0033 AA00 R MOV R2,cp1+01H
0035 A900 R MOV R1,cp1+02H
0037 120000 E LCALL ?C?CLDPTR
003A 7009 JNZ ?C0026
003C 7500FF R MOV cp1,#0FFH
003F 750000 R MOV cp1+01H,#HIGH tab1
0042 750000 R MOV cp1+02H,#LOW tab1
0045 ?C0026:
; SOURCE LINE # 32
0045 C200 R CLR ?_lcd_pos?BIT
0047 E4 CLR A
0048 FF MOV R7,A
0049 120000 R LCALL _lcd_pos
; SOURCE LINE # 33
004C AB00 R MOV R3,cp0
004E 0500 R INC cp0+02H
0050 E500 R MOV A,cp0+02H
0052 AA00 R MOV R2,cp0+01H
0054 7002 JNZ ?C0030
0056 0500 R INC cp0+01H
0058 ?C0030:
0058 14 DEC A
0059 F9 MOV R1,A
005A 120000 R LCALL _prints
; SOURCE LINE # 34
005D 7BFB MOV R3,#0FBH
005F 7D8E MOV R5,#08EH
0061 7F05 MOV R7,#05H
0063 120000 R LCALL _delay
; SOURCE LINE # 35
0066 AB00 R MOV R3,cp0
0068 AA00 R MOV R2,cp0+01H
006A A900 R MOV R1,cp0+02H
006C 120000 E LCALL ?C?CLDPTR
006F 70A4 JNZ ?C0024
0071 7500FF R MOV cp0,#0FFH
0074 750000 R MOV cp0+01H,#HIGH tab0
0077 750000 R MOV cp0+02H,#LOW tab0
; SOURCE LINE # 36
007A 8099 SJMP ?C0024
; FUNCTION main (END)
C51 COMPILER V7.06 LCD1602_8_TEST 07/30/2008 09:52:43 PAGE 11
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
_prints. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
string . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
_lcd_wcmd. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
cmd. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
cp0. . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
cp1. . . . . . . . . . . . . . . . . AUTO DATA PTR 0003H 3
_lcd_wdat. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
Data . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
_lcd_pos . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
y. . . . . . . . . . . . . . . . . . AUTO DATA BIT 0000H 1
lcd_init . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ep . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1
io . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
lcd_busy . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
bz . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0087H 1
rs . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
tab0 . . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 001FH 31
tab1 . . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 31
rw . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A1H 1
_delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
y. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
z. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0003H 1
tempx. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
tempy. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
tempz. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0003H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 250 ----
CONSTANT SIZE = 62 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 9
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -