打印

没有达到延时1ms的效果

[复制链接]
4106|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangzsa|  楼主 | 2021-9-7 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网上的一段延时函数,好像有点问题,函数功能完成毫秒延时,如下:
/*延时函数*/
void delay_ms(unsigned char i) {
    unsigned char a, b;
    for (a = 1; a < i; a++) {
      for (b = 1; b; b++) {
          ;
          }
      }
}
如果i的值是1,第一个循环a<i,为假,跳出循环,函数返回,没有达到延时1ms的效果

使用特权

评论回复
沙发
zhuww| | 2021-9-7 22:32 | 只看该作者

应该改成for(a=0;a<i;a++)
晶振1MHZ

使用特权

评论回复
板凳
chuxh| | 2021-9-7 22:47 | 只看该作者
方法1
改成 a=0
方法2
a <= i

使用特权

评论回复
地板
wangzsa|  楼主 | 2021-9-7 22:50 | 只看该作者
b<121;

使用特权

评论回复
5
supernan| | 2021-9-7 22:52 | 只看该作者
for循环,第一不做判断吧?

使用特权

评论回复
6
heweibig| | 2021-9-7 22:56 | 只看该作者
只有do while 循环才不作首个判断直接杀入循环体的。

使用特权

评论回复
7
jlyuan| | 2021-9-7 23:00 | 只看该作者
你的第二个for是个无限循环吧   同时一个个 a = 0

使用特权

评论回复
8
zwll| | 2021-9-7 23:03 | 只看该作者
貌视又不用改吧,可以循环一次!

使用特权

评论回复
9
chuxh| | 2021-9-7 23:09 | 只看该作者
51的P2.7口接8050驱动蜂鸣器,P2.7接5.1K电阻到电源上拉,P2.7接1K电阻到8050的基极,现在发现P2.7拉低后蜂鸣器还响

使用特权

评论回复
10
chenjunt| | 2021-9-7 23:11 | 只看该作者
P2.7口上有0.7V电压

使用特权

评论回复
11
xxrs| | 2021-9-7 23:14 | 只看该作者
楼主什么问题?

使用特权

评论回复
12
guoyt| | 2021-9-7 23:16 | 只看该作者
以前用同样电路没有问题,换新批号的89C52问题还是一样

使用特权

评论回复
13
spark周| | 2021-9-7 23:28 | 只看该作者
去掉那个1K电阻,或者把1K电阻换成4.7K,试试

使用特权

评论回复
14
liliang9554| | 2021-9-7 23:32 | 只看该作者
先检查硬件,再用示波器看波形

使用特权

评论回复
15
wangzsa|  楼主 | 2021-9-7 23:36 | 只看该作者
将5.1K和1K电阻分别拿掉再量P2.7电压就能发现问题

使用特权

评论回复
16
zhuww| | 2021-9-7 23:41 | 只看该作者
问题已经搞定,原来整理的时候把二片坏的放在一起了,用的时候把坏的当好的用了,谢谢关注

使用特权

评论回复
17
wyjie| | 2021-9-7 23:45 | 只看该作者
问题已经搞定,原来整理的时候把二片坏的放在一起了,用的时候把坏的当好的用了,谢谢关注

使用特权

评论回复
18
zwll| | 2021-9-7 23:49 | 只看该作者
我晕呐

使用特权

评论回复
19
tian111| | 2021-9-7 23:51 | 只看该作者
建议用标准的c语言写

使用特权

评论回复
20
dingy| | 2021-9-7 23:54 | 只看该作者
每个参数清晰明了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

9040

帖子

5

粉丝