系统时钟决定了CPU执行指令的时候

CPU的主频大家都知道吧,记得上大学那会装的第一台电脑用的是433MH主频的CPU。现在主流CPU主频一般是3GHz,运算速度已经提升了很多个数量级了。单片机集成了CPU、RAM、ROM等,它的内部也有一个CPU。

单片机的时钟周期、状态周期、机器周期、指令周期是什么?

不同架构单片机的时钟周期、状态周期、机器周期、指令周期是不一样的,以8051单片机为例:

时钟周期:时钟振荡的周期叫做时钟周期,如果使用外部晶振作为系统时钟,晶振产生的一个振荡脉冲叫做一个时钟周期。

状态周期:一个时钟周期定义为一个节拍,两个节拍定义为一个状态周期(可以用S表示),所以一个状态周期等于两个时钟周期。

机器周期:机器周期是指令周期的最小单位,它是读取一条指令的最短时间,一个机器周期等于6个状态周期。

指令周期:一条指令包括了一个或者多个机器周期,不同指令所需要的机器周期是不一样的,单周期指令只需要一个机器周期,多周期指令就需要多个机器周期。

由此可见,不管是单周期指令还是多周期指令,它的执行最终还是与时钟周期相关的。

最简单的指令(单周期指令)它需要12个时钟周期。

单片机时钟决定了指令程序执行时间

我们编写的单片机程序,最终会由编译器翻译为汇编语言,最后编译为机器代码下载到单片机的RoM中去,单片机上电时就会读取并执行ROM的程序。以8051单片机为例:

单周期指令需要12个时钟周期,双周期指令需要24个时钟周期。假如我们使用24MHz的晶振作为系统时钟,那么12个时钟周期的时间为0.5us(纳秒),也就是说执行一条单周期指令需要0.50(纳秒);如果把晶振改为12MHz,12个时钟周期的时间为1us(纳秒),执行一条单周期指令需要1us(纳秒);

单片机时钟变慢会影响运行速度吗

程序的执行就是依靠芯片的时钟的。

单片机时钟选择:内部时钟源,外部时钟源

一般单片机系统时钟是可以选择内部时钟或者是外部时钟的。根据不同的应用需求去具体选择。例如一些小项目对精度的要求不是很大,是可以选择使用内部时钟的,这样可以降低些成本,省去了外部时钟电路。但精度,稳定度要求较高,就需要选型高可靠质量的外部晶振和与晶振匹配的电容,一起组成外部时钟源。

芯片内部时钟源:一般是内部RC时钟,也就是由内部电阻电容组成的震荡电路。时钟的精度,稳定度都不是太好,容易受到外界温度湿度的影响。所以每个芯片内部时钟源都是不一样的,都会有一定差异性。但这个差异性在一定的应用中根本感觉不到。感觉不到是由于一般芯片的运行系统时钟都是几MHZ-几十MHZ的频率。即便出现一定的偏差,但这个偏差和总时钟几十MHZ相比,还是相当小的。 一般内部RC的精度是几十ppm-几百ppm。1PPM的意义是1MHZ会偏差个正负1HZ。

芯片外部时钟源:晶振和匹配电容。外部晶振的精度5ppm-20ppm。根据性能要求可具体选择相应参数。

综上:单片机的时钟变慢是会影响运行速度的,不仅时钟有可能变慢,还是有可能变快的。但这个快慢的差异对程序的影响会不会带来一些错误的执行,还需要具体分析程序实现的功能和逻辑。但一般技术的实现都已经考虑了允许误差。