微芯片技术:基于PIC16(L)F1946/1947的时钟源切换与Timer1振荡器

需积分: 43 46 下载量 47 浏览量 更新于2024-08-09 收藏 7.97MB PDF 举报
"这篇文档详细介绍了在基于PIC微控制器(如PIC16(L)F1946/1947)的系统中如何进行时钟切换,特别是针对上海地铁1号线的ATS仿真系统的背景。内容涵盖了时钟源的选择、系统时钟选择(SCS)位、振荡器起振延时状态(OSTS)位、TIMER1振荡器以及TIMER1振荡器就绪(T1OSCR)位的使用方法。" 在微控制器中,时钟切换是一项关键任务,它直接影响到CPU和外设的工作效率。文档中提到了几种不同的时钟源,包括默认的系统振荡器(由配置字寄存器中的FOSC位决定)、Timer1 32 kHz晶振以及内部振荡器模块(INTOSC)。通过修改OSCCON寄存器的SCS位,可以方便地在这些时钟源之间切换。 系统时钟选择(SCS)位在OSCCON寄存器中起到决定性作用。当SCS位设置为00时,系统时钟源由配置字寄存器的FOSC<2:0>位决定;设为01时,系统时钟源切换为Timer1振荡器;设为1x时,系统时钟源则由OSCON寄存器的IRCF<3:0>位选定的内部振荡器频率决定。值得注意的是,切换时需要考虑振荡器的稳定时间,以避免系统不稳定。 OSCSTAT寄存器的振荡器起振延时状态(OSTS)位提供了当前系统时钟源的指示,尤其是在外部时钟源(如LP、XT或HS模式)和内部时钟源之间切换时,OSTS位能够反映振荡器起振定时器(OST)的状态。 Timer1振荡器是一个独立于Timer1外设的32.768 kHz晶振,用于优化Timer1的计时操作。T1CON寄存器中的T1OSCEN控制位可以启用或禁用Timer1振荡器。当需要将Timer1振荡器作为系统时钟源时,用户需要确保Timer1振荡器已就绪,这可以通过查看OSCSTAT寄存器的Timer1振荡器就绪(T1OSCR)位来确认。 在实际应用中,如上海地铁1号线的ATS仿真系统,正确理解和操作这些时钟源选择和状态监测对于保证系统的稳定运行至关重要。在进行时钟切换时,除了遵循以上步骤,还要注意可能由双速启动或故障保护时钟监视器导致的自动时钟切换,这些切换不会更新OSCCON寄存器的SCS位,因此需要通过监视OSTS位来确定当前的系统时钟源。 总结来说,这份文档为基于PIC微控制器的系统提供了详尽的时钟管理指南,包括时钟源的切换策略和状态检测,这对于微控制器应用的开发者尤其重要,因为正确的时钟管理能够确保系统的高效和可靠运行。