📄 eeprom.lis
字号:
.module EEPROM.c
.area text(rom, con, rel)
0000 .dbfile D:\YM200\内部EEPROM\EEPROM.c
0000 .dbfunc e EEPROM_write _EEPROM_write fV
0000 ; dd -> R18
0000 ; addr -> R16,R17
.even
0000 _EEPROM_write::
0000 .dbline -1
0000 .dbline 9
0000 ; #include <iom16v.h>
0000 ; /*-----------------------------------------------------------
0000 ; EEPROM_write :EEPROM单字节写入
0000 ; 输入参数 addr :地址
0000 ; dd :数据
0000 ; 输出参数 :无
0000 ; ------------------------------------------------------------*/
0000 ; void EEPROM_write(unsigned int addr, unsigned char dd)
0000 ; {
0000 L2:
0000 .dbline 10
0000 L3:
0000 .dbline 10
0000 ; while(EECR & (1<<EEWE)); //等待上一次写操作结束
0000 E199 sbic 0x1c,1
0002 FECF rjmp L2
0004 .dbline 11
0004 ; EEAR = addr; //设置地址和数据寄存器
0004 1FBB out 0x1f,R17
0006 0EBB out 0x1e,R16
0008 .dbline 12
0008 ; EEDR = dd;
0008 2DBB out 0x1d,R18
000A .dbline 13
000A ; EECR |= (1<<EEMWE); //置位EEMWE
000A E29A sbi 0x1c,2
000C .dbline 14
000C ; EECR |= (1<<EEWE); //置位EEWE 以启动写操作
000C E19A sbi 0x1c,1
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r dd 18 c
0010 .dbsym r addr 16 i
0010 .dbend
0010 .dbfunc e EEPROM_read _EEPROM_read fV
0010 ; ucData -> R18,R19
0010 ; uiAddress -> R16,R17
.even
0010 _EEPROM_read::
0010 .dbline -1
0010 .dbline 23
0010 ; }
0010 ; /*-----------------------------------------------------------
0010 ; EEPROM_read :EEPROM单字节读取
0010 ; 输入参数 addr :地址
0010 ; dd :数据保存指针
0010 ; 输出参数 :无
0010 ; ------------------------------------------------------------*/
0010 ; void EEPROM_read(unsigned int uiAddress,unsigned char *ucData)
0010 ; {
0010 L6:
0010 .dbline 24
0010 L7:
0010 .dbline 24
0010 ; while(EECR & (1<<EEWE)); //等待上一次写操作结束
0010 E199 sbic 0x1c,1
0012 FECF rjmp L6
0014 .dbline 25
0014 ; EEAR = uiAddress; //设置地址寄存器
0014 1FBB out 0x1f,R17
0016 0EBB out 0x1e,R16
0018 .dbline 26
0018 ; EECR |= (1<<EERE); //设置EERE 以启动读操作
0018 E09A sbi 0x1c,0
001A .dbline 27
001A ; *ucData=EEDR; //自数据寄存器返回数据
001A 2DB2 in R2,0x1d
001C F901 movw R30,R18
001E 2082 std z+0,R2
0020 .dbline -2
0020 L5:
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r ucData 18 pc
0022 .dbsym r uiAddress 16 i
0022 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -