当前位置: 首页 >> 应用笔记 >>你选择的正文
 
BASCOMAVR对EEPROM的操作方法
                                                    
日期:06-17-2007  
 

 

    在AVR系列单片机中片内集成了EEPROM,很多需要掉电后保存的数据可以很方便的存入片内EEPROM中,而不需要再像51系列单片机需外挂EEPROM存储器。

    在BASCOM对EEPROM的操作基本上有三种使用方法

    1、 预先写一部分数据到EEPROM中去,程序运行时,再将需要的数据从EEPROM中读出。

           '------------------------------------------------------------------------
           '使用芯片: Atmega16
           '晶振: 内部8MHz晶振
           'email: support@avrbascom.com
           '软件版本: Bascom-AVR 1.11.8.7 Full version
           '------------------------------------------------------------------------


                $regfile = "m16def.dat"                '芯片为ATmega16
                $crystal = 8000000                     '8M晶振频率

                $hwstack = 32                          ' 设置堆栈大小
                $swstack = 10
                $framesize = 40

                Dim B As Byte

                $eeprom
                $eepromhex
                Dta:
                Data 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8
                $data

                Readeeprom B , 0 ' B的值为1

                End
    程序编译通过后,会有以eep为后缀的文件生成。
    使用烧写Flash的类似的方法即可烧录EEPROM

啊

   
    2、 把变量定义成EEPROM变量

        对变量的赋值就会将变量写入EEPROM中

        Dim b as byte, bx as ERAM byte
        B= 1
        Bx=b           ' 写变量的值到EEPROM
        B=bx           ' 从EEPROM读取

    3、 使用操作EEPROM语句读写EEPROM

        READEEPROM var , address
        WRITEEEPROM var , address

    对EEPROM操作有什么不明白的地方,可以参考BASCOMAVR的帮助,其中有详细的说明。

 

PS:
   
有人反映片内EEPROM存在上电后被改写或丢失的情况,对此有以下建议:

    1、 使能芯片的BOD功能,防止芯片在低电压时,程序跑飞误写EEPROM。
    2、 在芯片上电后,电源电压还没有稳定前不要执行操作EEPROM的语句。