PAGE1
PAGE1
LPC1100系列的时钟与复位管理
时钟源
LPC1100系列单片机提供了多种时钟源,包括内部振荡器、外部晶振、外部时钟输入和PLL(锁相环)。这些时钟源可以灵活配置,以满足不同应用的需求。
内部振荡器
LPC1100系列单片机内置了一个低功耗的内部振荡器,通常用于系统启动时的时钟源。内部振荡器的频率范围为1-20MHz,具体频率可以通过软件配置来调整。
配置内部振荡器
配置内部振荡器通常涉及设置相关的控制寄存器。以下是一个示例代码,展示了如何配置内部振荡器的频率:
#includeLPC11xx.h
//配置内部振荡器频率
voidconfigureInternalOscillator(uint32_tfrequency){
//确保频率在1-20MHz范围内
if(frequency1000000||frequency{
return;
}
//计算频率控制寄存器值
uint32_toscCtrl=(frequency/1000000)-1;
//设置频率控制寄存器
LPC_SYSCON-IRCCTRL=oscCtrl;
//选择内部振荡器作为系统时钟源
LPC_SYSCON-SYSSEL=0x00;
//等待时钟源切换完成
while((LPC_SYSCON-SYSSTAT0x03)!=0x00){
//等待
}
}
intmain(void){
//配置内部振荡器为12MHz
configureInternalOscillator;
//主程序入口
while(1){
//应用程序代码
}
}
外部晶振
LPC1100系列单片机支持外部晶振作为时钟源。外部晶振的频率范围通常为1-25MHz。外部晶振需要连接到单片机的XIN和XOUT引脚。
配置外部晶振
配置外部晶振涉及设置相关的控制寄存器。以下是一个示例代码,展示了如何配置外部晶振的频率:
#includeLPC11xx.h
//配置外部晶振频率
voidconfigureExternalCrystal(uint32_tfrequency){
//确保频率在1-25MHz范围内
if(frequency1000000||frequency{
return;
}
//选择外部晶振作为系统时钟源
LPC_SYSCON-SYSSEL=0x01;
//等待时钟源切换完成
while((LPC_SYSCON-SYSSTAT0x03)!=0x01){
//等待
}
}
intmain(void){
//配置外部晶振为12MHz
configureExternalCrystal;
//主程序入口
while(1){
//应用程序代码
}
}
外部时钟输入
LPC1100系列单片机还可以使用外部时钟输入作为时钟源。外部时钟输入通过CLKIN引脚接入,频率范围通常为1-25MHz。
配置外部时钟输入
配置外部时钟输入涉及设置相关的控制寄存器。以下是一个示例代码,展示了如何配置外部时钟输入的频率:
#includeLPC11xx.h
//配置外部时钟输入
voidconfigureExternalClockInput(uint32_tfrequency){
//确保频率在1-25MHz范围内
if(frequency1000000||frequency{
return;
}
//选择外部时钟输入作为系统时钟源
LPC_SYSCON-SYSSEL=0x02;
//等待时钟源切换完成
while((LPC_SYSCON-SYSSTAT0x03)!=0x02){
//等待
}
}
intmain(void){
//配置外部时钟输入为12MH