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

📄 ddisp.lst

📁 多个仿真例子
💻 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:	DDISP.ASM
	Object File:	DDISP.HEX
	List File:	DDISP.LST



 Line  I  Addr  Code            Source

    1:				;该程序实现在六个数码管上显示123456,显示停留5秒钟
    2:				;然后以0.5秒为间隔闪动5次,不断循环。
    3:				;显示方式为动态显示
    4:		N      8000	LED1	EQU	8000H	;数码管段驱动器的地址
    5:		N      9000	LED2	EQU	9000H	;数码管位驱动器的地址
    6:		N      0030	BUFFER	EQU	30H	;显示缓冲区首地址
    7:		N	 00	FLASH	BIT	00H	;闪烁标志
    8:		N      0000		ORG	0
    9:	  0000	02 00 30		LJMP	START
   10:		N      000B		ORG	0BH
   11:	  000B	02 00 5F		LJMP	DISP
   12:		N      0030		ORG	30H
   13:	  0030	75 81 60	START:	MOV	SP,#60H
   14:	  0033	75 89 01		MOV	TMOD,#01H	;设T0为方式1
   15:	  0036	75 8C D8		MOV	TH0,#0D8H	;10ms定时初值
   16:	  0039	75 8A F0		MOV	TL0,#0F0H
   17:	  003C	D2 A9			SETB	ET0		;允许T0中断
   18:	  003E	D2 AF			SETB	EA		;开CPU总中断
   19:	  0040	D2 8C			SETB	TR0		;启动T0计数
   20:	  0042	D2 00			SETB	FLASH		;使显示常亮
   21:	  0044	78 30			MOV	R0,#BUFFER
   22:	  0046	7A 06			MOV	R2,#6		;显示缓冲区单元数
   23:	  0048	74 01			MOV	A,#1
   24:	  004A	F6		LOOP1:	MOV	@R0,A		;给显示缓冲区赋值
   25:	  004B	04			INC	A
   26:	  004C	08			INC	R0
   27:	  004D	DA FB			DJNZ	R2,LOOP1
   28:	  004F	12 00 DC	LOOP:	LCALL	DELAY5S		;延时5秒钟
   29:	  0052	7B 0A			MOV	R3,#10		;闪烁10次
   30:	  0054	12 00 CD	LL1:	LCALL	DELAY		;延时0.5秒
   31:	  0057	B2 00			CPL	FLASH		;闪烁标志取反实现显示的闪烁
   32:	  0059	DB F9			DJNZ	R3,LL1
   33:	  005B	D2 00			SETB	FLASH		;闪烁标志置1,实现显示常亮
   34:	  005D	80 F0			SJMP	LOOP
   35:				;T0中断服务程序,实现每10ms一次的定时动态显示功能
   36:				;当FLASH标志为1时,将显示缓冲区的16进制数显示出来
   37:				;当FLASH标志为0时,熄灭所有显示器
   38:				;使用寄存器为A、R0-R6和DPTR
   39:	  005F	C0 D0		DISP:	PUSH	PSW
   40:	  0061	C0 E0			PUSH	ACC
   41:	  0063	C0 83			PUSH	DPH
   42:	  0065	C0 82			PUSH	DPL
   43:	  0067	D2 D3			SETB	RS0		;选择1区工作寄存器

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  0069	C2 D4			CLR	RS1
   45:	  006B	C2 8C			CLR	TR0		;停止T0计数
   46:	  006D	75 8C D8		MOV	TH0,#0D8H	;10ms定时初值
   47:	  0070	75 8A F0		MOV	TL0,#0F0H
   48:	  0073	D2 8C			SETB	TR0		;启动T0计数
   49:	  0075	78 30			MOV	R0,#BUFFER
   50:	  0077	79 FE			MOV	R1,#0FEH	;位码初值
   51:	  0079	7A 06			MOV	R2,#6		;一共有6个数码管
   52:	  007B	90 80 00		MOV	DPTR,#LED1	;送数码管段驱动器地址
   53:	  007E	AB 83			MOV	R3,DPH		;存段驱动器地址
   54:	  0080	AC 82			MOV	R4,DPL
   55:	  0082	90 90 00		MOV	DPTR,#LED2	;送数码管位驱动器地址
   56:	  0085	AD 83			MOV	R5,DPH		;存位驱动器地址
   57:	  0087	AE 82			MOV	R6,DPL
   58:	  0089	30 00 21		JNB	FLASH,DISP2	;若闪烁标志为0,则转移
   59:	  008C	E6		DISP1:	MOV	A,@R0		;取要显示数据
   60:	  008D	90 00 B6		MOV	DPTR,#TAB	;指向显示段码的码表
   61:	  0090	93			MOVC	A,@A+DPTR	;查表将需要显示的数据变换为显示段码
   62:	  0091	8B 83			MOV	DPH,R3		;恢复段驱动器地址
   63:	  0093	8C 82			MOV	DPL,R4
   64:	  0095	F0			MOVX	@DPTR,A		;段码送数码管段驱动器
   65:	  0096	E9			MOV	A,R1		;取显示位码
   66:	  0097	8D 83			MOV	DPH,R5		;恢复位驱动器地址
   67:	  0099	8E 82			MOV	DPL,R6
   68:	  009B	F0			MOVX	@DPTR,A		;点亮一个数码管
   69:	  009C	23			RL	A		;指向下一位数码管
   70:	  009D	F9			MOV	R1,A		;存位码
   71:	  009E	08			INC	R0		;指向下一个要显示的数据
   72:	  009F	12 00 C6		LCALL	D1MS		;点亮数码管1ms
   73:	  00A2	DA E8			DJNZ	R2,DISP1	;没有显示完则继续
   74:	  00A4	D0 82		DISP3:	POP	DPL
   75:	  00A6	D0 83			POP	DPH
   76:	  00A8	D0 E0			POP	ACC
   77:	  00AA	D0 D0			POP	PSW
   78:	  00AC	32			RETI
   79:	  00AD	8D 83		DISP2:	MOV	DPH,R5		;恢复位驱动器地址
   80:	  00AF	8E 82			MOV	DPL,R6
   81:	  00B1	74 FF			MOV	A,#0FFH
   82:	  00B3	F0			MOVX	@DPTR,A		;熄灭数码管
   83:	  00B4	80 EE			SJMP	DISP3
   84:	  00B6	3F 06 5B 4F	TAB:	DB	3FH,06H,5BH,4FH,66H,6DH,7DH,07H
	  00BA	66 6D 7D 07
   85:	  00BE	7F 6F 77 7C		DB	7FH,6FH,77H,7CH,39H,5EH,79H,71H
	  00C2	39 5E 79 71
   86:				;延时1ms子程序
   87:				;使用寄存器R7
   88:	  00C6	7F FA		D1MS:	MOV	R7,#250
   89:	  00C8	00		D1MS1:	NOP
   90:	  00C9	00			NOP
   91:	  00CA	DF FC			DJNZ	R7,D1MS1
   92:	  00CC	22			RET
   93:				;延时0.5秒子程序
   94:				;使用寄存器:R5、R6和R7
   95:	  00CD	7D 02		DELAY:	MOV	R5,#2		;延时0.5秒子程序
   96:	  00CF	7E FA		D1:	MOV	R6,#250
   97:	  00D1	7F FA		D2:	MOV	R7,#250

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

   98:	  00D3	00		D3:	NOP
   99:	  00D4	00			NOP
  100:	  00D5	DF FC			DJNZ	R7,D3
  101:	  00D7	DE F8			DJNZ	R6,D2
  102:	  00D9	DD F4			DJNZ	R5,D1
  103:	  00DB	22			RET
  104:				;延时5秒子程序
  105:				;使用寄存器:R4
  106:	  00DC	7C 0A		DELAY5S:MOV	R4,#10		;延时5秒子程序
  107:	  00DE	12 00 CD	DD1:	LCALL	DELAY
  108:	  00E1	DC FB			DJNZ	R4,DD1
  109:	  00E3	22			RET
  110:					END
  111:
  112:
  113:





                     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
BUFFER				  NUMBER    0030	   6
CY				  BIT	      D7
D1				  CODE	    00CF	  96
D1MS				  CODE	    00C6	  88
D1MS1				  CODE	    00C8	  89
D2				  CODE	    00D1	  97
D3				  CODE	    00D3	  98
DD1				  CODE	    00DE	 107
DELAY				  CODE	    00CD	  95
DELAY5S				  CODE	    00DC	 106
DISP				  CODE	    005F	  39
DISP1				  CODE	    008C	  59
DISP2				  CODE	    00AD	  79
DISP3				  CODE	    00A4	  74
DPH				  DATA	      83
DPL				  DATA	      82
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
FLASH				  BIT	      00	   7
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
LED1				  NUMBER    8000	   4
LED2				  NUMBER    9000	   5
LL1				  CODE	    0054	  30
LOOP				  CODE	    004F	  28
LOOP1				  CODE	    004A	  24
OV				  BIT	      D2
P				  BIT	      D0
P0				  DATA	      80
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PS				  BIT	      BC

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 5



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
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
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
START				  CODE	    0030	  13
T0				  BIT	      B4
T1				  BIT	      B5
TAB				  CODE	    00B6	  84
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

⌨️ 快捷键说明

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