请教单片机方面的知识,帮帮忙啊。

[复制链接]
2626|5
 楼主| pandalove1 发表于 2007-9-16 17:49 | 显示全部楼层 |阅读模式
 这是一个8051单片机使用的晶振为6MH,要求设计软件延时程序,延时时间为十毫秒。程序如下:
                  ORG   0000H                            周期
                  MOV   RO,   #0AH   ;毫秒数R0             1
             DL2: MOV   R1,   #7DH   ;1ms延时值           1
             DL1: NOP                                     1
                  NOP
                  DJNZ  R1,   DL1    ;1ms延时值            2
                  DJNZ  R0,   DL2    ;10ms延时值           2
  想请教下那个周期是怎样定的,小弟是刚学单片机的,对这个就是弄不懂想大家帮个忙,小弟谢了..........帮帮忙啊。

huangqi412 发表于 2007-9-16 18:10 | 显示全部楼层

好久没用汇编,应该约等于2*7d*a*指令周期

内循环为2个指令,次内层每次执行一次内循环,要执行7d次,最外层每次执行一次次内层,要执行a次,  当然,还有本身的MOV   R1,   #7DH这样的语句要时间,不过基本可以忽略.
指令周期是1/6m*12 s
ayb_ice 发表于 2007-9-17 07:43 | 显示全部楼层

太浪费了

 楼主| pandalove1 发表于 2007-9-17 07:58 | 显示全部楼层

2楼的谢了

但是我想晓得的是那后面的周期是怎么规定的,是系统自己规定的还是有什么规律,自己可以推算的。
lypd96 发表于 2007-9-17 10:46 | 显示全部楼层

RE:

这个是用一条指令运行多少时间来延时的,你可以用软件模拟一下就知道了,能看到每条指令要多少时间
ayb_ice 发表于 2007-9-17 11:17 | 显示全部楼层

利用定时器测量是个好方法...

调用前清,开定时器,调用后关闭定时器,读定时器值即可知道延时长短,而且很准...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

23

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部