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

📄 lcd1303.lst

📁 51单片机开发入门与典型实例
💻 LST
字号:
A51 MACRO ASSEMBLER  LCD1303                                                              01/07/2007 20:57:10 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN LCD1303.OBJ
ASSEMBLER INVOKED BY: C:\Keil7.06\C51\BIN\A51.EXE LCD1303.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;文件名:LCD1303.ASM 
                       2     ;程序功能:显示字符串
  00B5                 3         RS  bit P3.5
  00B6                 4         RW  bit P3.6
  00B7                 5         E   bit P3.7
  0090                 6         LCD EQU P1                                     
                       7     
0000                   8      MAIN:                  ;主程序
0000 1110              9        ACALL INIT_LCD       ;调用初始化子程序
                      10     
0002 759081           11        MOV    LCD,#81H      ;写入显示起始地址
0005 1125             12        ACALL  WR_COMM       ;调用写指令子程序
0007 900057           13        MOV    DPTR,#LINE    ;字符串地址送入DPTR
000A 7806             14        MOV    R0,#6         ;字符串的字符数
000C 114B             15        ACALL  DISP          ;调用查表子程序
000E 80FE             16        JMP   $              ;动态停机                   
                      17     
0010                  18      INIT_LCD:              ;LCM初始化设定
0010 759001           19        MOV   LCD,#00000001B ;清屏并光标复位
0013 1125             20        ACALL WR_COMM        ;调用写指令子程序 
0015 759038           21        MOV   LCD,#00111000B;设置8位、2行、5x7点阵 
0018 1125             22        ACALL WR_COMM        ;调用写指令子程序 
001A 75900F           23        MOV   LCD,#00001111B ;显示器开,光标允许闪烁
001D 1125             24        ACALL WR_COMM        ;调用写指令子程序
001F 759006           25        MOV   LCD,#00000110B ;文字不动,光标自动右移 
0022 1125             26        ACALL WR_COMM        ;调用写指令子程序       
0024 22               27        RET                                           
                      28     
0025                  29      WR_COMM:               ;写指令子程序
0025 C2B5             30        CLR   RS             ;RS=0,选择指令寄存器
0027 C2B6             31        CLR   RW             ;RW=0,选择写模式
0029 C2B7             32        CLR   E              ;E=0,禁止读/写LCM
002B 1130             33        ACALL CHECK_BF       ;调用判LCM忙碌子程序
002D D2B7             34        SETB  E              ;E=1,允许读/写LCM
002F 22               35        RET                                              
                      36     
0030                  37      CHECK_BF:             ;判断是否忙碌子程序
0030 7590FF           38        MOV  LCD, #0FFH     ;此时不接受外来指令
0033 C2B5             39        CLR  RS             ;RS=0,选择指令寄存器
0035 D2B6             40        SETB RW             ;RW=1,选择读模式
0037 C2B7             41        CLR  E              ;E=0,禁止读/写LCM
0039 00               42        NOP                 ;延时1微秒
003A D2B7             43        SETB E              ;E=1,允许读/写LCM
003C 2097F1           44        JB  LCD.7,CHECK_BF  ;忙碌循环等待 
003F 22               45        RET                                            
                      46     
0040                  47      WR_DATA:               ;写数据子程序
0040 D2B5             48        SETB RS              ;RS=1,选择数据寄存器
0042 C2B6             49        CLR RW               ;RW=0,选择写模式
0044 C2B7             50        CLR E                ;E=0,禁止读/写LCM
0046 1130             51        ACALL CHECK_BF       ;调用判断忙碌子程序
0048 D2B7             52        SETB E               ;E=1,允许读/写LCM
004A 22               53        RET                                            
                      54        
004B                  55      DISP:                  ;查表显示子程序
004B 7900             56              MOV   R1,#0         ;查表地址初始值
004D E9               57      NEXT: MOV   A,R1       ;将表地址初值赋予A
004E 93               58         MOVC  A,@A+DPTR     ;查表将字符串内容送入A
A51 MACRO ASSEMBLER  LCD1303                                                              01/07/2007 20:57:10 PAGE     2

004F F590             59         MOV   LCD,A         ;将字符串内容送入LCD
0051 09               60         INC   R1            ;地址值加1
0052 1140             61         ACALL WR_DATA       ;调用写入数据子程序
0054 D8F7             62         DJNZ  R0,NEXT       ;判断查表是否6次?
0056 22               63         RET                 ;子程序返回              
                      64     
0057 48656C6C         65      LINE: DB 'Hello!',00H  ;字符串
005B 6F2100                  
                      66     
                      67        END                   ;程序结束
                             
A51 MACRO ASSEMBLER  LCD1303                                                              01/07/2007 20:57:10 PAGE     3

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


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

CHECK_BF . . . . .  C ADDR   0030H   A   
DISP . . . . . . .  C ADDR   004BH   A   
E. . . . . . . . .  B ADDR   00B0H.7 A   
INIT_LCD . . . . .  C ADDR   0010H   A   
LCD. . . . . . . .  D ADDR   0090H   A   
LINE . . . . . . .  C ADDR   0057H   A   
MAIN . . . . . . .  C ADDR   0000H   A   
NEXT . . . . . . .  C ADDR   004DH   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RS . . . . . . . .  B ADDR   00B0H.5 A   
RW . . . . . . . .  B ADDR   00B0H.6 A   
WR_COMM. . . . . .  C ADDR   0025H   A   
WR_DATA. . . . . .  C ADDR   0040H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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