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

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

      技術頻道

      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);//扇區擦除。

      void eeprom_eares(unsigned int addres)//扇區擦除。
      {unsigned i;
      isp_addrl=addres; //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //設時間與充ISP操作。
      isp_cmd=0x03; //扇區命命令
      isp_trig=0x46; //觸發
      isp_trig=0xb9; //觸發啟動。
      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)//寫數據。
      {unsigned char i;
      isp_data=write_data; //要寫入的數據。
      isp_addrl=addres; //低位地址
      isp_addrh=addres>>8; //高位地址
      isp_contr=0x01;
      isp_contr=isp_contr|0x80; //設時間與充ISP操作。
      isp_cmd=0x02; //寫命令
      isp_trig=0x46; //觸發
      isp_trig=0xb9; //觸發啟動。
      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; //設時間與充ISP操作。
      isp_cmd=0x01; //寫命令
      isp_trig=0x46; //觸發
      isp_trig=0xb9; //觸發啟動。
      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);


      }

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

      ;***********************內部EEPROM操作*************************
      READ_EEPROM:MOV ISP_ADDRH,ISP_ADDRH ;送高地址
      MOV ISP_ADDRL,ISP_ADDRL ;送低地址
      MOV ISP_CONTR,#01h ;設置等等待時間
      ORL ISP_CONTR,#80h ;允許ISP/IAP操作
      MOV ISP_CMD,#01h ;送讀命令
      MOV ISP_TRIG,#46H ;觸發
      MOV ISP_TRIG,#0B9H ;觸發啟動.
      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 ;讀出的數據放到6AH單元中。

      RET
      WRITE_EARES: MOV WDT,#34H
      CLR EA ;關中斷
      MOV ISP_ADDRH,ISP_ADDRH ;送高地址
      MOV ISP_ADDRL,ISP_ADDRL ;送低地址
      MOV ISP_CONTR,#1h ;設置等等待時間
      ORL ISP_CONTR,#10000000B ;允許ISP/IAP操作
      MOV ISP_CMD,#3h ;送扇區命令
      MOV ISP_TRIG,#46H ;觸發
      MOV ISP_TRIG,#0B9H ;觸發啟動.
      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 ;要寫入的數據
      MOV ISP_ADDRH,ISP_ADDRH ;送高地址
      MOV ISP_ADDRL,ISP_ADDRL ;送低地址
      MOV ISP_CONTR,#1h ;設置等等待時間
      ORL ISP_CONTR,#10000000B ;允許ISP/IAP操作
      MOV ISP_CMD,#02h ;送寫命令
      MOV ISP_TRIG,#46H ;觸發
      MOV ISP_TRIG,#0B9H ;觸發啟動.
      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

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 国产精华液一区二区区别大吗| 香蕉视频一区二区三区| 波多野结衣AV一区二区三区中文| 国产福利一区二区| 亚洲国产成人一区二区精品区| 一区国产传媒国产精品| 日韩人妻无码一区二区三区| 国产精品一区二区在线观看| 亚洲国产av一区二区三区丶| 国产精品一区二区久久不卡| 一区二区高清视频在线观看| 99国产精品欧美一区二区三区| 亚洲天堂一区二区三区四区| 国产精品毛片一区二区三区| 国产精品男男视频一区二区三区 | 精品人妻少妇一区二区| 国产一区二区影院| 亚洲熟妇AV一区二区三区宅男| 亚洲一区中文字幕久久| 午夜精品一区二区三区免费视频| 一区二区三区国产| 亚洲AV无码第一区二区三区| 久久精品国产一区二区三| 无码少妇一区二区三区浪潮AV | 人妻夜夜爽天天爽爽一区| 国精品无码一区二区三区在线| 成人影片一区免费观看| 国产亚洲无线码一区二区| 精品久久一区二区| 在线播放国产一区二区三区 | 国产精品无码亚洲一区二区三区| AV无码精品一区二区三区| 国产一区二区不卡老阿姨| 无码人妻aⅴ一区二区三区有奶水| 在线视频国产一区| 一区二区三区伦理高清| 久久免费国产精品一区二区| 亚洲av无码片区一区二区三区| 日韩精品人妻一区二区三区四区| 亚洲Av永久无码精品一区二区 | 亚洲午夜一区二区三区|