AVR第六章EEPROM读写访问11.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR第六章EEPROM读写访问11,avreeprom读写,avreeprom,avr单片机eeprom程序,avreeprom丢失,avr128eeprom,avr单片机eeprom,eeprom读写程序,stm8eeprom读写,stm32eeprom读写

§6.1 概述 EPROM可紫外线擦除只读存储器。 EEPROM (E2PROM ) 可电擦除,电改写只读存储器; 可在线电擦除、改写(内有升压电路,12V 左右); 常用于:存放智能仪器仪表等的重要参数,能够修改参数值,停电不丢失信息。 8535单片机内部有512个字节 的E2 。在执行读或写时,CPU会暂停2个时钟周期,然后执行下一条指令。写入时间需2.5~4ms,取决于Vcc电压。 §6.2 有关的I/O寄存器 E2PROM地址寄存器--- EEAR E2PROM数据寄存器--- EEDR E2PROM控制寄存器--- EECR ----EEAR对应两个I/O寄存器 E2PROM地址寄存器--- EEAR 8535单片机有512个字节 的E2,须9位地址 E2PROM数据寄存器--- EEDR 要写的数据放到此寄存器; 要读的数据从此寄存器中取出来 。 读写不能同时进行!! E2PROM控制寄存器--- EECR ① EERE___ E2读 使能位 EEAR←9位E2地址 EERE←1 两个时钟周期之后,指定地址单元的数据→EEDR中,查询到EEWE为零之后,可以从EEDR中读数。 例如: IN R16 , EEDR; E2写---EEWE与 EEMWE控制位 ② EEWE___ E2写使能位 EEDR←要写的数据 EEAR←要写入单元的9位E2地址 EEWE←1就可以写入(控制),前提条件是:EEMWE为1。 ③ EEMWE--- E2主写使能位 当该位被置1之后,过4个时钟周期自动清0, 只有该位为1时,EEWE置1才能启动写入过程。 小结:EEMWE为1后,4个时钟周期内,必须EEWE为1,才能写入。 所以:可以很好的防止误写操作(抗干扰能力强)。 ④ EERIE--- E2准备好中断使能位 写完E2需2.5~4ms. EEWE由硬件自动清0,E2写完产生一个中断。 其中断服务程序入口地址固定为$000f §6.3 写和读E2的步骤 写E2的完整步骤 [1]?等待EEWE为0,即等待上次写完; [2]?EEAR←9位新地址; [3] EEDR←要写数; [4]?EEMWE←1;写入 1之后4个时钟便会自动清0; [5] EEWE←1;4个时钟(其中CPU停止2个时钟)开始新字节写入,需2.5~4ms,写完之后,EEWE由硬件自动清0。 读E2的步骤 [1]?等待EEWE为0,即当前没有正在进行的写操作; [2]?EEAR←要读字节的9位地址; [3] EERE___ E2读使能位 置1,(其中CPU停止2个时钟) [4]? 之后,可从EEDR中读取结果; §6.4 E2单字节读写及其测试举例 §6.4.1 E2单字节写子程序“EEWrite” §6.4.2 E2单字节读子程序“EERead” §6.4.3 E2单字节读写测试程序“TestSingle” §6.4.1 E2单字节写子程序“EEWrite” 入口:R18:R17放要写入的E2的地址,R16放要写入的数据。 EEWrite: sbic EECR,EEWE ;EEWE为0跳行, rjmp EEWrite ;等待EEWE为0,即等待E2写完 out EEARH,r18 ;写入E2地址 out EEARL,r17 ; out EEDR,r16 ;要写入的数据→EEDR sbi EECR, EEMWE;1→EEMWE主写选通使能 sbi EECR, EEWE;1→EEWE写选通使能,4个时钟 ret ;返回 §6.4.2 E2单字节读子程序“EERead” 入口:R18:R17放写入的E2的地址,R16放所读到的数据。 EERead: sbic EECR,EEWE ;EEWE为0跳行, rjmp EERead ;等待EEWE为0,即等待E2写完 out EEARH,r18 ;写入E2地址 out EEARL,r17 ; sbi EECR, EERE ;1→EERE读使能,4个时钟 in r16,EEDR ; 读入数据 ret ;返回 §6.4.3 E2单字节读写测试程序“TestSingle” TestSingle: ldi r16,$02 ;设置堆栈指针 out sph ,r16 ;SP←$025f ldi r16,$5f ; out spL,r16 ; ldi r16,$ff ;通过写1,定义B口为输出 out DDRB,r16 ; ldi r16,$aa ;写子程“EEWrite”入口的设置 ldi r17,$40 ;R16放要写入的数据。 ldi r18,$00 ;R18:R17放写入

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档