stc單片機EEPROM讀寫--最簡潔的的拿來就用保證沒錯^_^簡潔至上!

sfr isp_data=0xe2;
sfr isp_addrh=0xe3;
sfr isp_addrl=0xe4;
sfr isp_cmd=0xe5;
sfr isp_trig=0xe">

      技術(shù)頻道

      stc eeprom的實用讀寫演示,提供了一種eeprom動

      stc單片機EEPROM讀寫--最簡潔的的拿來就用保證沒錯^_^簡潔至上!

      sfr isp_data=0xe2;
      sfr isp_addrh=0xe3;
      sfr isp_addrl=0xe4;
      sfr isp_cmd=0xe5;
      sfr isp_trig=0xe6;
      sfr isp_contr=0xe7;

      unsigned char eeprom_read(unsigned int addres);
      void eeprom_write(unsigned int address,unsigned char wdata);
      void eeprom_eares(unsigned int addres);//扇區(qū)擦除。

      void eeprom_eares(unsigned int addres)//扇區(qū)擦除。
      {unsigned i;
      isp_addrl=addres; //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //設(shè)時間與充ISP操作。
      isp_cmd=0x03; //扇區(qū)命命令
      isp_trig=0x46; //觸發(fā)
      isp_trig=0xb9; //觸發(fā)啟動。
      for(i=0;i<3;i++);
      isp_addrl=0xff;
      isp_addrh=0xff;
      isp_contr=0x00;
      isp_cmd=0x00;
      isp_trig=0x00;

      }
      void eeprom_write(unsigned int addres,unsigned char write_data)//寫數(shù)據(jù)。
      {unsigned char i;
      isp_data=write_data; //要寫入的數(shù)據(jù)。
      isp_addrl=addres; //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //設(shè)時間與充ISP操作。
      isp_cmd=0x02; //寫命令
      isp_trig=0x46; //觸發(fā)
      isp_trig=0xb9; //觸發(fā)啟動。
      for(i=0;i<3;i++);
      isp_addrl=0xff;
      isp_addrh=0xff;
      isp_contr=0x00;
      isp_cmd=0x00;
      isp_trig=0x00;


      }
      unsigned char eeprom_read(unsigned int addres)
      {unsigned char i,z;
      isp_addrl=addres; //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //設(shè)時間與充ISP操作。
      isp_cmd=0x01; //寫命令
      isp_trig=0x46; //觸發(fā)
      isp_trig=0xb9; //觸發(fā)啟動。
      for(i=0;i<3;i++);
      isp_addrl=0xff;
      isp_addrh=0xff;
      isp_contr=0x00;
      isp_cmd=0x00;
      isp_trig=0x00;
      z=isp_data;
      return(z);


      }

      最給一個匯編的:
      ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      ;;; 內(nèi)部EEPROM讀寫定義
      ISP_DATA EQU 0E2H ;寫入讀出數(shù)據(jù)寄存器.
      ISP_ADDRH EQU 0E3H ;地址寄存器高8位
      ISP_ADDRL EQU 0E4H ;地址寄存器低8位
      ISP_CMD EQU 0E5H ;命令模式寄存器
      ISP_TRIG EQU 0E6H ;命令觸發(fā)寄存器
      ISP_CONTR EQU 0E7H ;ISP/IAP控制寄存器.
      ISP_IAP_BYTE_READ EQU 1 ;字節(jié)讀
      ISP_IAP_BYTE_PROGRAM EQU 2 ;字節(jié)編程,要空才能寫
      ISP_IAP_SECTOR_ERASE EQU 3 ;扇區(qū)擦除,
      WAIT_TIME EQU 1 ;20M以下為1
      BYTE_ADDR_HIGH EQU 60H ;高位地址
      BYTE_ADDR_LOW EQU 61H ;低位地址
      BYTE_WRITE_DATA EQU 62H ;要寫入的數(shù)據(jù)

      ;***********************內(nèi)部EEPROM操作*************************
      READ_EEPROM:MOV ISP_ADDRH,ISP_ADDRH ;送高地址
      MOV ISP_ADDRL,ISP_ADDRL ;送低地址
      MOV ISP_CONTR,#01h ;設(shè)置等等待時間
      ORL ISP_CONTR,#80h ;允許ISP/IAP操作
      MOV ISP_CMD,#01h ;送讀命令
      MOV ISP_TRIG,#46H ;觸發(fā)
      MOV ISP_TRIG,#0B9H ;觸發(fā)啟動.
      NOP
      NOP
      MOV ISP_CONTR,#00H
      MOV ISP_CMD,#00H
      MOV ISP_TRIG,#00H
      MOV ISP_ADDRH,#0FFH
      MOV ISP_ADDRL,#0FFH
      MOV 6AH,ISP_DATA ;讀出的數(shù)據(jù)放到6AH單元中。

      RET
      WRITE_EARES: MOV WDT,#34H
      CLR EA ;關(guān)中斷
      MOV ISP_ADDRH,ISP_ADDRH ;送高地址
      MOV ISP_ADDRL,ISP_ADDRL ;送低地址
      MOV ISP_CONTR,#1h ;設(shè)置等等待時間
      ORL ISP_CONTR,#10000000B ;允許ISP/IAP操作
      MOV ISP_CMD,#3h ;送扇區(qū)命令
      MOV ISP_TRIG,#46H ;觸發(fā)
      MOV ISP_TRIG,#0B9H ;觸發(fā)啟動.
      NOP
      NOP
      MOV ISP_CONTR,#00H
      MOV ISP_CMD,#00H
      MOV ISP_TRIG,#00H
      MOV ISP_ADDRH,#0FFH
      MOV ISP_ADDRL,#0FFH
      SETB EA
      RET
      WRITE_EEPROM:MOV WDT,#34H
      CLR EA
      MOV ISP_DATA,BYTE_WRITE_DATA ;要寫入的數(shù)據(jù)
      MOV ISP_ADDRH,ISP_ADDRH ;送高地址
      MOV ISP_ADDRL,ISP_ADDRL ;送低地址
      MOV ISP_CONTR,#1h ;設(shè)置等等待時間
      ORL ISP_CONTR,#10000000B ;允許ISP/IAP操作
      MOV ISP_CMD,#02h ;送寫命令
      MOV ISP_TRIG,#46H ;觸發(fā)
      MOV ISP_TRIG,#0B9H ;觸發(fā)啟動.
      NOP
      NOP
      MOV ISP_CONTR,#00H
      MOV ISP_CMD,#00H
      MOV ISP_TRIG,#00H
      MOV ISP_ADDRH,#0FFH
      MOV ISP_ADDRL,#0FFH
      SETB EA ;開中斷

      RET

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 上原亚衣一区二区在线观看| 国产精品毛片VA一区二区三区| 国99精品无码一区二区三区| 波多野结衣中文一区| 熟女性饥渴一区二区三区| 一区免费在线观看| 麻豆一区二区免费播放网站| 日韩一区二区久久久久久| 丰满人妻一区二区三区视频| 国产精品亚洲一区二区三区| 亚洲欧美成人一区二区三区| 无码人妻AV免费一区二区三区| 人妻少妇一区二区三区| 国产人妖视频一区二区| 亚洲啪啪综合AV一区| 国产AV午夜精品一区二区三| 制服中文字幕一区二区 | 国产成人AV区一区二区三| 亚洲一区电影在线观看| 精品国产乱码一区二区三区| 亚洲福利秒拍一区二区| 无码囯产精品一区二区免费 | 国产午夜福利精品一区二区三区| 精品一区二区三区视频在线观看 | 国产精品美女一区二区视频 | 精品乱码一区二区三区在线| 国产成人久久一区二区三区| 国产一区风间由美在线观看| 美女福利视频一区二区| 一区二区三区福利视频| 国产在线不卡一区二区三区| 国产精品毛片一区二区三区| 日韩一区二区视频| 暖暖免费高清日本一区二区三区 | 亚洲色欲一区二区三区在线观看 | 精品乱子伦一区二区三区高清免费播放| 一区二区在线播放视频| 日本不卡在线一区二区三区视频| 国产精品免费一区二区三区四区| 一区一区三区产品乱码| 精品在线视频一区|