Keil是一款經(jīng)典的51單片機開發(fā)調(diào)試軟件,在單片機學(xué)習(xí)中是非常重的,因為其功能完善,界面友好,還有就是其簡單。使得上手非常容易。筆者非常建議學(xué)單片機從51開如,開發(fā)軟件從Keil開始,因為很多東西可以觸類傍通。筆者開如也是學(xué)51的,對Keil也比較熟,筆者學(xué)PIC單片機時,三天就能寫出數(shù)碼管時鐘程序(包括學(xué)PIC的硬件配置),當(dāng)然這很簡單,也算不上什么技術(shù),但可以肯定的說,對單片機初學(xué)者來說,這也該算不可想像吧。筆者并不是吹虛自己多厲害,只是想說明知識的觸類傍通。學(xué)AVR單片機也差不多吧,知道如何配置端口,復(fù)制個C51的程序,小改一下就可以了。
下面來介紹如何用Keil uVision3(uVision2也是一樣)來建立一個流水燈程序,以及如何軟件仿真。
啟動Keil,如下圖:

選擇菜單Project->New Project,新建一個工程,如下圖:
輸入工程名“流水燈”,然后保存,如下圖:

選擇器件型號為Atmel的AT89S51,然后確定,如下圖:

是否加入啟動文件到工程,這時不加入選“否”,這樣一個工程就建立完成,如下圖:

選擇菜單File->New新建一個文件,如下圖:

選擇菜單,F(xiàn)ile->Save,保存文件,輸入文件件名為“流水燈.asm”,然后保存,如下圖:

點Target 1前面的+號,展開Target 1,擊Source Group 1,在彈出菜單中選擇,Add Files To Group 'Source Group 1',如下圖:

選擇All files,找到剛才的“流水燈.asm”,然后點Add,然后就Close,如下圖:

可以看到工程里多了一個“流水燈.asm”文件,雙擊在里面輸入下面程序,如下圖:
ORG 0X0000 LJMP STARTSTART: MOV A,#0XFELOOP: RL A MOV P1,A LCALL DELAY SJMP LOOP ;延時程序DELAY: MOV R5,#200OUT: MOV R6,#250OUT1: MOV R7,#250IN: DJNZ R7,$ DJNZ R6,OUT1 DJNZ R5,OUT RET END

選擇Project->Build target,進行編譯,如下圖:

編譯結(jié)果可以,看到錯誤和警告情況,如下圖:

如果沒有錯誤,就可以選擇菜單Debug->Start/Stop Debug Session,進放調(diào)試狀態(tài),如下圖:

進入調(diào)到試狀態(tài)后,選擇菜單Perihperals->I/O-Ports->Port 1,打開端口1,下圖為打開后的畫面。

選擇菜單Debug->Run,運行,就可以看到端口1的變化。如下圖:

如果端口變化緩慢,可以加長延時程序,如果變化快,可以縮短延時程序。
如果沒有變經(jīng),可以點擊菜單View->Periodic Window Update,此命令的功能是周期性的更新窗口,用以外圍設(shè)備窗口顯求程序的熱行過程,有此情況下,如運行到斷點,就要以關(guān)閉這個功能,因為程序執(zhí)行的過程我們并不關(guān)心,同時也可以加快速度。
給初學(xué)者的幾點建議:
- Keil并不復(fù)雜,不要看到英文版就害怕,也不要老想著就找中文版,對Keil來說真的沒必要,頂多一個金山詞霸就可以了,很多東西我們根本用著的,可以肯定的說,絕大多數(shù)常用功能,可以用快捷工具欄里面的圖標(biāo)就可以完成。
- Keil功能非常強大,要慢慢學(xué),可以肯定的說,你至少要學(xué)半年,因為很多東西要隨你的單片機知識增長才能用得著,不過你會一點兒匯編的話,也可以在5分鐘內(nèi)學(xué)會使用。
- 當(dāng)你會一些的時候,一定要用C程序,因為用它調(diào)試C程序非常方便,你可以方便的知道,C和匯編是如何結(jié)合的,對學(xué)習(xí)C語言或其它單片機非常有好處的。