📄 eeprom.lis
字号:
.module eeprom.c
.area text(rom, con, rel)
0000 .dbfile E:\TWINTI~1\eeprom.c
0000 .dbfunc e init_eeprom _init_eeprom fV
.even
0000 _init_eeprom::
0000 .dbline -1
0000 .dbline 11
0000 ;
0000 ; //#include <avr/io.h>
0000 ; //#include <avr/delay.h>
0000 ; //#include <avr/signal.h>
0000 ; //#include <avr/interrupt.h>
0000 ;
0000 ; #include <iom48v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; void init_eeprom(void)
0000 ; {
0000 .dbline 12
0000 ; EECR = 0x07;
0000 87E0 ldi R24,7
0002 8FBB out 0x1f,R24
0004 .dbline -2
0004 L1:
0004 .dbline 0 ; func end
0004 0895 ret
0006 .dbend
0006 .dbfunc e EEPROM_write _EEPROM_write fV
0006 ; Datas -> R18
0006 ; Address -> R16
.even
0006 _EEPROM_write::
0006 .dbline -1
0006 .dbline 16
0006 ; }
0006 ;
0006 ; void EEPROM_write(unsigned char Address, unsigned char Datas)
0006 ; {
0006 L3:
0006 .dbline 17
0006 L4:
0006 .dbline 17
0006 ; while(EECR & (1<<EEWE));// 等待上一次写操作结束
0006 F999 sbic 0x1f,1
0008 FECF rjmp L3
000A .dbline 19
000A ;
000A ; EEARL= Address; // 设置地址和数据寄存器
000A 01BD out 0x21,R16
000C .dbline 20
000C ; EEDR = Datas;
000C 20BD out 0x20,R18
000E .dbline 21
000E ; EECR |= (1<<EEMWE); // 置位EEMWE
000E FA9A sbi 0x1f,2
0010 .dbline 22
0010 ; EECR |= (1<<EEWE); // 置位EEWE 以启动写操作E
0010 F99A sbi 0x1f,1
0012 .dbline -2
0012 L2:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbsym r Datas 18 c
0014 .dbsym r Address 16 c
0014 .dbend
0014 .dbfunc e EEPROM_read _EEPROM_read fc
0014 ; uiAddress -> R16
.even
0014 _EEPROM_read::
0014 .dbline -1
0014 .dbline 28
0014 ; }
0014 ;
0014 ;
0014 ;
0014 ; unsigned char EEPROM_read(unsigned char uiAddress)
0014 ; {
0014 L7:
0014 .dbline 29
0014 L8:
0014 .dbline 29
0014 ; while(EECR&(1<<EEWE)); //等待上一次写操作结束
0014 F999 sbic 0x1f,1
0016 FECF rjmp L7
0018 .dbline 30
0018 ; EEARL = uiAddress; // 设置地址寄存器
0018 01BD out 0x21,R16
001A .dbline 31
001A ; EECR |= (1<<EERE); // 设置EERE 以启动读操作
001A F89A sbi 0x1f,0
001C .dbline 32
001C ; return EEDR; // 自数据寄存器返回数据
001C 00B5 in R16,0x20
001E .dbline -2
001E L6:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbsym r uiAddress 16 c
0020 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -