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

📄 routine.lst

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 LST
字号:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Macro Assembler   A S E M - 5 1   V 1.3
       =====================================================



	Source File:	E:\MiCrOConTroller\Coba_M-IDE\I2CROUTINE\ROUTINE.asm
	Object File:	E:\MiCrOConTroller\Coba_M-IDE\I2CROUTINE\ROUTINE.hex
	List File:	E:\MiCrOConTroller\Coba_M-IDE\I2CROUTINE\ROUTINE.lst



 Line  I  Addr  Code            Source

    1:
    2:				;******************************
    3:				;I2C ROUTINS                ***
    4:				;Published By Mehdi N.Rahni ***
    5:				;******************************
    6:
    7:
    8:				;I use this code for i2c devices such as LM75,DS1307,24C256
    9:				;For defining any i2c device you must only consider hardwired addressing and address inputs
   10:				;So you can extend this code with limited changes
   11:				;Example:
   12:
   13:
   14:				;MOV DPTR,#125H
   15:				;MOV DYTA,#79H
   16:				;LCALL EEPROM_WRITE   ;IN ADDRESS 125H DATA IS 79H
   17:
   18:				;MOV DPTR,#125H
   19:				;LCALL EEPROM_READ
   20:				;MOV A,DYTA           ;NOW ACC IS 79H
   21:
   22:
   23:
   24:
   25:
   26:		B      00A6	SDA                   EQU P2.6
   27:		B      00A7	SCL                   EQU P2.7
   28:		N      0050	DYTA                  EQU 50H
   29:		N      0051	ADRES 		      EQU 51H
   30:
   31:
   32:	  0000			I2C_READ:            ;reading 8 bits from i2c device
   33:	  0000	7F 08		MOV R7,#8
   34:	  0002			GFD:
   35:	  0002	D2 A6		SETB SDA
   36:	  0004	D2 A7		SETB SCL
   37:	  0006	A2 A6		MOV C,SDA
   38:	  0008	33		RLC A
   39:	  0009	C2 A7		CLR SCL
   40:	  000B	DF F5		DJNZ R7,GFD
   41:	  000D	F5 50		MOV DYTA,A
   42:	  000F	22		RET
   43:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  0010			I2C_WRITE:           ;writing 8 bits in to i2c device
   45:	  0010	7F 08		MOV R7,#8
   46:	  0012			WRITING:
   47:	  0012	33		RLC A
   48:	  0013	92 A6		MOV SDA,C
   49:	  0015	12 00 2D	LCALL CLOCK
   50:	  0018	DF F8		DJNZ R7,WRITING
   51:	  001A	22		RET
   52:
   53:	  001B			I2C_START:           ;start of i2c routine
   54:	  001B	D2 A7		SETB SCL
   55:	  001D	D2 A6		SETB SDA
   56:	  001F	C2 A6		CLR SDA
   57:	  0021	C2 A7		CLR SCL
   58:	  0023	22		RET
   59:
   60:	  0024			I2C_STOP:            ;end of i2c routine
   61:	  0024	D2 A7		SETB SCL
   62:	  0026	C2 A6		CLR SDA
   63:	  0028	D2 A6		SETB SDA
   64:	  002A	C2 A7		CLR SCL
   65:	  002C	22		RET
   66:
   67:	  002D			CLOCK:               ;synchronizing clock
   68:	  002D	D2 A7		SETB SCL
   69:	  002F	C2 A7		CLR SCL
   70:	  0031	22		RET
   71:
   72:
   73:
   74:	  0032			 ACK:                ;acknowledge from transmitter or receiver
   75:	  0032	D2 A6		 SETB SDA
   76:	  0034	D2 A7		 SETB SCL
   77:	  0036	20 A6 FD	 JB SDA,$
   78:	  0039	C2 A7		 CLR SCL
   79:	  003B	22		 RET
   80:
   81:	  003C			 NO_ACK:             ;no acknowledge from transmitter or receiver
   82:	  003C	D2 A6		 SETB SDA
   83:	  003E	C2 A7		 CLR SCL
   84:	  0040	30 A6 FD	 JNB SDA,$
   85:	  0043	D2 A7		 SETB SCL
   86:	  0045	22		 RET
   87:
   88:
   89:
   90:				;*************************
   91:				;SERIAL EEPROM PACKAGE****
   92:				;*************************
   93:
   94:	  0046			EEPROM_WRITE:        ;write in to eeprom
   95:	  0046	12 00 1B	LCALL I2C_START
   96:	  0049	12 00 A0	LCALL EEPROM_WRITE_ADDR
   97:	  004C	12 00 32	LCALL ACK
   98:	  004F	E5 83		MOV  A,DPH
   99:	  0051	12 00 10	LCALL I2C_WRITE

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  0054	12 00 32	LCALL ACK
  101:	  0057	E5 82		MOV  A,DPL
  102:	  0059	12 00 10	LCALL I2C_WRITE
  103:	  005C	12 00 32	LCALL ACK
  104:	  005F	E5 50		MOV  A,DYTA
  105:	  0061	12 00 10	LCALL I2C_WRITE
  106:	  0064	12 00 32	LCALL ACK
  107:	  0067	12 00 24	LCALL I2C_STOP
  108:	  006A	12 00 A6	LCALL DELAY_STOP
  109:	  006D	22		RET
  110:
  111:	  006E			EEPROM_READ:         ;read from eeprom
  112:	  006E	12 00 1B	LCALL I2C_START
  113:	  0071	12 00 A0	LCALL EEPROM_WRITE_ADDR
  114:	  0074	12 00 32	LCALL ACK
  115:	  0077	E5 83		MOV  A,DPH
  116:	  0079	12 00 10	LCALL I2C_WRITE
  117:	  007C	12 00 32	LCALL ACK
  118:	  007F	E5 82		MOV  A,DPL
  119:	  0081	12 00 10	LCALL I2C_WRITE
  120:	  0084	12 00 32	LCALL ACK
  121:	  0087	12 00 1B	LCALL I2C_START
  122:	  008A	12 00 9A	LCALL EEPROM_READ_ADDR
  123:	  008D	12 00 32	LCALL ACK
  124:	  0090	12 00 00	LCALL I2C_READ
  125:	  0093	12 00 3C	LCALL NO_ACK
  126:	  0096	12 00 24	LCALL I2C_STOP
  127:	  0099	22		RET
  128:
  129:	  009A			EEPROM_READ_ADDR:     ;A2,A1,A0 are zero
  130:	  009A	74 A1		MOV A,#10100001B
  131:	  009C	12 00 10	LCALL I2C_WRITE
  132:	  009F	22		RET
  133:
  134:	  00A0			EEPROM_WRITE_ADDR:    ;A2,A1,A0 are zero
  135:	  00A0	74 A0		MOV A,#10100000B
  136:	  00A2	12 00 10	LCALL I2C_WRITE
  137:	  00A5	22		RET
  138:
  139:	  00A6			DELAY_STOP:           ;terminating write process
  140:	  00A6	75 89 01	MOV TMOD,#00000001B
  141:	  00A9	75 8C EE	MOV TH0,#0EEH
  142:	  00AC	75 8A 00	MOV TL0,#00H
  143:	  00AF	D2 8C		SETB TR0
  144:	  00B1			SAC:
  145:	  00B1	30 8D FD	JNB TF0,SAC
  146:	  00B4	C2 8C		CLR TR0
  147:	  00B6	C2 8D		CLR TF0
  148:	  00B8	22		RET
  149:
  150:
  151:				END





ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4




                     register banks used:  ---

                     no errors




ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 5





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


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
??ASEM_51			  NUMBER    8051
??VERSION			  NUMBER    0130
AC				  BIT	      D6
ACC				  DATA	      E0
ACK				  CODE	    0032	  74
ADRES				  NUMBER    0051	  29
B				  DATA	      F0
CLOCK				  CODE	    002D	  67
CY				  BIT	      D7
DELAY_STOP			  CODE	    00A6	 139
DPH				  DATA	      83
DPL				  DATA	      82
DYTA				  NUMBER    0050	  28
EA				  BIT	      AF
EEPROM_READ			  CODE	    006E	 111
EEPROM_READ_ADDR		  CODE	    009A	 129
EEPROM_WRITE			  CODE	    0046	  94
EEPROM_WRITE_ADDR		  CODE	    00A0	 134
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
GFD				  CODE	    0002	  34
I2C_READ			  CODE	    0000	  32
I2C_START			  CODE	    001B	  53
I2C_STOP			  CODE	    0024	  60
I2C_WRITE			  CODE	    0010	  44
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
NO_ACK				  CODE	    003C	  81
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

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 6



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
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
SAC				  CODE	    00B1	 144
SBUF				  DATA	      99
SCL				  NUMBER    00A7	  27
SCON				  DATA	      98
SDA				  NUMBER    00A6	  26
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
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
WRITING				  CODE	    0012	  46

⌨️ 快捷键说明

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