<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于STC單片機(jī)EEPROM的應(yīng)用總結(jié)

          關(guān)于STC單片機(jī)EEPROM的應(yīng)用總結(jié)

          作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          當(dāng)在程序運(yùn)行的過程中你希望修改某個(gè)變量并且此變量的值在掉電以后不丟失,那么你就可以采用將變量數(shù)據(jù)寫入EEPROM的方式來實(shí)現(xiàn)。
          什么是EEPROM,即Electrically Erasable ProgrammableRead_Only Memory首先它是一種存儲(chǔ)器,并且可以通過高電壓來進(jìn)行反復(fù)擦寫的存儲(chǔ)器。具有掉電數(shù)據(jù)不丟失的特點(diǎn)。比如常用的24C系列,93C系列的器件。一般這種器件采用I2C的方式與單片機(jī)進(jìn)行通訊,對(duì)于這種通訊方式及器件的應(yīng)用另作總結(jié)。這里主要總結(jié)一下,STC12C5204AD芯片內(nèi)部包含的EEPROM的應(yīng)用方法。
          STC12C5201AD系列單片機(jī)內(nèi)部集成了EEPROM是與程序空間分開的,利用ISP/IAP技術(shù)可將內(nèi)部dataflash當(dāng)EEPROM,擦寫10萬次以上。
          EEPROM可分為若干個(gè)扇區(qū),每個(gè)扇區(qū)包含512字節(jié)。
          使用時(shí)建議同一次修改的數(shù)據(jù)放在同一個(gè)扇區(qū),不是同一次修改的數(shù)據(jù)放在不同的扇區(qū),不一定要用滿。數(shù)據(jù)存儲(chǔ)器的擦除操作是按扇區(qū)進(jìn)行的。
          在程序中可對(duì)EEPROM進(jìn)行字節(jié)讀寫/字節(jié)編程/扇區(qū)擦除操作。在工作電壓Vcc偏低時(shí),建議不要進(jìn)行EEPROM/IAP操作。以免發(fā)生數(shù)據(jù)錯(cuò)誤。
          應(yīng)用的步驟
          1、聲明與EEPROM相關(guān)的寄存器
          2、編寫EEPROM初始化函數(shù)
          3、編寫字節(jié)擦除函數(shù)
          4、編寫字節(jié)編程函數(shù)
          5、編寫字節(jié)讀取函數(shù)
          6、在需要讀取EEPROM字節(jié)內(nèi)容時(shí)直接調(diào)用字節(jié)讀取函數(shù)即可
          7、在需要進(jìn)行寫EEPROM字節(jié)時(shí),先調(diào)用字節(jié)擦除函數(shù),將字節(jié)內(nèi)容擦除成FFH后,在調(diào)用字節(jié)編程函數(shù),將數(shù)據(jù)寫入到EEPROM的地址單元中。
          與EEPROM應(yīng)用相關(guān)的寄存器

          本文引用地址:http://www.ex-cimer.com/article/201612/324568.htm
          符號(hào)
          描述
          地址
          位地址及符號(hào)
          復(fù)位值
          IAP_DATA
          ISP/IAP flash data register
          C2H
          1111 1111B
          IAP_ADDRH
          ISP/IAPflashaddress high
          C3H
          0000 0000B
          IAP_ADDRL
          ISP/IAP flash address low
          C4H
          IAP_CMD
          ISP/IAP flash command register
          C5H
          MS1
          MS0
          IAP_TRIG
          ISP/IAP flash command trigger
          C6H
          xxxxxxxxxB
          IAP_CONTR
          ISP/IAP control register
          C7H
          IAPEN
          SWBS
          SWRST
          CMD_FAIL
          WT2
          WT1
          WT0
          0000X000B
          PCON
          Power control
          87H
          SOMD
          SMOD0
          LVDF
          POF
          GF1
          GF0
          PD
          IDL
          00110000B

          1、IAP_DATA:ISP/IAP數(shù)據(jù)寄存器
          ISP/IAP操作時(shí)的數(shù)據(jù)寄存器。
          ISP/IAP從FlASH讀出的數(shù)據(jù)存放此處,向flash寫的數(shù)據(jù)也需要放在此處。
          2、IAP_ADDRH和IAP_ADDRL :IAP/ISP地址寄存器
          3、IAP_CMD:ISP/IAP命令寄存器

          MS1
          MS0
          命令/操作模式選擇
          0
          0
          Standby 待機(jī)模式,無ISP操作
          0
          1
          從用戶程序區(qū)對(duì)“data flash /EEprom區(qū)”進(jìn)行字節(jié)讀
          1
          0
          從用戶的應(yīng)用程序區(qū)對(duì)“data flash/eeprom區(qū)”進(jìn)行字節(jié)編寫
          1
          1
          從用戶的應(yīng)用程序區(qū)對(duì)“dataflash/eeprom區(qū)”進(jìn)行扇區(qū)擦除

          4、IAP_TRIG:ISP/IAP命令觸發(fā)寄存器
          在IAPEN(IAP_CONTR.7)=1時(shí),對(duì)IAP——trig先寫入5AH,在寫入A5H,ISPIAP命令才會(huì)生效
          ISPIAP操作完成后,IAP地址高8位寄存器IAP_ADDRH、IAP地址低8位寄存器IAP_ADDRL 和IAP命令寄存器IAP_CMD的內(nèi)容不變。如果接下來要對(duì)下一個(gè)地址的數(shù)據(jù)進(jìn)行IAP/ISP操作,需手動(dòng)將該地址的高8位和低8位分別寫入IAP_ADDRH和IAP_ADDRL寄存器。
          每次IAP操作時(shí),都要對(duì)IAP_TRIG先寫入5AH,再寫入A5H,ISP/IAP命令才會(huì)生效。
          5、IAP_CONTR:ISPIAP控制寄存器

          SFR name
          Address
          Bit
          B7
          B6
          B5
          B4
          B3
          B2
          B1
          B0
          IAP_CONTR
          C7H
          Name
          IAPEN
          SWBS
          SWRST
          CMD_FAIL
          _
          WT2
          WT1
          WT0

          IAPEN:ISP/IAP功能允許位:0:禁止IAP讀/寫/擦除 data flash /eeprom
          1:允許IAP讀/寫/擦除 dataflash/eeprom
          SWBW:軟件選擇從用戶應(yīng)用程序區(qū)啟動(dòng)(送0),還是從系統(tǒng)ISP監(jiān)控程序啟動(dòng)(送1)。
          要與SWRST直接配合使用才可以實(shí)現(xiàn)
          SWRST:0:不操作;1:產(chǎn)生軟件系統(tǒng)復(fù)位,硬件自動(dòng)復(fù)位。
          CMD_FAIL:如果送了ISP/IAP命令,并對(duì)IAP_TRIG送5AH/A5H觸發(fā)失敗,則為1,需由軟件清零。
          在用戶應(yīng)用程序區(qū)(AP區(qū))軟件復(fù)位并從用戶應(yīng)用程序區(qū)(AP區(qū))開始執(zhí)行程序。
          MOV IAP_CONTR,#00100000B;SWBS=0(選擇AP區(qū)),SWRST=1(軟復(fù)位)
          在用戶應(yīng)用程序區(qū)(AP區(qū))軟件復(fù)位并從系統(tǒng)ISP監(jiān)控程序區(qū)開始執(zhí)行程序
          MOV IAP_CONTR,#01100000B;SWBS=1(選擇ISP區(qū)),SWRST=1(軟復(fù)位)
          在系統(tǒng)ISP監(jiān)控程序區(qū)軟件復(fù)位并從用戶應(yīng)用程序區(qū)(AP區(qū))開始執(zhí)行程序
          MOV IAP_CONTR,#00100000B;SWBS=0(選擇AP區(qū))SWRST=1(軟復(fù)位)
          在系統(tǒng)ISP監(jiān)控程序區(qū)軟件復(fù)位并從系統(tǒng)ISP監(jiān)控程序區(qū)開始執(zhí)行程序。
          MOV IAP_CONTR,#01100000B;SWBS=1(選擇ISP區(qū)),SWRST=1(軟復(fù)位)
          設(shè)置等待時(shí)間

          設(shè)置等待時(shí)間
          CPU等待時(shí)間(多少個(gè)CPU工作時(shí)鐘)
          WT2
          WT1
          WT0
          Read/讀
          (2個(gè)時(shí)鐘)
          Program/編程(=55us)
          Sector erase
          扇區(qū)擦除
          =21us
          Recommended system clock
          跟等待參數(shù)對(duì)應(yīng)的推薦系統(tǒng)時(shí)鐘
          1
          1
          1
          2個(gè)時(shí)鐘
          55個(gè)時(shí)鐘
          21012個(gè)時(shí)鐘
          <=1MHz
          1
          1
          0
          2個(gè)時(shí)鐘
          110個(gè)時(shí)鐘
          42024個(gè)時(shí)鐘
          <=2MHz
          1
          0
          1
          2個(gè)時(shí)鐘
          165個(gè)時(shí)鐘
          63036個(gè)時(shí)鐘
          <=3MHz
          1
          0
          0
          2個(gè)時(shí)鐘
          330個(gè)時(shí)鐘
          126072個(gè)時(shí)鐘
          <=6MHz
          0
          1
          1
          2個(gè)時(shí)鐘
          660個(gè)時(shí)鐘
          252144個(gè)時(shí)鐘
          <=12MHz
          0
          1
          0
          2個(gè)時(shí)鐘
          1100個(gè)時(shí)鐘
          420240個(gè)時(shí)鐘
          <=20MHz
          0
          0
          1
          2個(gè)時(shí)鐘
          1320個(gè)時(shí)鐘
          504288個(gè)時(shí)鐘
          <=24MHz
          0
          0
          0
          2個(gè)時(shí)鐘
          1760個(gè)時(shí)鐘
          672348個(gè)時(shí)鐘
          <=30MHz

          12c系列單片機(jī)內(nèi)部EEPROM選型一覽表

          型號(hào)
          字節(jié)數(shù)(eeprom)
          扇區(qū)數(shù)
          起始扇區(qū)首地址
          結(jié)束扇區(qū)末尾地址
          STC12C5201AD/PWM
          2K
          4
          0000h
          07ffh
          STC12C5202AD/PWM
          2k
          4
          0000h
          07ffh
          STC12C5203AD/PWM
          2k
          4
          0000h
          07ffh
          STC12C5204AD/PWM
          1k
          2
          0000h
          03ffh
          STC12C5205AD/PWM
          1k
          2
          0000h
          03ffh


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: STC單片機(jī)EEPRO

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();