AI-32位8051 发表于 2023-2-8 13:25:41

STC89c延时是多少,从网友提供的线索能给出判断吗?

本帖最后由 STCAI-32位8051 于 2023-2-8 13:32 编辑

帮网友提问:想知道在这89c延时是多少吗?现在读出来是乱的数字应该是时序不对




代码给的都是1 感觉和网友之前改的别的I2C不太一样




AI-32位8051 发表于 2023-2-8 13:31:00

STC89c延时是多少,从网友提供的线索能给出判断吗?





用89单片机,刚才那个延时周期8毫秒,这么慢的吗?

乘风飞扬 发表于 2023-2-8 13:31:19

最简单的方法是在主循环里调用延时函数并进行IO口翻转,通过测量IO口翻转时间就知道延时多少时间。例如:
while(1)
{
    P10 = 0;
    skh_delay(1);
    P10 = 1;
    skh_delay(1);
}

梁工 发表于 2023-2-8 14:06:35

除了IO翻转示波器看时间,还可以看反汇编,数指令时间。

神农鼎 发表于 2023-2-8 16:58:12

帮问的弱了,要说 STC89C52RC,工作在 24MHz, 想延时10mS, 请给个示例程序
这时,专家来了: 你不知道 STC51的基本延时程序,STC最新 STC-ISP V6.91J 软件会帮你自动产生

这就是 授人以鱼不如授人以渔 的专业回答,不是帮一次,是帮了一辈子

TheHellc 发表于 2023-2-9 10:47:17

你可以试试Debug,里面有时间可以看的,那个很直观,同时弄好debug的话,之后有很多的问题都可以直接用debug调试找到问题然后解决。

梁工 发表于 2023-2-9 15:37:54

软件延时我都是由编译器帮我确定:
89/90系列的:

#define MAIN_Fosc        24000000UL        //定义主时钟, 延时会自动适应.

voiddelay_ms(unsigned int ms)
{
   unsigned int i;
       do
       {
                i = MAIN_Fosc / 96000L;                //12T
        //        i = MAIN_Fosc / 48000L;                //6T
                while(--i)        ;
   }while(--ms);
}

405616736 发表于 2023-3-2 23:30:20

梁工 发表于 2023-2-9 15:37
软件延时我都是由编译器帮我确定:
89/90系列的:



/*********************************************
                程序名称        :延时函数
*********************************************/

//#define MAIN_Fosc 48000000L        //定义主时钟
//#define MAIN_Fosc 44236800L        //定义主时钟
//#define MAIN_Fosc 40000000L        //定义主时钟
//#define MAIN_Fosc 36864000L        //定义主时钟
//#define MAIN_Fosc 35000000L        //定义主时钟
//#define MAIN_Fosc 33177600L        //定义主时钟
//#define MAIN_Fosc 30000000L        //定义主时钟
//#define MAIN_Fosc 27000000L        //定义主时钟
//#define MAIN_Fosc 24000000L        //定义主时钟
//#define MAIN_Fosc 22118400L        //定义主时钟
//#define MAIN_Fosc 20000000L        //定义主时钟
//#define MAIN_Fosc 18432000L        //定义主时钟
#define MAIN_Fosc 12000000L        //定义主时钟
//#define MAIN_Fosc 11059200L        //定义主时钟
//#define MAIN_Fosc 6000000L        //定义主时钟
//#define MAIN_Fosc 5529600L        //定义主时钟

void Delay(unsigned int ms)                //注:ms_max=65536
        {
                unsigned int i;
                do
                        {
//                                i=MAIN_Fosc/96000L;                //STC89/90_12T
//                                i=MAIN_Fosc/48000L;                //STC89/90_6T
//                                i=MAIN_Fosc/14000;                //STC12
                                i=MAIN_Fosc/13000;                //STC15
//                                i=MAIN_Fosc/10000;                //STC8
//                                i=MAIN_Fosc/6030;                        //STC32
                                while(--i)        ;
                                }
                        while(--ms);
        }

STC12、15、8、32都有库函数,一直就差89的延时函数。现在终于集齐了:lol
页: [1]
查看完整版本: STC89c延时是多少,从网友提供的线索能给出判断吗?