您的位置 首页 嵌入式

单片机各种延时程序符号的意义解析

单片机各种延时程序符号的含义解析-DJNZ:这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个是D2,R6我们当然已知是什么了,查一下D2是什么。D2在本行的前面,我们已学过,这称之为标号。标号的用途是什么呢?就是给本行起一个名字。DJNZ指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转移,转到什么地方去呢?可能大家已猜到了,转到第二个参数所指定的地方去(请大家用自已的话讲一下这条语句是怎样执行的)。本条指令的最终执行结果就是,在原地转圈250次。

单片机延时程序

MOV:这是一条指令,意思是传递数据。提到传递,咱们都很清楚,传东西要从一自己的手上传到另一自己的手上,也便是说要有一个接受者,一个传递者和相同东西。从指令MOV R7,#250中来剖析,R7是一个接受者,250是被传递的数,传递者在这条指令中被省掉了(留意:并不是每一条传递指令都会省的,事实上大部份数据传递指令都会有传递者)。它的意义也很明显:将数据250送到R7中去,因而履行完这条指令后,R7单元中的值就应当是250。在250前面有个#号,这又是什么意思呢?这个#便是用来阐明250便是一个被传递的东西自身,而不是传递者。那么MOV R6,#250是什么意思,应当不必剖析了吧。

单片机各种延时程序符号的意义解析

DJNZ:这是另一条指令,咱们来看一下这条指令后边跟着的两个东西,一个是R6,一个是D2,R6咱们当然已知是什么了,查一下D2是什么。D2在本行的前面,咱们已学过,这称之为标号。标号的用处是什么呢?便是给本行起一个姓名。DJNZ指令的履行进程是这样的,它将这以后边的第一个参数中的值减1,然后看一下,这个值是否等于0,假如等于0,就往下履行,假如不等于0,就搬运,转到什么当地去呢?或许咱们已猜到了,转到第二个参数所指定的当地去(请咱们用自已的话讲一下这条句子是怎样履行的)。本条指令的终究履行成果便是,在原地转圈250次。

履行完了DJNZ R6,D2之后(也便是R6的值等于0之后),就会去履行下面一行,也便是DJNZ R7,D1,请咱们自行剖析一下这句话履行的成果。(转去履行MOV R6,#250,一起R7中的值减1),终究DJNZ R6,D2这句话将被履行250*250=62500次,履行这么屡次同一条指令干吗?便是为了延时。

一个问题:假如在R6中放入0,会有什么样的成果。

二、时序剖析:

前面咱们介绍了延时程序,但这还不完善,由于,咱们只知道DJNZ R6,D2这句话会被履行62500次,可是履行这么屡次需求多长时刻呢?是否满意咱们的要求呢?咱们还不知道,所以下面要来处理这个问题。

先提一个问题:咱们校园里什么是最重要的。(铃声)校长能出差,教师能歇息,但校园一日无铃声必定大乱。整个校园便是在铃声的一致指挥下,步调一致,一致和谐地作业着。这个铃是按必定的时刻组织来响的,咱们能称之为“时序��时刻的次第”。一个由人组成的单位姑且要有必定的时序,核算机当然更要有严厉的时序。事实上,核算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严厉的规则,一点也不能乱。核算机要完结的事更杂乱,所以它的时序也更杂乱。

咱们已知,核算机作业时,是一条一条地从ROM中取指令,然后一步一步地履行,咱们规则:核算机拜访一次存储器的时刻,称之为一个机器周期。这是一个时刻基准,好象咱们人用“秒”作为咱们的时刻基准相同,为什么不爽性用“秒”,多好,很习气,学下去咱们就会知道用“秒”反而不习气。

一个机器周期包含12个时钟周期。下面让咱们算一下一个机器周期是多长时刻吧。设一个单片机作业于12M晶体震动器,它的时钟周期是1/12(微秒)。它的一个机器周期是12*(1/12)也便是1微秒。(请核算一个作业于6M晶体震动器的单片机,它的机器周期是多少)。

MCS-51单片机的一切指令中,有一些完结得比较快,只需一个机器周期就行了,有一些完结得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。这也不难再解,不是吗?我让你扫地的履行要完结总得比要你完结擦黑板的指令时刻要长。为了恒量指令履行时刻的长短,又引进一个新的概念:指令周期。所谓指令周期便是指履行一条指令的时刻。INTEL对每一条指令都给出了它的指令周期数,这些数据,大部份不需求咱们去回忆,可是有一些指令是需求记住的,如DJNZ指令是双周期指令。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/345430.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部