PAGE1
PAGE1
LPC1100系列的系统配置与初始化
系统时钟配置
LPC1100系列单片机的系统时钟配置是初始化过程中的重要步骤。系统时钟决定了单片机的工作频率,从而影响到性能和功耗。LPC1100系列支持多种时钟源,包括内部RC振荡器、外部晶振和PLL(锁相环)。
内部RC振荡器
内部RC振荡器是LPC1100系列的默认时钟源,提供4MHz的时钟频率。内部RC振荡器的频率可以通过寄存器进行微调,以确保其在不同环境温度下的稳定性和准确性。
代码示例
以下代码示例展示了如何配置内部RC振荡器:
#includeLPC11xx.h
//配置内部RC振荡器
voidConfigureInternalRC(void){
//选择内部RC振荡器作为系统时钟源
LPC_SC-SYSCLKSEL=0x00;//0x00选择内部RC振荡器
LPC_SC-SYSAHBCLKCTRL|=(10);//使能内部RC振荡器时钟
//微调内部RC振荡器频率
LPC_SC-IRCCTRL=0x00;//0x00选择默认的4MHz频率
}
intmain(void){
//配置内部RC振荡器
ConfigureInternalRC();
//初始化其他外设
//...
while(1){
//主循环
}
}
外部晶振
外部晶振可以提供更精确的时钟频率,通常用于需要高精度时钟的应用场景。LPC1100系列支持多种外部晶振频率,具体频率范围请参考数据手册。
代码示例
以下代码示例展示了如何配置外部晶振:
#includeLPC11xx.h
//配置外部晶振
voidConfigureExternalCrystal(void){
//使能外部晶振时钟
LPC_SC-EXTOSCCTRL=(11);//选择外部晶振频率范围
LPC_SC-SYSAHBCLKCTRL|=(11);//使能外部晶振时钟
//选择外部晶振作为系统时钟源
LPC_SC-SYSCLKSEL=0x01;//0x01选择外部晶振
}
intmain(void){
//配置外部晶振
ConfigureExternalCrystal();
//初始化其他外设
//...
while(1){
//主循环
}
}
PLL配置
PLL(锁相环)可以将外部晶振或内部RC振荡器的频率倍频到更高的频率,从而提高单片机的性能。LPC1100系列的PLL配置涉及多个寄存器,包括PLL控制寄存器和PLL状态寄存器。
代码示例
以下代码示例展示了如何配置PLL:
#includeLPC11xx.h
//配置PLL
voidConfigurePLL(void){
//使能PLL时钟源
LPC_SC-PLL0CLKSEL=0x01;//选择外部晶振作为PLL时钟源
LPC_SC-SYSAHBCLKCTRL|=(12);//使能PLL时钟
//配置PLL参数
LPC_SC-PLL0CFG=(0x250)|(0x018);//设置M和N值,M=37,N=1
//使能PLL
LPC_SC-PLL0CON=(10);//使能PLL
LPC_SC-PLL0FEED=0xAA;//写入喂狗值
LPC_SC-PLL0FEED=0x55;//写入喂狗值
//锁定PLL
LPC_SC-PLL0CON=(11);//将PLL置于锁定状态
LPC_SC-PLL0FEED=0xAA;//写入喂狗值
LPC_SC-PLL0FEED=0x55;//写入喂狗值
//等待PLL锁定
while(!(LPC_SC-PLL0STAT(125))){
//PLL锁定状态
}
//选择PLL输出作为系统时钟源
LPC_SC-SYSCLKSEL=0x02;//0x02选择PLL输出
}
intmain(void){