3 C8051F单片机的时钟系统

更新时间:2024-01-18 10:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C8051F340单片机的时钟系统

一、综述

计算机,包括单片机,来运行程序,都是在时钟的驱使下一步一步完成的,不同的是,不同的计算机,其时钟的频率有很大的不同。C8051F340单片机的标称频率是48MHZ,在8位单片机的范畴里,属于较高频率的单片机,但与CORTEX –M系列的32位单片机来比,它的频率实在是算不上高。

C8051F340单片机的时钟称SYSCLK,中文称系统时钟。一个系统时钟的时钟周期,一般说来,程序可以运行一条指令。

二、时钟源

SYSCLK从哪里来?当然从震荡电路来。震荡电路,在单片机内部有两套,一套是高频的,是12MHz,经过适当分频或不分频,可以做为SYSCLK。另一套是80K,经过适当分频或不分频,也可以做为SYSCLK来使用,但是频率太低了,只能用在极低速度的检测场合,或低功耗场合,或休眠模式下。

在单片机外面,还可以加一套高精度的震荡电路,一般用石英晶体,该电路可以直接做为SYSCLK来使用。

单片机内部,还有一套频率乘法器(倍频器),有4倍和2倍两种输出,都可以做为SYSCLK来使用。频率乘法器的频率输入可以来自外部震荡电路,或外部震荡电路的一半,也可以来自片内高频振荡12MHz。

可以看出,单片机的SYSCLK的来源十分丰富,SYSCLK应该从哪里来?是多少?这些都是通过相关寄存器来配置的。

三、内部高频振荡器

内部高频振荡器的频率是12MHz,单片机的SYSCLK可以从该频率适当分频或不分频来得到,分频系数由内部高频振荡器控制寄存器 OSCICN来设定。

可以看出,上电后的单片面,运行在8分频模式下,SYSCLK只有1.5MHz,适当配置这个寄存器,SYSCLK可以变成3M,6M,12M。

四、内部低频振荡器

C8051F340含一个低频内部振荡器,该振荡器的标称频率为80KHz。该

震荡器的频率输出,经过适当分频或不分频来,也可以做为SYSCLK,分频系数通过低频内部振荡器控制寄存器OSCLCN来设定。

五、外部振荡器

外部振荡器电路可以采用外部晶体、陶瓷谐振器、电容或RC网络,我们这里只研究用石英晶体振荡器。这个石英晶体的参数,只能在30M以下,这个振荡电路要想正常工作,还要正确配置一个寄存器,这个寄存器叫:外部振荡器控制寄存器OSCXCN。

由下表知,要想让晶体工作,需要将OSCXCN的第6-4位,设置成“110”或“111”,同时根据您所安装的晶体的参数,正确配置OSCXCN的第2-0位。假设我们安装的晶体是6M,则需要将OSCXCN的第2-0位“110”,如果我们安装的晶体是24M,则需要将OSCXCN的第2-0位“111”。

晶体振荡电路有一个稳定过程,刚把OSCXCN配置完,这个晶体振荡电路还不能立即做为SYSCLK,要等待一段时间,哪什么时候,它工作就稳定的呢?这时要查看OSCXCN的第7位,如果该位是“1”,则表示晶体已经工作稳定了,如果该位还是“0”,则表示晶体工作不稳定,要继续等待。

内部高频振荡器也有类似的等待过程,但是单片机上电后,内部振荡器已经正常运行,不用我们的程序来干预了。内部低频振荡器也有这种稳定过程,但是程序运行一般不用这种模式,所以问题并不突出。下面要说的频率乘法器,也有这种稳定过程,我们就不在赘述。

这个石英晶体安装在哪呢?安装在P0.6、P0.7这两个管脚上,一旦装上晶体,P0.6、P0.7这两个管脚就不能做为普通的IO口来使用了。另外,两个30P的电容也是需要的,请参阅相关电路图。

还要将这两个管脚设置成模拟输入、分配跳过。模拟输入,需将P0MDIN的第六、七位设成“0、0”。分配跳过,需将P0SKIP的第六、七位设置成“1、1”。

P0MDIN&=0x3F; P0SKIP|=0xC0;

五、时钟乘法器

时钟乘法器上电后是不启动的,如果有必要,可以向控制寄存器CLKMUL写入控制字,来启动该电路工作。

向CLKMUL的第七位写入“1”,就就启动乘法器电路了,乘法器,是否工作稳定,可以查看该寄存器的第五位,第五位若为“1”,就表示乘法器已经工作稳定了。

乘法器的频率源,可以是内部高频振荡器、外部振荡器、外部振荡器的一半,通过向该寄存器的1、0两位写入适当的控制字来选择。

六、 系统时钟选择

内部高低频振荡器、外部振荡器、乘法器,给C8051F340单片机提供了多种系统时钟选择方案。通过向时钟选择寄存器CLKSEL写入适当的控制字,就可以选择不同的时钟了。可以看出,外部接12M晶体,通过乘法器输出,就可以得到48M的SYSCLK了。

这个寄存器高半字节,是用来选择USB时钟的,现在我们不涉及,低半字节,是用来选择单片机的系统时钟SYSCLK的。再强调一遍,选择时钟,心须等被选时钟的相关电路稳定后才能进行,对单片机来说,就是要查看相关寄存器的标志位了。

七、举例

单片机的P0.6、P0.7引脚接上8M晶体,通过按键,来设置与时钟相关的寄存器,使SYSCLK分别为80KHz、8MHz、12MHz、32MHz。同学们观察数码管数值的变化频率、流水灯的流速、蜂鸣器的鸣笛频率,来体验单片机的不同的运行速度。

本文来源:https://www.bwwdw.com/article/uy5o.html

Top