STC89c延时是多少,从网友提供的线索能给出判断吗?
本帖最后由 STCAI-32位8051 于 2023-2-8 13:32 编辑帮网友提问:想知道在这89c延时是多少吗?现在读出来是乱的数字应该是时序不对
代码给的都是1 感觉和网友之前改的别的I2C不太一样
STC89c延时是多少,从网友提供的线索能给出判断吗?
用89单片机,刚才那个延时周期8毫秒,这么慢的吗?
最简单的方法是在主循环里调用延时函数并进行IO口翻转,通过测量IO口翻转时间就知道延时多少时间。例如:
while(1)
{
P10 = 0;
skh_delay(1);
P10 = 1;
skh_delay(1);
} 除了IO翻转示波器看时间,还可以看反汇编,数指令时间。 帮问的弱了,要说 STC89C52RC,工作在 24MHz, 想延时10mS, 请给个示例程序
这时,专家来了: 你不知道 STC51的基本延时程序,STC最新 STC-ISP V6.91J 软件会帮你自动产生
这就是 授人以鱼不如授人以渔 的专业回答,不是帮一次,是帮了一辈子
你可以试试Debug,里面有时间可以看的,那个很直观,同时弄好debug的话,之后有很多的问题都可以直接用debug调试找到问题然后解决。 软件延时我都是由编译器帮我确定:
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);
}
梁工 发表于 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]