找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2831|回复: 25
收起左侧

Keil4编译一大堆错误,代码发给别人却能编译,会是什么问题导致的?

  [复制链接]
ID:801917 发表于 2021-7-8 19:58 | 显示全部楼层 |阅读模式
keil4编译七十多个错误
1.png
#include  "stc15f104.h"
sbit k1 = P3^0;               
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit led4=P3^4;
sbit led5=P3^5;
unsigned char ms,flag=0,flag1=0;
void keyscan();
void init()
{
                P0M1 = 0;        P0M0 = 0;        //设置为准双向口
                P1M1 = 0;        P1M0 = 0;        //设置为准双向口
                P2M1 = 0;        P2M0 = 0;        //设置为准双向口
                P3M1 = 0;        P3M0 = 0;        //设置为准双向口
                P4M1 = 0;        P4M0 = 0;        //设置为准双向口
                P5M1 = 0;        P5M0 = 0;        //设置为准双向口
                P6M1 = 0;        P6M0 = 0;        //设置为准双向口
                P7M1 = 0;        P7M0 = 0;        //设置为准双向口        
                AUXR |=  (1<<7);    // Timer0 set as 1T mode
                TMOD = 0X01;                                         //初始化定时器
                TH0        = 0X63;                                                 //10ms计时初值
                TL0= 0Xc0;
                EA = 1;                                                         //开总中断
                ET0 = 1;                                                 //开T0中断
          TR0=0;
}
void main(void)
{        
        init();        
         while(1)
        {
                        keyscan();
           if((flag==1)&&(flag1==0))
                 {
                                if(ms==0)
                                {
                                        led1=0;
                                }
                          if(ms==6)
                                {
                                        led1=1;
                                }
                                if(ms==11)
                                {
                                                led2=0;
                                }
                                if(ms==17) led2=1;
                                if(ms==22) led3=0;
                                if(ms==28) led3=1;
                                if(ms==33) led4=0;
                                if(ms==39)led4=1;
                                if(ms==45)led5=0;
                                if(ms==50) {led5=1;TR0=0;ms=0;flag1=1;flag=0;}
                }
         
        }
                     
}
//定时器0中断服务程序
void T0_ISR(void) interrupt 1                //定时器0中断服务程序
{
                TH0        = 0X63;                                                 //10ms计时初值
                TL0= 0Xc0;
                ms++;
        
}
void keyscan()
{
          if(k1==0)                                                
                {
                                TR0=1;
                          flag=1;
                }
                else
                {
                         TR0=0;ms=0;
                         flag1=0;led1=1;led2=1;led3=1;led4=1;led5=1;flag=0;
                }
               
}


回复

使用道具 举报

ID:950956 发表于 2021-7-8 20:11 | 显示全部楼层
刚开始的芯片没选对 而且你好像没加芯片进去
回复

使用道具 举报

ID:899569 发表于 2021-7-8 20:23 | 显示全部楼层
看第一个错误,不能打开stc15f104.h,应该是你没有把包含这个文件的路径添加进去

评分

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

查看全部评分

回复

使用道具 举报

ID:883242 发表于 2021-7-8 20:27 | 显示全部楼层
你的电脑没有stc15f104.h这个文件,别人的有。
回复

使用道具 举报

ID:57657 发表于 2021-7-8 20:48 | 显示全部楼层
代码没有问题,而是缺少头文件 stc15f104.h 放到相同目录下即可。
回复

使用道具 举报

ID:739610 发表于 2021-7-8 22:05 | 显示全部楼层
根据提示去搜问题  很快就能解决的  缺少 stc15f104.h文件  复制一个到软件目录
回复

使用道具 举报

ID:801917 发表于 2021-7-8 22:28 | 显示全部楼层
jin111 发表于 2021-7-8 20:23
看第一个错误,不能打开stc15f104.h,应该是你没有把包含这个文件的路径添加进去

你好,我是有STC15F104E.H这个头文件的,是软件还有哪没设置吗,我刚开始学习单片机,还望大神指点迷津
回复

使用道具 举报

ID:801917 发表于 2021-7-8 22:31 | 显示全部楼层
安达市;‘6 发表于 2021-7-8 20:11
刚开始的芯片没选对 而且你好像没加芯片进去

你好,是创建工程后那个选芯片吗,我选的的89c51。添加芯片是怎么添加的,可以详细点吗
回复

使用道具 举报

ID:801917 发表于 2021-7-8 23:07 | 显示全部楼层
我电脑里是有STC15F104E.H头文件的,还是编译出错。我要是编译别的,是<reg52.h>头文件的就没有问题,还请大家帮帮忙,不胜感激
webwxgetmsgimg (1).jpg 捕获ccc.PNG
回复

使用道具 举报

ID:88256 发表于 2021-7-9 08:18 | 显示全部楼层
jin111 发表于 2021-7-8 20:23
看第一个错误,不能打开stc15f104.h,应该是你没有把包含这个文件的路径添加进去

第一个的是警告不是错误
回复

使用道具 举报

ID:883242 发表于 2021-7-9 08:20 | 显示全部楼层
517537092 发表于 2021-7-8 23:07
我电脑里是有STC15F104E.H头文件的,还是编译出错。我要是编译别的,是头文件的就没有问题,还请大家帮帮忙 ...

什么眼神啊你!那么大的字母e看不见?
回复

使用道具 举报

ID:748788 发表于 2021-7-9 08:25 | 显示全部楼层
那个头文件是否有问题?
回复

使用道具 举报

ID:88256 发表于 2021-7-9 08:31 | 显示全部楼层
517537092 发表于 2021-7-8 23:07
我电脑里是有STC15F104E.H头文件的,还是编译出错。我要是编译别的,是头文件的就没有问题,还请大家帮帮忙 ...

你这个会不会是单片机的头文件和别人的不一样了?打开STC15F104E.H看看,P0.0等端口是写成P0^0还是P0_0其它方式?还有别人是不是完全没有更改?有时候一点点的小错误随手改了没告诉你
回复

使用道具 举报

ID:743654 发表于 2021-7-9 08:37 | 显示全部楼层
创建工程的时候,芯片选择错误
回复

使用道具 举报

ID:123289 发表于 2021-7-9 08:38 | 显示全部楼层
原因只有一个,你还没有理解KELL平台的编译原理。
回复

使用道具 举报

ID:18307 发表于 2021-7-9 08:39 | 显示全部楼层
你文件是stc15f104e.h,那么就要#include  "stc15f104e.h",你少写1个e.
回复

使用道具 举报

ID:934353 发表于 2021-7-9 09:00 | 显示全部楼层
你把头文件的名字写错了,自然有许多名词未定义
回复

使用道具 举报

ID:81196 发表于 2021-7-9 09:06 | 显示全部楼层
确实头文件,或者是确实库
回复

使用道具 举报

ID:798631 发表于 2021-7-9 09:29 | 显示全部楼层
KEIL工程设置  你需要再熟悉一下
回复

使用道具 举报

ID:170318 发表于 2021-7-9 10:15 | 显示全部楼层
第一句“STC15F104.h”改为“STC15F104E.h”缺少个字母“e”
回复

使用道具 举报

ID:950257 发表于 2021-7-9 10:26 | 显示全部楼层
你没有相应的头文件,头文件里面都是对你这个程序里的一些系统变量的声明定义,你没包含自然出错
回复

使用道具 举报

ID:88256 发表于 2021-7-9 11:58 | 显示全部楼层
Hephaestus 发表于 2021-7-9 08:20
什么眼神啊你!那么大的字母e看不见?

我昨晚回复帖子时就盯着头文件名看,结果愣是没看出漏写了个e
回复

使用道具 举报

ID:328014 发表于 2021-7-9 15:59 | 显示全部楼层
搞定: c样本51hei.7z (14 KB, 下载次数: 6)
回复

使用道具 举报

ID:801917 发表于 2021-7-9 19:49 | 显示全部楼层
webwxgetmsgimg (2).jpg 改成STC15F104E.h还是不行   能不能请各位大神帮个忙,就是帮我把代码改成<REGX51.H>头文件的代码,REGX51.H头文件我能编译
回复

使用道具 举报

ID:328014 发表于 2021-7-9 22:01 | 显示全部楼层
我已经帮你搞定了,可以结贴了,你在23楼下载
51hei.png
回复

使用道具 举报

ID:801917 发表于 2021-7-10 11:57 来自手机 | 显示全部楼层
51hei团团 发表于 2021-7-9 22:01
我已经帮你搞定了,可以结贴了,你在23楼下载

你好,你的加e能编译,我的加不加e都不能编译,我怀疑我的软件有问题。请问你的keil是哪里下载的,能传给我一份吗,谢谢!还有代码中延时以后需要多次变动,不能光靠别人代编译
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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