rw_eeprom.lis

来自「详细介绍M8两版间通讯」· LIS 代码 · 共 74 行

LIS
74
字号
                        .module RW_eeprom.c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\Mega8程序\测试MegaOSCCAL\RW_eeprom.c
 0000                   .dbfunc e rom_write _rom_write fV
 0000           ;           Data -> R18
 0000           ;        Address -> R16,R17
                        .even
 0000           _rom_write::
 0000                   .dbline -1
 0000                   .dbline 3
 0000           ; #include <iom8v.h>
 0000           ; void rom_write(unsigned int Address,unsigned  char Data)
 0000           ;        {
 0000           L2:
 0000                   .dbline 4
 0000           L3:
 0000                   .dbline 4
 0000           ;         while(EECR&(1<<EEWE));
 0000 E199              sbic 0x1c,1
 0002 FECF              rjmp L2
 0004                   .dbline 5
 0004           ;         EEAR=Address;
 0004 1FBB              out 0x1f,R17
 0006 0EBB              out 0x1e,R16
 0008                   .dbline 6
 0008           ;         EEDR=Data;
 0008 2DBB              out 0x1d,R18
 000A                   .dbline 7
 000A           ;         EECR|=(1<<EEMWE);
 000A E29A              sbi 0x1c,2
 000C                   .dbline 8
 000C           ;         EECR|=(1<<EEWE);
 000C E19A              sbi 0x1c,1
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r Data 18 c
 0010                   .dbsym r Address 16 i
 0010                   .dbend
 0010                   .dbfunc e rom_read _rom_read fi
 0010           ;        Address -> R16,R17
                        .even
 0010           _rom_read::
 0010                   .dbline -1
 0010                   .dbline 11
 0010           ;         }
 0010           ; unsigned rom_read(unsigned int Address)
 0010           ;                 {
 0010           L6:
 0010                   .dbline 12
 0010           L7:
 0010                   .dbline 12
 0010           ;                  while(EECR&(1<<EEWE));
 0010 E199              sbic 0x1c,1
 0012 FECF              rjmp L6
 0014                   .dbline 13
 0014           ;                  EEAR=Address;
 0014 1FBB              out 0x1f,R17
 0016 0EBB              out 0x1e,R16
 0018                   .dbline 14
 0018           ;                  EECR|=(1<<EERE);
 0018 E09A              sbi 0x1c,0
 001A                   .dbline 15
 001A           ;                  return EEDR;
 001A 0DB3              in R16,0x1d
 001C 1127              clr R17
 001E                   .dbline -2
 001E           L5:
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbsym r Address 16 i
 0020                   .dbend

⌨️ 快捷键说明

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