找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2965|回复: 17
打印 上一主题 下一主题
收起左侧

菜鸟C51单片机延时语句问题求助

  [复制链接]
跳转到指定楼层
楼主
ID:282398 发表于 2018-5-25 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5年前在XP时代用KEIL U2用过这个例程是可以的,但是现在用WIN KEIL U4编译不通过。一直说延时语句有问题,不知道怎么回事,请教!


#include<reg52.h>
#define uint unsigned int
sbit led1=P1^1;



void delay 1s()
{
  uint i,j;
        for(i=500;i>0;i--)
            for(j=110;j>0;j--);
}

void main()
{
   led1=0;
         delay 1s();
         led1=1;
         delay 1s();
         while(1);
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:212177 发表于 2018-5-25 12:06 来自手机 | 只看该作者
for(j=110;j>0;j--);改一下,你应该有一个大括号,里面加分号,你这个写法不规范
回复

使用道具 举报

板凳
ID:130231 发表于 2018-5-25 12:31 | 只看该作者
把代码中全部1S去掉试试看!
回复

使用道具 举报

地板
ID:337962 发表于 2018-5-25 12:31 | 只看该作者
两个for之间没有花括号,所以不通过
回复

使用道具 举报

5#
ID:269211 发表于 2018-5-25 12:56 | 只看该作者
你应该将delay 1s()改成delay1s(),把空格去掉
回复

使用道具 举报

6#
ID:162136 发表于 2018-5-25 13:33 | 只看该作者
delay 1s()这个函数名字有问题,中间不能有空格的吧,要么把空格改为下横线,要么去掉空格。
回复

使用道具 举报

7#
ID:91114 发表于 2018-5-25 14:05 | 只看该作者
延时函数名错误,不能有空格,可以写成void delay_1s(), 不能是void delay 1s()
回复

使用道具 举报

8#
ID:277374 发表于 2018-5-25 14:05 | 只看该作者
// 灯会一直频闪,如果显示灯常亮,是因为延时太短,导致人眼分辨不出闪烁
// 请增加延时时间。


#include<reg52.h>
#define uint unsigned int
sbit led1=P1^1;

void delay_1s()
{
        uint i,j;
        for(i=500;i>0;i--){
                for(j=110;j>0;j--){
                        ;//空
                }
        }
}

void main()
{
        while(1){
                led1=0;
                delay_1s();
                led1=1;
                delay_1s();
        }
}

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

9#
ID:320233 发表于 2018-5-25 14:18 | 只看该作者
delay 1s() 改成delay_1s。
命名不规范
回复

使用道具 举报

10#
ID:331575 发表于 2018-5-25 18:13 来自手机 | 只看该作者
delay去掉空格
回复

使用道具 举报

11#
ID:338276 发表于 2018-5-25 18:34 | 只看该作者
延时函数命名错误 delay1s()或者delay_1s
回复

使用道具 举报

12#
ID:63146 发表于 2018-5-25 19:28 | 只看该作者
写成void delay_1s(), 不能是void delay 1s()就可以了
回复

使用道具 举报

13#
ID:282398 发表于 2018-5-28 09:10 | 只看该作者
chaoself 发表于 2018-5-25 12:56
你应该将delay 1s()改成delay1s(),把空格去掉

去掉就好了,多谢!
回复

使用道具 举报

14#
ID:282398 发表于 2018-5-28 09:11 | 只看该作者
zqy181818 发表于 2018-5-25 12:31
把代码中全部1S去掉试试看!

发现主要是空格的原因,多谢!
回复

使用道具 举报

15#
ID:282398 发表于 2018-5-28 09:12 | 只看该作者
徐狄 发表于 2018-5-25 14:18
delay 1s() 改成delay_1s。
命名不规范

多谢!,还真是的。
回复

使用道具 举报

16#
ID:282398 发表于 2018-5-28 09:12 | 只看该作者

有你们真好啊,多谢!
回复

使用道具 举报

17#
ID:296837 发表于 2018-6-5 14:49 | 只看该作者
void delay1s()        /////不能有空格
{
  uint i,j;
        for(i=500;i>0;i--)
            for(j=110;j>0;j--);
}
回复

使用道具 举报

18#
ID:345677 发表于 2018-6-5 20:08 | 只看该作者
for(i=500;i>0;i--)后加;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表