導航:首頁 > 源碼編譯 > keil條件編譯不能用

keil條件編譯不能用

發布時間:2022-03-15 14:23:15

『壹』 為什麼在 keil 中條件編譯不能用

連項目選項都是灰色的,很明顯你的工具鏈是不能正常使用的。 在菜單欄的File >> License Management中確認一下你到底有沒有成功注冊。

『貳』 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不能編譯

首先新建一個項目文件,後綴名為.uV2,然後再新建一個文本文檔,再上面寫好程序後保存為後綴名為.c的文件(注意文件名最後用英文),然後再右擊窗口左邊的source group1,再選擇add file to『source group 』,最後,按快捷鍵F7就可以了

『肆』 keil軟體不能編譯

你下載的keil安裝包里有license嗎,沒有的話你要重下一個再安裝,有的時候360殺毒軟體會誤認為license為病毒,安裝時把殺毒軟體關掉就ok了

『伍』 keil5 load 不能用,編譯完程序,load一直顯示灰色什麼情況

把debug設置成軟體模擬了,改為jlink或你使用的工具就好了。

拓展:

1、編譯(compilation , compile) 1.利用編譯程序從源語言編寫的源程序產生目標程序的過程。 2.用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。 編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。

2、編譯語言是一種以編譯器來實現的編程語言。它不像直譯語言一樣,由解釋器將代碼一句一句運行,而是以編譯器,先將代碼編譯為機器碼,再加以運行。理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區別,僅與程序的應用有關。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

『陸』 Keil無法編譯

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

#include
#include
#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打開現有工程時出現了這個東西,然後工程可以打開,但是編譯不了,怎麼解決

你是不是在安裝KEIL的時候沒有安裝到它的默認目錄啊,建議你裝KEIL的時候就使用默認的C:\Keil。KEIL就這個脾氣,不裝老地方,指不定就會冒出些莫名其妙的問題。

『捌』 keil無法編譯怎麼回事

1.代碼有錯誤的編譯不過
2.試用版代碼限制,超過了不能編譯

『玖』 keil uvision5 為什麼不能編譯

你估計是安裝錯了,安裝的時候有提示:安裝51或是arm,你估計是選擇了arm;
還有一種可能就是,你沒有配置硬體的型號,在project_options for target..這個我估計你懂

『拾』 為什麼keil編譯出來程序不能運行

1、確定」之前的程序「是能在某個keil環境中正確編譯的!
2、查看一下編譯錯誤碼,很多情況下是缺少文件。
注意,一般情況下,不要指望在vc中編寫的程序能在keil中編譯。

閱讀全文

與keil條件編譯不能用相關的資料

熱點內容
剪力牆柱圖紙沒加密監理要求加密 瀏覽:57
車子綠本解壓後多久可拿到 瀏覽:718
word怎麼換成pdf格式 瀏覽:483
量學買賣點選股公式源碼 瀏覽:791
蘋果咋給應用加密 瀏覽:151
棒棒解壓法 瀏覽:838
機器人演算法迷宮 瀏覽:631
和面一樣的感覺是不是看著很解壓 瀏覽:200
伺服器優化怎麼寫 瀏覽:99
緩解壓力的音樂輕柔 瀏覽:930
虐殺原形壓縮包有多大 瀏覽:966
讓php執行exe文件 瀏覽:299
入門程序員考證 瀏覽:968
移動遠程伺服器什麼意思 瀏覽:337
現在有什麼靠譜的脫單app 瀏覽:880
遼寧網頁直播系統源碼 瀏覽:868
ajax獲取網頁源碼 瀏覽:383
單片機樹莓派接線圖 瀏覽:814
php安裝suhosin 瀏覽:689
伺服器地址443無法連接 瀏覽:736