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

📄 lcd1602.lst

📁 51单片机用汇编实例 包括ad
💻 LST
字号:
A51 MACRO ASSEMBLER  LCD1602                                                              05/22/2006 14:58:54 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN LCD1602.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE LCD1602.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;===============================================================
                       2     ; 文件名称: LCD1602.ASM
                       3     ; 功能描述:
                       4     ;===============================================================
  0095                 5     RSPIN   BIT  95H        ;P1.5
  0096                 6     RWPIN   BIT  96H        ;P1.6
  0097                 7     EPIN    BIT  97H        ;P1.7
                       8     
  0030                 9     XPOS    DATA 30H
  0031                10     YPOS    DATA 31H
                      11     
0000                  12             ORG 0000H
0000 020100           13             LJMP START
                      14     
0100                  15             ORG 0100H
0100 00               16     START:  NOP
0101 C297             17             CLR EPIN
0103 12017D           18             LCALL LCDINIT           ; 调用初始化程序
0106 7401             19     ST1:    MOV A, #01H
0108 120146           20             LCALL LCDWC
010B 7402             21             MOV A, #02H
010D 120146           22             LCALL LCDWC
0110 1201B5           23             LCALL DISPLAY           ; 调用显示子程序
0113 7DFF             24             MOV R5, #0FFH           ; 延时
0115 7EFF             25     ST2:    MOV R6, #0FFH
0117 12011E           26             LCALL DELAY
011A DDF9             27             DJNZ R5, ST2
011C 80E8             28             SJMP ST1
                      29     
                      30     ; 延时子程序
                      31     ; 入口参数: R6(增加延时)
                      32     ; 影响寄存器: R7
011E 7F0A             33     DELAY:  MOV R7, #10
0120 DFFE             34     DLAY1:  DJNZ R7, DLAY1
0122 DEFA             35             DJNZ R6, DELAY
0124 22               36             RET
                      37     
                      38     ; 忙状态位判断
0125                  39     LCDWAITIDLE:
0125 C0E0             40             PUSH ACC                ; 保护累加器 A
0127 7580FF           41             MOV P0, #0FFH
012A C295             42             CLR RSPIN
012C D296             43             SETB RWPIN
012E D297             44             SETB EPIN
0130 E580             45     LWT1:   MOV A, P0               ; 读取忙标志BF
0132 20E7FB           46             JB ACC.7, LWT1          ; BF 为1则等待
0135 C297             47             CLR EPIN
0137 D0E0             48             POP ACC
0139 22               49             RET
                      50     
                      51     ; 写指令子程序(不程序忙标志)
                      52     ; 入口参数: A (命令字节)
013A C295             53     LCDWCN: CLR RSPIN
013C C296             54             CLR RWPIN
013E F580             55             MOV P0, A
0140 D297             56             SETB EPIN
0142 00               57             NOP
0143 C297             58             CLR EPIN
A51 MACRO ASSEMBLER  LCD1602                                                              05/22/2006 14:58:54 PAGE     2

0145 22               59             RET
                      60     
                      61     ; 写指令子程序(查询忙标志)
                      62     ; 入口参数: A (命令字节)
0146 120125           63     LCDWC:  LCALL LCDWAITIDLE       ; 判断标志BF
0149 12013A           64             LCALL LCDWCN            ; 写指令
014C 22               65             RET
                      66     
                      67     ; 写数据子程序(查询忙标志)
                      68     ; 入口参数: A (数据字节)
014D 120125           69     LCDWD:  LCALL LCDWAITIDLE
0150 D295             70             SETB RSPIN
0152 C296             71             CLR RWPIN
0154 F580             72             MOV P0, A               ; 写数据
0156 D297             73             SETB EPIN
0158 00               74             NOP
0159 C297             75             CLR EPIN
015B 22               76             RET
                      77     
                      78     ; 指定显示坐标;
015C 53303F           79     LCDPOS: ANL XPOS, #3FH
015F 533103           80             ANL YPOS, #03H
0162 E531             81             MOV A, YPOS
0164 B40009           82             CJNE A, #00H, LPOS1
0167 E530             83             MOV A, XPOS             ;DDRAM地址设置 第1行
0169 4480             84             ORL A, #80H
016B 120146           85             LCALL LCDWC
016E 800C             86             SJMP LPOS2
0170 B40109           87     LPOS1:  CJNE A, #01H, LPOS2
0173 E530             88             MOV A, XPOS             ;DDRAM地址设置 第2行
0175 2440             89             ADD A, #40H
0177 4480             90             ORL A, #80H
0179 120146           91             LCALL LCDWC
017C 22               92     LPOS2:  RET
                      93     
                      94     ; LCD初始化子程序
017D                  95     LCDINIT:
017D 7E96             96             MOV R6, #150
017F 12011E           97             LCALL DELAY
0182 7438             98             MOV A, #38H             ; 总线8位, 两行显示, 5*7点阵字符体
0184 12013A           99             LCALL LCDWCN
                     100             
0187 7E32            101             MOV R6, #50
0189 12011E          102             LCALL DELAY
018C 7438            103             MOV A, #38H
018E 12013A          104             LCALL LCDWCN
                     105     
0191 7E32            106             MOV R6, #50
0193 12011E          107             LCALL DELAY
0196 7438            108             MOV A, #38H
0198 12013A          109             LCALL LCDWCN
                     110     
019B 7438            111             MOV A, #38H
019D 120146          112             LCALL LCDWC
01A0 7408            113             MOV A, #08H             ; 关闭显示, 光标消失, 闪烁禁止
01A2 120146          114             LCALL LCDWC
01A5 7401            115             MOV A, #01H             ; 清屏
01A7 120146          116             LCALL LCDWC
01AA 7406            117             MOV A, #06H             ; AC加1计数, 禁止滚动
01AC 120146          118             LCALL LCDWC
01AF 740E            119             MOV A, #0EH             ; 开显示
01B1 120146          120             LCALL LCDWC
01B4 22              121             RET
                     122             
                     123     ; LCD显示子程序
01B5                 124     DISPLAY:
A51 MACRO ASSEMBLER  LCD1602                                                              05/22/2006 14:58:54 PAGE     3

01B5 753000          125             MOV XPOS, #00H
01B8 753100          126     DPLY1:  MOV YPOS, #00H
01BB 12015C          127             LCALL LCDPOS            ; 指定显示坐标
01BE 90021A          128             MOV DPTR, #TAB1
01C1 E530            129             MOV A, XPOS
01C3 93              130             MOVC A, @A+DPTR         ; 指定显示数据
01C4 12014D          131             LCALL LCDWD
01C7 753101          132             MOV YPOS, #01H
01CA 12015C          133             LCALL LCDPOS            ; 在第2行显示
01CD 900238          134             MOV DPTR, #TAB2
01D0 E530            135             MOV A, XPOS
01D2 93              136             MOVC A, @A+DPTR
01D3 12014D          137             LCALL LCDWD
01D6 7D60            138             MOV R5, #060H           ; 延时
01D8 7EFF            139     DPLY3:  MOV R6, #0FFH
01DA 12011E          140             LCALL DELAY
01DD DDF9            141             DJNZ R5, DPLY3
01DF 0530            142             INC XPOS
01E1 E530            143             MOV A, XPOS
01E3 B410D2          144             CJNE A, #16, DPLY1
                     145     ;       MOV XPOS, #16
01E6 7418            146     DPLY2:  MOV A, #18H             ; 设置移到方式
01E8 120146          147             LCALL LCDWC
01EB 753100          148             MOV YPOS, #00H
01EE 12015C          149             LCALL LCDPOS
01F1 90021A          150             MOV DPTR, #TAB1
01F4 E530            151             MOV A, XPOS
01F6 93              152             MOVC A, @A+DPTR
01F7 12014D          153             LCALL LCDWD
01FA 753101          154             MOV YPOS, #01H
01FD 12015C          155             LCALL LCDPOS
0200 900238          156             MOV DPTR, #TAB2
0203 E530            157             MOV A, XPOS
0205 93              158             MOVC A, @A+DPTR
0206 12014D          159             LCALL LCDWD
0209 7D60            160             MOV R5, #060H
020B 7EFF            161     DPLY4:  MOV R6, #0FFH
020D 12011E          162             LCALL DELAY
0210 DDF9            163             DJNZ R5, DPLY4
0212 0530            164             INC XPOS
0214 E530            165             MOV A, XPOS
0216 B41ECD          166             CJNE A, #30, DPLY2
0219 22              167             RET
                     168     
                     169     ; 表1:  TD-NMC+   Xi'an Tang Du Crop.
                     170     ;        T   D   -   N   M   C   +           X   i   '   a   n
021A 54442D4E        171     TAB1: DB 54H,44H,2DH,4EH,4DH,43H,2BH,20H,20H,58H,69H,27H,61H,6EH,20H
021E 4D432B20                
0222 20586927                
0226 616E20                  
0229 54616E67        172           DB 54H,61H,6EH,67H,20H,44H,75H,20H,43H,72H,6FH,70H,2EH,20H,20H
022D 20447520                
0231 43726F70                
0235 2E2020                  
                     173     ;        T   a   n   g       D   u       C   r   o   p   .
                     174     
                     175     ; 表2:  www.tangdu.com  029-88375025
                     176     ;        w   w   w   .   t   a   n   g   d   u   .   c   o   m
0238 7777772E        177     TAB2: DB 77H,77H,77H,2EH,74H,61H,6EH,67H,64H,75H,2EH,63H,6FH,6DH,20H
023C 74616E67                
0240 64752E63                
0244 6F6D20                  
0247 20303239        178           DB 20H,30H,32H,39H,2DH,38H,38H,33H,37H,35H,30H,32H,35H,20H,20H
024B 2D383833                
024F 37353032                
0253 352020                  
A51 MACRO ASSEMBLER  LCD1602                                                              05/22/2006 14:58:54 PAGE     4

                     179     ;            0   2   9   -   8   8   3   7   5   0   2   5
                     180     
                     181             END
                             
A51 MACRO ASSEMBLER  LCD1602                                                              05/22/2006 14:58:54 PAGE     5

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
DELAY. . . . . . .  C ADDR   011EH   A   
DISPLAY. . . . . .  C ADDR   01B5H   A   
DLAY1. . . . . . .  C ADDR   0120H   A   
DPLY1. . . . . . .  C ADDR   01B8H   A   
DPLY2. . . . . . .  C ADDR   01E6H   A   
DPLY3. . . . . . .  C ADDR   01D8H   A   
DPLY4. . . . . . .  C ADDR   020BH   A   
EPIN . . . . . . .  B ADDR   0090H.7 A   
LCDINIT. . . . . .  C ADDR   017DH   A   
LCDPOS . . . . . .  C ADDR   015CH   A   
LCDWAITIDLE. . . .  C ADDR   0125H   A   
LCDWC. . . . . . .  C ADDR   0146H   A   
LCDWCN . . . . . .  C ADDR   013AH   A   
LCDWD. . . . . . .  C ADDR   014DH   A   
LPOS1. . . . . . .  C ADDR   0170H   A   
LPOS2. . . . . . .  C ADDR   017CH   A   
LWT1 . . . . . . .  C ADDR   0130H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
RSPIN. . . . . . .  B ADDR   0090H.5 A   
RWPIN. . . . . . .  B ADDR   0090H.6 A   
ST1. . . . . . . .  C ADDR   0106H   A   
ST2. . . . . . . .  C ADDR   0115H   A   
START. . . . . . .  C ADDR   0100H   A   
TAB1 . . . . . . .  C ADDR   021AH   A   
TAB2 . . . . . . .  C ADDR   0238H   A   
XPOS . . . . . . .  D ADDR   0030H   A   
YPOS . . . . . . .  D ADDR   0031H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -