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

📄 4.lst

📁 我的大学单片机课程案例和ppt
💻 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:	4.ASM
	Object File:	4.HEX
	List File:	4.LST



 Line  I  Addr  Code            Source

    1:		N      0000		ORG	0h
    2:	  0000	01 30			AJMP	START
    3:		N      0030		ORG	30h
    4:	  0030	75 90 BF	START:	MOV	P1,#10111111B
    5:	  0033	75 A0 FF	SCANK:	MOV	P2,#0FFH
    6:	  0036	C2 A3			CLR	P2.3	;P2.3清0,扫描第1行
    7:	  0038	E5 A0			MOV	A,P2	;读键盘至A
    8:	  003A	54 07			ANL	A,#00000111B
    9:	  003C	64 07			XRL	A,#00000111B;判断A的低三位是否为1
   10:	  003E	60 21			JZ	SCANL2	;如果低三位为1,则无按键,转第二行扫描	LCALL	DELAY10MS;延时10ms(去抖延时)
   11:	  0040	E5 A0			MOV	A,P2	;读键盘至A
   12:	  0042	54 07			ANL	A,#00000111B
   13:	  0044	64 07			XRL	A,#00000111B;判断A的低三位是否为1
   14:	  0046	60 19			JZ	SCANL2	;如果低三位为1,则无按键,转第二行扫描
   15:	  0048	E5 A0			MOV	A,P2	;读键盘至A
   16:	  004A	54 07			ANL	A,#00000111B;保留低三位的结果
   17:	  004C	B4 06 05		CJNE	A,#00000110B,NOK0;不是K0键,转NOK0
   18:	  004F	74 00			MOV	A,#0	;是K0键将A赋值为0
   19:	  0051	02 00 CC		LJMP	DISPLAY	;转显示子程序
   20:	  0054	B4 05 05	NOK0:	CJNE	A,#00000101B,NOK1;不是K1键,转NOK1
   21:	  0057	74 01			MOV	A,#1	;是K1键将A赋值为1
   22:	  0059	02 00 CC		LJMP	DISPLAY	;转显示子程序
   23:	  005C	74 02		NOK1:	MOV	A,#2	; 不是K0、K1,则一定是K2。将A赋值为2
   24:	  005E	02 00 CC		LJMP	DISPLAY
   25:	  0061	75 A0 FF	SCANL2 :MOV	P2,#0FFH
   26:	  0064	C2 A4			CLR	P2.4	;P2.4清0,扫描第2行
   27:	  0066	E5 A0			MOV	A,P2	;读键盘至A
   28:	  0068	54 07			ANL	A,#00000111B
   29:	  006A	64 07			XRL	A,#00000111B;判断A的低三位是否为1
   30:	  006C	60 21			JZ	SCANL3	;如果低三位为1,则无按键,转第三行扫描	LCALL	DELAY10MS;延时10ms(去抖延时)
   31:	  006E	E5 A0			MOV	A,P2	;读键盘至A
   32:	  0070	54 07			ANL	A,#00000111B
   33:	  0072	64 07			XRL	A,#00000111B;判断A的低三位是否为1
   34:	  0074	60 19			JZ	SCANL3	;如果低三位为1,则无按键,转第三行扫描
   35:	  0076	E5 A0			MOV	A,P2	;读键盘至A
   36:	  0078	54 07			ANL	A,#00000111B;保留低三位的结果
   37:	  007A	B4 06 05		CJNE	A,#00000110B,NOK3;不是K3键,转NOK3
   38:	  007D	74 03			MOV	A,#3	;是K3键将A赋值为3
   39:	  007F	02 00 CC		LJMP	DISPLAY	;转显示子程序
   40:	  0082	B4 05 05	NOK3:	CJNE	A,#00000101B,NOK4;不是K4键,转NOK4
   41:	  0085	74 04			MOV	A,#4	;是K4键将A赋值为4
   42:	  0087	02 00 CC		LJMP	DISPLAY	;转显示子程序
   43:	  008A	74 05		NOK4:	MOV	A,#5	; 不是K3、K4,则一定是K5。将A赋值为5

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  008C	02 00 CC		LJMP	DISPLAY
   45:	  008F	75 A0 FF	SCANL3 :	MOV	P2,#0FFH
   46:	  0092	C2 A5			CLR	P2.5	;P2.5清0,扫描第3行
   47:	  0094	E5 A0			MOV	A,P2	;读键盘至A
   48:	  0096	54 07			ANL	A,#00000111B
   49:	  0098	64 07			XRL	A,#00000111B;判断A的低三位是否为1
   50:	  009A	60 24			JZ	SCANLOOP;如果低三位为1,则无按键,转SCANLOOP
   51:	  009C	12 00 C3		LCALL	DELAY10MS;延时10ms(去抖延时)
   52:	  009F	E5 A0			MOV	A,P2	;读键盘至A
   53:	  00A1	54 07			ANL	A,#00000111B
   54:	  00A3	64 07			XRL	A,#00000111B;判断A的低三位是否为1
   55:	  00A5	60 19			JZ	SCANLOOP;如果低三位为1,则无按键,转SCANLOOP
   56:	  00A7	E5 A0			MOV	A,P2	;读键盘至A
   57:	  00A9	54 07			ANL	A,#00000111B;保留低三位的结果
   58:	  00AB	B4 06 05		CJNE	A,#00000110B,NOK6;不是K6键,转NOK6
   59:	  00AE	74 06			MOV	A,#6	;是K6键将A赋值为6
   60:	  00B0	02 00 CC		LJMP	DISPLAY	;转显示子程序
   61:	  00B3	B4 05 05	NOK6:	CJNE	A,#00000101B,NOK7;不是K7键,转NOK7
   62:	  00B6	74 07			MOV	A,#7	;是K7键将A赋值为7
   63:	  00B8	02 00 CC		LJMP	DISPLAY	;转显示子程序
   64:	  00BB	74 08		NOK7:	MOV	A,#8	; 不是K6、K7,则一定是K8。将A赋值为8
   65:	  00BD	02 00 CC		LJMP	DISPLAY
   66:	  00C0			SCANLOOP:
   67:	  00C0	02 00 33		LJMP	SCANK
   68:	  00C3			DELAY10MS:
   69:	  00C3	7E 0A			MOV	R6,#10
   70:	  00C5	7F FA		D1:	MOV	R7,#250
   71:	  00C7	DF FE		D2:	DJNZ	R7,D2
   72:	  00C9	DE FA			DJNZ	R6,D1
   73:	  00CB	22			RET
   74:	  00CC			DISPLAY:
   75:	  00CC	90 00 D5		MOV	DPTR,#TABLE	;将数据表TABLE的首地址赋给DPTR
   76:	  00CF	93			MOVC	A,@A+DPTR	;将(A+DPTR)地址中的值赋给A
   77:	  00D0	F5 90			MOV	P1,A	;送到P1口数码管显示
   78:	  00D2	02 00 33		LJMP	SCANK	;跳到SCANK,重新开始扫描
   79:	  00D5	C0 F9 A4 B0	TABLE:	DB	0C0H,0F9H,0A4H,0B0H
   80:	  00D9	99 92 82 F8		DB	99H,92H,82H,0F8H,80H
	  00DD	80
   81:					END





                     register banks used:  ---

                     no errors



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





	       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
CY				  BIT	      D7
D1				  CODE	    00C5	  70
D2				  CODE	    00C7	  71
DELAY10MS			  CODE	    00C3	  68
DISPLAY				  CODE	    00CC	  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
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
NOK0				  CODE	    0054	  20
NOK1				  CODE	    005C	  23
NOK3				  CODE	    0082	  40
NOK4				  CODE	    008A	  43
NOK6				  CODE	    00B3	  61
NOK7				  CODE	    00BB	  64
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

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 4



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
RI				  BIT	      98
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCANK				  CODE	    0033	   5
SCANL2				  CODE	    0061	  25
SCANL3				  CODE	    008F	  45
SCANLOOP			  CODE	    00C0	  66
SCON				  DATA	      98
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
START				  CODE	    0030	   4
T0				  BIT	      B4
T1				  BIT	      B5
TABLE				  CODE	    00D5	  79
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 + -