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

📄 ex9-10.lst

📁 《单片机原理实用教程——基于Proteus虚拟仿真》一书的配套光盘
💻 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:	EX9-10.ASM
	Object File:	EX9-10.HEX
	List File:	EX9-10.LST



 Line  I  Addr  Code            Source

    1:		N      0050	COM EQU 50H ; LCD指令寄存器
    2:		N      0051	DAT EQU 51H ; LCD数据寄存器
    3:
    4:		B      00A1	RS EQU P2.1 ; LCD寄存器选择信号
    5:		B      00A2	RW EQU P2.2 ; LCD读/写选择信号
    6:		B      00A3	E EQU P2.3  ; LCD使能信号
    7:
    8:		N      0000	        ORG 0000H
    9:	  0000	02 00 30	        LJMP MAIN       ;主程序入口
   10:		N      0030	        ORG 0030H       ;主程序
   11:	  0030			MAIN:
   12:	  0030	75 81 60	        MOV SP,#60H     ;主程序
   13:	  0033	12 00 6B	        LCALL INT       ;调LCD间接控制方式下的初始化子程序
   14:	  0036	75 50 01			MOV COM,#01H  ;LCd清0命令
   15:	  0039	12 00 BD	   		LCALL PR1     ;调写指令代码子程序
   16:	  003C	75 50 06	   		MOV COM,#06H  ;输入方式命令,光标右移
   17:	  003F	12 00 BD	   		LCALL PR1     ;调写指令代码子程序
   18:	  0042	75 50 80	   		MOV COM,#080H ;设置DDRAM地址
   19:	  0045	12 00 BD	   		LCALL PR1     ;调写指令代码子程序
   20:	  0048	90 00 5B	   		MOV DPTR,#TAB ;DPTR指向显示字符表首地址
   21:	  004B	7A 10		   		MOV R2,#10H	  ;共显示16字符
   22:	  004D	7B 00		   		MOV R3,#00H
   23:	  004F	EB		WRIN:	MOV A,R3
   24:	  0050	93		   		MOVC A,@A+DPTR ;取出显示字符
   25:	  0051	F5 51		   		MOV DAT,A
   26:	  0053	12 00 DF	   		LCALL PR2     ;调写显示数据子程序
   27:	  0056	0B		   		INC R3
   28:	  0057	DA F6		   		DJNZ R2,WRIN
   29:	  0059	80 FE				SJMP $
   30:	  005B	48 65 6C 6C	TAB: 	DB "Hello Everybody!";
	  005F	6F 20 45 76
	  0063	65 72 79 62
	  0067	6F 64 79 21
   31:
   32:
   33:				;LCD 间接控制方式下的初始化子程序
   34:	  006B	12 00 9D	INT: 	LCALL DELAY ; 调延时子程序
   35:	  006E	75 80 38			MOV P0,#38H ; 工作方式设置指令代码
   36:	  0071	C2 A1				CLR RS      ; RS=0
   37:	  0073	C2 A2				CLR RW      ; R/W=0
   38:	  0075	7A 03				MOV R2,#03  ; 循环量=3
   39:	  0077	D2 A3		INTT1: 	SETB E ; E=1
   40:	  0079	C2 A3				CLR E         ; E=0

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   41:	  007B	DA FA				DJNZ R2,INTT1
   42:	  007D	75 80 38			MOV P0,#38H ; 设置工作方式*
   43:	  0080	D2 A3				SETB E      ; E=1
   44:	  0082	C2 A3				CLR E       ; E=0
   45:	  0084	75 50 38			MOV COM,#38H ; 设置工作方式
   46:	  0087	12 00 BD			LCALL PR1
   47:	  008A	75 50 01			MOV COM,#01H ; 清屏
   48:	  008D	12 00 BD			LCALL PR1
   49:	  0090	75 50 06			MOV COM,#06H ; 设置输入方式
   50:	  0093	12 00 BD			LCALL PR1
   51:	  0096	75 50 0E			MOV COM,#0EH ; 设置显示方式
   52:	  0099	12 00 BD			LCALL PR1
   53:	  009C	22				RET
   54:
   55:	  009D	7E 0F		DELAY:	MOV R6,#0FH ; 延时子程序
   56:	  009F	7F 10		DELAY2:	MOV R7,#10H
   57:	  00A1	00		DELAY1: NOP
   58:	  00A2	DF FD				DJNZ R7,DELAY1
   59:	  00A4	DE F9				DJNZ R6,DELAY2
   60:	  00A6	22				RET
   61:
   62:				;LCD 间接控制方式的驱动子程序如下
   63:
   64:				;1 读BF和AC值
   65:	  00A7	C0 E0		PR0: 	PUSH ACC
   66:	  00A9	75 80 FF		    MOV P0,#0FFH ; P0置位, 准备读
   67:	  00AC	C2 A1			    CLR RS       ; RS=0
   68:	  00AE	D2 A2			    SETB RW      ; R/W=1
   69:	  00B0	D2 A3			    SETB E       ; E=1
   70:	  00B2	12 00 9D		    LCALL DELAY
   71:	  00B5	85 80 50		    MOV COM,P0   ; 读BF和AC6-4值
   72:	  00B8	C2 A3			    CLR E        ; E=0
   73:	  00BA	D0 E0			    POP ACC
   74:	  00BC	22			    RET
   75:
   76:				;2 写指令代码子程序
   77:	  00BD	C0 E0		PR1: 	PUSH ACC
   78:	  00BF	C2 A1			    CLR RS    ; RS=0
   79:	  00C1	D2 A2			    SETB RW   ; R/W=1
   80:	  00C3	75 80 FF	PR11:	MOV P0,#0FFH; P0置位, 准备读
   81:	  00C6	D2 A3			    SETB E    ; E=1
   82:	  00C8	12 00 9D		    LCALL DELAY
   83:	  00CB	00			    NOP
   84:	  00CC	E5 80			    MOV A,P0
   85:	  00CE	C2 A3			    CLR E
   86:	  00D0	20 E7 F0		    JB ACC.7,PR11;BF=1?
   87:	  00D3	C2 A2			    CLR RW    ; R/W=0
   88:	  00D5	85 50 80		    MOV P0,COM
   89:	  00D8	D2 A3			    SETB E    ; E=1
   90:	  00DA	C2 A3			    CLR E     ; E=0; E=0
   91:	  00DC	D0 E0			    POP ACC
   92:	  00DE	22			    RET
   93:
   94:				;3 写显示数据子程序
   95:	  00DF	C0 E0		PR2:	PUSH ACC
   96:	  00E1	C2 A1		    	CLR RS    ; RS=0

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

   97:	  00E3	D2 A2		    	SETB RW   ; R/W=1
   98:	  00E5	75 80 FF	PR21:	MOV P0,#0FFH
   99:	  00E8	D2 A3		    	SETB E    ; E=1
  100:	  00EA	12 00 9D	    	LCALL DELAY
  101:	  00ED	E5 80		    	MOV A,P0  ; 读BF和AC6-4值
  102:	  00EF	C2 A3		    	CLR E     ; E=0
  103:	  00F1	20 E7 F1	    	JB ACC.7,PR21
  104:	  00F4	D2 A1		    	SETB RS
  105:	  00F6	C2 A2		    	CLR RW
  106:	  00F8	85 51 80	    	MOV P0,DAT; 写入数据高4位
  107:	  00FB	D2 A3		    	SETB E    ; RS=1
  108:	  00FD	C2 A3		    	CLR E     ; R/W=0
  109:	  00FF	D0 E0		    	POP ACC
  110:	  0101	22		    	RET
  111:
  112:				;4 读显示数据子程序
  113:	  0102	C0 E0		PR3:	PUSH ACC
  114:	  0104	C2 A1		    	CLR RS    ; RS=0
  115:	  0106	D2 A2		    	SETB RW   ; R/W=1
  116:	  0108	75 80 FF	PR31:	MOV P0,#0FFH ; P0置位, 准备读
  117:	  010B	D2 A3		    	SETB E    ; E=1
  118:	  010D	12 00 9D	    	LCALL DELAY
  119:	  0110	E5 80		    	MOV A,P0  ; 读BF和AC6-4值
  120:	  0112	C2 A3		    	CLR E     ; E=0
  121:	  0114	20 E7 F1	    	JB ACC.7,PR31
  122:	  0117	D2 A1		    	SETB RS   ; E=1
  123:	  0119	D2 A2		    	SETB RW   ; R/W=1
  124:	  011B	75 80 FF	    	MOV P0,#0FFH ; 读数据
  125:	  011E	D2 A3		    	SETB E    ; E=1
  126:	  0120	85 80 51	    	MOV DAT,P0
  127:	  0123	C2 A3		    	CLR E     ; E=0
  128:	  0125	D0 E0		    	POP ACC
  129:	  0127	22		    	RET
  130:				    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
COM				  NUMBER    0050	   1
CY				  BIT	      D7
DAT				  NUMBER    0051	   2
DELAY				  CODE	    009D	  55
DELAY1				  CODE	    00A1	  57
DELAY2				  CODE	    009F	  56
DPH				  DATA	      83
DPL				  DATA	      82
E				  NUMBER    00A3	   6
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
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT				  CODE	    006B	  34
INT0				  BIT	      B2
INT1				  BIT	      B3
INTT1				  CODE	    0077	  39
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
MAIN				  CODE	    0030	  11
OV				  BIT	      D2
P				  BIT	      D0
P0				  DATA	      80
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PR0				  CODE	    00A7	  65
PR1				  CODE	    00BD	  77
PR11				  CODE	    00C3	  80
PR2				  CODE	    00DF	  95
PR21				  CODE	    00E5	  98
PR3				  CODE	    0102	 113
PR31				  CODE	    0108	 116
PS				  BIT	      BC
PSW				  DATA	      D0
PT0				  BIT	      B9
PT1				  BIT	      BB

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 5



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
PX0				  BIT	      B8
PX1				  BIT	      BA
RB8				  BIT	      9A
RD				  BIT	      B7
REN				  BIT	      9C
RESET				  CODE	    0000
RI				  BIT	      98
RS				  NUMBER    00A1	   4
RS0				  BIT	      D3
RS1				  BIT	      D4
RW				  NUMBER    00A2	   5
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
T0				  BIT	      B4
T1				  BIT	      B5
TAB				  CODE	    005B	  30
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
WR				  BIT	      B6
WRIN				  CODE	    004F	  23

⌨️ 快捷键说明

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