如何在KEIL中實現(xiàn)C語言嵌套匯編語言
一、講解背景
在單片機(jī)學(xué)習(xí)的過程中,掌握一點匯編語言是非常有必有的,作為低級語言匯編語言在單片機(jī)開發(fā)中有它不可取代的作用,比如每條指令可以精確的確定延時時間,便于理解非常適合硬件工程師學(xué)習(xí)。但是要提高單片機(jī)技能,必須掌握C 語言編程,因為C 語言有強(qiáng)大的模塊化管理思想。我想在很多人學(xué)習(xí)的過程中即學(xué)了匯編語言,又學(xué)習(xí)了C 語言,那么一個問題便隨之而產(chǎn)生,如果將C 語言與匯編語言相互結(jié)合,達(dá)到更好的編程效果,本次講解就是基于這個問題而生成的。
二、操作步驟
第一步:
在KEIL 中新建工程及文件并復(fù)制以下程序并保存為C 文件:
/*
功能:C 語言里嵌套匯編語言,起到拋磚引玉的作用
*/
#include
delay()
{
int i,j;
for(i=0;i<1000;i++)
for(j=0;j<120;j++); //12M晶振下延時1MS
}
main()
{
P2=0x00; //控制8 個LED亮
delay(); //延時1S
#pragma ASM//匯編嵌套開始
MOV P2,#0FFH //匯編嵌套結(jié)束
#pragma ENDASM//匯編嵌套開始
while(1); //C 程序結(jié)束
}
第二步:
選中 Project 窗口中的C 文件,比如CX1.C,并右鍵,選擇“Options for ...”,點擊右邊的“Generate AssemblerSRCFile”和“Assemble SRC File”,使復(fù)選框的打鉤由灰色變成黑色狀態(tài)(雙擊即可);
第三步:
將相應(yīng)的庫文件(如 Small 模式時,是 KeilC51LibC51S.Lib)加入工程中, 該文件必須作為工程的最后文件 (將該文件像頭文件一樣加載到工程中);
第四步:
在KEIL 中編譯生成HEX 文件,并按如下圖設(shè)計仿真圖,在仿真中查看效果。
三、演示效果
如下圖,如果你在你自己的仿真軟件PROTEUS 上看到單片機(jī)P2 口控制的8 個LED先亮延時1S 左右自動熄滅的效果。那說明你已經(jīng)完全掌握C 語言里嵌套匯編語言的方法了。