欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7192|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

使用51單片機(jī)內(nèi)部EPROM斷電保存程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:188619 發(fā)表于 2017-5-26 23:24 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//#include <STC89C52RC.H>
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char   
#define uint unsigned int
uint temp,aa,a,V;

sbit mmm=P3^4;//復(fù)位
sbit nnn=P3^2;//繼電器
sbit kkk=P3^3;//燈
void cc(uint addr) ;
void xcx(uint addr,uchar dat);
uchar dcx(uint addr);
void Q0();
/****************特殊功能寄存器聲明****************/
sfr ISP_DATA = 0xc2;   
sfr ISP_ADDRH = 0xc3;     
sfr ISP_ADDRL = 0xc4;   
sfr ISP_CMD = 0xc5;   
sfr ISP_TRIG = 0xc6;      
sfr ISP_CONTR = 0xc7;

void  cc(uint addr);
void  xcx(uint addr,uchar dat);
uchar dcx(uint addr);
void  Q0();
void init1();
                                         //計(jì)數(shù)器初始化
void delay1(unsigned int cnt);
void delay_50us(uint t)
   {
  uchar F;
  for(;t>0;t--)
  for(F=19;F>0;F--);
   }
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數(shù):主程序
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void main(void)
{  
        //uchar gg;
     init1();
        temp=dcx(0x2002);
       //if(gg==2)
      // {  
        //   bai=temp/100;
       //   shi=temp%100/10;
       //   ge=temp%10;
    // display(bai,shi,ge);
  // }
  while(1)
   {
      if(aa==20)
      {
        aa=0;
        temp++;   
  cc(0x2000);
  delay1(300);              // 擦除第1個(gè)扇區(qū)(2000h~21FFh)
        xcx(0x2002,temp);
  delay1(300);
  if(temp<=5)
   {
   nnn=1;
   kkk=1;
   }
  if(temp>1&&temp<20)
  {
   nnn=0;
   kkk=0;
  }
         
      if(temp>=20)
       {
         temp=20;
   nnn=1;
   kkk=1;
  }
   if(mmm==0)
{
  delay_50us(200);
     if(mmm==0)
     {
   cc(0x2000);
   delay1(300);
   temp=1;
   nnn=1;
   kkk=1;
   xcx(0x2002,temp);
   delay1(300);
   temp=dcx(0x2002);
   delay1(300);
   while(!mmm);
   }
    delay_50us(200);
    while(!mmm);
}
         

    }
}
   
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數(shù):擦除某一扇區(qū)(每個(gè)扇區(qū)512字節(jié))
入口:addr = 某一扇區(qū)首地址                          
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void cc(uint addr)
{        
// 打開 IAP 功能(ISP_CONTR.7)=1:允許編程改變Flash, 設(shè)置Flash操作等待時(shí)間
// 0x83(晶振<5M)   0x82(晶振<10M)   0x81(晶振<20M)   0x80(晶振<40M)
    ISP_CONTR = 0x81;  
    ISP_CMD   = 0x03;                  // 用戶可以對(duì)"Data Flash/EEPROM區(qū)"進(jìn)行扇區(qū)擦除
    ISP_ADDRL = addr;         // ISP/IAP操作時(shí)的地址寄存器低八位,
    ISP_ADDRH = addr>>8;      // ISP/IAP操作時(shí)的地址寄存器高八位。   
    ISP_TRIG = 0x5A;          // 在ISPEN(ISP_CONTR.7)=1時(shí),對(duì)ISP_TRIG先寫入46h,
    ISP_TRIG = 0xA5;          // 再寫入B9h,ISP/IAP命令才會(huì)生效。
          _nop_();
           Q0();             // 關(guān)閉ISP/IAP
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數(shù):寫一字節(jié)
入口:addr = 扇區(qū)單元地址 , dat = 待寫入數(shù)據(jù)
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void xcx(uint addr,uchar dat)
{
    ISP_CONTR = 0x81;                  
    ISP_CMD   = 0x02;         // 用戶可以對(duì)"Data Flash/EEPROM區(qū)"進(jìn)行字節(jié)編程
    ISP_ADDRL = addr;        
    ISP_ADDRH = addr>>8;      
    ISP_DATA  = dat;          // 數(shù)據(jù)進(jìn)ISP_DATA
ISP_TRIG = 0x5A;         
    ISP_TRIG = 0xA5;         
    _nop_();
           _nop_();
          _nop_();
       Q0();                 // 關(guān)閉ISP/IAP
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數(shù):讀一字節(jié)
入口:addr = 扇區(qū)單元地址
出口:dat  = 讀出的數(shù)據(jù)
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
uchar dcx(uint addr)
{   
    uchar dat;
    ISP_CONTR = 0x81;                  
    ISP_CMD   = 0x01;         // 用戶可以對(duì)"Data Flash/EEPROM區(qū)"進(jìn)行字節(jié)讀
    ISP_ADDRL = addr;         
    ISP_ADDRH = addr>>8;
    ISP_TRIG = 0x5A;         
    ISP_TRIG = 0xA5;         
        _nop_();

    dat = ISP_DATA;                          // 取出數(shù)據(jù)
          Q0();                              // 關(guān)閉ISP/IAP                  
    return dat;
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數(shù):關(guān)閉ISP/IAP操作
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void Q0()
{
          ISP_CONTR = 0;            // 關(guān)閉IAP功能
          ISP_CMD   = 0;            // 待機(jī)模式,無ISP操作
          ISP_TRIG  = 0;            // 關(guān)閉IAP功能, 清與ISP有關(guān)的特殊功能寄存器
}

void delay1(unsigned int cnt)
{
while(--cnt);
}

void init1()                                            //計(jì)數(shù)器初始化
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}

/*
STC89C52RC內(nèi)部EEPROM詳細(xì)地址表:
第一扇區(qū)            第二扇區(qū)             第三扇區(qū)              第四扇區(qū)
起始地址 結(jié)束地址   起始地址  結(jié)束地址   起始地址   結(jié)束地址   起始地址   結(jié)束地址
2000h     21FFh     2200h    23FFh       2400h      25FFh       2600h      27FFH
第五扇區(qū)              第六扇區(qū)               第七扇區(qū)          第八扇區(qū)
起始地址  結(jié)束地址  起始地址   結(jié)束地址   起始地址  結(jié)束地址   起始地址   結(jié)束地址
2800h      29FFh      2A00h      2BFFh     2C00h    2DFFh      2E00h      2FFFh
*/
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:459030 發(fā)表于 2019-2-27 18:28 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表