推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

单片机软件精确延时计算和延时程序设计方法

更新时间:2019-11-17 12:36:30 大小:157K 上传用户:杨义查看TA发布的资源 标签:单片机 下载积分:0分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

文档为单片机软件精确延时计算和延时程序设计方法总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,

部分文件列表

文件名 大小
单片机软件精确延时计算和延时程序设计方法.pdf 157K

部分页面预览

(完整内容请下载后查看)
信 息 科 学  
单片机软件精确延时计算和延时程序设计方法  
张剑锋 陈 锐 陈慕君 曾凡娇  
南农业职业学院南 郑州 451450)  
:  
计算机反复执行一段程序以达到延时的目的称为软件延时片机应用程序中经常会用到短时间延时时要求很高的精度以  
12MHZ 晶振为例细讲MCS-51 单片机中汇编程序延时的精确算法和程序设计方法  
关键词:  
1 概述  
51 单片机时算法令周期机器周期与时钟周期  
0,就要执行第条指令,由第条指令得知,  
内循环体:DEL2:DJNZ R6DEL2 ;2s  
外循环体: MOV R6#125 ;1s  
DEL2:DJNZ R6DEL2 ;2s  
当我们在进行现实的单片机应用系统设 (R6)=125循环延时程序总共执行一次  
计时时会遇到预期的实验现象出现不了例 第条指令125 次内循环体,即内循环延时  
:我们进行简易流水灯的设计(P1 口连8 个 时间为:1s +125×2s=251s。  
执行时间为:1s +1252s=  
发光二极管P1.0 开始次点亮)以下流  
水灯程序用编程器加载MCS- 51 单片机芯片  
上后,  
现在我们可以把程序简化成如下形式:  
50ms 延时程序段如下:  
251s  
50ms 延时程序:  
MOV R7#200  
DEL1:MOV R6#125  
DEL2:DJNZ R6DEL2  
DJNZ R7DEL1  
DELAY:MOV R7#200  
DEL1:内循环延时时间(251s)  
DJNZ R7DEL1  
流水灯程序:ORG  
LJMP  
0000H  
START  
0050H  
ORG  
外循环体为内循环延时时间(251s)相应  
1s 延时程序:  
MOV R0#20  
START:MOV  
点亮P1.0 相连的灯  
MOV  
A#00000001B; 指令和第条指令R7- 1 0要执  
行内循环延时时间(251s)相应指令和第条  
DEL3:MOV R7#200  
DEL1:MOV R6#125  
DEL2:DJNZ R6DEL2  
DJNZ R7DEL1  
AP1  
指令条指令得知(R7)=200循  
LOOP:RL A ;实现数据左移一位, 环延时程序总共执行一次第条指令200 次  
为下一个灯点亮做准备  
MOV  
外循环体,即内循环延时时间为:1s +200ꢗ  
(251s +2s)=50601s =50.601ms50ms。  
3 软件延时程序设计方法  
DJNZ R0DEL3  
P1A  
在编写延时程序时要我们找到了最内  
LJMP LOOP ;实现往复循环  
层循环体后逐层嵌套可以写出相对精确  
RET  
由以上的精确软件延时计算方法可以看 的延时程序。  
END  
们在进行计算时是从内到外计算最内  
4 结论  
安装到电路板上后出现所有的灯一直 层的逐层向外计算终得出结果我们在  
不到预期的效果原因就是在每一个灯亮 进行延时程序设计时是由内向外。  
通过对延时程序精确延时的计算和程序  
设计方法的探究,使自己对这块知识的理解更  
的状态之后没有加延时程序段看来时程序  
下面我1s 的延时程序设计介绍精确延 加透澈学思路更加清晰高了自身的教学  
水平。  
的设计是非常重要的,下面我介绍一下精确软 时程序设计方法。  
参考文献  
件延时计算程序设计方法。  
2 精确软件延时计算方法  
首先1s 进行分解1s=1000ms=20ꢛ  
50ms这样们可以1s 50ms 的延时程 [1]李法春.单片机原理及接口技术案例教程[M].  
软件延时是利用计算机反复执行一段和 序执行 20 次,再进行 50ms 分解, :机械工业出版社2008.  
主程序无关的程序以达到延时的目的我们要 50ms=50000s=2001252s,我们可以把 [2] 李全利.单片机原理及应用技术[M].北京:高  
想明白精确软件延时的计算方法,我们要清楚 最内层循环体看作执行 2sDJNZ 指令即可 等教育出版社2006.  
一些几个基本概念。  
以实现我们再1252s 200 次即可 [3] 刘守义.单片机应用技术[M].西安:西安电子  
2.1 指令周期:单片机执行一条指令所需要 达50ms。  
的时间是以机器周期为单位的令不同,  
所需的机器周期也不同。  
科技大学出版社2002.  
2.2 机器周期:人们规6 个状态(2 个时钟  
周期)12 个晶振周期为一个机器周期。  
2.3 时钟周期:也称为振荡周期个时钟  
=1/ 晶振频率。  
MCS- 51 单片机的指令有单字节双字节  
和三字节的们的指令周期不尽相同个单  
周期指令包含一个机器周期,12 个时钟周  
期,所以一条单周期指令被执行所占时间为  
12*(1/12000000)=1μs。  
下面我50ms 的延时程序段为例进行精  
确延时计算方法的介绍。  
50ms 延时程序段如下:  
DELAY:MOV R7#200  
DEL1:MOV R6#125  
DEL2:DJNZ R6DEL2  
DJNZ R7DEL1  
其中第和第条指令为单周期指令指  
令周期1s和第条指令为双周期指  
令周期2s。  
内循环体为第条指令,只R6- 1 不为  
-85-  

全部评论(0)

暂无评论