『壹』 keil 怎麼同時編譯多個C文件
要想把多個C程序同時編譯
1.主函數里要有對其他C程序里的所有函數的聲明。(也可以用.h文件來聲明並在主函數里include "*.h" *代表h文件文件名)
2.在keil工程里要添加所有.c文件
『貳』 keil怎麼編譯c語言程序
操作方法如下:
操作設備:戴爾筆記本電腦
操灶乎跡作系統:win10
操作程序:keil5
1、先打開KEIL軟體。
『叄』 keil 怎麼同時編譯多個C文件
編好多個c文件,做個.h頭文件,將main函數中需要的程序以類似extern
void
getnum()的格式寫上,然後再main函數中添加include
「*.h」,便可以在main函數中使用其他c文件中定義的函數了。
『肆』 Keil uvision5. 中c++和c源文件是不是不能混合編譯 比如 main.cpp和led.c一起編
可以的哦
Keil系列教程:
http://blog.csdn.net/column/details/13472.html
『伍』 是用c語言和匯編混合編的程序,在keil里編譯時出現C51 FATAL-ERROR -
程序問題。
LL SEGMENT CODE; // 在程序存儲區中定義段
PUBLIC LED; //聲明函數
FLAG DATA 20H
DPFLAG DATA 22H
RSEG LL; //函數可被連接器放置在任何地方
LED:
NOP
DISP: MOV P1,#0FFH ;顯示函數
MOV P2,#0
MOV DPTR,#TAB
MOV A,DPFLAG
CJNE A,#1,DISP0 ;判斷是否有選擇按鍵
SJMP N1
DISP0:MOV P1,#0F8H
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A
NOP ;弄兩個空指令緩沖下數碼管
NOP
MOV P2,#0
N1: MOV A,DPFLAG
CJNE A,#2,DISP1
SJMP N2
DISP1: MOV P1,#0F9H
MOV A,R3
MOVC A,@A+DPTR
MOV P2,A
NOP
NOP
MOV P2,#0
N2: MOV A,DPFLAG
CJNE A,#3,DISP2
SJMP NEND
DISP2: MOV P1,#0FAH
MOV A,R4
MOVC A,@A+DPTR
MOV P2,A
NOP
NOP
MOV P2,#0
NEND: RET
NOP
RET
TAB: DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,40h,0
END
上面是匯編文件,。
#include<reg52.h>
extern void led();
void main()
{
P2=0XFF;
led();
while(1)
{
led();
}
}
這里是C文件。
你試試,我這個工程師可以的
『陸』 用keil軟體如何將匯編與C語言結合起來一起編寫微控制器的程式
在混合程式設計中,最常用也是最實用的方法是在C語言中加入部分組合語言的程式碼,分為兩種方法。
方法1)在Keil C51的函式中直接插入匯編語句
方法2)按照Keil C51介面規則,編寫匯編模組
方法1是利用編譯控制命令#pragma a *** (用來標識所插入的匯編語句的起始位置) 和 #pragma enda *** (用來標識所插入的匯編語句的結束位置) ,這兩條命令必須成對出現,並可以多次出現。在Keil C51中不對插入的匯編程式碼做任何的處理。
方法2編寫匯編模組,需對KEIL編譯器的編譯過程做些了解。Keil編譯器的編譯過程是首先將專案中的一個個原始檔編譯為目的碼(obj檔案),然在再通過聯結器產生為兄亮最終可執行的hex檔案。
目的碼將其中的程式碼、資料、常量放在不同的「段」中,儲存程式的段稱為「程式碼段」,儲存資料的段稱為「資料段」,最終目的碼經過Keil的聯結器按照「段」的要求轉換為程式和資料地址固定的可執行檔案。
在Keil軟體中,「段」按定位屬性分為:「可重定位段」和「絕對段」。
「可重定位段」:程式和資料在其分別所對應的儲存單元(FLASH和RAM)中的儲存地址是浮動的、可重定義的、相對可變的。
「絕對段」:其地址在連線前就已確定不變,聯結器據此為它分配地址。
經Keil編譯器生成的「段」具有如下屬性:
1)段的儲存屬性(program code data pdata xdata bdata bit等);
2)段的起始地址;3)段的長度;
4)段的定位要求:絕對段地址固定,可重定位段定位的要求如要求程式碼段在2K范圍內,資料段定位在可位定址區等;
5)段名:包括程式和資料(變數和常量)的段的儲存屬性及段所屬的程式模組(檔案)。程式碼段: ?PR? funame?Filename
資料段如:?DT? funame?Filename; ?BI? funame?Filename
標准段名字首列表
段字首 儲存型別 含義
?PR? Program 程式儲存區的程式碼
?CO? code 程式儲存區的常量
?BI? Bit 內部資料儲存區的可位定址的位變數
?BA? Bdata 內部資料儲存區的可位定址的位元組變數
?DT? Data 內部資料儲存區的變數
?ID? Idata 內部資料儲存區可間接定址的變數
?PD? Pdata 外部資料儲存區的頁變數
?XD? Xdata 外部資料儲存區的變數
只有自己重新編寫
51微控制器系列一般都用KEIL程式設計 匯編 C語言都可以
我來回答,首先生成(.害克思)檔案,然後各家微控制器載入方法都不一樣,初學者以stc微控制器載入最簡單,慢慢學,在以後就明白了為什麼它載入簡單,可買盡量支援微控制器型號多得燒寫器,美名曰程式設計器,stc基本不用,為什麼不用,可能是stc耍了個小聰明,在裡面加了點小程式,就可以串列埠下載拉,製作stc下載線很簡單,網上一搜就知道歷派,經濟緊張用stc,方便又快捷
使用微控制器專用的編譯器,比如AVR微控制器要用ICC for AVR、AVR Studio 等。然後在選項中選擇微控制器型號,比如ATmega16、ATmega128。最後要查詢微控制器所對應的庫,也就是標頭檔案。包含對應的標頭檔案,標頭檔案中有定義好的微控制器的變數名和函式,寫程式要用到,比如引腳可能定義為PORTA,這些要記住,不可以寫其他的變數羨爛寬名。具體寫程式,和普通的C程式沒有什麼區別。
基本與普通C語言差不多,只不過微控制器標頭檔案肯定是與各自微控制器相關了,不是一般C所多用的STDIO.H,像51,一般是
#include<reg51.h>
你是想模擬嗎????只要生成hex檔案,在proteus拖入的晶片點右鍵選擇edit(一般第二個選項) 然後將hex得路徑匯入,就可以模擬。。。生成hex檔案的方法是在keil選項卡中的output中設定,hexcreate打勾。。。。。
Keil系列教程:
:blog.csdn./column/details/13472.
^_^,這個可以用兩個紅外對管來實現,進去的時候1,2依次得到低電平,暫存器加1;有人出來的時候2,1依次得到低電平,暫存器減1
當暫存器等於0的時候,燈滅,不等於0的時候燈亮
^_^
程式很簡單
就是怕學生會故意搗鬼,要是有一個人背著另一個走出去,燈就不會滅了
^_^
濾波,關鍵問題是演演算法,有了演演算法剩下的就是coding了
說白了,匯編與C,程式結構是一樣的,也就是C一句話匯編要幾句語句而已