新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > avr單片機eeprom初始化配置及說明

        avr單片機eeprom初始化配置及說明

        作者: 時間:2016-11-18 來源:網絡 收藏
        ATmega16 包含 512 字節的 EEPROM 數據存儲器。它是作為一個獨立的數據空間而存在的,可以按字節讀寫。 EEPROM 的壽命至少為 100,000 次擦除周期。 EEPROM 的訪問 由地址寄存器、數據寄存器和控制寄存器決定。

        /*
        EEPROM 數據存儲器

        本文引用地址:http://www.104case.com/article/201611/315762.htm

        EEPROM 地址寄存器(EEARH 和 EEARL)

        bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

        EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0

        Res: 保留

        保留位,讀操作返回值為零。

        EEAR8..0: EEPROM 地址

        EEPROM地址寄存器 – EEARH和EEARL指定了512字節的EEPROM空間。EEPROM地址是線性

        的,從0 到511。EEAR的初始值沒有定義。在訪問EEPROM之前必須為其賦予正確的數據。
        EEPROM數據寄存器 EEDR

        bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
        MSB LSB

        EEDR7.0: EEPROM 數據

        對于EEPROM寫操作, EEDR是需要寫到EEAR單元的數據;對于讀操作,EEDR 是從

        地址EEAR讀取的數據。

        EEPROM控制寄存器 EECR

        bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

        – – – – EERIE EEMWE EEWE EERE

        Res: 保留

        保留位,讀操作返回值為零。

        EERIE: 使能EEPROM 準備好中斷

        若SREG 的I 為"1",則置位EERIE 將使能EEPROM 準備好中斷。清零EERIE 則禁止此

        中斷。當EEWE 清零時EEPROM 準備好中斷即可發生。

        EEMWE: EEPROM 主機寫使能

        EEMWE決定了EEWE置位是否可以啟動EEPROM寫操作。當EEMWE為"1"時,在4個時鐘周

        期內置位EEWE將把數據寫入EEPROM的指定地址;若EEMWE為"0“,則操作EEWE不起

        作用。EEMWE置位后4個周期,硬件對其清零。見EEPROM 寫過程中對EEWE 位的描述。

        EEWE: EEPROM寫使能

        EEWE為EEPROM寫操作的使能信號。當EEPROM數據和地址設置好之后,需置位EEWE以便將

        數據寫入EEPROM。此時EEMWE必須置位,否則EEPROM寫操作將不會發生。


        */

        #include
        #include
        /*EEPROM的512字節讀寫操作*/
        void EEPROM_write(unsigned int uiAddress, unsigned char ucData)//寫數據.存數據的地址0-511之間
        {

        while(EECR & (1<EEAR = uiAddress;//設置地址
        EEDR = ucData;//設置數據
        EECR |= (1<EECR |= (1<}


        unsigned char EEPROM_read(unsigned int uiAddress)//讀數據
        {
        while(EECR & (1<EEAR = uiAddress;//設置地址
        EECR |= (1<return EEDR;//返回數據寄存器里面的數據,讀操作完成,
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 玛沁县| 新闻| 磴口县| 开封市| 沂源县| 博湖县| 海伦市| 兴安县| 南宁市| 普格县| 比如县| 基隆市| 昆山市| 庆元县| 珠海市| 青岛市| 海盐县| 东丰县| 涿州市| 乌鲁木齐市| 长子县| 大城县| 金沙县| 昌乐县| 乌拉特后旗| 托克逊县| 博白县| 大宁县| 水城县| 阳曲县| 义马市| 天祝| 七台河市| 凤凰县| 高雄县| 大厂| 务川| 治多县| 台东县| 丰镇市| 峨边|