(玩电子) 电子技术学习与研讨
当时方位:单片机教程网 >> 根底教程 >> 阅览文章

5课:单片机延时程序剖析

作者:佚名   来历:本站原创   点击数:x  更新时刻:2007年08月16日   【字体:

上一次课中,咱们现已知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面咱们再来看一下其它符号的含义。

DELAY:   MOV R7,#250   ;(6)

D1:   MOV R6,#250      ;(7)

D2:   DJNZ R6,D2      ;(8)

DJNZ R7,D1            ;(9)   

RET                ;(10)

〈单片机延时程序〉

  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指令是双周期指令。

  下面让咱们来核算方才的延时。首要有必要要知道晶体震动器的频率,咱们设所用晶体震动器为12M,则一个机器周期便是1微秒。而DJNZ指令是双周期指令,所以履行一非必须2个微秒。总共履行62500次,正好125000微秒,也便是125毫秒。

 假如你对上面几句仍是不明白请看这儿的详解:http://www.62pa.com/mcu/1247.html

 关于用C言语写延时函数的详解请看这:http://www.62pa.com/mcu/710.html

操练:规划一个延时100毫秒的延时程序。

关键剖析:1、一个单元中的数是否能超越255。2、怎么分配两个数。

三、复位电路

一、复位办法

⒈ 复位条件
        RST引脚坚持2个机器周期以上的高电平。

⒉ 复位电路


〈单片机复位电路〉

⒊ 复位后CPU状况

       PC:  0000H         TMOD: 00H

       Acc: 00H           TCON: 00H

       B:   00H           TH0:  00H

       PSW: 00H           TL0:  00H

       SP:  07H           TH1:  00H

       DPTR:0000H         TL1:  00H

       P0~P3:FFH         SCON: 00H

       IP:×××00000B    SBUF: 不定

       IE:0××00000B     PCON: 0×××0000B

  任何单片机在作业之前都要有个复位的进程,复位是什么意思呢?它就象是咱们上课之前打的准备铃。准备铃一响,咱们就自动地从操场、其它当地进入教室了,在这一段时刻里,是没有教师干涉的,对单片机来说,是程序还没有开端履行,是在做准备作业。明显,准备作业不需求太长的时刻,复位只需求5ms的时刻就能了。怎么进行复位呢?只需在单片机的RST管脚上加上高电平,就能了,按上面所说,时刻不少于5ms。为了到达这个要求,能用很多种办法,这儿供应一种供参阅,见图1。实际上,咱们在上一次试验的图中已见到过了。

  这种复位电路的作业原理是:通电时,电容两头适当所以短路,所以RST管脚上为高电平,然后电源经过电阻对电容充电,RST端电压渐渐下降,降到必定程序,即为低电平,单片机开端正常作业。

宣布谈论】【告知老友】【保藏此文】【封闭窗口
casino

文章谈论

m88 188bet uedbet 威廉希尔 明升 bwin 明升88 bodog bwin 明升m88.com 18luck 188bet unibet unibet Ladbrokes Ladbrokes casino m88明升 明升 明升 m88.com 188bet m88 明陞 uedbet赫塔菲官网 365bet官网 m88 help