基本信息
文件名称:Microchip 系列:PIC18F 系列_(5).PIC18F系列的时钟系统与振荡器.docx
文件大小:20.78 KB
总页数:15 页
更新时间:2025-06-19
总字数:约6.87千字
文档摘要

PAGE1

PAGE1

PIC18F系列的时钟系统与振荡器

时钟系统概述

时钟系统是单片机(MCU)的核心组成部分之一,它决定了MCU的运行速度和稳定性。PIC18F系列单片机提供了多种时钟源和振荡器模式,以满足不同应用的需求。时钟源可以是内部的或外部的,振荡器模式则包括低功率模式、高速模式等。本节将详细介绍PIC18F系列单片机的时钟系统和振荡器模式,以及如何配置这些模式以实现最佳性能。

时钟源

PIC18F系列单片机支持多种时钟源,包括内部RC振荡器、外部晶体振荡器、外部时钟输入和内部PLL(锁相环)等。每种时钟源都有其特点和适用场景。

内部RC振荡器

内部RC振荡器是一种低成本、低精度的时钟源,适合用于对时钟精度要求不高的应用。PIC18F系列单片机的内部RC振荡器通常可以提供4MHz的时钟频率。

配置内部RC振荡器

内部RC振荡器的配置主要通过配置寄存器CONFIG1H中的FOSC位来实现。以下是配置内部RC振荡器的代码示例:

#includexc.h

//配置内部RC振荡器

#pragmaconfigFOSC=INTRCIO//内部RC振荡器,无外部引脚输出

#pragmaconfigIESO=OFF//禁用内部/外部振荡器切换

voidmain(void){

//初始化系统

OSCCON=0x70;//设置内部RC振荡器为4MHz

//主循环

while(1){

//应用代码

}

}

外部晶体振荡器

外部晶体振荡器是一种高精度、高稳定性的时钟源,适合用于对时钟精度要求高的应用。PIC18F系列单片机支持多种外部晶体振荡器,常见的有4MHz、20MHz和32MHz等。

配置外部晶体振荡器

外部晶体振荡器的配置主要通过配置寄存器CONFIG1H中的FOSC位来实现。以下是配置20MHz外部晶体振荡器的代码示例:

#includexc.h

//配置外部晶体振荡器

#pragmaconfigFOSC=HSPLL_XT//高速晶体振荡器,带PLL

#pragmaconfigIESO=OFF//禁用内部/外部振荡器切换

voidmain(void){

//初始化系统

OSCCON=0x70;//设置PLL为4倍频,振荡器频率为20MHz

//主循环

while(1){

//应用代码

}

}

外部时钟输入

外部时钟输入是一种通过外部信号源提供时钟的方法,适合用于需要外部时钟同步的应用。PIC18F系列单片机可以通过OSC1和OSC2引脚接收外部时钟信号。

配置外部时钟输入

外部时钟输入的配置主要通过配置寄存器CONFIG1H中的FOSC位来实现。以下是配置外部时钟输入的代码示例:

#includexc.h

//配置外部时钟输入

#pragmaconfigFOSC=ECIO//外部时钟输入,无内部振荡器

#pragmaconfigIESO=OFF//禁用内部/外部振荡器切换

voidmain(void){

//初始化系统

OSCCON=0x00;//外部时钟输入模式

//主循环

while(1){

//应用代码

}

}

内部PLL

内部PLL(锁相环)可以提高时钟频率,从而提高MCU的运行速度。PIC18F系列单片机支持4倍频和6倍频的PLL模式。

配置内部PLL

内部PLL的配置主要通过配置寄存器CONFIG1H中的FOSC位和OSCCON寄存器来实现。以下是配置4倍频PLL的代码示例:

#includexc.h

//配置4倍频PLL

#pragmaconfigFOSC=HSPLL_XT//高速晶体振荡器,带PLL

#pragmaconfigIESO=OFF//禁用内部/外部振荡器切换

voidmain(void){

//初始化系统

OSCCON=0x70;//设置PLL为4倍频,振荡器频率为20MHz

//主循环

while(1){

//应用代码

}

}

振荡器模式

PIC18F系列单片机提供了多种振荡器模式,包括低功耗模式、高速模式、主振荡器模式等。每种模式都有其特点