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

📄 eeprom.s

📁 前两年在一家模型公司开发的
💻 S
字号:
	.module eeprom.c
	.area text(rom, con, rel)
	.dbfile E:\TWINTI~1\eeprom.c
	.dbfunc e init_eeprom _init_eeprom fV
	.even
_init_eeprom::
	.dbline -1
	.dbline 11
; 
; //#include <avr/io.h>
; //#include <avr/delay.h>
; //#include <avr/signal.h>
; //#include <avr/interrupt.h>
; 
; #include 	<iom48v.h>
; #include 	<macros.h>
; 
; void init_eeprom(void)
; {
	.dbline 12
;  	 EECR = 0x07;
	ldi R24,7
	out 0x1f,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e EEPROM_write _EEPROM_write fV
;          Datas -> R18
;        Address -> R16
	.even
_EEPROM_write::
	.dbline -1
	.dbline 16
; }
; 
; void EEPROM_write(unsigned char Address, unsigned char Datas)
; {
L3:
	.dbline 17
L4:
	.dbline 17
; 	while(EECR & (1<<EEWE));// 等待上一次写操作结束 
	sbic 0x1f,1
	rjmp L3
	.dbline 19
; 	
; 	EEARL= Address;			// 设置地址和数据寄存器 
	out 0x21,R16
	.dbline 20
; 	EEDR = Datas;
	out 0x20,R18
	.dbline 21
; 	EECR |= (1<<EEMWE);		// 置位EEMWE
	sbi 0x1f,2
	.dbline 22
; 	EECR |= (1<<EEWE);		// 置位EEWE 以启动写操作E
	sbi 0x1f,1
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r Datas 18 c
	.dbsym r Address 16 c
	.dbend
	.dbfunc e EEPROM_read _EEPROM_read fc
;      uiAddress -> R16
	.even
_EEPROM_read::
	.dbline -1
	.dbline 28
; }
; 
; 
; 
; unsigned char EEPROM_read(unsigned char uiAddress)
; {
L7:
	.dbline 29
L8:
	.dbline 29
; 	while(EECR&(1<<EEWE));	//等待上一次写操作结束
	sbic 0x1f,1
	rjmp L7
	.dbline 30
; 	EEARL = uiAddress;		// 设置地址寄存器
	out 0x21,R16
	.dbline 31
; 	EECR |= (1<<EERE);		// 设置EERE 以启动读操作
	sbi 0x1f,0
	.dbline 32
; 	return EEDR;			// 自数据寄存器返回数据
	in R16,0x20
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbsym r uiAddress 16 c
	.dbend

⌨️ 快捷键说明

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