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

📄 24c01.asm

📁 AT24C01的汇编驱动程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	nop							;[INF] 1, 2
; line   122
$DGL	0,11
	nop							;[INF] 1, 2
; line   123
$DGL	0,12
	nop							;[INF] 1, 2
; line   124
$DGL	0,13
	clr1	P1.3						;[INF] 2, 6
; line   125
$DGL	0,14
	set1	P1.2						;[INF] 2, 6
; line   126
$DGL	0,15
??ef_IICStart:
	ret							;[INF] 1, 6
??ee_IICStart:
; line   130
_IICStop:
$DGL	1,82
??bf_IICStop:
; line   131
$DGL	0,2
	clr1	P1.3						;[INF] 2, 6
; line   132
$DGL	0,3
	clr1	P1.2						;[INF] 2, 6
; line   133
$DGL	0,4
	set1	P1.3						;[INF] 2, 6
; line   134
$DGL	0,5
	nop							;[INF] 1, 2
; line   135
$DGL	0,6
	nop							;[INF] 1, 2
; line   136
$DGL	0,7
	nop							;[INF] 1, 2
; line   137
$DGL	0,8
	set1	P1.2						;[INF] 2, 6
; line   138
$DGL	0,9
	nop							;[INF] 1, 2
; line   139
$DGL	0,10
	nop							;[INF] 1, 2
; line   140
$DGL	0,11
	nop							;[INF] 1, 2
; line   141
$DGL	0,12
	clr1	P1.3						;[INF] 2, 6
; line   142
$DGL	0,13
??ef_IICStop:
	ret							;[INF] 1, 6
??ee_IICStop:
; line   146
_IICRecAck:
$DGL	1,88
??bf_IICRecAck:
; line   147
$DGL	0,2
	clr1	P1.3						;[INF] 2, 6
; line   148
$DGL	0,3
	set1	P1.2						;[INF] 2, 6
; line   149
$DGL	0,4
	set1	P1.3						;[INF] 2, 6
; line   150
$DGL	0,5
	nop							;[INF] 1, 2
; line   151
$DGL	0,6
	nop							;[INF] 1, 2
; line   152
$DGL	0,7
	set1	PM1.2						;[INF] 3, 8
; line   153
$DGL	0,8
	nop							;[INF] 1, 2
; line   154
$DGL	0,9
	nop							;[INF] 1, 2
; line   155
$DGL	0,10
	mov1	CY,P1.2						;[INF] 3, 7
	mov1	_CY,CY						;[INF] 3, 6
; line   156
$DGL	0,11
	clr1	P1.3						;[INF] 2, 6
; line   157
$DGL	0,12
	clr1	PM1.2						;[INF] 3, 8
; line   158
$DGL	0,13
	mov1	CY,_CY						;[INF] 3, 6
; line   159
$DGL	0,14
??ef_IICRecAck:
	ret							;[INF] 1, 6
??ee_IICRecAck:
; line   163
_IICACK:
$DGL	1,94
??bf_IICACK:
; line   164
$DGL	0,2
	clr1	P1.2						;[INF] 2, 6
; line   165
$DGL	0,3
	set1	P1.3						;[INF] 2, 6
; line   166
$DGL	0,4
	nop							;[INF] 1, 2
; line   167
$DGL	0,5
	nop							;[INF] 1, 2
; line   168
$DGL	0,6
	nop							;[INF] 1, 2
; line   169
$DGL	0,7
	nop							;[INF] 1, 2
; line   170
$DGL	0,8
	clr1	P1.3						;[INF] 2, 6
; line   171
$DGL	0,9
	nop							;[INF] 1, 2
; line   172
$DGL	0,10
	set1	P1.2						;[INF] 2, 6
; line   173
$DGL	0,11
??ef_IICACK:
	ret							;[INF] 1, 6
??ee_IICACK:
; line   180
_IICNoAck:
$DGL	1,100
??bf_IICNoAck:
; line   181
$DGL	0,2
	set1	P1.2						;[INF] 2, 6
; line   182
$DGL	0,3
	set1	P1.3						;[INF] 2, 6
; line   183
$DGL	0,4
	nop							;[INF] 1, 2
; line   184
$DGL	0,5
	nop							;[INF] 1, 2
; line   185
$DGL	0,6
	nop							;[INF] 1, 2
; line   186
$DGL	0,7
	nop							;[INF] 1, 2
; line   187
$DGL	0,8
	clr1	P1.3						;[INF] 2, 6
; line   188
$DGL	0,9
??ef_IICNoAck:
	ret							;[INF] 1, 6
??ee_IICNoAck:
; line   192
_IICSendByte:
$DGL	1,106
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 8
	movw	hl,ax						;[INF] 1, 4
??bf_IICSendByte:
; line   194
$DGL	0,3
	mov	a,#00H	; 0 					;[INF] 2, 4
	mov	[hl+1],a	; i 				;[INF] 2, 8/9
?L0042:
	mov	a,[hl+1]	; i 				;[INF] 2, 8/9
	cmp	a,#08H	; 8 					;[INF] 2, 4
	bnc	$?L0043						;[INF] 2, 6
; line   195
??bb00_IICSendByte:
; line   196
$DGL	0,5
	mov	c,a						;[INF] 1, 2
	mov	a,[hl+2]	; data_byte 			;[INF] 2, 8/9
	dec	c						;[INF] 1, 2
	inc	c						;[INF] 1, 2
	bz	$?L0047						;[INF] 2, 6
	add	a,a						;[INF] 2, 4
	dbnz	c,$$-2						;[INF] 2, 6
?L0047:
	bf	a.7,$?L0045					;[INF] 3, 8
; line   197
$DGL	0,6
??bb01_IICSendByte:
	set1	P1.2						;[INF] 2, 6
??eb01_IICSendByte:
	br	$?L0046						;[INF] 2, 6
?L0045:
; line   199
$DGL	0,8
??bb02_IICSendByte:
	clr1	P1.2						;[INF] 2, 6
??eb02_IICSendByte:
?L0046:
; line   200
$DGL	0,9
	set1	P1.3						;[INF] 2, 6
; line   201
$DGL	0,10
	nop							;[INF] 1, 2
; line   202
$DGL	0,11
	nop							;[INF] 1, 2
; line   203
$DGL	0,12
	nop							;[INF] 1, 2
; line   204
$DGL	0,13
	clr1	P1.3						;[INF] 2, 6
??eb00_IICSendByte:
; line   205
$DGL	0,14
	mov	a,[hl+1]	; i 				;[INF] 2, 8/9
	inc	a						;[INF] 1, 2
	mov	[hl+1],a	; i 				;[INF] 2, 8/9
	br	$?L0042						;[INF] 2, 6
?L0043:
; line   206
$DGL	0,15
	set1	PM1.2						;[INF] 3, 8
; line   207
$DGL	0,16
	set1	P1.3						;[INF] 2, 6
; line   208
$DGL	0,17
	clr1	PM1.2						;[INF] 3, 8
; line   209
$DGL	0,18
	clr1	P1.3						;[INF] 2, 6
; line   210
$DGL	0,19
??ef_IICSendByte:
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_IICSendByte:
; line   214
_IICReceiveByte:
$DGL	1,126
	push	hl						;[INF] 1, 4
??bf_IICReceiveByte:
; line   215
$DGL	0,2
	mov	l,#00H	; 0 					;[INF] 2, 4
; line   217
$DGL	0,4
	set1	PM1.2						;[INF] 3, 8
; line   219
$DGL	0,6
	mov	h,#00H	; 0 					;[INF] 2, 4
?L0050:
	mov	a,h						;[INF] 1, 2
	cmp	a,#08H	; 8 					;[INF] 2, 4
	bnc	$?L0051						;[INF] 2, 6
; line   220
??bb00_IICReceiveByte:
; line   221
$DGL	0,8
	nop							;[INF] 1, 2
; line   222
$DGL	0,9
	nop							;[INF] 1, 2
; line   223
$DGL	0,10
	nop							;[INF] 1, 2
; line   224
$DGL	0,11
	nop							;[INF] 1, 2
; line   225
$DGL	0,12
	clr1	P1.3						;[INF] 2, 6
; line   226
$DGL	0,13
	nop							;[INF] 1, 2
; line   227
$DGL	0,14
	nop							;[INF] 1, 2
; line   228
$DGL	0,15
	nop							;[INF] 1, 2
; line   229
$DGL	0,16
	nop							;[INF] 1, 2
; line   230
$DGL	0,17
	nop							;[INF] 1, 2
; line   231
$DGL	0,18
	set1	P1.3						;[INF] 2, 6
; line   232
$DGL	0,19
	nop							;[INF] 1, 2
; line   233
$DGL	0,20
	nop							;[INF] 1, 2
; line   235
$DGL	0,22
	mov	a,l						;[INF] 1, 2
	add	a,a						;[INF] 2, 4
	mov	l,a						;[INF] 1, 2
; line   236
$DGL	0,23
	bf	P1.2,$?L0053					;[INF] 4,11
; line   237
$DGL	0,24
	mov	a,l						;[INF] 1, 2
	inc	a						;[INF] 1, 2
	mov	l,a						;[INF] 1, 2
?L0053:
; line   238
$DGL	0,25
	nop							;[INF] 1, 2
; line   239
$DGL	0,26
	nop							;[INF] 1, 2
; line   240
$DGL	0,27
	nop							;[INF] 1, 2
; line   241
$DGL	0,28
	nop							;[INF] 1, 2
??eb00_IICReceiveByte:
; line   243
$DGL	0,30
	inc	h						;[INF] 1, 2
	br	$?L0050						;[INF] 2, 6
?L0051:
; line   244
$DGL	0,31
	clr1	P1.3						;[INF] 2, 6
; line   245
$DGL	0,32
	clr1	PM1.2						;[INF] 3, 8
; line   246
$DGL	0,33
	nop							;[INF] 1, 2
; line   247
$DGL	0,34
	nop							;[INF] 1, 2
; line   248
$DGL	0,35
	nop							;[INF] 1, 2
; line   249
$DGL	0,36
	nop							;[INF] 1, 2
; line   250
$DGL	0,37
	movw	ax,hl						;[INF] 1, 4
	mov	a,#00H	; 0 					;[INF] 2, 4
	movw	bc,ax						;[INF] 1, 4
; line   251
$DGL	0,38
??ef_IICReceiveByte:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_IICReceiveByte:
; line   255
_Delay:
$DGL	1,138
	push	hl						;[INF] 1, 4
	movw	hl,ax						;[INF] 1, 4
??bf_Delay:
; line   256
$DGL	0,2
?L0057:
	dec	l						;[INF] 1, 2
	mov	a,l						;[INF] 1, 2
	inc	a						;[INF] 1, 2
	bnz	$?L0057						;[INF] 2, 6
; line   257
$DGL	0,3
??ef_Delay:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_Delay:

@@CALF	CSEG	FIXED
	END


; *** Code Information ***
;
; $FILE E:\06 Water Clear\code\waterflow\24C01.c
;
; $FUNC I2C_pin_init(20)
;	void=(void)
;	CODE SIZE= 10 bytes, CLOCK_SIZE= 30 clocks, STACK_SIZE= 0 bytes
;
; $FUNC RW24XX(45)
;	bc=(pointer DataBuff:ax, unsigned char ByteQuantity:[sp+2], 
;	    unsigned int Address:[sp+4], unsigned char ControlByte:[sp+6], 
;	    char EepromType:[sp+8])
;	CODE SIZE= 250 bytes, CLOCK_SIZE= 764 clocks, STACK_SIZE= 10 bytes
;
; $CALL IICStart(51)
;	void=(void)
;
; $CALL IICSendByte(52)
;	void=(int:ax)
;
; $CALL IICRecAck(53)
;	cy=(void)
;
; $CALL IICSendByte(57)
;	void=(int:ax)
;
; $CALL IICRecAck(58)
;	cy=(void)
;
; $CALL IICSendByte(61)
;	void=(int:ax)
;
; $CALL IICRecAck(62)
;	cy=(void)
;
; $CALL IICSendByte(70)
;	void=(int:ax)
;
; $CALL IICRecAck(71)
;	cy=(void)
;
; $CALL IICStart(82)
;	void=(void)
;
; $CALL IICSendByte(83)
;	void=(int:ax)
;
; $CALL IICRecAck(84)
;	cy=(void)
;
; $CALL IICReceiveByte(88)
;	bc=(void)
;
; $CALL IICACK(89)
;	void=(void)
;
; $CALL IICReceiveByte(91)
;	bc=(void)
;
; $CALL IICNoAck(92)
;	void=(void)
;
; $CALL IICStop(97)
;	void=(void)
;
; $CALL Delay(100)
;	void=(int:ax)
;
; $CALL Delay(101)
;	void=(int:ax)
;
; $CALL Delay(102)
;	void=(int:ax)
;
; $CALL Delay(103)
;	void=(int:ax)
;
; $FUNC IICStart(112)
;	void=(void)
;	CODE SIZE= 20 bytes, CLOCK_SIZE= 56 clocks, STACK_SIZE= 0 bytes
;
; $FUNC IICStop(130)
;	void=(void)
;	CODE SIZE= 17 bytes, CLOCK_SIZE= 48 clocks, STACK_SIZE= 0 bytes
;
; $FUNC IICRecAck(146)
;	cy=(void)
;	CODE SIZE= 28 bytes, CLOCK_SIZE= 73 clocks, STACK_SIZE= 0 bytes
;
; $FUNC IICACK(163)
;	void=(void)
;	CODE SIZE= 14 bytes, CLOCK_SIZE= 40 clocks, STACK_SIZE= 0 bytes
;
; $FUNC IICNoAck(180)
;	void=(void)
;	CODE SIZE= 11 bytes, CLOCK_SIZE= 32 clocks, STACK_SIZE= 0 bytes
;
; $FUNC IICSendByte(192)
;	void=(unsigned char data_byte:x)
;	CODE SIZE= 64 bytes, CLOCK_SIZE= 203 clocks, STACK_SIZE= 6 bytes
;
; $FUNC IICReceiveByte(214)
;	bc=(void)
;	CODE SIZE= 61 bytes, CLOCK_SIZE= 151 clocks, STACK_SIZE= 2 bytes
;
; $FUNC Delay(255)
;	void=(unsigned char DelayCount:x)
;	CODE SIZE= 9 bytes, CLOCK_SIZE= 30 clocks, STACK_SIZE= 2 bytes

; Target chip : uPD78F0411
; Device file : V1.11 

⌨️ 快捷键说明

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