看似一样的延时时间,为什么等闪烁的频率不一样??

lyj646894797 2010-07-31 09:33:36
看似一样的延时时间,为什么等闪烁的频率不一样?
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void delay_1ms(uin t)
{
uchar i,j;
for(t;t>0;t--)
{
for(i=34;i>0;i--)
for(j=13;j>0;j--);
}
}
void main()
{
while(1)
{
P1=0xff;
delay_1ms(200);
delay_1ms(180);
P1=0x00;
delay_1ms(200);
delay_1ms(180);
}
}
想了很久了,看上去P1开通和关断时的时间是一样的!!但实际却是不一样的,P1接一led。灯的闪烁频率不是固定的,而是一下快一下慢的,这是为什么啊???请大家给予指点,非常感谢!!!
...全文
198 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyj646894797 2010-08-16
  • 打赏
  • 举报
回复
谢谢大家的回复!!!编程时疏忽了,delay()函数有点小问题。解决了!!!
shenshunxiao 2010-08-09
  • 打赏
  • 举报
回复
楼主用的是什么单片机啊?有没有看门狗,记得关掉
用户 昵称 2010-08-09
  • 打赏
  • 举报
回复
光看程序没问题。
houyu123 2010-08-08
  • 打赏
  • 举报
回复
同意三楼的说法!!
青草根儿 2010-08-08
  • 打赏
  • 举报
回复
void delay_1ms(uin t)
应该写成这样吧
void delay_1ms(uint t)

改过之后,运行很正常,没楼主说的情况
yuanhaididai 2010-08-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 home_smart 的回复:]
你这程序编译的时候能通过啊??
void delay_1ms(uin t)
应该写成这样吧
void delay_1ms(uint t)
[/Quote]
是啊,这能通过阿?
myeven 2010-08-06
  • 打赏
  • 举报
回复
用keil测了一下,时间一样。0.18s 左右 你检查一下硬件
shagua0916 2010-08-06
  • 打赏
  • 举报
回复
被中断打断后就不一样了
schlafenhamster 2010-08-01
  • 打赏
  • 举报
回复
看看汇编lst文件!
home_smart 2010-08-01
  • 打赏
  • 举报
回复
你这程序编译的时候能通过啊??
void delay_1ms(uin t)
应该写成这样吧
void delay_1ms(uint t)
zyzhang365 2010-07-31
  • 打赏
  • 举报
回复
看看是否在不断复位, 可以试着一直点亮led,然后看有没有熄灭的现象。
mengzhiyi 2010-07-31
  • 打赏
  • 举报
回复
眼睛看的不准,最好用示波器量。
IT铁哥 2010-07-31
  • 打赏
  • 举报
回复
这快慢相差多大,

27,515

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧