PIC16F18877学习(一)

news2024/12/22 15:13:45

为什么要在PIC控制器中使用#pragma configs

  • 这些设置位于程序代码之外的闪存中。 PIC一通电,它们就可用了,无论它们写在代码的哪个位置。这很重要,因为有时在执行程序之前需要它们。
  • 例如,有一些设置可以选择时钟源,并将其转换为PIC的实际时钟。这不能在程序代码中完成,因为必须正确配置时钟才能运行代码。
  • 另一个例子是代码保护设置,如果启用此功能,则无法用编程器读取PIC的程序存储器,这会阻止其他人复制程序内存并对代码进行反向工程。这不能程序代码实现,因为在任何程序代码执行之前,都可以将PIC设置为编程模式,从而绕过任何启用代码保护的功能。因此这种方式非常重要,因为它们允许在代码执行之前设置配置。
  • 在代码执行之前,不需要设置完所有设置,有些只是方便。例如,可以在启动时将引脚设置为数字I/O或模拟输入,这些也可以在程序代码中完成。
  • #pragma是编译器指令,编译器指令是编译器首先处理的一些事情。
#pragma config FNOSC = PRIPLL //选择主振荡器作为时钟源,PLL将用于进一步转换时钟,也可以选择不适用PLL或另一个源,如次级振荡器、内部振荡器等。
#pragma config POSCMOD = HS //选择连接到主振荡器引脚的内容。//可以连接振荡器模块(EC)的干净信号,或者连接低于4MHz(XT)或高于4MHz(HS)的晶体谐振器。注意,谐振器需要一些额外的电路,这是由该设置提供(和选择)的。
#pragma config FPLLIDIV = DIV_2
#pragma config FPLLMUL = MUL_18 //当有了初始时钟后,通常希望PIC以不同频率运行。PLL允许将时钟频率乘以某个因子,但它只接收有限的输入频率(例如4-5HMz),因此将频率传递到PLL之前,将频率除以2(得到8-10MHz),并让PLL将频率乘以18得到(4MHz*18=72MHz)
#pragma config FPLLODIV = DIV_1

pragma config语句应位于项目文件include之前

PIC16F18877微控制器

  • 具有模拟,核心独立外设和通信外设,结合极低功耗(CLP)技术,适用于广泛的通用用途和低功耗应用。
  • 该系列将具有CRC/SCAN,硬件限制定时器(HLT)和窗口看门狗定时器(WWDT),来支持希望为其它应用程序增加安全性的客户。
  • 包括56KB的闪存,以及一个10位ADC计算(ADC2)扩展,用于自动信号分析,以降低应用程序的复杂性。

核心功能

  • C编译器优化的RISC架构
  • 只有49条指令
  • 工作速度:DC——32MHz时钟输入,最小指令周期为125ns
  • 中断功能
  • 16级深度硬件堆栈
  • 三个8位定时器(TMR2/4/6)与硬件限制定时器(HLT)扩展
  • 4个16位定时器(TMR0/1/3/5)
  • 小电流开机复位(POR:Power-on Reset)
  • 可配置的上电定时器(PWRTE)
  • 具有快速恢复功能的断电复位
  • 低功率BOR选项
  • 窗口看门狗定时器(WWDT):可变预分频选择、可变窗口大小选择、所有源均可在硬件或软件中配置
  • 可编程代码保护

内存

  • 高达56KB的闪存程序内存
  • 高达4KB的动态SRAM
  • 256B的EEPROM
  • 直接、间接或相对地址寻址

操作特征

  • 工作电压范围:2.3V到5.5V
  • 温度范围:工业40~85℃,扩展40到125℃。

节电功能

  • DOZE模式:在CPU内核运行速度比系统时钟慢
  • IDLE模式:当内部外设继续运行时,能够暂停CPU核心
  • 休眠模式:最低功耗
  • 外围模块禁用(PMD):能够禁用硬件模块,以尽量减少未使用的外围设备的功耗。

极低功耗(XLP)特性

  • 睡眠模式:50nA@1.8V,典型
  • 看门狗:500 nA @ 1.8V, typical
  • 二级振荡器:500 nA @ 32 kHz

数码外设

  • 四种可配置逻辑单元(CLC):集成组合和顺序逻辑
  • 三种互补波形发生器(CWG):上升和下降边缘死区控制;全桥,半桥,1通道驱动;多信号源

PIC16F18877数据表,28/40引脚,全功能8位控制器

PIC单片机内部采用哈佛结构
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 安装 Jenkins 并部署 Maven 项目

一、前言 在开始之前,我们需要保证系统中已经安装了Docker、JDK、Maven。 二、Docker 拉取镜像 我这里使用的是 2.344 版本的 Jenkins,拉取命令如下: docker pull jenkins/jenkins:2.344需要稍微等一会,等待拉取完成。 镜像下载…

GIT码云SSH公钥配置

前言:当你想要从Git码云上克隆或推送代码时,需要进行身份验证。为了进行身份验证,Git码云使用SSH协议,其中包含一个公钥和一个私钥。公钥存储在你的计算机上,并与你的Git码云账户相关联。私钥则必须保密,只…

阿里云学生服务器申请攻略(先学生认证然后完成实验任务)

阿里云学生服务器免费申请,之前是云翼计划学生服务器9元/月,现在是高校计划,学生服务器可以免费申请,先完成学生认证即可免费领取一台云服务器ECS,配置为2核2G、1M带宽、40G系统盘,在云服务器ECS实例过期之…

ROS:VScode开发话题(msg)、服务(srv)、动作(action)、TF,解决 无法打开源文件

一.解决 无法打开源文件 出错原因:系统没有找到.h文件对应的路径。 在编写完msg、srv、action文件后,要进行编译(catkin_make) . 编译之后,msg、srv、action会生成相应的.h文件。 其对应的.h文件目录在devel/includ…

python解决坐标系两点之间有多少种走法问题

问题&#xff1a;在坐标系中第一象限内的点P&#xff08;x,y&#xff09; x<6&#xff0c;y<6. 到终点&#xff08;5,5&#xff09;有多少种走法&#xff1f;并显示出现所经过的点坐标 限制条件&#xff1a;从起点坐标只能向上或者向右走。其中&#xff08;4,3&…

从零开始学习JavaScript:轻松掌握编程语言的核心技能⑥

从零开始学习JavaScript&#xff1a;轻松掌握编程语言的核心技能⑥ 1. JavaScript 对象2. JavaScript 类3. JavaScript prototype&#xff08;原型对象&#xff09;4. prototype 继承5. JavaScript Number 对象5.1 JavaScript 数字 6. JavaScript 字符串&#xff08;String&…

某麦网apk抢票接口加密参数分析(一)

某麦网apk抢票接口加密参数分析&#xff08;一&#xff09; 当下的一些火爆活动&#xff0c;如音乐节、演唱会等需要购买门票的活动&#xff0c;常常会引发一些网络抢票软件的出现。 而某麦网也不例外&#xff0c;很多人使用抢票软件来抢购某些活动的门票。 为了防止这种情况…

基于决策树的泰坦尼克号数据集回归预测

目录 1、作者介绍2、决策树算法2.1 决策树原理2.1.1 基本原理2.1.2 节点的概念 2.2 构建决策树2.3 决策树优缺点 3、实验设计3.1 数据集简介3.2 代码实现3.3 运行结果 4、参考链接 1、作者介绍 任正福&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2022级研…

【大数据工具】Kafka伪分布式、分布式安装和Kafka-manager工具安装与使用

Kafka 安装 Kafka 安装包下载地址&#xff1a;https://archive.apache.org/dist/kafka/ 1. Kafka 伪分布式安装 1. 上传并解压 Kafka 安装包 使用 FileZilla 或其他文件传输工具上传 Kafka 安装包&#xff1a;kafka_2.11-0.10.0.0.tgz解压安装包 [rootbigdata software]# …

为什么添加缓存要在释放锁之前?

为什么加缓存要放在释放锁之前&#xff1f; 线程拿到锁会去查缓存是否有数据&#xff0c;又因为我们向redis存入缓存数据是在释放锁之后 那么释放锁之后&#xff0c;下一个线程查缓存&#xff0c;上一个线程并未存入完成。此时就会出现查询多次数据库的情况&#xff0c;锁失效…

chatgpt赋能python:Python如何重复运行——让你的代码运行更高效

Python如何重复运行——让你的代码运行更高效 Python作为一种非常流行的编程语言&#xff0c;在程序员中间被广泛使用。无论是从事科学计算、数据分析还是网页爬虫&#xff0c;都离不开Python。但是&#xff0c;如果你只会最基础的Python语法&#xff0c;你可能会花费更多的时…

《三维存储芯片技术》----学习记录(一)

第1章 NAND存储器的生态 1.1 存储器行业变迁 可以说近10年是整个存储行业历史上变化最大的10年。 1.1.1 NAND及存储器供应商的整合 如图1.1所示&#xff0c;过去6年中&#xff0c;全球存储器95%的供应集中到5家厂商。 图片来源于《三维存储芯片技术》 1.1.2 NAND技术发展 …

行业应用|立仪光谱共焦位移传感器在玻璃方面的检测

项目&#xff1a;玻璃管管壁单边测厚 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 检测方案 用D35A7镜头对玻璃管管壁进行单边测厚&#xff0c;取三个点静态测量厚度并记录重复性。 1、采用D35A7R2S35镜头对玻璃管管…

springboot+vue企业设备管理系统

解决的思路&#xff1a; &#xff08;1&#xff09;通过进行需求分析&#xff0c;建立用例模型&#xff0c;上网查找资料&#xff0c;摸清业务流程。 &#xff08;2&#xff09;通过运用vue 技术进行界面的设计&#xff0c;上网搜集符合所做管理系统的相关图片&#xff0c;使用…

springboot 配置文件密码加密处理

一、修改pom文件 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.4</version> </dependency> 二、在启动类中加上注解 EnableEncryptableProp…

开源实时位置共享服务Hauk

【勘误】&#xff1a;在上文 『事务与项目跟踪软件Jira』 一文中&#xff0c;老苏错误的将 4G 内存写成了 4M&#xff0c;感谢网友 纸飞机 和 cwz 的指正。虽然老苏确实用过 4M 内存的机器&#xff0c;但那是20 多年前的事情了。 什么是 Hauk &#xff1f; Hauk 是一个完全开源…

Mysql数据库入门基础篇--mysql基本了解

【Mysql数据库入门基础篇--mysql基本了解 &#x1f53b;一、Mysql5.7 VS Mysql8.0 详解1.1 ⛳字符编码1.2 ⛳用户的创建与授权1.3 ⛳ 认证插件1.4 ⛳ 隐藏索引1.5 ⛳ 持久化设置1.6 ⛳ 通用表达式&#xff08;Common Table Expressions&#xff09;1.7 ⛳ 性能提升1.8 ⛳ 参数变…

chatgpt赋能python:Python如何输出在同一行

Python如何输出在同一行 在Python编程中&#xff0c;有时候我们需要将多个输出放在同一行中。这篇文章将介绍几种方法来实现这个任务&#xff0c;并给出一些例子来帮助你更好地理解。 方法一&#xff1a;使用print函数 Python中的print函数默认会在每个输出之间换行。但是&a…

【大数据工具】HBase 集群搭建与基本使用

HBase 集群搭建 HBase 安装包下载地址&#xff1a;https://archive.apache.org/dist/hbase/ 安装 HBase 的前提&#xff1a; ZooKeeper 集群 OKHadoop 集群 OK 1. HBase 集群安装 1. 将 HBase 软件包上传至 Hadoop0 解压并重命名 使用 FileZilla 将 hbase-1.3.1-bin.tar.g…

pytorch中Dataloader读取数据太慢的问题

文章目录 pytorch中Dataloader读取数据太慢的问题1. 方法2. 方法3. 解决方法&#xff1a;提取加载数据 pytorch中Dataloader读取数据太慢的问题 数据读取的速度远远大于GPU训练的速度&#xff0c;导致整个训练流程中有大部分时间都在等待数据发送到GPU&#xff0c;在资源管理器…