1、大多数单片机都只有系统时钟一个。就是CPU的各节拍工作时序的驱动源了。这个频率一般为几MHz。速度比较快,其目的无非是让单片机快点干活。那为啥不是GHz数量呢,这个是集成电路工艺决定的。根据工艺反推出某款单片机的理想工作频率,往往也是最佳工作频率了。系统在这个频率下工作又快(已达最佳极限)又稳定。最好地体现了计算机的高速运算能力。
2、实时时钟,是单片机计时的时钟或独立的可被单片机访问的时钟。它可以外部扩展芯片得到,如1302,1307,12887,3130,12020,m41t81,6902,8025。有并口有串口,有带电池自己玩,有外部供电,看实际需要设计。这些时钟无一例外地用到了32768Hz。这是因为它们用了同一个计时IC核、低频功耗更低、更容易校表和1Hz计时精密实现。大伙在该基础上做了不同的文章,有的搞点稳定晶振放里面,有的搞点备电方案,有的接口不同,有的搞点万年历,有的搞点报警,有的……
3、还有可能你提到的(可能就是430系列单片机),内部集成了RTC这个模块,要求外面接32768Hz。这样就可以独立地计时,单片机睡觉了也和它的时间管理无关,低成本实时方案,又省了好几毛。
综上:
【1】系统时钟就是CPU时钟,RTC时钟就是计时时钟。
【2】系统时钟的目的是高速稳定,而实时时钟目的是低功耗精确。
系统时钟(System Clock)和实时时钟(Real Time Clock -RTC)完全是两回事啊,打比方说系统时钟就是人的心脏脉搏,实时时钟就是你戴的手表!单片机需要系统时钟才能工作,才能运算。实时时钟需要32.768KHz晶振是为了计时。因为32768=2^15,即分频很方便,只要简单的硬件就能分频为1Hz,所以RTC芯片才用这种频率。
实时时钟的频率来源于晶振,但由于晶振不是1HZ,所以要转化,实时时钟的一秒是某个寄存器计数到32768溢出得到,所以实时时钟使用32.768K。
下面是我百度博客里的,是LPC2103的实时时钟的设置方式:
//********************************************************************
//实时时钟RTC基础实验
//用于仿真观察RTC各个寄存器的值
//分频方式: Fpclk/32768=(PREINT+1)……PREFRAC 格式: 被除数/除数=商……余数
#include
#define Fosc 11059200 //晶振 需要和选项里配置一致
#define Fcclk Fosc*5 //系统频率 和启动代码中的参数一致
#define Fpclk Fcclk/4 //PCLK 和启动代码中的参数一致
int main()
{
PREINT = Fpclk/32768-1; //这两行程序时RTC的“一秒”与实际一秒相同
PREFRAC = Fpclk-(Fpclk/32768)*32768;
CCR=1; //启动RTC
while(1);
}
//***********************************************************************