當前位置:首頁 » 編程軟體 » 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你再編譯不通過就是方法的問題了

熱點內容
androiddimens 發布:2025-03-26 01:37:00 瀏覽:471
電視出現認證伺服器無響應怎麼辦 發布:2025-03-26 01:33:21 瀏覽:685
linux安裝mysql55 發布:2025-03-26 01:31:10 瀏覽:758
如何遠程登錄家裡的伺服器 發布:2025-03-26 01:10:49 瀏覽:762
河北長城dns伺服器地址 發布:2025-03-26 01:07:05 瀏覽:837
社保的卡銀行密碼是多少 發布:2025-03-26 01:00:28 瀏覽:974
買手機如何看是正品安卓 發布:2025-03-26 00:28:25 瀏覽:363
對象沒有存儲類型 發布:2025-03-26 00:10:03 瀏覽:402
相冊編程代碼 發布:2025-03-25 23:59:07 瀏覽:741
絕地求生安卓登不進去怎麼辦 發布:2025-03-25 23:58:58 瀏覽:863