当前位置:首页 » 编程软件 » keil自定义函数编译不了

keil自定义函数编译不了

发布时间: 2022-09-08 20:13:46

㈠ 用keil编程,没错误,没警告,就是编译不了,这是什么情况啊怎么解决

有两个警告呀,先把两个警告搞掉再想其它的,不要把问题复杂化,一般情况下很难搞出一个“系统工程师”没有想到的问题出来。我平时编程时每一次都要让它0错误0警告才进行下一步编写,有的时候我知道只是定义了一个变量没有使用它,我也先把它注释掉,用的时候再把它放出来。不过你的编译系统不是买的这也是事实。

㈡ 为什么我的keil不能编译

首先新建一个项目文件,后缀名为.uV2,然后再新建一个文本文档,再上面写好程序后保存为后缀名为.c的文件(注意文件名最后用英文),然后再右击窗口左边的source group1,再选择add file to‘source group ’,最后,按快捷键F7就可以了

㈢ KEIL总是编译不成可执行文件不成功求指导!

晕,你的程序是汇编语言,应该把源文件的扩展名改为xxx.asm,这样KEIL会调用汇编器,如果你的扩展名是.c ,KEIL就调用C编译器。
另外,如果是纯汇编程序,那么项目中不需要startup.a51这个文件。

㈣ KEIL不能编译的程序

帮你改了下! 自己在改改吧!

#include <AT89X52.H>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define BLKN 2 /*列存贮器数8*8行数*/
sbit E1 =P3^4; //E1为0开列(col)输出显示允许控制信号端口
sbit ST_CP =P3^2; //ST_CP 上升沿--移位寄存器的数据进入数据存储寄存器 输出锁存器的时钟信号端口
sbit MR =P3^3;//MR 为0将移位寄存器的数据清0
sbit key1 =P0^0;
sbit key2 =P0^1;
sbit soundring=P0^7;
uchar songndring=0;//add by mrli
uchar Soundring=0;//add by mrli

uchar t1;
uint key,spd;
void delay(unsigned int);
uchar data dispram[32];
uchar code table[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
uchar code donghua[][1]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F };//change by mrli

void delay(uint dt);

void main( )
{
uchar num,cur,tmp,nums=sizeof(donghua)/32;
SCON = 0x01;
TMOD = 0x01;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0 = 1;
TR1=1;
EA=1;
ET0=1;
ET1=1;
IT0=1;
P1= 0xc0;
key=1;
songndring=1;
P2=table[1];

while (1)
{
delay(2000);
spd=100-key*10;
for(tmp=0;tmp<1;tmp++)
{
for(num=0;num<nums;num++)
{
for(cur=0;cur<32;cur++) //显示
{
dispram[cur]=donghua[num][cur];
delay(spd);
}
}
}
}
}

void delay(uint dt)
{
uchar it,jt;
for(it=dt;it>0;it--)
for(jt=110;jt>0;jt--);
}

void leddisplay(void) interrupt 1 using 1
{
static uchar col=0;
TH0 = 0xf8;
TL0 = 0x30;
MR=0; //清理行输出,将移位寄存器的数据清0
MR=1;
SBUF = dispram[col*2]; //串行发送显示数据
while(TI==0); //等待发送完毕
T1 = 0;
SBUF = dispram[col*2+1]; //送显示数据
while(TI==0); //等待发送完毕
T1 = 0;
E1 = 1; //消隐
P1 = 0x00; //行号端口清0
P1 = 0x00; //行号端口清0
E1 = 0; //打开显示
ST_CP =1; //显示数据打入输出锁存器
ST_CP = 0; //锁存显示数据
P1 = col; //写入行号
col=(col+1)%16;

}

void keys() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
t1++;
if(t1==10)
{
t1=0;
if(key1==0)
{
delay(2);
if(key1==0)
key--;
if(key<2)
key=1;
while(!key1);
delay(2);
while(!key1);
soundring=0;
delay(450);
};
if(key2==0)
{
delay(2);
if(key2==0)
key++;
if(key>8)
key=9;
while(!key2);
delay(2);
while(!key2);
soundring=0;
delay(450);
};
Soundring=1;
P2=table[key];

}
}

㈤ keil不能编译了,提示Target not created

我是一名多年的单片机工程师,下面的讲解你可以参考一下。
1 Target not created 说明程序语句或者语法有错。

2 最好的办法是先找哪里出错,这样才能修改,如果在别的版本软件上没有错,新装的软件有错,那就查查头文件有没有丢失。因为只有头文件才有机会和系统安装有关。

3 如果你想学习更多关于单片机c语言的知识,网络一下“17个实验学会单片机”,就可以看到教程了,感兴趣的朋友可以找一下。

㈥ keil怎么编译不了这个c语言

你的数据data太长了,对于普通版本来说,
Program Size: data=124.0 xdata=0 code=7133
中的data不能超出120,在110以下最好,你的现在到了124超出长度了,所以编译无法通过,建议将你程序中的一些数组了什么的长度减小一些就没问题了。
建议想要程序没问题,最好不要留有Warning,有时候的Warning也会导致程序出错。。。
祝好运。。。

㈦ keil无法编译怎么回事

你没有激活这个软件«keil»
,未注册的只能编译2k以内的程序

㈧ keil中延时函数一直编译不过去,这是什么原因!

重复定义了,void Delay(unsigned int num)// 延时函数 至少写了2遍

㈨ 为何keil 无法编译

#include<reg52.h> // 分号去掉 下同
#include<intrins.h>
#define uint unsigned int //uint需要用宏定义
void delay(uint z);
void main()
{
//temp未定义
unsigned char temp;
temp=0xfe;//十进制使用0x表示数字0非字母o
P1=temp;
while(1)
{
delay(1000);
temp=_crol_(temp,1); //此处函数是_crol_非_corl_
P1=temp;
}
}
void delay(uint z) //声明要和前面的统一
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

编译后0error0warning你再编译不通过就是方法的问题了

热点内容
河南电脑服务器托管云主机 发布:2025-03-24 07:10:36 浏览:470
收件服务器应该是什么 发布:2025-03-24 06:52:37 浏览:873
小黄狗编程 发布:2025-03-24 06:43:02 浏览:639
华为手机手画密码如何设置 发布:2025-03-24 06:40:20 浏览:658
读java源码 发布:2025-03-24 06:29:06 浏览:35
欧皇源码 发布:2025-03-24 06:26:18 浏览:858
为什么id密码在异地登录 发布:2025-03-24 06:17:13 浏览:46
google地图连接服务器地址 发布:2025-03-24 06:12:43 浏览:359
安卓怎么样恢复手机删除的视频 发布:2025-03-24 06:07:03 浏览:133
格式化手机usb存储器 发布:2025-03-24 05:52:33 浏览:238