【TB作品】PIC16F1719单片机,EEPROM,PFM,读写,PIC16F1718/19

2024-08-25 04:12

本文主要是介绍【TB作品】PIC16F1719单片机,EEPROM,PFM,读写,PIC16F1718/19,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对于PIC16F1719单片机,没有直接的EEPROM,而是使用高耐久度的程序闪存(PFM)作为非易失性数据存储区域。这个区域特别适合存储那些需要频繁更新的数据。读写这个内存区域需要操作一些特殊功能寄存器,比如用于地址的PMADRH:PMADRL和用于数据的PMDATH:PMDATL

执行从闪存中读取数据的操作步骤如下:

  1. 将目标地址写入PMADRH:PMADRL寄存器对。
  2. 清除PMCON1寄存器的CFGS位。
  3. 设置PMCON1寄存器的RD控制位以启动读取操作。读取的数据将存储在PMDATH:PMDATL寄存器对中。

要将数据写入闪存,可以按照以下步骤进行:

  1. 将目标闪存地址加载到PMADRH:PMADRL寄存器中。
  2. 将数据写入PMDATH:PMDATL寄存器中。
  3. 通过向PMCON2寄存器写入特定的值(先55h,再AAh)来执行解锁序列。
  4. 设置PMCON1寄存器中的WR位以启动写操作。

这种操作过程确保了对非易失性内存的安全控制,用于存储关键数据。

高耐久度的程序闪存(PFM)是Microchip的PIC16(L)F1717/8/9系列微控制器中的一项存储技术,用于频繁更新的数据存储。根据提供的文档,这种高耐久度的程序闪存具有以下特性:

  1. 容量大小

    • 对于PIC16(L)F1717微控制器,PFM的容量为128字节。
    • 对于PIC16(L)F1718/9微控制器,PFM的容量同样为128字节。
  2. 高耐久度

    • 这种闪存支持高达100,000次的擦写循环,非常适合需要频繁更新的非易失性数据存储。
  3. 地址范围

    • PIC16(L)F1717的高耐久度闪存地址范围为1F80h到1FFFh。
    • PIC16(L)F1718/9的高耐久度闪存地址范围为3F80h到3FFFh。
  4. 应用

    • 高耐久度的程序闪存特别适合用于嵌入式系统中需要频繁更新的数据,如配置参数、运行计数器等。

这种PFM在设计上旨在代替传统的EEPROM,提供了更高的耐久性和更快的访问速度。对于一些嵌入式应用来说,它是一种高效且可靠的存储解决方案。

在这里插入图片描述

所以,写代码:
在这里插入图片描述

可以看到显示出了我写入的2345:
在这里插入图片描述

code:

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

讲解视频:

通过网盘分享的文件:2024-08-24 21-57-51.mkv
链接:https://pan.baidu.com/s/1ANlzKzfK70K93OQfueNE0w?pwd=tbsp 
提取码:tbsp 

这篇关于【TB作品】PIC16F1719单片机,EEPROM,PFM,读写,PIC16F1718/19的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104508

相关文章

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

C# 读写ini文件操作实现

《C#读写ini文件操作实现》本文主要介绍了C#读写ini文件操作实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、INI文件结构二、读取INI文件中的数据在C#应用程序中,常将INI文件作为配置文件,用于存储应用程序的

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

10. 文件的读写

10.1 文本文件 操作文件三大类: ofstream:写操作ifstream:读操作fstream:读写操作 打开方式解释ios::in为了读文件而打开文件ios::out为了写文件而打开文件,如果当前文件存在则清空当前文件在写入ios::app追加方式写文件ios::trunc如果文件存在先删除,在创建ios::ate打开文件之后令读写位置移至文件尾端ios::binary二进制方式

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

关于使用cspreadsheet读写EXCEL表格数据的问题

前几天项目有读写EXCEL表格的需求,我就找了大概有几种,大致分为:COM方法、ODBC方法、OLE方法、纯底层格式分析方法。由于COM方法要求必须安装有OFFICE的EXCEL组件,纯底层格式分析方法又很多功能需要自行去完善,所有最终选择了数据库的方法,用数据库的方法去存取xls格式的数据。网上有一个高手写的CSpreedSheet,看了一下提供的接口,感觉挺好用的。在使用的过程中发现几个

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{