单片机时钟介绍与实例讲解

首先我们先讲讲什么是时钟。时钟就是单片机的心脏。每跳动一下。整个单片机的各个电路就同步的动作一下。就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234。。。。然后我们全部的同学就按照这个节奏进行一个个动作。节拍越快我们动作越快。节拍越慢我们动作的越慢。
内部时钟和外部时钟?
pic单片机有许多型号可以设置成 用外部时钟(如外部接个4mhz的石英晶振),也可以设置成用内部rc时钟。而且还有许多型号可以选择多种频率的时钟。
如 piclf1823 内部时钟最高可以到达32mhz 最低可以达到 31khz. 这事实上提供了一条降低功耗的新路子。一般的单片机降低功耗常常用的睡眠,而睡眠期间cpu是什么都不做。如果希望降低功耗,而且cpu也能工作。降低时钟频率无疑是个非常好的选择。
时钟的设置?
时钟设置一般只和两处有关 一个是配置字,一个是振荡器控制寄存器 osccon 下面我们以piclf1823为例子进行讲解。
piclf1823 配置字设置中与时钟有关的就是 fosc:振荡器选择位,和pllen:pll使能位 。
osccon是有关内部时钟频率选择,如果只用外部时钟一般不理会。以下是数据手册中osccon寄存器的详细介绍。
实例讲解:
使用内部时钟将时钟频率设置成8mhz
开发环境:mplab x ide
芯片型号:piclf1823
#include
__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:振荡器选择位设置成 intosc,
void init_fosc(void)
{
osccon = 0x70;//8mhz ircf时钟频率选择位设置成8mhz
}
int main(int argc, char** argv) {
init_fosc();
while(1);
}
pll是用来做什么的呢?他的作用就是能将8mhz的时钟频率x4变成32mhz,记住只有8mhz可以,其他频率是不行的。
使用内部时钟将时钟频率设置成32mhz
开发环境:mplab x ide
芯片型号:piclf1823
#include
__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:振荡器选择位设置成 intosc,使能pllen
void init_fosc(void)
{
osccon = 0xf0;//32mhz ircf时钟频率选择位设置成8mhz ,使能4xpll
}
int main(int argc, char** argv) {
init_fosc();
while(1);
}

明年机器人技术商业应用情景更加广阔 但各方面企业运营成本也将高涨
系留无人机克服了满足日益增长的 ISR 需求的困难
人工智能能给我们带来什么样的好处
塔式散热器的风扇应该往哪边吹
小米MIX2最新消息:小米6只是开始!小米MIX2即将到来
单片机时钟介绍与实例讲解
数字音频功放处理芯片设计与实现
京东数科实现“智臻链数字存证平台”与两者的互信互通
触摸色彩滑环控制系统方案
电子灌封胶有哪些性能?选购时要注意什么?
重点人员管控系统平台搭建
DIPIPM™的PCB设计(2)
几种通信方式介绍
目前有哪些经典的目标跟踪算法?
比笔记本更抢眼的是:惠普新版Elite x3专属Lap Dock底座
Meta专利公开!可实现高量子效率Micro LED像素
央视“云听”正式上线,基于人工智能与5G网络等新技术开发
中国模拟IC业:我们为何会如此受伤?
比特币价格反弹后的一种常见模式囤币潮介绍
ISA总线原理