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

📄 main.s

📁 一个基于ATMEGA128的TWI(I2C)EEPROM-24c01的程序
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\TWI_24C01\source\main.c
	.dbfunc e main _main fV
;              w -> R12,R13
;              r -> R22,R23
;              y -> R10,R11
;              x -> y+2
;              b -> R14,R15
;              a -> R20,R21
;              i -> R4,R5
	.even
_main::
	sbiw R28,4
	.dbline -1
	.dbline 15
; /************************************************
; 文件:main.c
; 用途:
; 注意:内部8M晶振
; 创建:2008.4.1
; 修改:2008.4.1
; Copy Right  (c)  www.avrvi.com  AVR与虚拟仪器
; ************************************************/
; 
; #include "config.h"
; 
; unsigned char write_buff[64],read_buff[64];
; 
; void main(void)
; {
	.dbline 18
;      unsigned int i,a,b,x,y;	
;      unsigned char *r,*w;
; 	 delay_nms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 19
;      twi_init();	//初始化cpu
	xcall _twi_init
	.dbline 21
	clr R4
	clr R5
	xjmp L5
L2:
	.dbline 21
	ldi R24,<_write_buff
	ldi R25,>_write_buff
	movw R30,R4
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
	ldi R24,<_read_buff
	ldi R25,>_read_buff
	movw R30,R4
	add R30,R24
	adc R31,R25
	std z+0,R2
L3:
	.dbline 21
	movw R24,R4
	adiw R24,1
	movw R4,R24
L5:
	.dbline 21
; 
; 	 for(i=0;i<64;i++)	read_buff[i]=write_buff[i]=0;//清主机读和写缓存区
	movw R24,R4
	cpi R24,64
	ldi R30,0
	cpc R25,R30
	brlo L2
	.dbline 22
	clr R4
	clr R5
	xjmp L9
L6:
	.dbline 22
	ldi R24,<_write_buff
	ldi R25,>_write_buff
	movw R30,R4
	add R30,R24
	adc R31,R25
	mov R2,R4
	std z+0,R2
L7:
	.dbline 22
	movw R24,R4
	adiw R24,1
	movw R4,R24
L9:
	.dbline 22
; 	 for(i=0;i<64;i++)	write_buff[i]=i;//写缓存区赋初值
	movw R24,R4
	cpi R24,64
	ldi R30,0
	cpc R25,R30
	brlo L6
	.dbline 24
; 
;      r=read_buff;	//读参数
	ldi R22,<_read_buff
	ldi R23,>_read_buff
	.dbline 25
;      b=0x00;
	clr R14
	clr R15
	.dbline 26
;      a=64;
	ldi R20,64
	ldi R21,0
	.dbline 28
; 
;      w=write_buff;	//写参数
	ldi R24,<_write_buff
	ldi R25,>_write_buff
	movw R12,R24
	.dbline 29
;      x=0x00;
	clr R0
	clr R1
	std y+3,R1
	std y+2,R0
	.dbline 30
;      y=64;
	ldi R24,64
	ldi R25,0
	movw R10,R24
	.dbline 32
; 
;      wt24c(w,x,y);	//写
	std y+1,R11
	std y+0,R10
	movw R18,R0
	movw R16,R12
	push R4
	push R5
	xcall _wt24c
	pop R5
	pop R4
	.dbline 33
;      rd24c(r,b,a);	//读
	std y+1,R21
	std y+0,R20
	movw R18,R14
	movw R16,R22
	push R4
	push R5
	xcall _rd24c
	pop R5
	pop R4
L10:
	.dbline 35
L11:
	.dbline 35
	xjmp L10
X0:
	.dbline -2
L1:
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r w 12 pc
	.dbsym r r 22 pc
	.dbsym r y 10 i
	.dbsym l x 2 i
	.dbsym r b 14 i
	.dbsym r a 20 i
	.dbsym r i 4 i
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\TWI_24C01\source\main.c
_read_buff::
	.blkb 64
	.dbsym e read_buff _read_buff A[64:64]c
_write_buff::
	.blkb 64
	.dbsym e write_buff _write_buff A[64:64]c

⌨️ 快捷键说明

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