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

📄 ex9-6.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-6.ASM
	Object File:	EX9-6.HEX
	List File:	EX9-6.LST



 Line  I  Addr  Code            Source

    1:		N      0000		ORG 0000H
    2:	  0000	02 00 30	START: 	LJMP MAIN
    3:		N      0030		ORG 0030H
    4:	  0030	75 81 60	MAIN:   MOV SP,#60H
    5:	  0033	75 7A 00	 	MOV 7AH,#00
    6:	  0036	75 7B 01		MOV 7BH,#01
    7:	  0039	75 7C 02		MOV 7CH,#02
    8:	  003C	75 7D 03		MOV 7DH,#03
    9:	  003F	75 7E 04		MOV 7EH,#04
   10:	  0042	75 7F 05		MOV 7FH,#05
   11:	  0045	90 7F 00		MOV   DPTR,#7F00H          ;8155命令口地址
   12:	  0048	74 03			MOV   A,#03H               ;置8155PA、PB口为输出,PC口为输入
   13:	  004A	F0			MOVX @DPTR,A
   14:	  004B	12 00 A1	LOOP:	LCALL DISP
   15:	  004E	12 00 6A		LCALL KEY
   16:	  0051	EC			MOV A,R4
   17:	  0052	B4 88 02		CJNE A,#88H,DSP
   18:	  0055	80 F4			SJMP LOOP
   19:	  0057	F5 7A		DSP:	MOV 7AH,A		   ;键值送入显示缓冲区单元7AH
   20:	  0059	75 7B 10		MOV 7BH,#010H
   21:	  005C	75 7C 10		MOV 7CH,#010H
   22:	  005F	75 7D 10		MOV 7DH,#010H
   23:	  0062	75 7E 10		MOV 7EH,#010H
   24:	  0065	75 7F 10		MOV 7FH,#010H
   25:	  0068	80 E1			SJMP LOOP
   26:				;按键识别子程序
   27:	  006A	7C 00		KEY:	MOV    R4,#00H             ;0→键号寄存器R4
   28:	  006C	7A 01			MOV    R2,#01H             ;扫描模式01H→R2
   29:	  006E	90 7F 02	KEY1:   MOV    DPTR,#7F02H
   30:	  0071	EA			MOV    A,R2
   31:	  0072	F0			MOVX   @DPTR,A             ;扫描模式→8155PB口
   32:	  0073	A3			INC    DPTR
   33:	  0074	E0			MOVX   A,@DPTR             ;读8155PC口
   34:	  0075	20 E0 04		JB     ACC.0,KEY2          ;0列无键闭合,转判1列
   35:	  0078	74 00			MOV    A,#00H              ;0列有键闭合,0→A
   36:	  007A	01 8F			AJMP   KEY5
   37:	  007C	20 E1 04	KEY2:  	JB     ACC.1,KEY3          ;1列无键闭合,转判2列
   38:	  007F	74 01			MOV    A,#01H              ;1列有键闭合,列线号01H→A
   39:	  0081	01 8F			AJMP   KEY5
   40:	  0083	20 E2 04	KEY3:  	JB     ACC.2,KEY4          ;2列无键闭合,转判3列
   41:	  0086	74 02			MOV    A,#02H              ;2列有键闭合,02H→A
   42:	  0088	01 8F			AJMP   KEY5
   43:	  008A	20 E3 05	KEY4:  	JB     ACC.3,NEXT          ;3列无键闭合,转判下一行

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  008D	74 03			MOV    A,#03H              ;3列有键闭合,03H→A
   45:	  008F	2C		KEY5:  	ADD    A,R4                ;列线号+(R4)作为键值→A
   46:	  0090	FC			MOV    R4,A                ;键值→R4
   47:	  0091	22			RET                        ;返回
   48:	  0092	EC		NEXT:  	MOV    A,R4;
   49:	  0093	24 04			ADD    A,#04               ;键号寄存器加4
   50:	  0095	FC			MOV    R4,A
   51:	  0096	EA			MOV    A,R2
   52:	  0097	20 E3 04		JB     ACC.3,NEXT1         ;判别是否已扫描到最后一行
   53:	  009A	23			RL     A                   ;扫描模式左移一位
   54:	  009B	FA			MOV    R2,A
   55:	  009C	01 6E			AJMP   KEY1                ;重新开始扫描下一行
   56:	  009E	7C 88		NEXT1: 	MOV    R4,#88H             ;扫描到最后一行仍无按键置无键闭合标志
   57:	  00A0	22			RET
   58:				;数码管显示组程序
   59:	  00A1	78 7A		DISP:	MOV   R0,#7AH              ;置显示缓冲器指针初值
   60:	  00A3	7B 01			MOV   R3,#01H              ;置扫描模式初值
   61:	  00A5	90 7F 02	DISPB1:	MOV   DPTR,#7F02H          ;8155 PB口地址
   62:	  00A8	74 00			MOV   A,#0h		   ;熄灭所有LED
   63:	  00AA	F0			MOVX  @DPTR,A
   64:	  00AB	90 7F 01		MOV   DPTR,#7F01H          ;8155 PA口地址
   65:	  00AE	E6			MOV   A,  @R0              ;取显示数据
   66:	  00AF	24 14			ADD   A,#014H              ;加偏移量
   67:	  00B1	83			MOVC  A, @A+PC             ;查表取段码
   68:	  00B2	F0			MOVX  @DPTR,A              ;段码→8155 PA口
   69:	  00B3	EB			MOV   A,R3
   70:	  00B4	90 7F 02		MOV   DPTR,#7F02H          ;8155 PB口地址
   71:	  00B7	F0			MOVX  @DPTR,A              ;扫描模式→8155 PB口
   72:	  00B8	11 DD			ACALL DELAY                ;延时
   73:	  00BA	08			INC   R0
   74:	  00BB	EB			MOV   A,R3
   75:	  00BC	20 E6 04		JB    ACC.6,DISPB2         ;判6位LED显示完否
   76:	  00BF	23			RL    A                    ;扫描模式左移1位
   77:	  00C0	FB			MOV   R3,A
   78:	  00C1	01 A5			AJMP  DISPB1
   79:	  00C3	7B 01		DISPB2:	MOV   R3,#01H
   80:	  00C5	22			RET
   81:	  00C6	3F 06 5B 4F	SEGPT2:	Db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h   ;段码表
	  00CA	66 6D 7D 07
   82:	  00CE	7F 6F 77 7C		db 7fh,6fh,77h,7ch,39h,5eh,79h,71h
	  00D2	39 5E 79 71
   83:	  00D6	00 02 08 00		db 00h,02h,08h,00h,59h,0fh,76h
	  00DA	59 0F 76
   84:				 ;延时子程序
   85:	  00DD	7C FF		DELAY:	MOV   R4,#0FFH
   86:	  00DF	DC FE		DELAY1:	DJNZ  R4,DELAY1
   87:	  00E1	22			RET
   88:
   89:
   90:					END





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




                     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
CY				  BIT	      D7
DELAY				  CODE	    00DD	  85
DELAY1				  CODE	    00DF	  86
DISP				  CODE	    00A1	  59
DISPB1				  CODE	    00A5	  61
DISPB2				  CODE	    00C3	  79
DPH				  DATA	      83
DPL				  DATA	      82
DSP				  CODE	    0057	  19
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
KEY				  CODE	    006A	  27
KEY1				  CODE	    006E	  29
KEY2				  CODE	    007C	  37
KEY3				  CODE	    0083	  40
KEY4				  CODE	    008A	  43
KEY5				  CODE	    008F	  45
LOOP				  CODE	    004B	  14
MAIN				  CODE	    0030	   4
NEXT				  CODE	    0092	  48
NEXT1				  CODE	    009E	  56
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

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
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SEGPT2				  CODE	    00C6	  81
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
START				  CODE	    0000	   2
T0				  BIT	      B4
T1				  BIT	      B5
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 + -