单片机开发者都知道,单片机中执行程序是要耗费时间的。并且被执行的次数通常非常之多,有的多达上万次,那么如何大致估算出这些程序执行完毕需要多长时间呢?并且执行时间是否在要求的时间之内呢?本文就将通过一些举例来为大家解答。
举例来说,学校的铃声是学生们上课和下课的重要标志。整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。这个铃是按一定的时间安排来响的,可以称之为“时序:时间的顺序”。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严格的规定,一点也不能乱。计算机要完成的事更复杂,所以它的时序也更复杂。
在计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,按照规定:计算机访问一次存储器的时间,称之为一个机器周期。这是一个时间基准,就好像人用“秒”作为时间基准一样,但有人会问,为什么不干脆用“秒”,这即符合人们的习惯又方便记忆,但实际上,如果试用秒作为单位反而会出现混乱的情况。
一个机器周期包括12个时钟周期。下面算一下一个机器周期是多长时间。设一个单片机工作于12M晶振,它的时钟周期是1/12(微秒)。它的一个机器周期是12*(1/12)也就是1微秒。(请计算一个工作于6M晶振的单片机,它的机器周期是多少)。
MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期即可,有一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。这也不难再解,不是吗?
为了恒量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。INTEL对每一条指令都给出了它的指令周期数,这些数据,大部份不需要开发者去记忆,但是有一些指令是需要记住的,如DJNZ指令是双周期指令。
接下来的计算过程便不困难了,首先要知道晶振的频率,设所用晶振为12M,则一个机器周期就是1微秒。而DJNZ指令是双周期指令,所以执行一次要2个微秒。一共执行62500次,正好125000微秒,也就是125毫秒。
通过以上的介绍,大家可以看到单片机时序对于设计来说是非常重要的。时序就像时钟一样决定单片机在接下来的一秒将要做什么,因此对于时序的把控就等于对单片机工作效率和进度的把控。本文针对新手,将单片机的时序进行了简单分析,感兴趣的朋友不妨花上几分钟来阅读本文,相信会有意想不到的收获。
声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。
微信关注 | ||
技术专题 | 更多>> | |
2024慕尼黑上海电子展精彩回顾 |
2024.06技术专题 |