PIC单片机应用开发实践教程(七):PIC16F153xx——时钟使用
源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板
PIC16F15355 内部晶振框图如下,从框图中我们知道MCU时钟来源有3个:外部时钟,内部时钟,Timer1
内部时钟源(INTERNAL CLOCK SOURCES)HFINTOSC:内部高速时钟,最大32MHz。
MFINTOSC:内部中速时钟,500 kHz频率
LFINTOSC:内部低速时钟,只有31 kHz频率
下面我们以内部时钟为例,时钟最高可以跑到32MHz,可以通过OSCFRQ 1MHz,2MHz,4MHz,8MHz,12MHz,16MHz,32MHz,那程序如何来切换呢?
时钟源的选择
通过OSCCON1寄存器,选择系统所需的时钟源
NOSC 选择时钟源,000---111 有8种模式;NDIV 设置时钟分频比,如果分频值为1,那PIC16F15355 最大频率就可以跑到32MHz,最后通过OSCFRQ来选择内部时钟频率
OSCCON1 = 0x60; // NOSC HFINTOSC; NDIV 1;
OSCCON3 = 0x00; // CSWHOLD may proceed; SOSCPWR Low power;
OSCEN = 0x00; // MFOEN disabled; LFOEN disabled; ADOEN disabled; SOSCEN disabled; EXTOEN disabled; HFOEN disabled;
OSCFRQ = 0x06; // HFFRQ 32_MHz;
OSCSTAT = 0x00; // MFOR not ready;
OSCTUNE = 0x00; // HFTUN 0;
那如何实现时钟切换呢?其实,也是通过设置OSCFRQ的值设置,但有一个注意点就是,切换时钟后,要等待时钟切换完成。
//等待时钟切换成功,要不然还是以原时钟运行
while(OSCSTATbits.HFOR != 0x01); //HFINTOSC Oscillator Ready bit
OSCCON1bits.NDIV = 0x00; //Clock divider 1:1OSCCON1bits.NOSC = 0x60; //复位时钟1MHzOSCFRQbits.HFFRQ = clock_freq; switch(clock_freq){case OSC_1M_HF:case OSC_2M_HF:case OSC_4M_HF:case OSC_8M_HF:case OSC_16M_HF: case OSC_32M_HF: //等待时钟切换成功,要不然还是以原时钟运行while(OSCSTATbits.HFOR != 0x01); //HFINTOSC Oscillator Ready bit break;default:break;}
好了,本章节就到这里,谢谢大家的关注。
PIC单片机应用开发实践教程(七):PIC16F153xx——时钟使用相关推荐
- PIC单片机应用开发实践教程(六): 代码配置器(MCC)
源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板 1.简介 MPLAB 代码配置器(MPLAB Code Configurator,MCC)通过图形用户界面( ...
- 20189200余超 2018-2019-2 移动平台应用开发实践第七周作业
20189200余超 2018-2019-2 移动平台应用开发实践第七周作业 布局 在这一节中首先学习了java的页面布局,在此基础之上来进行了编程. 图片如下: 代码如下: *** 使用代码进行登录 ...
- 做游戏,学编程(C语言)教材《C语言课程设计与游戏开发实践教程》出版了...
经过半年多的写作.修改.校样.印制,我们的实践教材<C语言课程设计与游戏开发实践教程>终于出版了.这本书可以看成是"做游戏,学编程(C语言)专栏"的详细版本,以下为书中 ...
- python web开发项目 源码_Python + Flask 项目开发实践系列七
对于 Python + Flask 这种灵活的web开发框架,在前面的六个系列文章中详细的进行了说明,主要讲到了页面的首页加载时的页面渲染,增加功能,删除功能,修改功能,查询功能,查询详情功能等一些页 ...
- 51单片机c语言实践教程,51单片机C语言实验与实践教程.pdf
第一章 AT89S51 单片机实验及实践系统板简介 AT89S51单片机实验及实践系统板(以后简介系统板)集成多个硬件资源模块,每个模块各自可以成 为独立的单元,也可以相互组合,因此,可以为不同阶层的 ...
- python开发实践教程_Python开发实践教程
前言第一章 通过求三角形面积步入Python程序世界 案例1-1 求三角形面积 导读 知识梳理与扩展 小结 练习一第二章 常用运算.使用自定义函数 案例2-1 用函数的方法计算三角形面积 导读 案例2 ...
- python开发实践教程 于京_《Python开发实践教程》于京、宋伟 著著【摘要 书评 在线阅读】-苏宁易购图书...
前言 第一章 通过求三角形面积步入Python程序世界 案例1-1 求三角形面积 导读 知识梳理与扩展 小结 练习一 第二章 常用运算.使用自定义函数 案例2-1 用函数的方法计算三角形面积 导读 案 ...
- STM32应用开发实践教程:基于 CAN 总线的多机通信应用开发
5.2.1 任务分析 本任务要求设计一个基于 CAN 总线的多机通信系统,该系统须具备交互多种类型数据(如 环境温度.环境湿度和光照强度等)的能力. 发送单元对待发数据进行编码,组建 CAN 数据帧, ...
- STM32应用开发实践教程:智能小车电机调速模块的应用开发
3.3.1 任务分析 本任务要求设计一个可实现智能小车电机调速的应用程序,具体要点说明如下. ① 电机驱动部分选用德州仪器(Texas Instruments,TI)公司的 DRV8848 芯片(也可 ...
最新文章
- json数据交互与@RequestBody
- ASP.NET Core 6 Minimal API
- Lines(HDU-5124)
- html静态网页模板cs4,Adobe Dreamweaver CS4 精简版
- win10 Java JDK环境变量配置
- 【java】log4j2核弹级漏洞原理和分析
- win10 linux开发环境搭建,win10子系统linux.ubuntu开发环境搭建
- Castle ActiveRecord学习笔记四:各种映射
- 从运维和SRE角度看监控分析平台建设
- 10月21日Ajax培训日记
- intel 傲腾内存与SSD HDD的对比
- 【计算机考研408强化-操作系统】1. 操作系统的基本概念
- SSS1700设计方案|SSS1700中文说明书
- 推荐模型-序列推荐-2018:SHAN
- 零售行业新渠道,效率居然这么高?
- u盘重装系统详细教程
- SN74HC165驱动
- ijkplayer 录像 截图功能,支持rtsp rtmp http 流媒体
- PRN(20210426):Online Continual Learning with Maximally Interfered Retrieval
- Python3的基本数据类型