EDN首页   博客首页

日志档案

发表于 2006-10-24 9:44:06

55

标签: 无标签

使用PIC单片机的TMR1作为实时时钟

Timer1 添加外部LP 振荡器,可以为用户提供RTC 功能。这是通过一个提供精确时基的廉价时钟晶振以及几行计算时间的应用程序代码实现的。当器件工作于休眠模式下并使用电池或超大容量电容作为电源时,可以省去额外的RTC 器件和备用电池。

应用代码程序RTCisr,给出了使用中断服务程序以1 秒的间隔递增计数器的简单方法。 TMR1 寄存器对的值不断加1 直至溢出,触发中断并调用中断服务程序,该程序会使秒计数器加1,而分钟和小时计数器则会在前面的计数器溢出时加1。由于这对寄存器为16 位宽,因此使用32.768 kHz 时钟,将其计数到溢出需要2 秒。要使溢出按所需的1 秒间隔进行,必须预先装载这对寄存器。最简单的方法是使用BSF 指令将TMR1H 的最高有效位置1。请注意决不要预先加载或改变TMR1L 寄存器,这样做可能会引起多个周期的累积错误。要使此方法精确,Timer1 必须工作在异步模式且必须允许Timer1 溢出中断(PIE1<0> = 1),如程序RTCinit所示。同时Timer1 振荡器也必须使能并始终保持运行。

详细的源程序段见: http://www.supermcu.com

系统分类: 单片机   |   用户分类: 我的文章   |   来源: 无分类   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1215)    回复(1)  

投一票您将和博主都有获奖机会!

最新评论

  • wowgold

    2008-4-3 10:13:26

    wow gold portal site showing which gold sellers have the cheap wow gold price. Compare and save next time you buy world of warcraft gold to our loyal and reliable customers.