weiz1989 发表于 2010-9-24 13:29:57

STC 1T单片机延时函数求解

做STC12的1T单片机 想找个1MS和1US的延时函数 会写的朋友帮个忙?
晶振用的是22.1184M的

getter88 发表于 2010-9-24 13:34:46

到网上下一个单片机小精灵,很好用,很多功能。

weiz1989 发表于 2010-9-24 13:37:52

回复【1楼】getter88
-----------------------------------------------------------------------

那个延时 太麻烦了 延时好了 不能变动

snail0204 发表于 2010-9-24 14:17:43

用示波器测

catzl7 发表于 2010-9-24 14:19:01

定时器..

XMLK 发表于 2010-9-24 16:15:32

用汇编写延时函数。。。带参数的那种,比较灵活点

相差十多个T的样子

flyhouse 发表于 2010-9-24 16:16:41

示波器卡一下时间,要多少就修正多少。。。。

jsjjccc 发表于 2010-9-24 17:49:36

void delay_ms(unsigned int n) //22.1184MHz,1T
{
    unsigned char a,b,c;

    while (n != 0)
    {
      for (c=2;c>0;c--)
            for (b=22;b>0;b--)
                for (a=124;a>0;a--);
      n--;
    }

}


我这个就是有点不准。。。。参数1时就是delay_ms(1);实际是1.000886毫秒
参数5时delay_ms(5);实际是5.000271毫秒
参数10时delay_ms(10);实际是9.999503毫秒
参数100时delay_ms(100);实际是99.985668毫秒

Pioneermcu 发表于 2010-9-24 18:23:21

不论是1us,还是1ms,我都是只信示波器,从来没有在讨论这个上下过功夫!多则减,少则加,

因为到最后你算好后,你还得用示波器它!

XMLK 发表于 2010-9-24 20:09:00

大伙都在哪种场合里用呀?

要100%准么?

晶振如果不刚好,就是算也不能可100%准呢?

cuikai12345 发表于 2010-9-24 23:14:10

mark

zhuyi25762 发表于 2010-9-24 23:20:32

在这问的时候,用示波器早调好了

这是我常用的STC 12T下 11.0592M,,示波器看过

void Delay_ms(unsigned int n)
{
        unsigned int i;
        while(n--)
        {
                i = 600;//i=300,实测500us,i=600实测1ms
                while(i--);
        }
}


/*******************************************************************************
* 名称:Delay(uint temp)
* 功能:us 级短暂延时
* 说明:实测1.25us
*******************************************************************************/
void Delay(uint temp)
{
       uchar i;
       for(i=temp;i>0;i--) NOP();
}

hsztc 发表于 2010-9-25 04:50:30

STC的不能防真吗?

wormchen 发表于 2010-9-25 09:32:16

做个记号!

adcr 发表于 2010-9-25 11:40:14

如果你没有示波器就用proteus里的示波器,即省事又便宜。嘿嘿

XMLK 发表于 2010-9-25 12:38:27

【14楼】 adcr 老稻
如果你没有示波器就用proteus里的示波器,即省事又便宜。嘿嘿
---------------------------------------

应该不行,指令周期不一样,虽说指令系统兼容

whjwxp110 发表于 2010-9-25 14:46:09

可以采用软件进行模拟

hpdell 发表于 2010-9-27 17:27:12

就用keil进行仿真时间,得出来的结果在处以8.7(因为据专家说,STC1T比12T的平均速度快8.7呗) , 基本上就是STC 1T单片机的延时时间了,我一般都这么用,也没有什么问题。

FREEXP 发表于 2010-9-27 17:45:21

这个要求本身不合理,改设计最好

jrcsh 发表于 2010-9-27 18:56:32

回复【3楼】snail0204 瓜牛
用示波器测
-----------------------------------------------------------------------



STC 的部分指令快~~~ 3~8倍没示波器看 会行脱裤

qilujie 发表于 2010-9-27 22:04:21

收藏

XMLK 发表于 2010-9-27 23:16:19

回复【19楼】jrcsh 邪恶的小会会
回复【3楼】snail0204 瓜牛
用示波器测
-----------------------------------------------------------------------
stc 的部分指令快~~~ 3~8倍没示波器看 会行脱裤
-----------------------------------------------------------------------

如果老妖同志的手册正确的话,用汇编还是可以计算的。。。

liangws201 发表于 2012-5-22 16:33:25

不错,这个收藏下

ym7205 发表于 2012-6-5 10:58:36

谢谢分享,顶一下

hamipeter 发表于 2012-6-5 12:08:33

建议用定时器,准确而且移植也很方便!
页: [1]
查看完整版本: STC 1T单片机延时函数求解