什么是什么单片机时钟?怎么设置
什么时钟?首先我们先讲讲什么是时钟。时钟就是单片机的心脏。每跳动一下。整个单片机的各个电路就同步的动作一下。就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234。。。。然后我们全部的同学就按照这个节奏进行一个个动作。节拍越快我们动作越快。节拍越慢我们动作的越慢。
内部时钟和外部时钟?PIC单片机有许多型号可以设置成 用外部时钟(如外部接个4MHZ的石英晶振),也可以设置成用内部RC时钟。而且还有许多型号可以选择多种频率的时钟。
如 PICLF1823 内部时钟最高可以到达32MHZ 最低可以达到 31kHz. 这事实上提供了一条降低功耗的新路子。一般的单片机降低功耗常常用的睡眠,而睡眠期间CPU是什么都不做。如果希望降低功耗,而且CPU也能工作。降低时钟频率无疑是个非常好的选择。
时钟的设置?
时钟设置一般只和两处有关 一个是配置字,一个是振荡器控制寄存器 OSCCON 下面我们以PICLF1823为例子进行讲解。
PICLF1823 配置字设置 中与时钟有关的就是 FOSC<2:0>:振荡器选择位,和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<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
__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);
}
单片机的3种时钟电路设计方案,工程师,你是在用哪1种?
工程师在开发一个电路系统,往往会需要用到中央处理器,比如单片机,FPGA,或者DSP等等,当然一些简单的纯硬件电路项目方案例外,如充电器,热水壶等等;
电路系统
作为单片机研发设计的项目,它的最小电路工作系统包含电源电路,复位电路,时钟频率电路;其中电源电路与复位电路,相信工程师都非常容易理解与设计;然而时钟频率电路,由于不同的开发项目功能需求不一样,设计的方案选择也不尽相同,很难得到有效的统一设计;比如:
A项目对研发成本要求较严格,功能较简单;B项目电路系统需要与外界电路系统完成串口通信,通信数据要求不能出错;C项目包含一个时钟万年历功能,时间要求不能间断而且精度要求高;万年历时钟电路板
针对单片机的时钟频率电路,工程师依据不同的项目要求去设计与选择匹配的方案;具体的选择方案包含三类
第一类:外部晶振方案
所谓外部晶振方案,是指在单片机的时钟引脚X1与X2外部连接一个晶振;
单片机外部晶振图
采用这种设计方案
优点 :时钟频率精度高,稳定性能好;对于一些数据处理能力要求较高的项目,尤其是多个电路系统彼此需要信息通讯,如包含USB通讯,CAN通讯的项目,选用外部晶振的方案较多缺点 :由于增加了外部晶振,所以研发的BOM表元器件成本增加扩大了;第二类:内部晶振方案
所谓内部晶振方案,是指单片机利用内部集成的RC振荡电路产生的时钟频率;
单片机内部晶振图
采用这种设计方案
优点: 省去外部晶振,工程师可以有效的节约研发BOM元器件成本;缺点: RC振荡电路产生的时钟频率精度比较低,误差较大,容易引起一些高频率通信的数据交互错误;第三类:时钟芯片方案
所谓时钟芯片方案,是指在单片机外部加入一个专门处理时钟的时钟芯片,用来给单片机提供精准的时钟信号;比如美信的DS1338这个型号时钟芯片
单片机与时钟芯片电路
关于时钟芯片的一些电路特性,以美信的DS1338型号为例说明
DS1338时钟芯片
1,供电 :
时钟芯片的供电电源包含两个部分
其一,VCC供电,是指电路项目系统的电源,同时也是单片机的电源
其二,Vbat供电,是指电池供电的电源,由于某种原因在VCC供电突然失去的条件下,时钟芯片自动启用Vbat电池电源,用以保持时钟芯片内部的时钟信号处理,不必因为电路系统电源VCC断电而失去电路工作;
2,功能 :
时钟芯片内部集成时间的“秒”“分”“时”“日”“周”“月”和“年”详细信息计时电路功能,通过IIC通信方式将时间的信息发送至单片机,单片机即可获得高精度的时钟信息;
万年历时钟
3,接口 :
时钟芯片与单片机的接口是IIC通信接口,此接口方式为串口通信,工程师开发设计较为简单,容易实现电路功能;
4,精度 :
精度,是指时钟芯片在正常工作条件下产生的时钟误差;例如美信的DS1338时钟芯片精度控制在10 PPM,换算成一天24小时误差精度在0.8秒左右;
5,应用 :
时钟芯片,一般用来处理精确计算时间的电路项目,如时间万年历;
采用时钟芯片这个设计方案
优点:精度高,误差小;适用于一些要求较高的电路项目缺点:电路设计复杂,工程师开发难度较高,研发BOM元器件成本高高精度电路项目
当然这三个方案都是针对一些工业与民用领域,如果涉及到航空航天应用领域,比如卫星导航与遥感测量等,则需要选择更高精度的时钟频率电路,如原子钟方案;
综合上述,针对这三类设计方案,目前工程师使用较多的是第二类内部晶振方案,因为此方案能满足绝大多数的单片机电路项目要求,而且研发设计成本最优; 这就是单片机常用的3种电路设计方案,不知工程师,你是在用哪1种方案?
本文由【芯片哥】原创撰写,喜欢就关注芯片哥,和芯片哥一起加油吧#电子元器件# #芯片#
相关问答
【 单片机 中指令周期、机器周期、状态周期、振荡 时钟 周期(时...[最佳回答]时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12u...
Mcs51 单片机时钟 周期机器周期指令周期是如何分配的?12个时钟周期,是1个机器周期;在单片机中,是以机器周期的个数,作为时间的计量单位。Mcs51单片机的111条指令,执行时,所花费的时间,称为指令周期。有64条...
单片机 数字 时钟 函数解析?在CPU需要使用定时功能来完成某项任务时,可以调用单片机数字时钟函数。在CPU需要使用定时功能来完成某项任务时,可以调用单片机数字时钟函数。
单片机 钟摆 时钟 工作原理?而单摆的周期公式是。时间=圆周率的2倍乘以(根号下摆长除以重力加速度)T=2π(l/g)^0.5通过公式以及其推导可以看出来,单摆运动靠的是重力,和绳子的拉力。...
51 单片机 简单电子 时钟 程序,通过按钮设置时间,并且通过DS1302...那DS1302不是寄存时间,就是一片时钟芯片,它就完成时钟计时的,有时间和日期的。但都需要写程序读出时间和日期。有用(0)回复px1203只给出按键调整时、分...
51 单片机时钟 信号怎么输入?若使用有源晶振,51单片机的时钟信号可以XⅠALⅠ引脚输入,此时XlALO引脚悬空;若使用无源晶振,该晶振应跨接在上述两个引脚之间。现在的51单片机大多集成了内...
电子钟怎么调时间数字电子钟有什?[回答]这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点。所设计的电...
单片机 电子 时钟 时间误差如何调整最有效?唯一的办法是选择精度高低温飘的表晶。再一个办法如果是在线的可以校时。唯一的办法是选择精度高低温飘的表晶。再一个办法如果是在线的可以校时。
单片机时钟 电路组成和原理?单片机时钟电路是由晶振、晶体振荡器、分频器和计数器等部分组成的。其原理是通过晶振提供稳定的振荡信号,晶体振荡器将振荡信号转换成数字信号,分频器将数字...
两个C51 单片机 相连怎么内部 时钟 信号同步?-ZOL问答如果两个时钟是异步的,你没有办法改变它们的相位关系。一旦改变了,原来称为“时钟”的信号也不能再当做时钟使用了,只能当做当前时钟域内的信号使用。而且没有...