<meta name="keywords" content="必胜时时彩开户,keywords" /> 5课:单片机延时法式模范剖析 联系我们

5课:单片机延时法式模范模范剖析

上一次课中,我们曾经知道,法式模范模范中的符号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次,但是推行这么一再再三须要多长时间呢?能否知足我们的请求呢?我们还不知道,以是下面要来处置赏罚赏罚这个效果。

  先提一个效果:我们黉舍里甚么是最主要的。(铃声)校长能出差,师长教员能安息,但黉舍一日无铃声一定年夜乱。一切黉舍就是在铃声的统一指导下,法式模范不合,统一协调地使命着。这个铃是按一定的时间部署来响的,我们能称之为“时序&#0;&#0;时间的序次”。一个由人组成的单元尚且要有一定的时序,盘算机虽然更要有严酷的时序。现实上,盘算机更象一个年夜钟,甚么时间分针动,甚么时间秒针动,甚么时间时针动,都有严酷的划定,一点也不克不及乱。盘算神秘完成的事更严重年夜,以是它的时序也更严重年夜。

  我们已知,盘算机使命时,是一条一条地从ROM中取指令,然后一步一步地推行,我们划定:盘算时机见一次存储器的时间,称之为一个机械周期。这是一个时间基准,好象我们人用“秒”作为我们的时间基准一样,为甚么不爽性用“秒”,多好,很习气,学下去我们就会知道用“秒”反而不习气。

一个机械周期网罗12个时钟周期。下面让我们算一下一个机械周期是多长时间吧。设一个单片机使命于12M晶体震惊器,它的时钟周期是1/12(微秒)。它的一个机械周期是12*(1/12)也就是1微秒。(请盘算一个使命于6M晶体震惊器的单片机,它的机械周期是若干)。

  MCS-51单片机的一切指令中,有一些完成得较量快,只需一个机械周期就好了,有一些完成得较量慢,得要2个机械周期,尚有两条指令要4个机械周期才行。这也不难再解,不是吗?我让你扫地的推行要完成总得比要你完成擦黑板的指令时间要长。为了恒量指令推行时间的是非,又引入一个新的看法:指令周期。所谓指令周期就是指推行一条指令的时间。INTEL对每条指令都给出了它的指令周期数,这些数据,年夜部门不须要我们去影象,但是有一些指令是须要记着的,如DJNZ指令是双周期指令。

  下面让我们来盘算适才的延时。首先必须要知道晶体震惊器的频率,我们设所用晶体震惊器为12M,则一个机械周期就是1微秒。而DJNZ指令是双周期指令,以是推行一主要2个微秒。一共推行62500次,正好125000微秒,也就是125毫秒。

 假定你对下面几句照样不懂请看这里的详解:http://mamjap.com/mcu/1247.html

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

演习:设计一个延时100毫秒的延时法式模范模范。

要点剖析:1、一个单元中的数能否能逾越255。2、若何分配两个数。

3、复位电路

一、复位要领

⒈ 复位条件
        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端电压徐徐降低,降到一定法式模范模范,即为低电平,单片机开规则常使命。