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

📄 ex8-5.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:	EX8-5.ASM
	Object File:	EX8-5.HEX
	List File:	EX8-5.LST



 Line  I  Addr  Code            Source

    1:		N	 10	ACK		BIT	10H		;应答标志位
    2:		N	 50	SLA		DATA	50H		;器件地址字
    3:		N	 51	SUBA		DATA	51H		;器件子地址
    4:		N	 52	NUMBYTE		DATA	52H		;读/写字节数
    5:		B	 B1	SDA		BIT	P3.1
    6:		B	 B0	SCL		BIT	P3.0		;I2C总线定义
    7:		N      0030	MTD		EQU	30H		;发送数据缓存区首地址(30H-3FH)
    8:		N      0040	MRD		EQU	40H		;接收数据缓存区首地址(40H-4FH)
    9:		N      0000			ORG 	0000H
   10:	  0000	01 D2				AJMP	MAIN
   11:		N      0030			ORG	0030H
   12:
   13:				;*********************************************************************
   14:				;名称:STRRT
   15:				;描述:启动I2C总线子程序—发送I2C总线起始条件
   16:				;*********************************************************************
   17:	  0030	D2 B1		START:		SETB	SDA		;发送起始条件数据信号
   18:	  0032	00				NOP			;起始条件建立时间大于4.7us
   19:	  0033	D2 B0		   		SETB	SCL		;发送起始条件的时钟信号
   20:	  0035	00				NOP
   21:	  0036	00				NOP
   22:	  0037	00				NOP
   23:	  0038	00				NOP
   24:	  0039	00				NOP			;起始条件锁定时间大于4.7us
   25:	  003A	C2 B1		   		CLR  	SDA		;发送起始信号
   26:	  003C	00				NOP
   27:	  003D	00				NOP
   28:	  003E	00				NOP
   29:	  003F	00				NOP			;起始条件锁定时间大于4.7us
   30:	  0040	C2 B0		   		CLR	SCL		;钳住I2C总线,准备发送或接收数据
   31:	  0042	00		   		NOP
   32:	  0043	22		   		RET
   33:
   34:				;*********************************************************************
   35:				;名称:STOP
   36:				;描述:停止I2C总线子程序—发送I2C总线停止条件
   37:				;*********************************************************************
   38:	  0044	C2 B1		STOP:		CLR  	SDA 		;发送停止条件的数据信号
   39:	  0046	00				NOP
   40:	  0047	00				NOP
   41:	  0048	D2 B0				SETB  	SCL 		;发送停止条件的时钟信号
   42:	  004A	00				NOP
   43:	  004B	00				NOP

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  004C	00				NOP
   45:	  004D	00				NOP
   46:	  004E	00				NOP			;起始条件建立时间大于4.7us
   47:	  004F	D2 B1				SETB 	SDA 		;发送I2C总线停止信号
   48:	  0051	00				NOP
   49:	  0052	00				NOP
   50:	  0053	00				NOP
   51:	  0054	00				NOP
   52:	  0055	00				NOP			;延迟时间大于4.7us
   53:	  0056	22				RET
   54:
   55:				;*********************************************************************
   56:				;名称:MACK
   57:				;描述:发送应答信号子程序
   58:				;*********************************************************************
   59:	  0057	C2 B1		MACK:		CLR	SDA		;将SDA置0
   60:	  0059	00				NOP
   61:	  005A	00				NOP
   62:	  005B	D2 B0				SETB	SCL
   63:	  005D	00				NOP
   64:	  005E	00				NOP
   65:	  005F	00				NOP
   66:	  0060	00				NOP
   67:	  0061	00				NOP			;保持数据时间,大于4.7us
   68:	  0062	C2 B0				CLR	SCL
   69:	  0064	00				NOP
   70:	  0065	00				NOP
   71:	  0066	22				RET
   72:
   73:				;*********************************************************************
   74:				;名称:MNACK
   75:				;描述:发送非应答信号子程序
   76:				;*********************************************************************
   77:	  0067	D2 B1		MNACK:		SETB	SDA		;将SDA置1
   78:	  0069	00				NOP
   79:	  006A	00				NOP
   80:	  006B	D2 B0				SETB	SCL
   81:	  006D	00				NOP
   82:	  006E	00				NOP
   83:	  006F	00				NOP
   84:	  0070	00				NOP
   85:	  0071	00				NOP
   86:	  0072	C2 B0				CLR	SCL		;保持数据时间,大于4.7us
   87:	  0074	00				NOP
   88:	  0075	00				NOP
   89:	  0076	22				RET
   90:
   91:				;*********************************************************************
   92:				;名称:CACK
   93:				;描述:检查应答位子程序,返回值:ACK=1时表示有应答
   94:				;*********************************************************************
   95:	  0077	D2 B1		CACK:		SETB	SDA
   96:	  0079	00				NOP
   97:	  007A	00				NOP
   98:	  007B	D2 B0				SETB	SCL
   99:	  007D	C2 10				CLR	ACK

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  007F	00				NOP
  101:	  0080	00				NOP
  102:	  0081	A2 B1				MOV	C,SDA
  103:	  0083	40 02				JC	CEND
  104:	  0085	D2 10				SETB	ACK		;判断应答位
  105:	  0087	00		CEND:		NOP
  106:	  0088	C2 B0				CLR	SCL
  107:	  008A	00				NOP
  108:	  008B	22				RET
  109:
  110:				;*********************************************************************
  111:				;名称:WRBYTE
  112:				;描述:发送字节子程序,字节数据放入ACC
  113:				;*********************************************************************
  114:	  008C	78 08		WRBYTE:		MOV	R0,#08H
  115:	  008E	33		WLP:		RLC	A		;取数据位
  116:	  008F	40 06				JC	WRI
  117:	  0091	80 12				SJMP	WRO		;判断数据位
  118:	  0093	D8 F9		WLP1:		DJNZ	R0,WLP
  119:	  0095	00				NOP
  120:	  0096	22				RET
  121:	  0097	D2 B1		WRI:		SETB	SDA		;发送1
  122:	  0099	00				NOP
  123:	  009A	D2 B0				SETB	SCL
  124:	  009C	00				NOP
  125:	  009D	00				NOP
  126:	  009E	00				NOP
  127:	  009F	00				NOP
  128:	  00A0	00				NOP
  129:	  00A1	C2 B0				CLR	SCL
  130:	  00A3	80 EE				SJMP	WLP1
  131:	  00A5	C2 B1		WRO:		CLR	SDA		;发送0
  132:	  00A7	00				NOP
  133:	  00A8	D2 B0				SETB	SCL
  134:	  00AA	00				NOP
  135:	  00AB	00				NOP
  136:	  00AC	00				NOP
  137:	  00AD	00				NOP
  138:	  00AE	00				NOP
  139:	  00AF	C2 B0				CLR	SCL
  140:	  00B1	80 E0				SJMP	WLP1
  141:
  142:
  143:				;*********************************************************************
  144:				;名称:ADC517
  145:				;描述:启动MAX517进行D/A转换子程序,转换数据位于40H
  146:				;*********************************************************************
  147:	  00B3	12 00 30	DAC517:		LCALL  	START
  148:	  00B6	74 58				MOV	A,#58H
  149:	  00B8	12 00 8C			LCALL	WRBYTE
  150:	  00BB	12 00 67			LCALL	MNACK
  151:	  00BE	74 00				MOV	A,#0
  152:	  00C0	12 00 8C			LCALL	WRBYTE
  153:	  00C3	12 00 67			LCALL	MNACK
  154:	  00C6	E5 40				MOV	A,40H
  155:	  00C8	12 00 8C			LCALL	WRBYTE

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  156:	  00CB	12 00 67			LCALL	MNACK
  157:	  00CE	12 00 44			LCALL	STOP
  158:	  00D1	22				RET
  159:
  160:				;*********************************************************************
  161:				;名称:MAIN
  162:				;描述:主程序
  163:				;*********************************************************************
  164:	  00D2	75 81 60	MAIN:		MOV 	SP,#60H
  165:	  00D5	75 40 00			MOV	40H,#00H
  166:	  00D8	12 00 B3	LOOP:		LCALL	DAC517
  167:	  00DB	05 40				INC	40H
  168:	  00DD	80 F9				SJMP 	LOOP
  169:
  170:						END





                     register banks used:  ---

                     no errors



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





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


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
AC				  BIT	      D6
ACC				  DATA	      E0
ACK				  BIT	      10	   1
B				  DATA	      F0
CACK				  CODE	    0077	  95
CEND				  CODE	    0087	 105
CY				  BIT	      D7
DAC517				  CODE	    00B3	 147
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
LOOP				  CODE	    00D8	 166
MACK				  CODE	    0057	  59
MAIN				  CODE	    00D2	 164
MNACK				  CODE	    0067	  77
MRD				  NUMBER    0040	   8
MTD				  NUMBER    0030	   7
NUMBYTE				  DATA	      52	   4
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

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 6



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
RESET				  CODE	    0000
RI				  BIT	      98
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCL				  BIT	      B0	   6
SCON				  DATA	      98
SDA				  BIT	      B1	   5
SINT				  CODE	    0023
SLA				  DATA	      50	   2
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
START				  CODE	    0030	  17
STOP				  CODE	    0044	  38
SUBA				  DATA	      51	   3
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
WLP				  CODE	    008E	 115
WLP1				  CODE	    0093	 118
WR				  BIT	      B6
WRBYTE				  CODE	    008C	 114
WRI				  CODE	    0097	 121
WRO				  CODE	    00A5	 131

⌨️ 快捷键说明

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