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

📄 lcd1305.lst

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


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

LOC  OBJ            LINE     SOURCE

                       1      ;文件名:LCD1305.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 1140              9         ACALL  INIT_LCD    ;调用初始化子程序
0002 1110             10         ACALL  TEMP_BJ     ;显示温度标记"C"
                      11     
0004 1125             12         ACALL  STORE_DATA  ;将自定义字符存入CGRAM
0006 74CB             13         MOV  A,#0CBH       ;写入显示起始地址
0008 1153             14         ACALL  WR_COMM     ;调用写指令子程序
000A 7400             15         MOV  A,#00H        ;CGRAM内第0号图形
000C 1160             16         ACALL  WR_DATA     ;调用写数据指令子程序
000E 80FE             17         JMP   $            ;动态停机                   
                      18     
                      19      ;显示温度标记子程序
0010                  20       TEMP_BJ:
0010 74CB             21         MOV    A, #0CBH    ;设定第二行起始地址
0012 1153             22         ACALL  WR_COMM     ;调用写指令子程序
0014 900023           23         MOV    DPTR,#BJ    ;存代码表
0017 7900             24         MOV    R1 ,#0      ;使指针指到表中第一个码
0019 7802             25         MOV    R0 ,#2      ;取码次数
001B                  26      TP1:     
001B E9               27         MOV    A,R1        ;A为0
001C 93               28         MOVC   A,@A+DPTR   ;取码
001D 1160             29         ACALL  WR_DATA     ;调用写数据子程序
001F 09               30         INC    R1          ;R1值加1
0020 D8F9             31         DJNZ   R0,TP1      ;判断是否将代码读取完?
0022 22               32         RET      
0023                  33      BJ:                   ;代码表
0023 0043             34         DB  00H, "C"       ;                           
                      35     
                      36      ;将自定义字符写入LCD1602的CGRAM中
0025                  37       STORE_DATA:
0025 7440             38         MOV    A,#40H      ;指定CG RAM起始地址
0027 1153             39         ACALL  WR_COMM     ;将指令写入LCD
0029 7A08             40         MOV   R2,#08H      ;图形数据长度8个字节
002B 900038           41         MOV   DPTR,#TAB    ;存代码表
002E 7B00             42         MOV   R3,#00H      ;使指针指到表中第一个码
0030 EB               43       S_D: MOV  A,R3       ;A为0
0031 93               44         MOVC   A,@A+DPTR   ;读取表代码
0032 1160             45         ACALL  WR_DATA     ;调用写入数据指令
0034 0B               46         INC    R3          ;R3值加1
0035 DAF9             47         DJNZ   R2, S_D     ;判断是否将代码读取完?
0037 22               48         RET                ;
0038                  49       TAB:                 ;代码表
0038 0C12120C         50        DB  0CH,12H,12H,0CH
003C 00000000         51        DB  00H,00H,00H,00H                            
                      52     
                      53      ;初始化设置 
0040                  54      INIT_LCD:             ;LCD 接口初始化
0040 7401             55         MOV    A,#01H      ;清除 LCD 显示屏
0042 1153             56         ACALL  WR_COMM     ;调用写指令子程序
0044 1174             57         ACALL  DELAY1      ;延时5MS
0046 7438             58         MOV    A,#38H      ;设置8位、2行、5x7点阵
A51 MACRO ASSEMBLER  LCD1305                                                              01/07/2007 20:59:55 PAGE     2

0048 1153             59         ACALL  WR_COMM     ;调用写指令子程序
004A 1174             60         ACALL  DELAY1      ;延时5MS
004C 740C             61         MOV    A,#0CH      ;开显示屏
004E 1153             62         ACALL  WR_COMM     ;调用写指令子程序
0050 1174             63         ACALL  DELAY1      ;延时5MS   
0052 22               64         RET                                           
                      65     
0053                  66      WR_COMM:                     
0053 F590             67         MOV   P1,A         ;写入指令
0055 C2B5             68         CLR   RS           ;RS=0,选择指令寄存器
0057 C2B6             69         CLR   RW           ;RW=0,选择写模式
0059 D2B7             70         SETB  E            ;E=1,允许读/写LCM
005B 1174             71         ACALL DELAY1       ;延时5MS
005D C2B7             72         CLR   E            ;E=0,禁止读/写LCM
005F 22               73         RET                                           
                      74      ;写数据程序                      
0060                  75       WR_DATA:                  
0060 F590             76         MOV   P1,A         ;写入数据
0062 D2B5             77         SETB  RS           ;RS=1,选择数据寄存器
0064 C2B6             78         CLR    RW          ;RW=0,选择写模式
0066 D2B7             79         SETB   E           ;E=1,允许读/写LCM
0068 116F             80         ACALL  DE          ;延时0.5MS
006A C2B7             81         CLR    E           ;E=0,禁止读/写LCM
006C 116F             82         ACALL  DE          ;延时0.5MS
006E 22               83         RET                                            
                      84     
006F 7FFA             85      DE: MOV   R7,#250  ;延时0.5MS
0071 DFFE             86         DJNZ   R7,$
0073 22               87         RET                                           
                      88     
0074                  89      DELAY1:            ;延时5MS
0074 7E19             90         MOV    R6,#25
0076 7F64             91      DL2: MOV  R7,#100
0078 DFFE             92         DJNZ   R7,$
007A DEFA             93         DJNZ   R6,DL2
007C 22               94         RET                                             
                      95       
                      96         END                ;程序结束
                             
A51 MACRO ASSEMBLER  LCD1305                                                              01/07/2007 20:59:55 PAGE     3

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


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

BJ . . . . . . . .  C ADDR   0023H   A   
DE . . . . . . . .  C ADDR   006FH   A   
DELAY1 . . . . . .  C ADDR   0074H   A   
DL2. . . . . . . .  C ADDR   0076H   A   
E. . . . . . . . .  B ADDR   00B0H.7 A   
INIT_LCD . . . . .  C ADDR   0040H   A   
LCD. . . . . . . .  D ADDR   0090H   A   
MAIN . . . . . . .  C ADDR   0000H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RS . . . . . . . .  B ADDR   00B0H.5 A   
RW . . . . . . . .  B ADDR   00B0H.6 A   
STORE_DATA . . . .  C ADDR   0025H   A   
S_D. . . . . . . .  C ADDR   0030H   A   
TAB. . . . . . . .  C ADDR   0038H   A   
TEMP_BJ. . . . . .  C ADDR   0010H   A   
TP1. . . . . . . .  C ADDR   001BH   A   
WR_COMM. . . . . .  C ADDR   0053H   A   
WR_DATA. . . . . .  C ADDR   0060H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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