『壹』 在C51語言中如何嵌入匯編語言
keil C 語言中嵌入匯編語言進行混合編程,方法如下:
1、在C 文件中要嵌入匯編代碼片以如下方式加入匯編代碼
#pragma ASM
; Assembler Code Here
#pragma ENDASM
2、在Project 窗口中包含匯編代碼的C 文件上右鍵,選擇「Options for ...」
4、編譯,即可生成目標代碼
實例:
#include<reg52.h>
#define uchar unsigned char
sbit LED1=P1^0;
//C 嵌入匯編常式
void delay_ms(void)
{
#pragma asm
MOV R0,#0FFH
MOV R1,#0FFH
D_LOOP1:
DJNZ R0,D_LOOP1
MOV R0,#0FFH
DJNZ R1,D_LOOP1
#pragma endasm
}
void main(void)
{
uchar i;
P1 = 0xFF;
while(1)
{
i++;
delay_ms();
if(i>=7)
{
LED1 =~LED1;
i=0;
}
}
}
『貳』 如何使用KeilC51創建一個工程文件
如何使用KeilC51創建一個工程文件
建立一個項目:
點擊工程菜單中選擇彈出的下拉式菜單中的新建 工程...,接著彈出一個標准Windows文件對話窗口,在"文件名"中輸入您的第一個程序項目名稱,這里我們用"test",這是筆者慣用的名稱,大家不必照搬就是了,只要符合Windows文件規則的文件名都行。"保存"後的文件擴展名為uv2,這是KEIL uVision2項目文件擴展名,以後我們可以直接點擊此文件以打開先前做的項目。
這時會彈出讓你選擇單片機型號的對話框,我們選擇ATMEL---AT89C51
然後點擊Target 1前面的「+」,出現Source Group 1,選中右鍵點選「增加文件到組 Source Group 1」
這時選擇文件類型為Asm 源文件,再選中001.asm文件,再按添加,在隨後出現的提示框中按「確定」
模擬器採用Mon51協議,在使用之前應必須對軟體項目進行如下設置:
1、單擊工程菜單,再在下拉菜單中單擊"目標target 1屬性" 在下圖中,單擊"Target"輸入模擬器的工作頻率(11.0592MHz)。
2、在調試菜單中點選"Keil Monitor-51 Driver",即選擇了STC89C516RD硬體模擬器。
3、單擊「R外圍設備」選Target Setup設置選項選擇您要使用串口(必須和實際相符合),波特率 38400。
如果被模擬的目標板使用12MHZ或者是11.0592MHZ晶振時波特率選擇38400,如果被模擬的目標板使用6MHZ晶振時波特率選擇18400。
4、如果需要生成HEX代碼給編程器燒寫晶元的話,需要選中「生成 HEX 文件」的選項,按鈕「選擇OBJ文件夾...」是用來選擇最終HEX文件的存放目錄的。
5、按F7快捷鍵可以進行編譯,編譯成功後如會出現上圖紅箭頭所指的文字,表示編譯成功!
然後可以進行硬體模擬了,將模擬器放入51單片機試驗開發板的40腳活動插座中,這時模擬器的電源由實驗開發板提供。
現在按Ctrl+F5可以進入模擬,這時再按F5全速運行狀態。
這時你會看到實驗板開發板P1的八個紅色LED,輪流點亮,表示運行成功,你可以查看相關的變數和參數,非常方便,這里我們完整演示一個匯編語言的模擬過程,其實KEIL C最擅長的還是C語言,建議有基礎的網友盡量採用C語言。
當首次使用一新的工程調試時可能出現下面的界面,說明KEIL軟體和模擬器之間通訊失敗,原因是你尚未
設定好串口及波特率。
請按選Settings然後按下圖設好串口(根據你的實際使用埠,以下假定為COM1)及波特率。
然後按F7,進行通訊連接,再按Ctrl+F5可以進入模擬,這時再按F5全速運行狀態。
『叄』 在KEIL C51里,如果不只一個C文件,有多個C文件,如何燒錄
在左邊的工程欄裡面,在Source Group上面點擊右鍵,選擇Add File to Group "Source Group1"選項,把你想要編譯的C文件全部添加進去,然後按編譯按鈕,就全部編譯了。但是多個C文件編譯有很多地方要注意,不是一下子能說清楚的。