STM8S系列单片机原理与应用 第3章.pptVIP

  1. 1、本文档共103页,可阅读全部内容。
  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文档。上传文档
查看更多

PUSHWX BTJTFLASH_IAPSR,#1,FlashROM_Block_write_next1 ;?0,即状态寄存器FLASH_IAPSR的PUL(b1)位=0,FlashROM处于保护状态,先解除保护状态 MOVFLASH_PUKR,#56H ;向FlashROM写保护寄存器FLASH_PUKR连续写入 ;?56H、AEH,解除写保护 MOVFLASH_PUKR,#0AEHFlashROM_Block_write_next1: MOVIAP_OK_Symbol,#4 ;定义可重复的最大次数 MOVFLASH_CR1,#00 ;?IE为0,即查询方式;FIX为0,自动选择编程周期。 MOVFLASH_CR2,#01H ;将FLASH_CR2寄存器的b0位(PRG)置1,选择块编程方式 MOVFLASH_NCR2,#0FEH ;将FLASH_NCR2寄存器的b0位(NPRG)清0,选择块编程方式 MOVR01,{IAP_First_ADR+2} ;记录块首地址FlashROM_Block_write_LOOP1:;?装载 MOVR00,#BLOCK_SIZE ;要装载的字节数 LDWX,#IAP_write_data_buffer ;缓冲区首地址送寄存器X中FlashROM_Block_write_LOOP11: LDA,(X) ;取操作数 LDF[IAP_First_ADR.e],A ;?FlashROM地址范围可能超出FFFFH,采用24位地址格式 INC{IAP_First_ADR+2} ;块大小只有128?B(对中高密度芯片)或64?B(对低密度芯片) ;即块地址单元中低8位为x0000000B或xx000000B INCWX DECR00 JRNEFlashROM_Block_write_LOOP11 ;装载结束 FlashROM_Block_write_next2: BTJFFLASH_IAPSR,#2,FlashROM_Block_write_next2 ;查询等待写操作结束;?校验 MOV{IAP_First_ADR+2},R01 ;恢复块首地址 MOVR00,#BLOCK_SIZE ;要校验的字节数 LDWX,#IAP_write_data_buffer ;缓冲区首地址送寄存器X中FlashROM_Block_write_LOOP12: LDFA,[IAP_First_ADR.e] XORA,(X) JRNEFlashROM_Block_write_next3 ;本单元校验正确 INC{IAP_First_ADR+2} ;块大小只有128?B(对中高密度芯片)或64?B(对低密度芯片) ;即块地址单元中低8位为x0000000B或xx000000B INCWX DECR00 JRNEFlashROM_Block_write_LOOP12 ;整个模块校验正确 MOV{IAP_First_ADR+2},R01 ;恢复块首地址 JRTFlashROM_Block_write_exit ;校验正确!FlashROM_Block_write_next3: ;校验错误,恢复块收地址后重新装入,再写 MOV{IAP_First_ADR+2},R01 ;恢复块首地址 DECIAP_OK_Symbol JRNEFlashROM_Block_write_LOOP1FlashROM_Block_write_exit: BRESFLASH_IAPSR,#1 ;清除PUL位,恢复写保护状态 POPWX ;恢复寄存器X内容 RETFFlashROM_Block_WIRE_END: RETF当需要执行块写入时,可按照如下方式调用,执行标准块写入操作:LDWX,#IAP_write_data_bufferLD(X),#XXH ;初始化缓冲区 MOV{IAP_First_ADR+0},#XXH ;初始化块首地址高16位MOV{IAP_First_ADR+1},#XXH ;初始化块首地址高8位MOV{IAP_Firs

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档