當前位置:首頁 » 編程軟體 » keilc51的編譯

keilc51的編譯

發布時間: 2022-08-21 04:06:45

⑴ KEIL C51的編譯連接問題

字面意思是未解析的外部符號,你沒把包含外部變數的c文件放在同一文件夾下,或者說你沒把那個文件添加到工程。我剛測試完,就是這個問題

啊對了,如果還有問題可以網路hi我,我每天都會看。很喜歡單片機設計,願意一起研究

⑵ KEIL C51多文件編譯

首先主函數只能存在於一個文件中,這個文件可以直接取名mian.c這樣比較方便管理。然後按功能分其它文件,分別編寫XX.h和XX.c文件,在XX.h中寫入函數的聲明和全局變數的定義,在XX.c中寫函數的具體內容,並且在XX.c中要include「XX.h」,在mian.c中include所有的.h文件。這樣就可以正常編譯和燒寫了。最終生成的還是一個hex文件

⑶ 關於Keil C51編譯的問題

COMMON.C(1): warning C500: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
好像是說注冊錯誤,要裝破解版;
MAIN.C(9): error C202: 'TRO': undefined identifier第九行錯誤,應是TR0, O與0應區分

⑷ Keil編寫C51程序,編譯問題請教

應該是這個函數uart0_init有函數原型,也就是說能被其他文件中的函數調用,但卻不存在實際的函數體,所以鏈接時鏈接器找不到這個函數對應的代碼段,就報警告了,而你試圖右鍵看這個函數的定義時,就會跳出這個框。

⑸ keil c51編譯時出錯error c202,求教~~

咨詢記錄 · 回答於2021-11-14

⑹ keil c51 問題:程序無法編譯

你那程序也不長啊,直接把程序發上來,發什麼圖片哪?
第二個圖片顯示的,沒有錯誤了,只有一個警告,是因為調用那個延時子程序delay( ) 時,打錯了一個字母,打成dalay 了。
另外提示:保存C程序的文件夾,最好不 要用漢字,而且文件夾的層數不要太多了,你這一共是五層文件夾,有兩層還是漢字,編譯時容易出錯的。

⑺ Keil C51編譯的問題!

你主程序里沒有別的程序代碼了?
單片機在編譯時,首先是進行編譯預處理(頭文件包括指令,宏定義處理,條件編譯,各種偽指令等),然後再進入優化編譯階段,再進行匯編過程,接著是程序鏈接。

你在主程序中定義,unsigned char a[2]={1,2};數組,並分配兩個存儲單元。雖然在語法上是沒有錯,程序也能正確被編譯。但程序在真正進行實質鏈接時,由於你並沒有真正進行功能性的程序指定,編譯時它會生成很多冗餘的匯編代碼,按照你定義的單元。上面生成的匯編,你如果仔細看,很多的條件跳轉語句都是轉到不同的內存單元。如:
DJNZ R7,C:001F //R7寄存器相減為0則轉到001F,否則順序執行。
DJNZ R7,C:004B
DJNZ R7,C:003F
INC DPTR
F2 MOVX @R0,A
INC R0
DJNZ R7,C:004B
而實際,編寫程序,也沒有你以上的那種做法,不可能只分配內存單元,而不做任何其它事情。我想,你這樣做,無非就是想做個實驗罷了。

⑻ KEIL C51的編譯指令#pragma noiv什麼意思

這樣的問題直接查軟體的幫助就可以找到啊。

編譯指令NOIV
默認值:INTVECTOR(0)
描述:NOIV(NOINTVECTOR)編譯指令會抑制生成中斷向量。藉助這個編譯指令,用戶可以採用其它的編程工具產生中斷向量,從而與本軟體聯合使用。

⑼ keil C51程序編譯的問題

如果你的H頭文件包含在每個.C文件中,那就是說你的每個.C文件都定義了sbuf[20],KEIL就會提示你說你的sbuff[20]重復定義。我理解的應該是這個問題吧?

解決辦法,要麼用條件編譯區分sbuff的作用域,就是在哪些.c文件中使用。
要麼在一個.c文件中定義sbuff,在H文件中用外部聲明包含進去,比如:
extern unsigned char data char sbuf[20];這樣在其他的.C文件中,sbuff是引用而不是定義了。

一般都是採用第二種方式,H文件只存放外部聲明。

⑽ keil裡面編譯的c51問題

你注意以下幾個關鍵點:
uint ad_covert() //
{
uint temp1,temp2;

temp1=258;
return (temp1); //返回AD轉換數據 取八位結果
}

這些,都沒有問題,如果正常的話,函數永遠返回的是 常數258,.
但是,如果你的 result 定義成 uchar類型的,那麼,result的結果就永遠都是2.
因為uchar類型的數據,是8位數據,最大的數是 255,所以,對於大於 255的數字,就相當於對256取余數,因為你的函數永遠返回 258,大於 255,所以對256取余數的結果是 2。
這就是為什麼總是 2的原因,如果你的result定義成 uint類型,那麼,結果就永遠是 258.

熱點內容
如何編譯java文件 發布:2025-02-06 12:05:58 瀏覽:234
九九乘法編程 發布:2025-02-06 12:05:05 瀏覽:516
台式機忘記開機密碼怎麼辦 發布:2025-02-06 11:58:01 瀏覽:868
android刷新按鈕 發布:2025-02-06 11:57:17 瀏覽:585
存儲過程有輸入參數和輸出參數 發布:2025-02-06 11:55:32 瀏覽:96
成績評選演算法 發布:2025-02-06 11:42:51 瀏覽:994
資料庫測試數據 發布:2025-02-06 11:31:05 瀏覽:821
球頭軸編程 發布:2025-02-06 11:29:36 瀏覽:280
為什麼安卓系統不能收縮許可權 發布:2025-02-06 11:27:58 瀏覽:730
演算法4視頻 發布:2025-02-06 11:19:20 瀏覽:934