找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8175|回复: 5
收起左侧

单片机延时程序

[复制链接]
ID:2356 发表于 2008-6-7 19:46 | 显示全部楼层 |阅读模式
MOV R2,#10H
........
DELY:   PUSH 02H
DEL2:   PUSH 02H
DEL3:   PUSH 02H
DEL4:   DJNZ R2,DEL4    ;单片机延时程序
        POP 02H
        DJNZ R2,DEL3
        POP 02H
        DJNZ R2,DEL2
        POP 02H
        DJNZ R2,DELY
        RET
请问延时多长时间若晶振12MHZ
回复

使用道具 举报

ID:2006 发表于 2008-6-7 22:56 | 显示全部楼层
具体算起来要比较长式子,你不妨把延时程序拷贝进Keil C运行,把断点设置到RET处,很快就可得出延时时间,记住先设置好晶振
回复

使用道具 举报

ID:2330 发表于 2008-6-10 11:38 | 显示全部楼层

晶振为12MHZ则一个机器周期执行的时间为1微秒

DJNZ为双周期指令所以执行一次需要2个机器周期
执行一次DJNZ R2,DEL4需要10次才可以执行下一条指令
10*2*1微妙=20微秒
执行DJNZ R2,DEL3 10*10*2*1微秒
同理DJNZ R2,DEL2  10*10*10*2微秒
DJNZ R2,DELY     10*10*10*10*2*1微秒
所以总时间为
10*10*10*10*2*1+10*10*10*2+10*10*2*1+10*2*1
其实这也只是算出个 粗略的结果
要想得到精确的结果 还要把 所有的 PUSH和POP所用的时间给加上```

回复

使用道具 举报

ID:2356 发表于 2008-6-10 12:13 | 显示全部楼层
谢谢 大白狐斑竹大人啊
回复

使用道具 举报

ID:66501 发表于 2014-10-24 14:17 | 显示全部楼层
掘墓高手,专挖古墓,一挖一个坑,坑坑见墓。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表