即可進入 μVision IDE(集成開發(fā)環(huán)境)。在此之前,Windows 10 家庭版將會彈出“用戶賬戶控制”頁面,我們點擊“是”允許“Uv2.exe”程序運行,如下圖所示
然后就會彈出一個標準的 Windows 程序窗口。該程序窗口由多個子窗口組成,我們初次進入 μVision IDE 時,只能看到工程管理窗口、源程序窗口和輸出窗口。如下圖所示
?
左 側(cè)的工程管理窗口有 3 個選項卡:文件、寄存器、文檔選項卡;我們剛進入 μVision IDE 時顯示的是文件選項卡,顯示該工程中的所有文件,如果沒有任何工程被打開,這里將沒有內(nèi)容被顯示,如上圖所示;中間的選項卡是寄存器,在進入程序調(diào)試時自 動切換到該窗口,用于顯示有關(guān)寄存器值的內(nèi)容,如下圖所示
?
第 3 個選項卡是一些幫助文件、電子文檔的目錄索引,如果遇到疑難問題,可以隨時到這里來查找答案。如下圖所示
?
圖 0-5
1 源文件的建立μVision IDE 內(nèi)集成了一個文本編輯器,便于我們在 μVision IDE 中直接進行源程序的輸入。
對于匯編或 C 語言,該文本編輯器具有語法高亮功能,即會對關(guān)鍵字進行變色顯示。如下圖所示
?
在圖 0-5 中選擇菜單欄的“File-->New...”或者按下快捷鍵Ctrl+N,在源程序窗口中將出現(xiàn)一個新的文件輸入窗口,如下圖所示
?
我們可以在該窗口里輸入源程序,我們將下面兩行程序輸入進去
SETB P1.0
END
如下圖所示
?
輸入完畢之后,選擇菜單欄的“File-->Save”或者按下快捷鍵Ctrl+S,給該文件命名保存。重命名時必須要加上擴展名,一般匯編程序以".asm"或".a51"為擴展名。我這里重命名為“201.asm”,如下圖所示
?
注意:μVision IDE 對于中文的支持不好,有時會出現(xiàn)半個漢字的現(xiàn)象。因此,在書寫注釋時要小心。建議使用其它編輯器(如notepad--) 來輸入源文件。μVision IDE 能自動識別被 IDE 外部軟件改變了的源文件,即加果用 μVision IDE 打開了一個文件,而該文件又由其它編輯器編輯并保存,只要切換回 μVision IDE,μVision IDE 就能感知文件已發(fā)生變化,并詢問是否重新加載。notepad-- 軟件也具有同樣的功能,兩者配合使用非常方便。
2 工程的建立在 項目開發(fā)過程中,除了編寫源程序之外,我們還要選擇器件——MCU,確定編譯/匯編、鏈接的參數(shù),指定調(diào)試的方式等等。為了方便管理和使用,Keil 使用工程(Project)將所需設(shè)置的參數(shù)和所有文件都配置在一個工程中,我們只能對工程而不能對單一源程序進行編譯(匯編)和鏈接等操作。下面我們就 一起來看一看如何建立和設(shè)置工程。
在圖 0-5 中選擇菜單欄的“Project-->New Project...”,出現(xiàn)“Create New Project(創(chuàng)建新工程)”的對話框,如圖 2-1 所示。
?圖 2-1 創(chuàng)建新工程對話框
要求對給工程命名并保存。一般我們把工程建立在與源文件同一個文件夾中,注意不用加擴展名,單擊“保存(S)”即可。
進 入下一步,選擇目標器件——MCU,如圖 2-2 所示。Keil 支持所有 400 余種以 80C51 為內(nèi)核的單片機系列。我們可以根據(jù)需要選擇相應(yīng)的 MCU,這里以選擇 Atmel 公司的 89C51 為例。在圖 2-2 左側(cè)的“Data base(數(shù)據(jù)庫)”列表框中單擊展開“Atmel”供應(yīng)商名稱,逃擇其中的“AT89C51”器件;在其右邊的“Description:(說明)”顯 示區(qū)域中有關(guān)于該 MCU 特性的一般性描述。單擊“確定”按鈕即可返回主界面。此時還會詢問我們“Copy Standard 8051 Startup Code to Project Folder and Add File to Project(是否將啟動代碼復制到工程文件夾下,并加入到工程中)”,我們先點擊“是(N)”添加進來看看,如下圖所示
?圖 2-2 為工程選擇目標 MCU
選擇好 MCU 回到主界面后,工程管理窗口會出現(xiàn)一些目錄信息;但目前這個工程里面還沒有任何文件,是一個空的工程,我們需要為這個工程添加文件。
我們單擊左側(cè)列表框中目錄 Target1 下的 Source Group1 子目錄,使其高亮顯示;然后右擊鼠標,在出現(xiàn)的快捷菜單中選擇“Add File to Group 'Source Group1'”,如下圖所示
?
Keil 默認加入 C 源文件,因此,在文件瀏覽框中未顯示該文件夾下的匯編文件。如果要加入?yún)R編語言源文件,需單擊“文件類型”下拉列表框右側(cè)的下三角按鈕,彈出下拉列表,選擇“Asm Source file(*.s*;*.src;*.a*)”。如下圖所示
?
這時才會將文件夾下的“*.asm”文件顯示出來。如下圖所示
?
雙擊要加入的文件名,或者單擊要加入的文件名后單擊 Add 按鈕,都可將該文件加入到工程中。如下圖所示
?
文件加入后,添加文件對話框并不會消失,還可加入其它文件到工程中。如果不再需要加入其它文件,單擊 Close 按鈕,關(guān)閉該對話框。如下圖所示
?
注意: 由于在文件加入工程中后,添加文件對話框并不會消失,所以剛開使使用該軟件時,常會誤以為文件沒有加入成功。再次雙擊文件或再次單擊 Add 按鈕,會出現(xiàn)一個如下圖所示對話框,提示該文件已加入,不需要再次加入,此時只要單擊“確定”按鈕,然后單擊 Close 按鈕,關(guān)閉對話框即可。
?
關(guān)閉對話框后回到主界面,剛加入的文件名出現(xiàn)在工程管理器的 Source Group 1 下一級。雙擊該文件名,即可在右邊打開該文件。
?
3 工程的設(shè)置工程新建好后,我們還要對工程進行進一步設(shè)置,以便滿足每個工程的個性化要求。
單擊工程窗口下的 Target 1,使其高亮顯示;然后選擇菜單欄的“Project-->Options for Target 'Target 1'”,如下圖所示
?
彈出對工程設(shè)置的對話框。該對話框非常復雜,有 8 個選項卡,但大部分設(shè)置項取默認值即可。
設(shè)置對話框中 Target 選項卡如下圖所示。
?
Xtal(MHz):文本框中的數(shù)值是晶振頻率值,默認值是所選目標 MCU 的最高可用頻率值。對于 AT89C51 而言是 24MHz,該數(shù)值與最終產(chǎn)生的目標代碼無關(guān),僅用于軟件模擬調(diào)試時顯示程序執(zhí)行時間。
?Memory Model:下拉列表框用于設(shè)置 RAM 使用情況,有 3 個選擇項:
?
Code Rom Size:下拉列表框用于設(shè)置 ROM 空間的使用,同樣也有 3 個選擇項:
?
Operating system:下拉列表框是操作系統(tǒng)選擇。
?
Keil 提供了兩種操作系統(tǒng):RTX-51 Tiny 和 RTX-51 Full。如果一個工程不使用操作系統(tǒng),應(yīng)取該項的默認值 None(不使用任何操作系統(tǒng))。
Use On-chip ROM(0x0-0xFFF) 復選框用于確認是否僅僅使用片內(nèi) ROM(注意:選擇該項并不會影響最終生成的目標代碼量);
?Off-chip Code memory 選項區(qū)域用于確定系統(tǒng)擴展 ROM 的地址范圍。
?Off-chip Xdata memory 選項區(qū)域組用于確定系統(tǒng)擴展 RAM 的地址范圍。
?Code Banking 復選框用于設(shè)置代碼分組的情況。
?
上述選擇項必須根據(jù)使用的硬件來決定。
設(shè)置完畢后,單擊 Output 標簽進入輸出設(shè)置選項卡,如下圖所示。
?該頁面卡中也有很多內(nèi)容,其中:
該文件是 Intel HEX 格式文件,擴展名為.HEX,上板驗證時可以使用燒錄器將其寫入單片機芯片內(nèi)。默認情況下該項未被選中。如果要將可執(zhí)行代碼寫入芯片,就必須選擇該項。這一點是初學者易疏忽的,在此特別提醒注意。
如果需要對程序進行調(diào)試,應(yīng)當選擇該項。
Browse Information 復選框:產(chǎn)生瀏覽信息。該信息可以用 View-->Browse 來查看。這里取默認值。
?Select Folder for Objects... 按鈕:送擇最終目標文件所在的文件夾。默認是與工程文件在同一個文件夾中。
?Name of Executable 文本框:用于指定最終生成的目標文件的名字。默認與工程名字相同。
?
上面兩項一般不需要更改。
用于確定是否將目標文件生成庫文件。
工程設(shè)置對話框中其它各選項卡與 C51 編譯選項、A51 匯編選項、BL51 鏈接器的鏈接選項等用法有關(guān),這里不作詳敘。通常可取默認設(shè)置,不必修改。
設(shè)置完成后單擊“確認”按鈕返回主界面,工程文件設(shè)置完畢。
4 編譯、鏈接
設(shè)置好工程后,即可進行編譯、鏈接。
?
上圖是有關(guān)編譯、鏈接以及工程設(shè)置的工具條。該工具條中各按鈕的具體含義如下:
編譯或匯編當前文件:若當前文件是匯編語言程序文件,則使用 A51 匯編器對匯編語言源程序進行匯編處理;若當前文件是 C 語言源程序文件,則使用 C51 編譯器進行編譯處理。得到可浮動地址的目標代碼。
建立目標文件:根據(jù)匯編或編譯得到的目標文件,并調(diào)用有關(guān)庫模塊,鏈接產(chǎn)生絕對地址的目標文件。如果在上次匯編或編譯過后又對源程序作了修改,將先對源程序進行匯編或編譯,然后再鏈接。
重建全部目標文件:對工程中所有文件進行重新編譯、匯編處理,然后再進行鏈接以產(chǎn)生目標代碼。使用該按鈕可以防止由于一些意外情況(如系統(tǒng)日期不正確)而造成的源文件與目標代碼不一致。
停止建立:在建立目標文件的過程中,可以單擊該按鈕停止這一工作。
工程設(shè)置:該按鈕用于對工程進行設(shè)置,其效果如同選擇“Project-->Options for Target 'Target 1'”。
以 上建立目標文作的操作也可以通過選擇“Project-->Translate...”、“Project-->Build target”、“Project-->Rebuild all target files”和“Project-->Stop build”來完成。
編譯過程中的信息將出現(xiàn)在輸出窗口中的 Build 頁中。如果源程序中有語法錯提,則會出現(xiàn)錯誤文檔。雙擊錯誤文檔行,可以定位到出錯的源程序的相應(yīng)行。
?
右鍵 STARTUP.A51,選擇“Remove File 'STARTUP.A51'”將其從工程中刪除
?
再次建立目標文件,最終得到如圖所示結(jié)果。
?
給出了目標代碼量的大小(2字節(jié))、內(nèi)部 RAM 使用量(8字節(jié))、外部 RAM 使用量(0字節(jié)),提示生成了 HEX 格式的文件。在這一過程中,還會生成一些其它文件,產(chǎn)生的目標文件被用于 Keil 的仿真與調(diào)試。