单片机 > 单片机程序设计 > 详情

实力讲解PIC单片机的时钟设置操作

发布时间:2021-03-18 发布时间:
|

  单片机的时钟信号好比是单片机的心脏。单片机的时钟频率决定了单片机运行一个指令周期的时间。原理的话应该是晶振与外部电容构成电容三点式振荡电路,此时时钟输入为正弦波,经过内部施密特触发器整形变为方波。


  内部时钟方式:

  利用单片机内部的振荡器,然后在引脚XTAL1(18脚)和XTAL2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30PF左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHz-12MHz之间选择。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。


  外部时钟方式:

  此方式是利用外部振荡脉冲接入XTAL1或XTAL2。HMOS和CHMOS单片机外时钟信号接入方式不同,HMOS型单片机(例如8051)外时钟信号由XTAL2端脚注入后直接送至内部时钟电路,输入端XTAL1应接地。由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上接电阻。对于CHMOS型的单片机(例如80C51),因内部时钟发生器的信号取自反相器的输入端,故采用外部时钟源时,接线方式为外时钟信号接到XTAL1而XTAL2悬空。


  PIC单片机时钟的设置:

  时钟设置一般只和两处有关 一个是配置字,一个是振荡器控制寄存器 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);

  }

关键字:PIC单片机  时钟设置  时钟频率 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二