标题: 10ms延迟,我仿真的咋不对啊? [打印本页]

作者: sz15207554653    时间: 2016-9-9 15:45
标题: 10ms延迟,我仿真的咋不对啊?
我仿真怎么不对啊?仿真时间不对,求大神指教!谢谢!

QQ图片20160909154255.png (7.12 KB, 下载次数: 150)

QQ图片20160909154255.png

作者: STC89C51    时间: 2016-9-9 19:02
你用的晶振频率是多少兆的?如果是12M的话,一个delay(1)=4.94ms。
作者: sz15207554653    时间: 2016-9-10 08:35
STC89C51 发表于 2016-9-9 19:02
你用的晶振频率是多少兆的?如果是12M的话,一个delay(1)=4.94ms。

是12M的,24M应该延迟时间就是对吧?
作者: sz15207554653    时间: 2016-9-10 08:42
STC89C51 发表于 2016-9-9 19:02
你用的晶振频率是多少兆的?如果是12M的话,一个delay(1)=4.94ms。

不对,频率与时间成反比
作者: sz15207554653    时间: 2016-9-10 08:52
STC89C51 发表于 2016-9-9 19:02
你用的晶振频率是多少兆的?如果是12M的话,一个delay(1)=4.94ms。

C:\Users\sz\Desktop\QQ图片20160910084425不管用12M和24M仿真时间都不对,是不是仿真点没设定好啊?

QQ图片20160910084425.png (15.67 KB, 下载次数: 152)

开始计时时间

开始计时时间

QQ图片20160910084459.png (15.56 KB, 下载次数: 156)

结束计时时间

结束计时时间

作者: jubaolun    时间: 2016-9-10 08:55
void Delay_ms(unsigned int nms)
{
       unsigned char i,j;
      for(i=nms;i>0;i--)
           for(j=115;j>0;j--);
}
我一般用这个,如果要精确的;用定时器。
作者: luoluoluo136    时间: 2016-9-10 10:56
sz15207554653 发表于 2016-9-10 08:52
不管用12M和24M仿真时间都不对,是不是仿真点没设定好啊?

你断点设置问题吧?
作者: STC89C51    时间: 2016-9-10 11:05
sz15207554653 发表于 2016-9-10 08:52
不管用12M和24M仿真时间都不对,是不是仿真点没设定好啊?

我用楼主的延时程序,在我的keil上仿真也不对!
作者: STC89C51    时间: 2016-9-10 11:13
sz15207554653 发表于 2016-9-10 08:52
不管用12M和24M仿真时间都不对,是不是仿真点没设定好啊?

楼主不妨用proteus仿真试试,或者直接用硬件试试。
作者: STC89C51    时间: 2016-9-10 11:37
sz15207554653 发表于 2016-9-10 08:52
不管用12M和24M仿真时间都不对,是不是仿真点没设定好啊?

我用proteus仿真是没有问题的
作者: luoluoluo136    时间: 2016-9-10 12:02

void main()
{
        unsigned char a ,b,c;

        while(1)
        {
                for(c=1; c>0; c--)                                        //第一个断点设置在这里
                {
                        for(b=38; b>0; b--)
                        {
                                for(a=130; a>0; a--);
                        }
                }                                                                        //第二个断点设置在这里
                a=0;
        }
}

keil仿真正常的,是10ms没错。你要点魔术棒-target 设置晶振频率
作者: sz15207554653    时间: 2016-9-10 20:01
luoluoluo136 发表于 2016-9-10 12:02
void main()
{
        unsigned char a ,b,c;

谢谢哒,是断点设计问题!
作者: sz15207554653    时间: 2016-9-10 20:01
jubaolun 发表于 2016-9-10 08:55
void Delay_ms(unsigned int nms)
{
       unsigned char i,j;

恩,谢谢!
作者: sz15207554653    时间: 2016-9-10 20:02
STC89C51 发表于 2016-9-10 11:37
我用proteus仿真是没有问题的

谢谢,没问题,断点的问题




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1