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

📄 lcd1602_8_test.lst

📁 文件夹包含LCD1602的一些经常用到的驱动: ├─★★LCD1602四线驱动 ├─★LCD1602_8显示Mini Driver ├─★★LCD1602A_优化驱动 ├─★▲LCD1602滚
💻 LST
📖 第 1 页 / 共 2 页
字号:
  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 + -