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

📄 24c01a.s

📁 AVR 24c02 f
💻 S
字号:
	.module _24C01A.c
	.area text(rom, con, rel)
	.dbfile D:\24C01A/I2C.h
	.dbfunc e I2C_Init _I2C_Init fV
	.even
_I2C_Init::
	.dbline -1
	.dbline 85
; 
; #include <iom16v.h>
; #include <macros.h>
; #include "I2C.h"
; 
; void delay_1ms(void)                 //1ms延时函数
; {
;    unsigned int i;
;    for (i=0;i<1140;i++);
; }
; 
; void main()
; {
; unsigned char temp1[8]={18,17,16,15,14,13,12,11};
; unsigned char temp2[8]={0};
; unsigned char temp3[6]={0};
; unsigned char i=0,*p;
; 
; I2C_Init();
; 
; I2C_Write_(0xa0,0,temp1,8);//一次写入8个字节
;   delay_1ms();
;   delay_1ms();
; 
; I2C_Read_(0xa0,0,temp2,8);//一次读取8个字节
; 
; for(i=10;i<16;i++)        //循环6次,写入6个字节
; {
;   I2C_Write(0xa0,i,temp1[i-10]);
;   delay_1ms();			 //延时不可缺少
;   //delay_1ms();
; }
; 
; p=temp3;
; for(i=10;i<16;i++)		 //循环6次,读取6个字节至temp3
; {I2C_Read(0xa0,i,p++);
; //delay_1ms();
;   //delay_1ms();
;   }
; 
; while(1);
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 86
; }
	ldi R24,15
	out 0x0,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e I2C_WaitINT _I2C_WaitINT fc
;              i -> R16,R17
	.even
_I2C_WaitINT::
	.dbline -1
	.dbline 98
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 99
; }
	ldi R16,50
	ldi R17,0
	xjmp L4
L3:
	.dbline 101
	.dbline 101
	movw R24,R16
	sbiw R24,1
	movw R16,R24
	cpi R16,0
	cpc R16,R17
	brne L6
X0:
	.dbline 101
	clr R16
	xjmp L2
L6:
	.dbline 101
L4:
	.dbline 100
; }
	in R2,0x36
	sbrs R2,7
	rjmp L3
	.dbline 102
; }
; }
	ldi R16,1
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e I2C_SendByte _I2C_SendByte fV
;              x -> R16
	.even
_I2C_SendByte::
	.dbline -1
	.dbline 113
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 114
; }
	out 0x3,R16
	.dbline 115
; }
	ldi R24,132
	out 0x36,R24
	.dbline -2
L8:
	.dbline 0 ; func end
	ret
	.dbsym r x 16 c
	.dbend
	.dbfunc e I2C_Start _I2C_Start fc
	.even
_I2C_Start::
	.dbline -1
	.dbline 126
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 127
; }
	ldi R24,164
	out 0x36,R24
	.dbline 128
; }
	xcall _I2C_WaitINT
	tst R16
	brne L10
	.dbline 128
	clr R16
	xjmp L9
L10:
	.dbline 129
; }
	in R24,0x1
	andi R24,248
	cpi R24,8
	breq L12
	.dbline 130
; }
	clr R16
	xjmp L9
L12:
	.dbline 131
; }
	ldi R16,1
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e I2C_Restart _I2C_Restart fc
	.even
_I2C_Restart::
	.dbline -1
	.dbline 142
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 143
; }
	ldi R24,164
	out 0x36,R24
	.dbline 144
; }
	xcall _I2C_WaitINT
	tst R16
	brne L15
	.dbline 144
	clr R16
	xjmp L14
L15:
	.dbline 145
; }
	in R24,0x1
	andi R24,248
	cpi R24,16
	breq L17
	.dbline 146
; }
	clr R16
	xjmp L14
L17:
	.dbline 147
; }
	ldi R16,1
	.dbline -2
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e I2C_SendWrDAdr _I2C_SendWrDAdr fc
;         wrDAdr -> R20
	.even
_I2C_SendWrDAdr::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 158
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 159
; }
	mov R16,R20
	xcall _I2C_SendByte
	.dbline 160
; }
	xcall _I2C_WaitINT
	tst R16
	brne L20
	.dbline 160
	clr R16
	xjmp L19
L20:
	.dbline 161
; }
	in R24,0x1
	andi R24,248
	cpi R24,24
	breq L22
	.dbline 162
; }
	clr R16
	xjmp L19
L22:
	.dbline 163
; }
	ldi R16,1
	.dbline -2
L19:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r wrDAdr 20 c
	.dbend
	.dbfunc e I2C_SendWrDAdr_ _I2C_SendWrDAdr_ fc
;         wrDAdr -> R20,R21
	.even
_I2C_SendWrDAdr_::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 174
; 

⌨️ 快捷键说明

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