基本信息
文件名称:NXP 系列:LPC1100 系列_(27).LPC1100系列的片上振荡器与外部时钟源.docx
文件大小:24.58 KB
总页数:23 页
更新时间:2025-06-18
总字数:约1.13万字
文档摘要

PAGE1

PAGE1

LPC1100系列的片上振荡器与外部时钟源

片上振荡器

LPC1100系列单片机配备了多种时钟源,其中片上振荡器是基本的时钟源之一。片上振荡器可以提供稳定的时钟信号,确保单片机在各种工作条件下正常运行。LPC1100系列的片上振荡器主要有两种类型:内部主振荡器(InternalMainOscillator,IMO)和内部副振荡器(InternalWatchdogOscillator,IWO)。

内部主振荡器(IMO)

内部主振荡器(IMO)提供一个默认的4MHz时钟信号,可以通过频率调整寄存器(FROFrequencyAdjustRegister,FROFREQ)来微调其频率。IMO的频率可以在500kHz到20MHz之间调整,调整步长为1kHz。

寄存器配置

FROFREQ:频率调整寄存器,用于设置IMO的频率。

SYSAHBCLKCTRL:系统时钟控制寄存器,用于启用或禁用IMO时钟。

代码示例

以下是一个简单的示例,展示如何配置IMO时钟频率为12MHz,并启用IMO时钟。

#includeLPC11xx.h

//配置IMO时钟频率为12MHz

voidconfigure_IMO(void){

//设置FROFREQ寄存器,频率为12MHz

LPC_SYSCON-FROFREQ=(12000-500)/1000;//(12MHz-500kHz)/1kHz=11.5

//启用IMO时钟

LPC_SYSCON-SYSAHBCLKCTRL|=(11);//位1对应IMO时钟

}

intmain(void){

//配置IMO

configure_IMO();

//主循环

while(1){

//系统运行代码

}

}

内部副振荡器(IWO)

内部副振荡器(IWO)提供一个32kHz的低频时钟信号,主要用于低功耗模式和看门狗定时器。IWO的频率固定为32kHz,无需调整。

寄存器配置

SYSAHBCLKCTRL:系统时钟控制寄存器,用于启用或禁用IWO时钟。

PDRUNCFG:电源配置寄存器,用于控制IWO的运行状态。

代码示例

以下是一个简单的示例,展示如何启用IWO时钟。

#includeLPC11xx.h

//启用IWO时钟

voidenable_IWO(void){

//启用IWO时钟

LPC_SYSCON-SYSAHBCLKCTRL|=(12);//位2对应IWO时钟

//确保IWO处于运行状态

LPC_SYSCON-PDRUNCFG=~(12);//位2对应IWO电源管理

}

intmain(void){

//启用IWO

enable_IWO();

//主循环

while(1){

//系统运行代码

}

}

外部时钟源

除了片上振荡器,LPC1100系列单片机还支持外部时钟源。外部时钟源通常通过晶振或外部时钟信号输入到单片机的XIN和XOUT引脚。外部时钟源可以提供更高的频率和更精确的时钟信号,适用于需要高精度时钟的应用场景。

晶振配置

LPC1100系列支持外部晶振,其频率范围通常在1MHz到25MHz之间。配置外部晶振时,需要调整相应的寄存器以确保晶振正常工作。

寄存器配置

SYSOSCCTRL:系统振荡器控制寄存器,用于配置外部晶振。

SYSAHBCLKCTRL:系统时钟控制寄存器,用于启用外部晶振时钟。

PDRUNCFG:电源配置寄存器,用于控制外部晶振的运行状态。

代码示例

以下是一个示例,展示如何配置外部晶振并启用外部晶振时钟。

#includeLPC11xx.h

//配置外部晶振

voidconfigure_external_oscillator(void){

//配置系统振荡器控制寄存器

LPC_SYSCON-SYSOSCCTRL=(10)|(11);//位0和位1分别控制晶振启动和使能

//启用外部晶振时钟

LPC_SYSCON-SYSAHBCLKCTRL|=(10);//位0对应外部晶振时钟

//确保外部晶振处于运行状态

LPC_SYSCON-PDRUNCFG=~(10);//位0对应外部晶振电源管理