ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

软件延时,延时1ms

2021-07-01 13:01:26  阅读:197  来源: 互联网

标签:周期 1ms MOV 晶振 延时 软件 时钟


软件延时:有误差

使用多层循环,和利用指令的机器周期,来实现延时

 

源代码:

ORG 0000H
LJMP MAIN
ORG 0100H

MAIN:
    MOV A,#12H
    LCALL DELAY  ;调用延时子程序,延时1ms
    SJMP $

DELAY: MOV R0,#10  ;1个时钟周期
DL2:   MOV R1,#24  ;1个时钟周期
DL1:   NOP         ;1个时钟周期
       NOP      ;1个时钟周期
       DJNZ R1,DL1 ;2个时钟周期
       DJNZ R0,DL2 ;2个时钟周期
       
       RET         ;2个时钟周期
    
END

 

误差分析:

延时时间主要和晶振大小和延时程序中的延时次数有关系

整个延时子程序的耗费的机器周期数为:晶振采用12MHZ,12分频后,所以机器周期为1us

1+[1+(1+1+2)*24+2]*10+2=993us,误差为:7us

所以基本上延时了1ms。

晶振(震荡)频率=1/2状态频率=1/12机器频率

周期=1/频率

标签:周期,1ms,MOV,晶振,延时,软件,时钟
来源: https://www.cnblogs.com/nanfengnan/p/14958301.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有