
求助,关于c51单片机的问题,高手请进!!!
#include<reg52.h>voiddelay(unsignedinttime){unsignedintt;while(time--){t=1500;while(t...
#include <reg52.h>
void delay(unsigned int time)
{ unsigned int t;
while(time--)
{t=1500;
while(t--);}}
sbit led1=P0^1;
void main()
{ while(1)
{led1=0;
delay(1000);
led1=1;
delay(1000); }
} 关于这个延时程序,我是照书上抄的,延时应该为一秒,但是调试时,我在灯灭的地方led1=1;
设置了一个断点,全速运行,发现时间居然为8秒多,我用的学习板晶振为24,已经调好了,程序烧进去灯闪烁好像也是一秒,可是调试时间怎么不对呢 展开
void delay(unsigned int time)
{ unsigned int t;
while(time--)
{t=1500;
while(t--);}}
sbit led1=P0^1;
void main()
{ while(1)
{led1=0;
delay(1000);
led1=1;
delay(1000); }
} 关于这个延时程序,我是照书上抄的,延时应该为一秒,但是调试时,我在灯灭的地方led1=1;
设置了一个断点,全速运行,发现时间居然为8秒多,我用的学习板晶振为24,已经调好了,程序烧进去灯闪烁好像也是一秒,可是调试时间怎么不对呢 展开
4个回答
展开全部
调试时需要设置调试晶振频率,运行速度和晶振频率有直接关系,既然学习板晶振为24M,说明他的延时是按照24M晶振计算得,如果用的是KEIL设置下就可以了
追问
我用的是keil,已经设置好了是24,但是还是那样的

2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设...
点击进入详情页
本回答由上海实邦电子科技提供
展开全部
循环延时误差大。最好用定时器中断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
电脑速度慢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
模拟的时间不准的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询