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