PAGE1
PAGE1
振荡器和时钟配置
在单片机系统中,振荡器和时钟配置是至关重要的部分,它们决定了系统的运行速度和稳定性。PIC18系列单片机支持多种振荡器和时钟配置方式,可以根据具体应用的需求选择合适的配置。本节将详细介绍PIC18系列单片机的振荡器和时钟配置原理及方法,并提供具体的代码示例。
振荡器类型
PIC18系列单片机支持多种振荡器类型,包括:
内部振荡器:内置低速和高速振荡器。
外部晶振:支持多种频率的外部晶振。
外部RC振荡器:使用外部电阻和电容组成的振荡器。
外部时钟输入:直接从外部输入时钟信号。
内部振荡器
内部振荡器是PIC18系列单片机内置的振荡器,分为低速和高速两种类型。低速振荡器通常用于启动和低功耗模式,而高速振荡器则用于正常运行模式。
低速内部振荡器(LFINTOSC)
低速内部振荡器的频率通常为32.768kHz,适合用于低功耗应用和定时器操作。配置低速内部振荡器通常需要设置OSCCON寄存器。
//配置低速内部振荡器
OSCCON=0//选择LFINTOSC作为系统时钟源
高速内部振荡器(HFINTOSC)
高速内部振荡器的频率通常为8MHz或16MHz,适合用于需要较高运行速度的应用。配置高速内部振荡器同样需要设置OSCCON寄存器。
//配置高速内部振荡器
OSCCON=0//选择HFINTOSC作为系统时钟源,并设置为8MHz
外部晶振
外部晶振是通过连接外部晶体来生成时钟信号的振荡器。常见的晶体频率包括4MHz、20MHz、40MHz等。配置外部晶振需要设置配置位(CONFIG)和OSCCON寄存器。
4MHz晶振配置
//配置4MHz外部晶振
#pragmaconfigFOSC=XT//选择外部晶振
#pragmaconfigPLLCFG=OFF//关闭PLL
#pragmaconfigFCMEN=OFF//关闭故障检测
#pragmaconfigIESO=OFF//关闭内部/外部切换
//初始化OSCCON寄存器
OSCCON=0//选择外部晶振,4MHz
20MHz晶振配置
//配置20MHz外部晶振
#pragmaconfigFOSC=HS//选择外部高速晶振
#pragmaconfigPLLCFG=OFF//关闭PLL
#pragmaconfigFCMEN=OFF//关闭故障检测
#pragmaconfigIESO=OFF//关闭内部/外部切换
//初始化OSCCON寄存器
OSCCON=0//选择外部高速晶振,20MHz
外部RC振荡器
外部RC振荡器使用外部电阻和电容来生成时钟信号,适用于低成本和低精度的应用。配置外部RC振荡器需要设置配置位和OSCCON寄存器。
//配置外部RC振荡器
#pragmaconfigFOSC=EC//选择外部RC振荡器
#pragmaconfigPLLCFG=OFF//关闭PLL
#pragmaconfigFCMEN=OFF//关闭故障检测
#pragmaconfigIESO=OFF//关闭内部/外部切换
//初始化OSCCON寄存器
OSCCON=0//选择外部RC振荡器
外部时钟输入
外部时钟输入允许从外部直接输入时钟信号,适用于需要精确时钟源的应用。配置外部时钟输入需要设置配置位和OSCCON寄存器。
//配置外部时钟输入
#pragmaconfigFOSC=EXTRC//选择外部时钟输入
#pragmaconfigPLLCFG=OFF//关闭PLL
#pragmaconfigFCMEN=OFF//关闭故障检测
#pragmaconfigIESO=OFF//关闭内部/外部切换
//初始化OSCCON寄存器
OSCCON=0//选择外部时钟输入
时钟分频
时钟分频用于调整系统时钟频率,以满足不同应用的需求。PIC18系列单片机的时钟分频可以通过配置OSCCON寄存器中的分频位来实现。
系统时钟分频
系统时钟分频通过设置OSCCON寄存器中的IRCF位来实现