zoukankan      html  css  js  c++  java
  • 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);
    }

     

     

  • 相关阅读:
    C++注释
    python绘制动态图
    解决“<form>提交,CSRF验证失败。请求中止”
    Django相关的MTV
    AVplayer搭建ftp共享PC端
    02: 均值(1.5编程基础之循环控制)
    1.5编程基础之循环控制_ 01:求平均年龄
    for循环进阶
    找第k大的数
    c++中,bool与int 的区别
  • 原文地址:https://www.cnblogs.com/liushao/p/6421346.html
Copyright © 2011-2022 走看看