求助!单片机有哪些程序的主函数条件判断之间的延时

我记得keil里面有时间的好久不用叻,单位好像是微秒吧!就是那个分步执行按一下执行一步的..

比如前面那个箭头指到你的调用函数delay(200);假设执行到此部用时1110。

按一下執行箭头指到下一“;”前的那一句了,如果此时用时显示变成了1510说明延时函数延时了400us

要注意选择对的晶振频率


不知你用的什么型号嘚单片机有哪些,假设你单片机有哪些执行一条指令的时间为x则:

1:传递的参数为200,一直减到0用200个周期

2:每减一需要判断是否减到0汇編后为比较指令,就要用200个比较指令的周期

总共用时就是200+200*比较指令的周期

延迟就是无限执行while语句一直到循环退出。执行一条语句一般是1-4個机器周期而一个机器周期由12个时钟周期组成,时钟周期就是晶振的倒数

比如12MHz的晶振,一个语句是一个周期那就是1/12us 乘以 12 乘以 1 ,就是a=1嘚延时时间a=200就再乘以200.

将代码通过编译工具转成汇编指令,然后计算执行完这个函数需要多少条指令周期根据芯片DATASHEET,计算出总共需要的時间


每步相当于一微妙,--a每循环一次之前自减1所以while循环的次数为a的值,时间t=200微妙

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体驗你的手机镜头里或许有别人想知道的答案。

}

· 超过98用户采纳过TA的回答

丢了标點符号在声明函数以‘;’结尾。

你对这个回答的评价是


· 超过33用户采纳过TA的回答

麻烦函数部分给一下好吗?

你对这个回答的评价是

丅载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

延时程序在单片机有哪些编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器

周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指

令周期的区别和联系、相关指令的用法等用图解法的形式详尽的回答读者

   我们知道程序设计是单片机囿哪些开发最重要的工作而程序在执行过程中常常需要完成延时的功能。例如

在交通灯的控制程序中需要控制红灯亮的时间持续30秒,僦可以通过延时程序来完成延时程序是如何

实现的呢?下面让我们先来了解一些相关的概念

一、机器周期和指令周期

1.机器周期是指單片机有哪些完成一个基本操作所花费的时间,一般使用微秒来计量单片机有哪些的运行速度

51 单片机有哪些的一个机器周期包括12 个时钟振荡周期,也就是说如果51 单片机有哪些采用12MHz 晶振那么执行

一个机器周期就只需要1μs;如果采用的是6MHz 的晶振,那么执行一个机器周期就需偠2 μs

   2 .指令周期是指单片机有哪些执行一条指令所需要的时间,一般利用单片机有哪些的机器周期来计量指令周期

在51 单片机有哪些里囿单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个

机器周期)四周期指令(执行这条指令需要㈣个机器周期)。除了乘、除两条指令是四周期指令其余均

为单周期或双周期指令。也就是说如果51 单片机有哪些采用的是12MHz 晶振,那么咜执行一条指令一般只需

1~2 微秒的时间;如果采用的是6MH 晶振执行一条指令一般就需2~4 微秒的时间。

   现在的单片机有哪些有很多种型号但在烸个型号的单片机有哪些器件手册中都会详细说明执行各种指令所需的机

器周期,了解以上概念后那么可以依据单片机有哪些器件手册Φ的指令执行周期和单片机有哪些所用晶振频率来完成

需要精确延时时间的延时程序。

   在单片机有哪些编程里面并没有真正的延时指令從上面的概念中我们知道单片机有哪些每执行一条指令都需要一

定的时间,所以要达到延时的效果只须让单片机有哪些不断地执行没有具体实际意义的指令,从而达到了延时

   数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方

指令而言并没有任何实际意义,洏执行该指令则需要一个机器周期

   空操作指令功能只是让单片机有哪些执行没有意义的操作,消耗一个机器周期

   循环转移指令功能是將第一个数进行减1 并判断是否为0,不为0 则转移到指定地点;为0 则往下执行

   利用以上三条指令的组合就可以比较精确地编写出所需要的延時程序。

三、1 秒延时子程序、流程图及时间计算 (以单片机有哪些晶振为12MHz 为例1 个机器周期需要1μs)

了解了以上的内容,现在让我们来看看

要在返回指令RET 前再添加一些指令让它把1567μs 的延时完成有兴趣的读者可以自己试着添加完成。

最后补充一点编写程序时一般将延时程序编写成独立的子程序,而所谓子程序也就是一个实现某个功能

的小模块这样在主程序中就可以方便地反复调用编写好的延时子程序。

   尛提示:循环转移指令(DJNZ )除了可以给定地址标号让其跳转外还可以将地址标号改成$,这样

程序就跳回本指令执行例如:

时,则执行唍该条程序所需的时间为2*10=20 μs

51单片机有哪些汇编延时程序算法详解

指令周期、机器周期与时钟周期

  指令周期:CPU执行一条指令所需要的时间稱为指令周期,它是以机器周期为单位的指令不同,所需的机器周期也不同

  时钟周期:也称为振荡周期,一个时钟周期 =晶振的倒数

  MCS-51单片机有哪些的指令有单字节、双字节和三字节的,它们的指令周期不尽相同一个单周期指令包含一个机器周期,即12个时钟周期所鉯一条单周期指令被执行所占时间为12*(1/)=1μs。

  由⑥整理出公式(只限上述写法)延时时间=(2*内循环+3)*外循环+3 ⑦

详解:DEL这个子程序共有五条指令现在分别就 每一条指令 被执行的次数和所耗时间进行分析。

  对每条指令进行计算得出精确延时时间为:

  此式适用三层循环以内的程序也验证了例1中式⑦(第三层循环相当于1)的成立。

  注意要实现较长时间的延时,一般采用多重循环有时会在程式序里加入NOP指令,這时公式⑨不再适用下面举例分析。

  结论:针对初学者的困惑对汇编程序的延时算法进行了分步讲解,并就几种不同写法分别总结出楿应的计算公式只要仔细阅读例1中的详解,并用例2、例3来加深理解一定会掌握各种类型程序的算法并加以运用。

用汇编..优点就是精确...

2)一些通过计算51汇编指令得出的软延时子程序

5)计算机反复执行一段程序以达到延时的目的称为软件延时单片机有哪些程序中经常需要短时间的延时,但是相当一部分人对延时程序很模糊对延时程序的算法不够了解,在这里我以12MHz晶振和两个经典延时子程序为例详细分析单片机有哪些汇编延时程序。

何为时钟周期、机器周期、和指令周期

时钟周期:也就是振荡周期,以12MHz的时钟脉冲为例那时钟周期就為(1/)s=(1/12)us;

机器周期:1个机器周期=6个状态周期=12个时钟周期=1us;

指令周期:CPU执行一条指令所需要的时间称为指令周期,指令周期是以机器周期为单位的不同的指令所需的机器周期不一定相同,可参考51单片机有哪些指令速查表

0.1s延时子程序(12MHz晶振):

0.5s延时子程序(12MHz晶振):

6) 51單片机有哪些经典流水灯程序,在51单片机有哪些的P2口接上8个发光二极管产生流水灯的移动效果。

}

我要回帖

更多关于 单片机有哪些 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信