原创 STC51单片机的延时程序计算

2009-5-31 00:53 6164 7 8 分类: MCU/ 嵌入式
STC51单片机的延时程序计算

 



最近开始疯狂STC。第一个程序让我彻底放弃了 KEIL uv2 。正式用上了KEIL uv3。然后就是发现明明DEBUG出的时间是一秒 跑到板子上明显更短。认定STC和普通51有区别


上网找到 杜洋 大侠的文章


http://hi.baidu.com/doyoungnet/blog/item/73e9e81e6fa7bafc1bd57695.html


他给了个比较实用的方法


但是我觉得不好。精度不够


 我想应该反汇编的方法来确定。那么就需要知道 delay中的每一句命令的执行时间


 


汇报


源程序:


LED EQU P1.0
ORG 0000H
LJMP START
 ORG 30H
 CLR LED
 setb p1.1
START:
 CLR LED
  setb p1.1
 LCALL DELAY
 SETB LED
 clr p1.1
 LCALL DELAY
 LJMP START
  DELAY: MOV R5,#50
   D0: MOV R7,#250
   D1: MOV R6,#250
   D2: DJNZ R6,D2
    DJNZ R7,D1
    DJNZ R5,D0
    RET
END


DELAY子程序:


DELAY: MOV R5,#50
   D0: MOV R7,#250
   D1: MOV R6,#250
   D2: DJNZ R6,D2
    DJNZ R7,D1
    DJNZ R5,D0
    RET


运算过程


查STC手册知道如下命令的执行速度


   MOV R5,#50           ;为普通单片机的6倍速度
   D0: MOV R7,#250  ;为普通单片机的6倍速度
   D1: MOV R6,#250  ;为普通单片机的6倍速度
   D2: DJNZ R6,D2        ;为普通单片机的6倍速度
    DJNZ R7,D1            ;为普通单片机的6倍速度
    DJNZ R5,D0          ;为普通单片机的6倍速度
    RET                        ;为普通单片机的6倍速度


   CLR LED        ;为普通单片机的3倍速度
   SETB P1.1         ;为普通单片机的3倍速度


现在可以手工算。


当然我推进你一种更好的方法 :KEIL UV3的DEBUG一样可以


1.设置晶振频率为实际板子上的频率


2.在 CLR  LED     和      SETB P1.1     每条命令前加2个NOP


(NOP为普通单片机的12倍速度)


3,设置断点 DEBUG时间 调整R5,R6,R7中的初值 令DEBUG的时间为实际目的时间的6倍


(这里涉及一些技巧,初中的不等式知识很有用,慢慢体会吧)


4.删除所有的刻意加上的NOP,得到的就是我们想要的程序源代码


 


发布我写的:


STC的延时程序(5.996310/6=0.999385@18.441828HZ 


  DELAY:
   MOV R5,#71
   D0: MOV R7,#253
   D1: MOV R6,#255
   D2: DJNZ R6,D2
         DJNZ R7,D1
         DJNZ R5,D0



工作情况(TIME=5.996310/6=0.999385s @18.441828HZ晶振)


 


2009.5.31 0:53齐天小圣作品

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

tengjingshu_112148725 2009-5-31 08:51

其实可以在keil中仿真,在延时程序开始和结束各放一个断点,两个断点时间一减就是延时时间。C语言的演示程序都不准确,可以考虑C嵌入汇编
相关推荐阅读
用户1379288 2012-05-10 19:23
TLV1117的使用故障
本人使用tlv1117-3.3芯片做 5-3.3V电源。 空载的时候输出为4.24V 带100ohms负载的时候输出为1.29V 非常奇怪的现象 是否有人遇到过? 什么原因呢?...
用户1379288 2009-08-11 15:28
某激光脉冲计数方案的设计过程
背景是:某脉冲激光系统,需要对脉冲计数,并显示。方案一:直接采集散射的脉冲光驱动计数器工作方案二:激光电源输出带有一个TTL脉冲同步信号,可以对此信号整形驱动计数器实际条件:计数器一个 AC220V电...
用户1379288 2007-11-09 08:26
FPGA/CPLD技术初探
FPGA/CPLD技术初探<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />侯作凤哈尔...
EE直播间
更多
我要评论
1
7
关闭 站长推荐上一条 /3 下一条