×
嵌入式 > 技术百科 > 详情

新手必看 单片机时序该如何理解?

发布时间:2021-08-10 发布时间:
|

单片机开发者都知道,单片机中执行程序是要耗费时间的。并且被执行的次数通常非常之多,有的多达上万次,那么如何大致估算出这些程序执行完毕需要多长时间呢?并且执行时间是否在要求的时间之内呢?本文就将通过一些举例来为大家解答。

举例来说,学校的铃声是学生们上课和下课的重要标志。整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。这个铃是按一定的时间安排来响的,可以称之为“时序:时间的顺序”。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严格的规定,一点也不能乱。计算机要完成的事更复杂,所以它的时序也更复杂。

在计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,按照规定:计算机访问一次存储器的时间,称之为一个机器周期。这是一个时间基准,就好像人用“秒”作为时间基准一样,但有人会问,为什么不干脆用“秒”,这即符合人们的习惯又方便记忆,但实际上,如果试用秒作为单位反而会出现混乱的情况。

一个机器周期包括12个时钟周期。下面算一下一个机器周期是多长时间。设一个单片机工作于12M晶振,它的时钟周期是1/12(微秒)。它的一个机器周期是12*(1/12)也就是1微秒。(请计算一个工作于6M晶振的单片机,它的机器周期是多少)。

MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期即可,有一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。这也不难再解,不是吗?

为了恒量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。INTEL对每一条指令都给出了它的指令周期数,这些数据,大部份不需要开发者去记忆,但是有一些指令是需要记住的,如DJNZ指令是双周期指令。

接下来的计算过程便不困难了,首先要知道晶振的频率,设所用晶振为12M,则一个机器周期就是1微秒。而DJNZ指令是双周期指令,所以执行一次要2个微秒。一共执行62500次,正好125000微秒,也就是125毫秒。

通过以上的介绍,大家可以看到单片机时序对于设计来说是非常重要的。时序就像时钟一样决定单片机在接下来的一秒将要做什么,因此对于时序的把控就等于对单片机工作效率和进度的把控。本文针对新手,将单片机的时序进行了简单分析,感兴趣的朋友不妨花上几分钟来阅读本文,相信会有意想不到的收获。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
无人机新突破:或将利用手机发射塔追踪无人机