用keil如何把c語言程式生成hex檔案,求步驟

時間 2022-03-17 06:25:36

1樓:匿名使用者

以個例子給你參考,有兩個檔案,一是s.a51, 另乙個是 m.c都加到keill的工程中編譯。彙編中有兩個函式,注意c的引數是如何傳遞給彙編的。

s.a51

$nomod51

name sentbyteup

?pr?_sentbyteup?sentbyteup segment code

?dt?_sentbyteup?sentbyteup segment data overlayable

public _sentbyteup

rseg ?dt?_sentbyteup?sentbyteup

?_sentbyteup?byte:

px?040: ds 1

px?041: ds 1

rseg ?pr?_sentbyteup?sentbyteup

_sentbyteup:

using 0

mov a,r7

lopu: rrc a

clr scku

mov datu,c

setb scku

djnz r5,lopu

ret?pr?_sentbytedn?sentbytedn segment code

?dt?_sentbytedn?sentbytedn segment data overlayable

public _sentbytedn

rseg ?dt?_sentbytedn?sentbytedn

?_sentbytedn?byte:

px?042: ds 1

px?043: ds 1

rseg ?pr?_sentbytedn?sentbytedn

_sentbytedn:

using 0

mov a,r7

lopd: rrc a

clr sckd

mov datd,c

setb sckd

djnz r5,lopd

retendm.c

#include

extern void sentbyteup(uchar c,uchar b); //申明使用外部函式

extern void sentbytedn(uchar c,uchar b); //申明使用外部函式

void main(void)

[email protected] qq505308008

另外,團idc網上有許多產品**,便宜有口碑

2樓:匿名使用者

project——option for target『——output——creat hex打上勾就ok了

3樓:匿名使用者

在乙個工程中,按圖操作

然後選中  output ,  在下面的creat hex打上勾就行了。

4樓:手機使用者

的確是會報告code大小,沒報告的話應該是你編譯器有問題,重新裝一遍或者換個編譯器試試,祝好運

keil 裡面怎麼把多個c程式生成乙個.hex檔案

5樓:匿名使用者

多個c檔案, 但這多個c檔案中只能有乙個main函式。 你就在有main函式的檔案裡,用extern來引導別的c檔案裡的函式就可以了

比如說: main.c

#include

extern delay();

void main()

}lcd1602.c

#include

void delay()

6樓:匿名使用者

把所有的.c 檔案新增到乙個project下,然後rebuild就ok了

7樓:隱文玉王釵

乙個工程裡面所有c語言只能有乙個main,所以不能生成多個hex檔案。不過可以生成多個obj檔案。

keil怎樣生成hex檔案和相關設定

8樓:邛陽鈕雨竹

先開啟keil軟體,點選「project」選單點選「new

project」新建乙個專案。如果不新建專案是沒法生成hex檔案的在接下來的對話方塊中,選乙個目錄,然後為這個專案起乙個名字。名字可以隨便起,這裡以「測試專案」為例

接下來出現乙個對話方塊,要為專案選乙個cpu。點選左側的樹狀目錄滾動條,點開「atmel」選中「at89c51」,單擊確定

這個對話方塊問是否把啟動檔案加進專案,選「是」

要生成hex檔案還要設定一下。單擊下圖中的設定圖示切換到「output」選項卡,勾選下圖中「createhexfile」。如果要改變hex檔案的儲存位置,可以點左上角的「select

flolder

forobjects」選乙個新的資料夾

完成設定後選確定

9樓:春妙音

雙擊點開keil軟體,選擇「project」下拉項裡的new project,起好名字並儲存

2.在跳出的對話方塊內,cpu下方選擇「atmel」中的「at89c51」,點選確定,把檔案加入專案

3.點選下圖紅圈所圈出的圖示

4.選擇output頁面,在「create hex file」旁打勾,完成任務後點選確定即可

c程式已經除錯過了,沒有問題,可是用keil生成的hex無法使用怎麼回事?c檔案直接生成,步驟是- 100

10樓:匿名使用者

既然用keil無法生成hex檔案,那怎麼說:c程式已經除錯過了,在哪除錯,在別人的電腦上除錯的嗎?

看來你用keil,還沒有掌握方法。

新建工程對,可是以下的操作就不對了。

見下圖,雖然這是keil2的,但其它版本的操作方法是相同的。

1,在左邊的工程的籃色資料夾上,點右鍵,彈出乙個對話方塊,找到c程式,載入到工程中才行,不是雙開啟c檔案就行的,那沒有用,必須要加到工程中。

工程中載入c程式後是這樣的

2,點圖中的1處的小棒,彈出乙個對話方塊,在2處打勾,才能生成he**檔案。確定後,再點3處的雙箭頭。

現有乙個c語言檔案怎麼生成hex檔案啊?

11樓:匿名使用者

工程檔案管理中,將輸出.hex檔案選項勾上,然後重新編譯就可以了。生成的hex檔案儲存在你的工程資料夾中,與工程同名。

12樓:修者世界

你說的是微控制器吧,用keil編譯鏈結之後會自動生成hex檔案。當然需要做一些簡單的設定。如圖所示:

13樓:

可以按如下方法生成

copyhex檔案:

在keil左邊的「project」欄中,滑鼠單擊」target 1「;

按下鍵盤上的alt+f7鍵;

在下圖中依次單擊,」output「,「creat hex file」,即可產生hex檔案。

14樓:匿名使用者

有兩抄種方法

用相應的ide(例如:

襲keil)建立乙個工程bai,然後du將該zhic語言檔案中的**復dao

製到工程中的目錄下。然後使用keil 對該工程進行編譯。這樣就可以得到hex檔案

使用相應的編譯器,一步一步的編譯。

不推薦第二種方法因為,單獨使用編譯器編譯需要很多麻煩的步驟,還有可能會出錯。直接使用ide會更加方便省去很多麻煩的步驟。

15樓:軒落_翼

用keil編譯器編譯,編譯後就可以得到hex檔案

keil是專門為51,arm編寫程式的編譯器

16樓:匿名使用者

使用程式設計軟體如:keil等,在keil中勾選生成hex檔案選項,然後進行編譯鏈結就自動版生成了hex檔案。權

intel hex檔案是由一行行符合intel hex檔案格式的文字所構成的ascii文字檔案。在intel hex檔案中,每一行包含乙個hex記錄。這些記錄由對應機器語言碼和/或常量資料的十六進製制編碼數字組成。

intel hex檔案通常用於傳輸將被存於rom或者eprom中的程式和資料。大多數eprom程式設計器或模擬器使用intel hex檔案。

用c語言寫程式,可以執行的,用C語言寫乙個程式,可以執行的

include stdafx.h vc 6.0加上這一行.include stdio.h int strlen const char str char strcpy char pa,const char pb int strcmp const char pa,const char pb while ...

用C51微控制器控制LED流水燈的C語言程式怎麼寫

斯帝國乘八國聯軍侵華戰爭之機,出兵侵占我國東北全境。中俄兩國 用at89c51微控制器控制8個led的流水燈的c程式看不懂 include包含微控制器專用標頭檔案 include這個是什麼俺也不知道,但這個程式不需要這個標頭檔案void delay10ms unsigned int c 自定義的延時...

請問用C語言如何從文字中把裡面的英語後面的數字輸入陣列中,只要英語後面的數字

include include void main while fgets str,200,fp 讀取一行,並判斷檔案是否結束 fclose fp for i 0 i printf d score i file fp fopen filename r char str 80 int score 10...

求用C語言編寫微控制器89C51電子時鐘程式,有時,分,秒,還有電路圖

你好!顯示部分是數碼管還是lcd 私信聯絡我吧 可以用ds1302來做 求乙個基於at89c51微控制器的數字時鐘程式,顯示時 分 秒不要求鬧鐘!就在開發板上的數碼管顯示 時鐘的話 你把數碼管的顯示的變數值放在定時器裡 通過你的定時器 來實現時分秒的定時 用c語言編寫at89c51微控制器程式,設計...

在c語言中如何使用遞迴函式,c語言怎麼用遞迴呼叫函式的方法求n的階乘?

遞迴,是函式實現的乙個很重要的環節,很多程式中都或多或少的使用了遞迴函式。遞迴的意思就是函式自己呼叫自己本身,或者在自己函式呼叫的下級函式中呼叫自己。遞迴之所以能實現,是因為函式的每個執行過程都在棧中有自己的形參和區域性變數的拷貝,這些拷貝和函式的其他執行過程毫不相干。這種機制是當代大多數程式語言實...