精品国产一区在线_av无码中文字幕无码王_天海翼三点刺激高潮不停_好硬好大好爽视频_欧美高清一区三区在线专区_香蕉黄色片

  • 回復(fù)
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

STC15f內(nèi)部EEPROM


1.EEPROM我使用的時候查看了使用手冊了解相關(guān)寄存器的使用(寄存器設(shè)置沒看懂只是看著用)

查看例程只用擦除扇區(qū)函數(shù),讀和寫操作,(都是可用的函數(shù)拿來就可以用),關(guān)閉IAP寄存器操作函數(shù),在進(jìn)行操作的時候初始化一邊即可多次調(diào)用讀寫函數(shù)

我遇到的問題1.STC15F2K60S2只有2個扇區(qū)每個扇區(qū)512個字節(jié),字節(jié)數(shù)1K,我當(dāng)時不明白,在進(jìn)行多個扇區(qū)讀寫失敗 用IAP字節(jié)讀時EEPROM起始扇區(qū)首地址: 0000h;用IAP字節(jié)讀時EEPROM結(jié)束扇區(qū)末地址: 03FFh

2.不明白怎么調(diào)用讀寫函數(shù)

寫入函數(shù)調(diào)用 void IapProgramByte( 扇區(qū)地址寫入的數(shù)據(jù))讀寫函數(shù)調(diào)用 unsigned char IapReadByte(想要讀出數(shù)據(jù)的扇區(qū)地址) 總體而言開始之前我了解EEPROM的作用能做什么,然后我才想怎么開始使用,我看了看數(shù)據(jù)手冊,看完我不懂,我隨后百度查EERPOM的應(yīng)用和初始化,以及函數(shù)的編寫,最后是調(diào)用測試

在使用EEPROM 的時候操作步驟
先開始對EEPROM進(jìn)行初始化操作
sfr IAP_DATA = 0xC2;  //IAP數(shù)據(jù)寄存器
sfr IAP_ADDRH = 0xC3; //IAP地址寄存器高字節(jié)
sfr IAP_ADDRL = 0xC4; //IAP地址寄存器低字節(jié)
sfr IAP_CMD = 0xC5;     //IAP命令寄存器
sfr IAP_TRIG = 0xC6;  //IAP命令觸發(fā)寄存器
sfr IAP_CONTR = 0xC7; //IAP控制寄存器
#define CMD_IDLE 0     //空閑模式
#define CMD_READ 1  //IAP字節(jié)讀命令
#define CMD_PROGRAM 2 //IAP字節(jié)編程命令
#define CMD_ERASE 3       //IAP扇區(qū)擦除命令
注具體看使用手冊
然后在進(jìn)行編寫函數(shù)操作
擦除函數(shù)(函數(shù)的格式是固定的)
void IapEraseSector(WORD addr)
{
       IAP_CONTR= ENABLE_IAP;      //使能IAP
       IAP_CMD= CMD_ERASE;                     //使能IAP命令
       IAP_ADDRL= addr;                      //設(shè)置IAP低地址
       IAP_ADDRH= addr >> 8;             //設(shè)置IAP高地址
       IAP_TRIG= 0x5a;                      //寫觸發(fā)命令0x5a
       IAP_TRIG= 0xa5;                      ///寫觸發(fā)命令0xa5
       _nop_();                                  //等待寫ISP/IAP/EEPROM數(shù)據(jù)完成
       IapIdle();                        //關(guān)閉IAP功能
}
寫入EEPROM區(qū)域數(shù)據(jù)函數(shù)(單字節(jié)寫入)
void IapProgramByte(WORD addr, BYTE dat)
{
       IAP_CONTR= ENABLE_IAP; //使能IAP
       IAP_CMD= CMD_PROGRAM; //設(shè)置IAP命令
       IAP_ADDRL= addr;               //設(shè)置IAP低地址
       IAP_ADDRH= addr >> 8;      //設(shè)置IPA高地址
       IAP_DATA= dat;                   //寫ISP/IAP/EEPROM數(shù)據(jù)
       IAP_TRIG= 0x5a;            //寫觸發(fā)命令0x5a
       IAP_TRIG= 0xa5;            //寫觸發(fā)命令0xa5
       _nop_();                         //等待寫ISP/IAP/EEPROM數(shù)據(jù)完成
       IapIdle();                 //關(guān)閉IAP功能
}
讀出單字節(jié)EEPROM區(qū)域數(shù)據(jù)
unsigned char IapReadByte(WORD addr)
{
       BYTE dat;                     //數(shù)據(jù)緩沖區(qū)
       IAP_CONTR= ENABLE_IAP;        //使能IAP
       IAP_CMD= CMD_READ;          //設(shè)置讀取命令
       IAP_ADDRL= addr;                //設(shè)置IAP低八位地址
       IAP_ADDRH= addr >> 8;          //設(shè)置IAP高八位地址  
       IAP_TRIG= 0x5a;               //寫觸發(fā)命令(0x5a)
       IAP_TRIG= 0xa5;               //寫觸發(fā)命令(0xa5)
       _nop_();                       //等待ISP/IAP/EEPROM操作完成   
       dat= IAP_DATA;                //讀ISP/IAP/EEPROM數(shù)據(jù)
       IapIdle();                      //關(guān)閉IAP功能
       return dat;                           //返回
}
關(guān)閉對IAP寄存器操作函數(shù)
void IapIdle()
{
       IAP_CONTR= 0;                  //關(guān)閉IAP功能 寄存器讀寫開關(guān)
       IAP_CMD= 0;                    //清除指令待機(jī)
       IAP_TRIG= 0;                   //清空觸發(fā)器寄存器
       IAP_ADDRH= 0x80;               //地址寄存器高八位
       IAP_ADDRL= 0;                             //地址寄存器低八位
}

目的:

單片機(jī)運行時的數(shù)據(jù)都存在于RAM(隨機(jī)存儲器)中,在掉電后RAM中的數(shù)據(jù)是無法保留的,那么怎樣使數(shù)據(jù)在掉電后不丟失呢?這就需要使用內(nèi)部EEPROM (EEPROM可以擦寫100000)FLASHROM 等存儲器來實現(xiàn)。在傳統(tǒng)的單片機(jī)系統(tǒng)中,一般是在片外擴(kuò)展存儲器,單片機(jī)與存儲器之間通過IIC SPI 等接口來進(jìn)行數(shù)據(jù)通信。這樣不光會增加開發(fā)成本,同時在程序開發(fā)上也要花更多的心思。在STC 單片機(jī)中內(nèi)置了EEPROM(其實是采用ISP/IAP技術(shù)讀寫內(nèi)部FLASH 來實現(xiàn)EEPROM),正是因為有了IAP,從而可以使單片機(jī)可以將數(shù)據(jù)寫入到程序存儲器中,使得數(shù)據(jù)如同燒入的程序一樣,掉電不丟失。當(dāng)然寫入數(shù)據(jù)的區(qū)域與程序存儲區(qū)要分開來,以使程序不會遭到破壞。這樣就節(jié)省了片外資源,使用起來也更加方便。

下面就詳細(xì)介紹STC 單片機(jī)內(nèi)置EEPROM 及其使用方法

2STC15F2K60S2系列單片機(jī)的內(nèi)部結(jié)構(gòu)圖

STC15F2K60S2系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖如下圖所示,STC15F2K60S2系列單片機(jī)中包含中央處理器(CPU)、程序存儲器(Flash)、數(shù)據(jù)存儲器(SRAM)、定時器、IO口、高速A/D轉(zhuǎn)換、看門狗、UART高速異步串行通信口1/串行通信口2,CCP/PWM/PCA,一組高速同步串行端口SPI,片內(nèi)高精度R/C時鐘及高可靠復(fù)位等模塊,STC15F2K60S2系列單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中的所有單元模塊。


來源:網(wǎng)絡(luò),如侵,刪


全部回復(fù)(1)
正序查看
倒序查看
lingyan
LV.8
2
2019-01-09 09:54
學(xué)習(xí)了
0
回復(fù)
發(fā)
主站蜘蛛池模板: freexx欧美 | 九九九九九九伊人 | 制服国产有码中文字幕 | 精品亚洲成a人在线观看 | 国产在线一级不卡一区二区 | 男人女人真曰批免费观看国产 | 伊人影院网 | 一区二区三区在线观看国产 | 成人欧美一区二区三区黑人 | 777yyy亚洲精品一区二区 | 色婷婷av一区二区三区影片 | 无码AV一区二区大桥久未 | 狠狠狠欧美一区二区欧美 | 久久成人精品一区二区三区 | H无码精品3D动漫在线观看 | 国产一级毛片a | 国产一级特黄aa大片出来精子 | 国产又色又爽又刺激在线观看 | 国产农村女人一级毛片 | 无主之花在线观看 | 国产成人午夜片在线观看 | 中文字幕无码无遮挡在线看 | sifangktv新入口 | 很污很污的网站 | 豪放女大兵免费播放在线观看 | 国产亚洲精品久久久久久久久 | 国产一区二区三区视频 | 欧美激情一区二区在线观看 | 免费视频在线观看网站1 | 性做爰七十二姿势视频 | 久久精品人人做人人综合 | 九色91视频 | 乱码av午夜噜噜噜噜一 | 在线视频国产一区 | 国产精品久久免费观看 | 双乳奶水饱满少妇呻吟蝴蝶 | 8888四色奇米在线观看 | 国产美女裸体免无遮挡免费网站 | 三年片观看免费观看大全 | 少妇毛片一区二区三区免费视频 | 欧美重口另类在线播放二区 |