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

📄 lcd.lst

📁 用PROTEUS仿真LCD-LM032L的汇编程序。
💻 LST
字号:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Cross Assembler   A S E M - 5 1   V 1.2
       =====================================================



	Source File:	LCD.ASM
	Object File:	LCD.HEX
	List File:	LCD.LST



 Line  I  Addr  Code            Source

    1:				; LCD Display Driver Demo.
    2:				; Timing code assumes 6MHz Clock
    3:				;
    4:				;***********************************************
    5:				;指定LCD地址 LCD Registers addresses
    6:				;LCD_CMD_WR	equ 0					;写命令寄存器
    7:				;LCD_DATA_WR	equ	1				;写数据寄存器
    8:				;LCD_BUSY_RD	equ	2				;读忙标志及RAM地址
    9:				;LCD_DATA_RD	equ	3				;读RAM数据
   10:
   11:				;指定LCD命令 LCD Commands
   12:				;LCD_CLS		equ	1         ;清屏
   13:				;LCD_HOME	equ	2						;光标归位
   14:				;LCD_SETMODE	equ	4				;输入模式
   15:				;LCD_SETVISIBLE	equ	8			;显示致能、禁能
   16:				;LCD_SHIFT	equ	16				;显示、光标移位
   17:				;LCD_SETFUNCTION	equ	32	;功能设定
   18:				;LCD_SETCGADDR	equ	64		;字符器RAM地址设定
   19:				;LCD_SETDDADDR	equ	128		;显示数据存储器RAM地址设定
   20:		N      0000	        ORG     00H
   21:	  0000	01 30		        AJMP    MAIN
   22:		N      0030	        ORG     30H
   23:				;主程序
   24:	  0030			MAIN:
   25:	  0030	75 81 5F	        MOV     SP,#5FH		;栈指针
   26:	  0033	11 45		        ACALL   INIT			;LCD初始化
   27:	  0035	11 6D		        ACALL   FIRST			;第一行显示位置
   28:	  0037	90 00 B4	        MOV     DPTR,#TABLE1;取要显示字符
   29:	  003A	11 60		        ACALL   DISPLAY		;显示
   30:	  003C	11 72		        ACALL   SECOND		;第二行显示位置
   31:	  003E	90 00 C9	        MOV     DPTR,#TABLE2;取要显示字符
   32:	  0041	11 60		        ACALL   DISPLAY		;显示
   33:	  0043	80 EB		        JMP     main			;返回
   34:				;初始化子程序
   35:	  0045			INIT:
   36:	  0045	11 AB		        ACALL   DELAY;
   37:
   38:	  0047	74 39		        MOV     A,#39H		;复位数据
   39:	  0049	11 77		        ACALL   WRCOM			;写命令寄存器
   40:	  004B	74 39		        MOV     A,#39H		;设定数据长度为8位
   41:	  004D	11 77		        ACALL   WRCOM			;写命令寄存器
   42:				;
   43:	  004F	74 08		        MOV     A,#08H		;设定LCD不显示光标,不闪烁字符

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  0051	11 77		        ACALL   WRCOM			;写命令寄存器
   45:				;
   46:	  0053	74 01		        MOV     A,#01H		;清屏
   47:	  0055	11 77		        ACALL   WRCOM			;
   48:				;
   49:	  0057	74 06		        MOV     A,#06H		;设定输入模式
   50:	  0059	11 77		        ACALL   WRCOM			;
   51:				;
   52:	  005B	74 0C		        MOV     A,#0CH		;显示致能,不显示光标
   53:	  005D	11 77		        ACALL   WRCOM			;
   54:	  005F	22		        RET
   55:				;显示子程序
   56:	  0060			DISPLAY:
   57:	  0060	79 00		        MOV     R1,#00H		;取第一个字符
   58:	  0062			NEXT:
   59:	  0062	E9		        MOV     A,R1			;
   60:	  0063	93		        MOVC    A,@A+DPTR	;
   61:	  0064	B4 23 01	        CJNE    A,#23H,DSP;判断是否显示完全部字符(“#”对应代码是0010 0011B=23H)
   62:	  0067	22		        RET
   63:	  0068			DSP:
   64:	  0068	11 88		        ACALL   WRDATA		;显示
   65:	  006A	09		        INC     R1				;下一字符
   66:	  006B	01 62		        AJMP    NEXT			;
   67:	  006D			FIRST:
   68:	  006D	74 80		        MOV     A,#10000000B;第一行显示位置
   69:	  006F	11 77		        ACALL   WRCOM			;
   70:	  0071	22		        RET
   71:				;
   72:	  0072			SECOND:
   73:	  0072	74 C0		        MOV     A,#11000000B;第一行显示位置
   74:	  0074	11 77		        ACALL   WRCOM;
   75:	  0076	22		        RET
   76:				;写命令寄存器
   77:	  0077			WRCOM:
   78:	  0077	11 99		        ACALL   BUSY;
   79:	  0079	75 A0 F8	        MOV     P2,#11111000B;
   80:	  007C	00		        NOP
   81:	  007D	D2 A2		        SETB    P2.2;
   82:	  007F	F5 80		        MOV     P0,A;
   83:	  0081	00		        NOP
   84:	  0082	C2 A2		        CLR     P2.2;
   85:	  0084	12 00 AB	        CALL   DELAY
   86:	  0087	22		        RET
   87:				;写数据寄存器
   88:	  0088			WRDATA:
   89:	  0088	11 99		        ACALL   BUSY;
   90:	  008A	75 A0 F9	        MOV     P2,#11111001B;
   91:	  008D	00		        NOP
   92:	  008E	D2 A2		        SETB    P2.2;
   93:	  0090	F5 80		        MOV     P0,A;
   94:	  0092	00		        NOP
   95:	  0093	C2 A2		        CLR     P2.2;
   96:	  0095	12 00 AB	        CALL   DELAY
   97:	  0098	22		        RET
   98:				;忙判断
   99:	  0099			BUSY:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  0099	C0 E0		        PUSH    ACC;
  101:	  009B			WAIT:
  102:	  009B	75 A0 FA	        MOV     P2,#11111010B;
  103:	  009E	00		        NOP
  104:	  009F	D2 A2		        SETB    P2.2;
  105:	  00A1	E5 80		        MOV     A,P0;
  106:	  00A3	20 E7 F5	        JB      ACC.7,WAIT;
  107:	  00A6	C2 A2		        CLR     P2.2;
  108:	  00A8	D0 E0		        POP     ACC
  109:	  00AA	22		        RET
  110:				;延时
  111:	  00AB			DELAY:
  112:	  00AB	7E 80		        MOV     R6,#80H
  113:	  00AD	7F 80		DL1:    MOV     R7,#80H
  114:	  00AF	DF FE		        DJNZ    R7,$
  115:	  00B1	DE FA		        DJNZ    R6,DL1
  116:	  00B3	22		        RET
  117:				;显示字符
  118:	  00B4	20 20 41 42	TABLE1:  DB      "  ABCDEFG  HIGKLMN  ";
	  00B8	43 44 45 46
	  00BC	47 20 20 48
	  00C0	49 47 4B 4C
	  00C4	4D 4E 20 20
  119:	  00C8	23		        DB      "#";
  120:	  00C9	20 20 4F 50	TABLE2:  DB      "  OPQ RST  UVW XYZ  ";
	  00CD	51 20 52 53
	  00D1	54 20 20 55
	  00D5	56 57 20 58
	  00D9	59 5A 20 20
  121:	  00DD	23		        DB      "#"
  122:				        END





                     register banks used:  ---

                     no errors




ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 4





	       L I S T   O F   S Y M B O L S
	       =============================


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
AC				  BIT	      D6
ACC				  DATA	      E0
B				  DATA	      F0
BUSY				  CODE	    0099	  99
CY				  BIT	      D7
DELAY				  CODE	    00AB	 111
DISPLAY				  CODE	    0060	  56
DL1				  CODE	    00AD	 113
DPH				  DATA	      83
DPL				  DATA	      82
DSP				  CODE	    0068	  63
EA				  BIT	      AF
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
FIRST				  CODE	    006D	  67
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INIT				  CODE	    0045	  35
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
MAIN				  CODE	    0030	  24
NEXT				  CODE	    0062	  58
OV				  BIT	      D2
P				  BIT	      D0
P0				  DATA	      80
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PS				  BIT	      BC
PSW				  DATA	      D0
PT0				  BIT	      B9
PT1				  BIT	      BB
PX0				  BIT	      B8
PX1				  BIT	      BA
RB8				  BIT	      9A
RD				  BIT	      B7
REN				  BIT	      9C
RESET				  CODE	    0000
RI				  BIT	      98

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 5



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SECOND				  CODE	    0072	  72
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
T0				  BIT	      B4
T1				  BIT	      B5
TABLE1				  CODE	    00B4	 118
TABLE2				  CODE	    00C9	 120
TB8				  BIT	      9B
TCON				  DATA	      88
TF0				  BIT	      8D
TF1				  BIT	      8F
TH0				  DATA	      8C
TH1				  DATA	      8D
TI				  BIT	      99
TIMER0				  CODE	    000B
TIMER1				  CODE	    001B
TL0				  DATA	      8A
TL1				  DATA	      8B
TMOD				  DATA	      89
TR0				  BIT	      8C
TR1				  BIT	      8E
TXD				  BIT	      B1
WAIT				  CODE	    009B	 101
WR				  BIT	      B6
WRCOM				  CODE	    0077	  77
WRDATA				  CODE	    0088	  88

⌨️ 快捷键说明

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