0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

姚小熊27 来源:电工之家 作者:电工之家 2020-01-01 15:49 次阅读

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

CPU的主频大家都知道吧,记得上大学那会装的第一台电脑用的是433MH主频的CPU。现在主流CPU主频一般是3GHz,运算速度已经提升了很多个数量级了。单片机集成了CPU、RAMROM等,它的内部也有一个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。根据性能要求可具体选择相应参数

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5997

    文章

    43947

    浏览量

    620474
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10409

    浏览量

    206452
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130295
收藏 人收藏

    评论

    相关推荐

    STM32上电启动后,会有几率出现程序运行速度变慢的现象,是为什么?

    大家好: 请教个问题,我上电启动后,会有几率出现程序运行速度变慢的现象,比如定时器1s闪烁一次灯,变成了5s闪烁一次。重新上电或软复位后正常。 感觉是启动时,STM32有几率出现时钟没配置正确
    发表于 04-08 07:47

    51单片机打开串口通信是否主程序运行速度

    51单片机打开串口通信是否主程序运行速度?我发现打开,主程序的的死循环运行超慢,是串口的问题吗?
    发表于 06-21 13:28

    为什么电脑发热,cpu的运行速度变慢

    为什么电脑发热,cpu的运行速度变慢,难道是为了保护,cpu降频了
    发表于 07-13 13:55

    AVR运行速度为什么变慢

    AVR有怪象,我用8M内部晶振,当烧写程序后它是以8M的速度运行,但断电后再重启运行速度明显变慢,可是它又会慢慢地变快,并且过四五分钟后它又恢复8M正常工作。求解{:23:}
    发表于 01-16 14:49

    DSP程序烧写后运行速度比设置的速度

    用的28335,使用RAM在线调试的时候运行速度正常,程序烧进FLASH后运行速度明显变慢......怎么回事啊,有没有哪位大哥遇到过这种情况,该怎么解决?
    发表于 09-30 22:16

    ARM处理器设计的机制是如何使得它的运行速度远快于51单片机运行速度

    ARM处理器设计的机制是如何使得它的运行速度远快于51单片机运行速度的?求解答
    发表于 08-04 14:22

    如何看单片机里程序改了之后运行速度的变化的?

    请问大家平时是怎么看单片机里程序改了之后运行速度的变化的?
    发表于 10-30 07:00

    单片机时钟电路原理图

    单片机时钟电路原理图 下面以一个实际的时钟电路来说明定时器的软件编程方法,时钟是最为常见的显示时、分、秒为
    发表于 03-14 14:25 1.7w次阅读
    <b class='flag-5'>单片机时钟</b>电路原理图

    51单片机时钟案例

    51单片机时钟案例,内附详细程序。
    发表于 06-23 17:56 17次下载

    单片机时钟电路

    时钟电路、电子表的时钟电路以及MP3MP4的时钟电路。 单片机时钟电路作用 单片机运行需要时钟
    发表于 10-16 16:45 2.8w次阅读

    单片机时钟精度调整解析

    本文针对用单片机制作电子钟或要求根据时钟启控的控制系统时,出现的校准了的电子时钟的时间竟然变快或是变慢了的情况而提出的一种解决方案。 单片机
    发表于 10-16 17:21 4次下载
    <b class='flag-5'>单片机时钟</b>精度调整解析

    一文看懂rtc实时时钟单片机时钟的区别

    本文首先阐述了rtc实时时钟单片机时钟的区别,其次介绍了单片机时钟概念与单片机内外部时钟方式
    的头像 发表于 05-14 15:48 6w次阅读

    单片机的执行速度与什么有关

    单片机的执行速度与什么有关呢,当然对于初学者来说,第一时间想到的是晶振,没错,晶振算一个,但准确的来说应该是单片机时钟源(再具体一点就是单片机
    发表于 07-20 10:20 5074次阅读

    单片机时钟电路有哪些不同?

    单片机时钟电路通常可以分为内部时钟和外部时钟两种类型。
    的头像 发表于 12-19 18:12 735次阅读
    <b class='flag-5'>单片机时钟</b>电路有哪些不同?

    单片机内部时钟电路的工作原理

    单片机时钟电路是一种用于产生稳定时钟信号的电路,它是单片机正常工作的基础,决定了单片机运行速度和性能。具体的设计和配置取决于
    发表于 01-16 15:33 976次阅读
    <b class='flag-5'>单片机</b>内部<b class='flag-5'>时钟</b>电路的工作原理