PIC单片机之时钟设置
PIC单片机之时钟设置
http://blog.csdn.net/superanters/article/details/8541650
内部时钟和外部时钟?
PIC单片机有许多型号可以设置成 用外部时钟(如外部接个4MHZ的石英晶振),也可以设置成用内部RC时钟。而且还有许多型号可以选择多种频率的时钟。
如 PICLF1823 内部时钟最高可以到达32MHZ 最低可以达到 31kHz. 这事实上提供了一条降低功耗的新路子。一般的单片机降低功耗常常用的睡眠,而睡眠期间CPU是什么都不做。如果希望降低功耗,而且CPU也能工作。降低时钟频率无疑是个非常好的选择。
时钟的设置?
时钟设置一般只和两处有关 一个是配置字,一个是振荡器控制寄存器 OSCCON 下面我们以PICLF1823为例子进行讲解。
PICLF1823 配置字设置 中与时钟有关的就是 FOSC<2:0>:振荡器选择位,和PLLEN:PLL使能位 。
OSCCON 是有关内部时钟频率选择,如果只用外部时钟一般不理会。以下是数据手册中OSCCON寄存器的详细介绍。
实例讲解:
使用内部时钟将时钟频率设置成8MHZ
开发环境:MPLAB X IDE
芯片型号:PICLF1823
#include<pic.h>
__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);
__CONFIG(PLLEN_OFF&LVP_OFF) ;//将FOSC<2:0>:振荡器选择位设置成 INTOSC,
void init_fosc(void)
{
OSCCON = 0x70;//8MHZ IRCF<3:0>时钟频率选择位设置成8MHZ
}
int main(int argc, char** argv) {
init_fosc();
while(1);
}
PLL是用来做什么的呢?他的作用就是能将8MHZ的时钟频率X4变成32MHZ,记住只有8MHZ可以,其他频率是不行的。
使用内部时钟将时钟频率设置成32MHZ
开发环境:MPLAB X IDE
芯片型号:PICLF1823
#include<pic.h>
__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//这个要放到上一行去
__CONFIG(PLLEN_ON&LVP_OFF) ;//将FOSC<2:0>:振荡器选择位设置成 INTOSC,使能PLLEN
void init_fosc(void)
{
OSCCON = 0xF0;//32MHZ IRCF<3:0>时钟频率选择位设置成8MHZ ,使能4XPLL
}
int main(int argc, char** argv) {
init_fosc();
while(1);
}
PIC单片机之时钟设置的更多相关文章
- 【PIC单片机】MPLAB X IDE快速入门指南
引言:近期由于项目实践需要,开始动手学习相关硬件知识.从PIC单片机入手. 单片机学习核心要点:查数据手册 配置寄存器 一.基于MPLAB X IDE配置位设置 MPLAB X IDE和MPLAB I ...
- 韦东山教程ARM的时钟设置出现的问题及其解决方法
时钟设置是一个非常重要的环节,如果系统没有合适的时钟,根本无法工作. S3C2440的时钟复杂,分为FCLK,HCLK,PCLK. 在程序测试中,曾出现这样一个错误.系统当前FCLK为400 ...
- PIC单片机状态寄存器中的C(进位/借位位标志)
查阅PIC单片机芯片手册,关于进位/借位位的说明为: C:进位/借位位. 1 = 结果的最高位发生了进位 0 = 结果的最高位未发生进位 同时有一条标注:借位的极性是相反的. 通过以上说明,可以将C的 ...
- PIC单片机基础2
PIC中档系列单片机,每条指令14位,共有35条汇编指令,根据操作对象不同,可将其分为三类: 字节操作类指令 位操作类指令 立即数与控制类操作指令 1.字节操作类指令,以MOVF指令为例: 指令:MO ...
- PIC单片机基础1
1.PIC单片机总线结构——哈佛结构:即指令和数据空间是完全分开的,所以与常见的微控制器不同的一点是,程序和数据总线可以采用不同的宽度.以PIC16F684单片机为例,数据总线是8位的,但指令总线位数 ...
- 第三章、Tiny4412 U-BOOT移植三 时钟设置【转】
本文转自:http://blog.csdn.net/eshing/article/details/37521789 这一章说明配置时钟频率基本原理 OK,接着说,这次先讲讲CPU的系统时钟.U-BOO ...
- STM32的系统时钟设置SystemClock_Config()探究
一.首先了解几个硬件名词: stm32有多种时钟源,为HSE.HSI.LSE.LSI.PLL,对于L系统的,还有一个专门的MSI 1.HSE是高速外部时钟,一般8M的晶振,精度比较高,比较稳定. 2. ...
- STM32内部时钟设置-寄存器版
STM32寄存器版本——内部时钟设置 同时要记得把延时初始化函数设置好 //系统时钟初始化函数 //pll:选择的倍频数,从2开始,最大值为16 //pll:选择的倍频数,这里使用内部时钟,PLL为4 ...
- PIC单片机的定时器
PIC单片机的定时器有3个 timer0 timer1 timer2 定时器的计算方法 256*k*Tcy=定时时间 (256-Init-value)*k*Tcy=定时时间
随机推荐
- Android(java)学习笔记104:Framework运行环境之启动SystemServer进程
1. SystemServer进程 SystemServer进程是zygote孵化出的第一个进程,该进程是从ZygoteInit.java的main函数中调用startSystemServe ...
- 2018.6.29 JavaScript
一.使用JS数组实现冒泡排序 二.创建Teacher对象,添加(姓名.年龄.地址.学生对象[学生姓名,学生性别])属性 要求: 创建多个老师对象,每个老师下管理多个学生,显示每个老师下所有的学生信息 ...
- 版本管理工具-SourceSafe
一.什么是SourceSafe SourceSafe是Micrsoft公司推出的一款支持团队协同开发的配置管理工具,是Visual Studio的套件之一.因为其短小精悍,又继承了微软集成销售的一贯作 ...
- 讲说问题:|和||的区别以及&和&&的区别。2、Java中的数据类型分几类?基本数据类型有哪些?
|和||的区别以及&和&&的区别. |或 为或运算 判断为逻辑或 || 为短路或 只有逻辑判断 当左侧为真不再继续判断 &与 为与运算 判断为逻辑与 && ...
- Python基础2-Python中文乱码(转)
转自:https://blog.csdn.net/apache0554/article/details/53889253 前言:中文编码问题一直是程序员头疼的问题,而Python2中的字符编码足矣令新 ...
- nginx下根据指定路由重定向
前言: 最近在搭建vue后台,后端接口是PHP写的,线上构建好之后,需要请求其他域名下的接口,开发环境已经使用proxytable解决了接口问题,为了开发和生成的代码一致, 编译后的代码,放在ngin ...
- python之2.x与3.x区别(仅限于基础)
因为看的是python2.x的书籍.用的是python 3.7.所以先把两者的区别记录一下,仅限于基础. 1.input python3.0之后,不区分input()和raw_input(),统一为i ...
- h5获取摄像头拍照功能
完整代码展示 <!DOCTYPE html> <head> <title>HTML5 GetUserMedia Demo</title> <met ...
- 本地Navicat连接虚拟机MySQL
安装完MySQL后,使用mysql命令进去,然后执行以下命令 grant all privileges on hive_metadata.* to 'hive'@'%' identified by ' ...
- python模块之collections模块
计数器 Counter 计数元素迭代器 elements() 计数对象拷贝 copy() 计数对象清空 clear() from collections import Counter #import ...