单片机教学(3)

单片机的表里部布局阐发(二)

一、 法式的完满

  上一次咱们的法式其实是没什么用,要灯亮又一次要重写一下片子,下面咱们要让灯不竭地明灭,这就有必然的合用价值了,比如能够把它当成汽车上的一个信号灯用了。如何才能让灯不竭地明灭呢?现实上便是要灯亮一段时间,再灭一段时间,也便是说要P10不竭地输出高和低电平。如何完成这个要求呢?请考虑用下面的指令能否可行:

SETB P10

CLR P10

……

这是不成的,有两个问题,一,算计机施行指令的时间很快,施行完SETB P10后,灯是灭了,但在极短时间(微秒级)后,算计机又施行了CLR P10指令,灯又亮了,所以根本分辨不出灯曾灭过。第二,在施行完CLR P10后,不会再去施行SETB P10指令,所以当前再也没无机缘让灭了。

  为领会决这两个问题,咱们能够做如下设想,一,在施行完SETB P10后,延时一段时间(几秒或零点几秒)再施行第二条指令,就能够分辩出灯曾灭过了。第二在施行完第二条指令后,让算计机再去施行一条指令,不竭地在原地兜圈,咱们称之为"轮回",多么就能够完成任务了。

以下先给出法式(后面括号中的数字是为了便于讲解而写的,现实不消输入):

;主法式:

LOOP: SETB P10     ;(1)

    LCALL DELAY   ;(2)

    CLR P10     ;(3)

    LCALL DELAY   ;(4)

    AJMP LOOP    ;(5)

;以下子法式

DELAY: MOV R7,#250  ;(6)

D1: MOV R6,#250    ;(7)

D2: DJNZ R6,D2    ;(8)

  DJNZ R7,D1     ;(9)

  RET         ;(10)

  END         ;(11)

按上面的设想阐发一下后面的五条指令。

  一条是让灯灭,第二条该当是延时,第三条是让灯亮,第四条和第二条一模一样,也是延时,第五条该当是转去施行一条指令。第二和第四条完成的道理稍后谈,先看第五条,LJMP是一条指令,意义是转移,往什么处所转移呢?后面跟的是LOOP,看一下,什么处所又一次有LOOP,对了,在一条指令的后面有一个LOOP,所以很直观地,咱们能够认识到,它要转到一条指令处。这个一条指令后面的LOOP被称之为标号,它的用处便是给这一行起一个名字,便于使用。能否必然要给它起名叫LOOP呢?当然不是,起什么名字,完全由编法式的人决定,能够称它为A,X等等,当然,这时,第五条指令LJMP后面的名字也得跟着改了。

  第二条和第四条指令的用处是延时,它是如何完成的呢?指令的形式是LCALL,这条指令称为调用子法式指令,看一下指令后面跟的是什么,DELAY,找一下DELAY,在第六条指令的后面,明显,这也是一个标号。这条指令的传染感动是多么的:当施行LCALL指令时,法式就转到LCALL后面的标号所标定的法式处施行,若是在施行指令的过程中碰到RET指令,则法式就前去到LCALL指令的下面的一条指令继续施行,从第六行起头的指令中,能够看到确实有RET指令。在施行第二条指令后,将转去施行第6条指令,而在施行完6,7,8,9条指令后将碰到第10条令:RET,施行该条指令后,法式将回来施行第三条指令,即将P10清零,使灯亮,然后又是第四条指令,施行第四条指令便是转去施行第6,7,8,9,10条指令,然后回来施行第5条指令,第5条指令便是让法式回到第1条起头施行,如斯循环往复,灯就在不竭地亮、灭了。

  在标号DELAY标记的这一行到RET这一行中的所有法式,这是一段延时法式,大体延时零点几秒,至于具体的时间,当前咱们再进修若何算计。 法式的较后一行是END,这不是一条指令,它只是告诉咱们法式到此结束,它被称为"伪指令"。

二、单片机内部布局阐发:

  为了晓得延时法式是若何工作的,咱们必需起首领会延时法式中出现的一些符号, 就从R1起头,R1被称之为工作寄放器。什么是工作寄放器呢?让咱们从现实糊口生计中来找找谜底。若是出一道数学题:123+567,让你回覆成果是多少,你会登时答出是690,再看下面一道题:123+567+562,要让你要上回覆,就不这么容易了吧?咱们会如何做呢?若是有张纸,就容易了,咱们先算出123+567=690,把690写在纸上,然后再算690+562获得成果是1552。这此中1552是咱们想要的成果,而690并非咱们所要的成果,可是为了获得最终成果,咱们又不得不先算出690,并记上去,这其实是一个两头成果,算计机中做运算和这个类似,为了要获得最终成果,往往要做良多步的两头成果,这些两头成果要有个处所放才行,把它们放哪呢?放在后面提到过的ROM中能够吗?明显不成,由于算计机要将成果写进去,而ROM是不成以写的,所以在单片机中又一次有一个区域称为RAM区(RAM是随机存取存储器的英文缩写),它能够将数据写进去。

  出格地,在MCS-51单片机中,将RAM等分出一块区域,称为工作寄放器区。

 

 


澳门新濠天地电子 COPYRIGHT; http://www.agpgames.com http://www.kincony.com
  e-mail: support@kincony.com hificat@163.com