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

📄 fm_eeprom.c

📁 78K0S EEPROM模拟功能程序
💻 C
字号:



#pragma sfr
#pragma nop
#pragma di
#pragma ei
#pragma access
#pragma interrupt INTP1 intp1_func


void eeprom_operation();
void eeprom_read();
extern void eeprom_write();
extern void eeprom_erase();



sreg  unsigned char write_start=0;
sreg  unsigned int  pre_FM_data=887;
sreg  unsigned int  new_FM_data=887;
sreg  unsigned int  end_data=0;
sreg  unsigned int  address=0x0dfb;
sreg  unsigned int  write_address=0;


void hardware_init()
{
    DI();
    
    PCC = 0x00;
    PPCC = 0x00;
       
    WDTE = 0xAC;
    WDTM = 0b01110111;
    LSRCM = 0x01;
    
    PM4.3 = 1;
    INTM0 = 0x00;
    PIF1 = 0;
    PMK1 = 0;
    
    EI();
}

void main()
{
  hardware_init();
  eeprom_read();
  
  while(1)
  {
    if(new_FM_data!=pre_FM_data)
     {
       pre_FM_data = new_FM_data;
       eeprom_operation();
     }
  }

}


__interrupt void intp1_func()
{

  PIF1 = 0;
  new_FM_data++;
  
}
 
void eeprom_operation()
{
         for(address=0x0efe; address>=0x0dfe; address=address-2)
           {
             end_data = peekw(address);
             if(address==0x0efe)
               {
                 if((end_data!=0xffff)&&(end_data!=0x0000))
                  {
                    write_address = 0x0e00;
                    eeprom_erase(); 
                    eeprom_write();
                    address = 0x0dfb;
                  }
               }
              else if((end_data!=0xffff)&&(end_data!=0x0000))
               {
                 write_address = address + 2;
                 eeprom_write();
                 address = 0x0dfb;
               }
           }
} 

void eeprom_read()
{
   end_data = peekw(0x0e00);
   
   if((end_data==0xffff)||(end_data==0x0000))
     {
       new_FM_data = pre_FM_data = 887;
     }
     else{
          for(address=0x0efe; address>=0x0e00; address=address-2)
           {
             end_data = peekw(address);
             if((end_data!=0xffff)&&(end_data!=0x0000))
               {
                 new_FM_data = pre_FM_data = end_data;
                 address = 0x0dff;
               }
           }     
         }      

}

⌨️ 快捷键说明

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