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

📄 main.s

📁 通过编程
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile D:\AVR\我的程序\EEPROM读写实验/cfg.h
	.dbfunc e delay_ms _delay_ms fV
;              i -> R20,R21
;           time -> R16,R17
	.even
_delay_ms::
	xcall push_gset1
	.dbline -1
	.dbline 11
; /***********************************
; *实验目的:熟悉EEPROM编程
; *设    计:萧联珠
; *日    期:2007-11-22
; ************************************/
; #include <iom16v.h>
; #include "cfg.h"
; 
; void main()
; {
;  unsigned char i;
	.dbline 13
;  uart_init();
;  for(i=0;i<10;i++)
	xjmp L5
L2:
	.dbline 14
	clr R20
	clr R21
L6:
	.dbline 14
L7:
	.dbline 14
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 14
	cpi R20,232
	ldi R30,3
	cpc R21,R30
	brlt L6
L3:
	.dbline 13
	subi R16,1
	sbci R17,0
L5:
	.dbline 13
	clr R2
	clr R3
	cp R2,R16
	cpc R3,R17
	brlt L2
	.dbline -2
L1:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbsym r time 16 I
	.dbend
	.dbfunc e uart_init _uart_init fV
	.even
_uart_init::
	.dbline -1
	.dbline 19
;    EEPROM_write(0x01+i,i);
;  delay_ms(1000);
;  while(1)
;  {
;    for(i=0;i<10;i++)
;    {
	.dbline 20
;      while(!(UCSRA&(1<<UDRE)));  //等待发送寄存器为空  
	ldi R24,2
	out 0xb,R24
	.dbline 21
; 	 delay_ms(10);
	ldi R24,24
	out 0xa,R24
	.dbline 22
;      UDR=EEPROM_read(0x01+i);   //发送数据
	ldi R24,6
	out 0x20,R24
	.dbline 23
;    }
	clr R2
	out 0x20,R2
	.dbline 24
;  }
	ldi R24,12
	out 0x9,R24
	.dbline -2
L10:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e EEPROM_write _EEPROM_write fV
;           Data -> R18
;        Address -> R16,R17
	.even
_EEPROM_write::
	.dbline -1
	.dbline 29
; }
; }
; }
; }
; }
L12:
	.dbline 30
L13:
	.dbline 30
; }
	sbic 0x1c,1
	rjmp L12
	.dbline 31
; }
	out 0x1f,R17
	out 0x1e,R16
	.dbline 32
; }
	out 0x1d,R18
	.dbline 34
; }
; }
	sbi 0x1c,2
	.dbline 35
; }
	sbi 0x1c,1
	.dbline -2
L11:
	.dbline 0 ; func end
	ret
	.dbsym r Data 18 c
	.dbsym r Address 16 i
	.dbend
	.dbfunc e EEPROM_read _EEPROM_read fc
;        Address -> R16,R17
	.even
_EEPROM_read::
	.dbline -1
	.dbline 40
; }
; }
; }
; }
; }
L16:
	.dbline 41
L17:
	.dbline 41
; }
	sbic 0x1c,1
	rjmp L16
	.dbline 42
; }
	out 0x1f,R17
	out 0x1e,R16
	.dbline 43
; }
	sbi 0x1c,0
	.dbline 44
; }
	in R16,0x1d
	.dbline -2
L15:
	.dbline 0 ; func end
	ret
	.dbsym r Address 16 i
	.dbend
	.dbfile D:\AVR\我的程序\EEPROM读写实验\main.c
	.dbfunc e main _main fV
;              i -> R20
	.even
_main::
	.dbline -1
	.dbline 10
	.dbline 12
	xcall _uart_init
	.dbline 13
	clr R20
	xjmp L23
L20:
	.dbline 14
	mov R18,R20
	mov R16,R20
	clr R17
	subi R16,255  ; offset = 1
	sbci R17,255
	xcall _EEPROM_write
L21:
	.dbline 13
	inc R20
L23:
	.dbline 13
	cpi R20,10
	brlo L20
	.dbline 15
	ldi R16,1000
	ldi R17,3
	xcall _delay_ms
	xjmp L25
L24:
	.dbline 17
	.dbline 18
	clr R20
	xjmp L30
X0:
	.dbline 19
L31:
	.dbline 20
L32:
	.dbline 20
	sbis 0xb,5
	rjmp L31
	.dbline 21
	ldi R16,10
	ldi R17,0
	xcall _delay_ms
	.dbline 22
	mov R16,R20
	clr R17
	subi R16,255  ; offset = 1
	sbci R17,255
	xcall _EEPROM_read
	out 0xc,R16
	.dbline 23
L28:
	.dbline 18
	inc R20
L30:
	.dbline 18
	cpi R20,10
	brlo L32
	.dbline 24
L25:
	.dbline 16
	xjmp L24
X1:
	.dbline -2
L19:
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend

⌨️ 快捷键说明

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