找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7236|回复: 5
打印 上一主题 下一主题
收起左侧

关于Keil里查看单片机延时时间的方法

[复制链接]
跳转到指定楼层
楼主
一段单片机程序源码:
ORG 00H
AJMP START
ORG 30H
START:
MOV P0,#00H
LCALL DELY;调用延时子程序
MOV P0,#0FFH
LCALL DELY;调用延时子程序
AJMP START
DELY:
MOV R4,#200
DL1:MOV R5,#50
DL2:MOV R6,#50
    DJNZ R6,$
    DJNZ R5,DL2
    DJNZ R4,DL1
        RET
END



这是一个led闪烁汇编程序,我主要看延时的时间,也熟悉它的计算。

此时光标定位到延时函数的时间为0.000006s(即6us),之前不知道现在刚知道,晶振选为12M,一个机器周期也就是1us,

然后点步出,就可以看到过了多长时间,为1.03060900s(即1030609us)
延时时间=1030609-6=1030603us(即1.030603s)

汇编时间的计算
                                  周期(us)        次数
MOV R4,#200               1                         1
DL1:MOV R5,#50         1                         200
DL2:MOV R6,#50         1                        200*50
    DJNZ R6,$                2                     200*50*50
    DJNZ R5,DL2            2                   200*50
    DJNZ R4,DL1            2                     200
        RET                      2                           1

时间=1*1+1*200+1*200*50+2*200*50*50+2*200*50+2*200+2*1=1030603us!即1.030603s.这就对上了。,有什么不对的地方大家请指正,谢谢了!


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 4#
ID:401564 发表于 2018-11-4 18:21 | 只看该作者
非常的不对!可能会误导新手的,你这个只能是用在传统的AT系列的51,也就是一个周期用12个系统时钟,在12MHZ的晶振下.
但是,现在很多人用的是STC的8051了,STC的时钟是非常乱的,真不明白他们是怎么想的,一下子用1T,一下用5T的,非常的难计算的,反人类一样的设计,人家是恨不得所有指令执行时间都一样,他们就一下这样一下那样,好像一定要多快似的,能到nS级别吗???所以,在STC上只能是先计算系统时钟的时间,再去算总的执行时钟个数来确定.当然,有更简单的方法,STC有的下载软件有延时计算器的,先选择好单片机型号,再计算就可以了.



评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

沙发
ID:1 发表于 2018-11-2 13:59 | 只看该作者
好方法,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:399179 发表于 2018-11-2 18:54 来自手机 | 只看该作者
这个真的不懂啊!
回复

使用道具 举报

5#
ID:401564 发表于 2018-11-4 18:23 | 只看该作者
这个是不对的!!!误导新手!
回复

使用道具 举报

6#
ID:388477 发表于 2018-11-5 09:15 | 只看该作者
Y_G_G 发表于 2018-11-4 18:21
非常的不对!可能会误导新手的,你这个只能是用在传统的AT系列的51,也就是一个周期用12个系统时钟,在12MHZ的 ...

恩恩,我现在刚学习查看,用的也是AT的51,谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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