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