找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机Keil程序一直报错,求指导

[复制链接]
跳转到指定楼层
楼主
ID:986213 发表于 2021-11-30 01:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg51.h>
#define TIME 1200
void main()
{
        unsigned char i,W;
        P1=0xff;
        while(1)
        {
                if(K==0)
                {
                 delay (1200);
                        if(K1==0)
                           { W=0x01;
                        for(i=0;i<8;i++)
                                         {
                                P1=~W;
                                delay(10000);
                                W<<=1;
                                         }
                                 }
                        }
                    else P1=0x00;
         }
}
sbit   K1=P0^0;
sbit   K2=P0^1;
sbit   K3=P0^2;
sbit   K4=P0^3;
if(K1==0)
{
         delay(TIME);
        if 1:P1=0x00;
   }
else if(K2==0)
{
        delay(TIME);
        if 2:P1==0x55;
  }
else if(K3==0)
{
        delay(TIME);
        if 3:P1==0x0f;
}
else if(K4==0)
{        
  delay(TIME);
  if 4:P1==0xf0;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:70069 发表于 2021-11-30 07:26 | 只看该作者
if(K1==0)
{
         delay(TIME);
        if 1:P1=0x00;
   }
类似这样的地方改为
if(k0==0)
{
     delay(TIME);
      if(k0==0)
                      P1=0x00;

}
回复

使用道具 举报

板凳
ID:70069 发表于 2021-11-30 07:36 | 只看该作者
if(K1==0)
{
         delay(TIME);
        if 1:P1=0x00;这里不对,应为if(k1==0) P1=0x00。其他类似的地方也一样
   }
回复

使用道具 举报

地板
ID:326430 发表于 2021-11-30 08:17 | 只看该作者
你发这,括号都对不上,再组织组织吧。。。
回复

使用道具 举报

5#
ID:883242 发表于 2021-11-30 08:23 | 只看该作者
main函数外面全都是野代码。

用单片机之前先学c语言吧,你写的这些真不堪入目。
回复

使用道具 举报

6#
ID:743654 发表于 2021-11-30 08:42 | 只看该作者
if 语句不能这么用,先把C基础打好
回复

使用道具 举报

7#
ID:986228 发表于 2021-11-30 09:01 | 只看该作者
本帖最后由 ng945 于 2021-11-30 10:47 编辑

修改了一下,试试看
#include <reg51.h>
#define TIME 1200
sbit   K1=P0^0;
sbit   K2=P0^1;
sbit   K3=P0^2;
sbit   K4=P0^3;

void main()
{
        unsigned char i,W;
        P1=0xff;
        while(1)
        {
//                if(K==0)
//                {
                         delay (1200);
                         /*
                         if(K1==0)
                                {
                                        W=0x01;
                                        for(i=0;i<8;i++)
                                                {
                                                        P1=~W;
                                                        delay(10000);
                                                        W<<=1;
                                                }
                                }
                        else P1=0x00;
                        */
                        if(K1==0)//if 1:P1=0x00;
                        {
                                delay(TIME);
                                P1=0x00;
                        }
                        else if(K2==0)//if 2:P1==0x55;
                        {
                                delay(TIME);
                                P1=0x55;
                        }
                        else if(K3==0)//if 3:P1==0x0f;
                        {
                                delay(TIME);
                                P1=0x0f;
                        }
                        else if(K4==0)//if 4:P1==0xf0;
                        {        
                                delay(TIME);
                                P1=0xf0;
                        }
//                }
        }
}
回复

使用道具 举报

8#
ID:632432 发表于 2021-11-30 09:44 | 只看该作者
if 1:P1=0x00不能这样用,这也不是c语言的语法啊
回复

使用道具 举报

9#
ID:139866 发表于 2021-11-30 13:57 | 只看该作者
写出来的不能算程序,写的能用才算程序,写的好用才是好程序
回复

使用道具 举报

10#
ID:106977 发表于 2021-12-1 13:20 | 只看该作者
对于初学者,首先学习语法基础。开始写代码,写两行代码就编译一下。一旦编译通不过,问题相对容易查找。即使对于高手,有时候大段代码某一行将分号或其它符号无意弄掉了,看了出错信息你都不知道错在哪里!
回复

使用道具 举报

11#
ID:987484 发表于 2021-12-3 10:41 | 只看该作者
c语言不能这么用。都是语法错误。先把基础打好再写程序
回复

使用道具 举报

12#
ID:908826 发表于 2021-12-3 17:26 | 只看该作者
语法错误,建议学单片机的同时学c语言的基本语法,这样你最起码能保证,语法不会错的太离谱
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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