二、操作步驟:
1、首先我們要養(yǎng)成一個習(xí)慣:最好先建立一個空文件夾,把您的工程文件放到里面,以避免和其他文件混合。比如:E:\code\exam
2、 單擊桌面上的,打開keil。
3、建立項目(工程):
(1)新建立工程(Project -> New uVision Project),如圖示:
(2)選擇工程要保存的路徑,輸入并保存工程文件名。
Keil的一個工程里通常含有很多小文件。為了方便管理,通常我們將一個工程放在一個獨(dú)立文件夾下,比如保存到exam1文件夾,工程文件的名字為exam1,如圖所示,然后單擊【保存】按鈕。工程建立后,此工程名變?yōu)?exam1.uv2。
(3)選擇芯片型號
保存之后出現(xiàn)如下對話框,在這個對話框要求選擇目標(biāo)CPU (即你所用單片機(jī)芯片的型號)。
Keil C51幾乎支持所有的51內(nèi)核的單片機(jī),我們選擇 Atmel 公司的 AT89C52 (根據(jù)具體設(shè)計選)芯片。點(diǎn)擊 ATMEL 前面的“+”號,展開該層,點(diǎn)擊其中的 AT89C52,如下圖所示,然后再點(diǎn)擊“OK”按鈕,完成選擇 MCU 型號。
在完成選擇MCU 型號后,軟件會提示我們是否要復(fù)制一個源文件到這個工程中,這里我們選擇“否”,因為我要自己添加一個C語言或者匯編語言源文件,如下圖所示。
在執(zhí)行上一步后,就能在如下圖工程窗口的文件頁中,出現(xiàn)了“Target 1”,如下圖,前面有“+”號,點(diǎn)擊“+”號展開,可以看到下一層的“Source Group1”,這時的工程還是一個空的工程,里面什么文件也沒有,到這里一個基礎(chǔ)的工程就完成了,但需要使用還不夠,還需要下面的步驟。
4、源文件的建立:
(1)新建:使用菜單“File->New”,或者點(diǎn)擊工具欄的新建文件快捷按鈕,就可以在項目窗口的右側(cè)打開一個新的文本編緝窗口。
此時,在編輯窗口中光標(biāo)閃爍,等待你輸入。
(2)輸入:在下面空白區(qū)別寫入或復(fù)制一個完整的C程序::
(3)保存:使用菜單“File->save”,或者點(diǎn)擊工具欄的快捷按鈕。
注意:
1)一定要選擇保存在建立工程時建立的文件夾下,這樣有利于設(shè)計者查找該文件,也有利于管理。
2)為了好管理文件一般源文件名和工程名一致(也可以不一樣),文件后綴名為“.asm 或.c”,其中“.asm”代表建立的是匯編語言源文件,“.c”代表建立的是C語言源文件。
5、將源文件添加到工程中:
建立好的工程和建立好的程序源文件其實是兩個相互獨(dú)立,一個單片機(jī)工程是要將源文件和工程聯(lián)系到一起的。
(1)點(diǎn)擊軟件界面工程窗口左上角的“Source Group1”使其反白顯示,然后,點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)一個下拉菜單,選中其中的“Add file to Group Source Group1”,如圖所示。
在執(zhí)行上面的步驟后會出現(xiàn)一個對話框,如下圖所示,要求尋找源文件,選中文件,單擊“Add“。
注意:
1)該對話框下面的“文件類型”默認(rèn)為 C source file(*.c),也就是以 C 為擴(kuò)展名的文件。
2)注意,在文件加入項目后,該對話框并不消失,等待繼續(xù)加入其它文件,但初學(xué)時常會誤認(rèn)為操作沒有成功而再次雙擊同一文件,這時會出現(xiàn)如下圖所示的對話框,提示你所選文件已在列表中(有的沒有這個窗口,不用管,直接單擊“close”即可)。
然后點(diǎn)擊“Close”即可返回主界面,返回后,點(diǎn)擊“SourceGroup 1”前的加號,會發(fā)現(xiàn) exam1.c 文件已在其中。雙擊文件名exam1.c,即打開該源程序。
6、配置工程
配置工程對于初學(xué)者來說,大部分內(nèi)容只需要默認(rèn)即可,這里只講述幾個常見的配置,能滿足基本的功能。
之前工程建立好,之后還要對工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。
(1)點(diǎn)擊左上邊的Project窗口的 Target 1,然后使用菜單“Project->Option for target‘target1’”(工程目標(biāo)選項),如下圖所示,也可以按快捷鍵“Alt+F7”來完成。
在進(jìn)行上面的操作后就會出現(xiàn)對工程設(shè)置的對話框,這個對話框可謂非常復(fù)雜,共有8 個頁面,要全部搞清可不容易,好在絕大部份設(shè)置項取默認(rèn)值就行了,如圖所示。
1)Target選項: 設(shè)置晶振:12MHZ
2)Output選項:
勾選上【Project -> Options for Target -> Output】“Create HEX File”即可。
7、編譯、連接:
1)選擇菜單 Project->Build target,對當(dāng)前工程進(jìn)行連接,如果當(dāng)前文件已修改,軟件會先對該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼;如果選擇 Rebuild All target files 將會對當(dāng)前工程中的所有文件重新進(jìn)行編譯然后再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的,而“Translate”? .項則僅對該文件進(jìn)行編譯,不進(jìn)行連接,
2)以上操作也可以通過工具欄按鈕直接進(jìn)行。下圖是有關(guān)編譯、設(shè)置的工具欄按鈕,從左到右分別是:編譯、編譯連接、全部重建、停止編譯和對工程進(jìn)行設(shè)置。
編譯當(dāng)前文件(單個) Ctrl + F7
編譯目標(biāo)文件(修改過的) 并生成應(yīng)用程序供單片機(jī)直接下載 F7
編譯所有目標(biāo)文件(重新編譯) 并生成應(yīng)用程序供單片機(jī)直接下載 無
3)編譯過程中的信息將出現(xiàn)在如下的輸出窗口中的Build頁中,如果源程序中有語法錯誤,會有錯誤文檔出現(xiàn),雙擊該行,可以定位到出錯的位置,對源程序反復(fù)修改之后,最終會得到如下圖所示的結(jié)果(提示獲得了名為exam1.hex 的文件),該文件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其它相關(guān)的文件,可被用于 Keil 的仿真與調(diào)試,這時可以進(jìn)入下一步調(diào)試的工作。
8、調(diào)試
1)對工程成功地進(jìn)行匯編、連接以后,按 Ctrl+F5 或者使用菜單Debug->Start/Stop Debug Session”, 進(jìn)入調(diào)試狀態(tài)。
進(jìn)入調(diào)試狀態(tài)后,界面與編緝狀態(tài)相比有明顯的變化,Debug 菜單項中原來不能用的命令現(xiàn)在已可以使用了,工具欄會多出一個用于運(yùn)行和調(diào)試的工具條,如下圖所示, Debug 菜上的大部份命令可以在此找到對應(yīng)的快捷按鈕,從左到右依次是復(fù)位、運(yùn)行、暫停、單步、過程單步、執(zhí)行完當(dāng)前子程序、運(yùn)行到當(dāng)前行、下一狀態(tài)、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、1#串行窗口、內(nèi)存窗口、性能分析、工具按鈕等命令。
復(fù)位:將程序復(fù)位到主函數(shù)的最開始處,準(zhǔn)備重新運(yùn)行程序;
全速運(yùn)行:運(yùn)行程序時中間不停止。
停止全速運(yùn)行:全速運(yùn)行程序時激活該按鈕,用來停止正全速運(yùn)行的程序。
進(jìn)入子函數(shù)內(nèi)部。
單步執(zhí)行代碼:它不會進(jìn)入子函數(shù)內(nèi)部,可直接跳過函數(shù)。
跳出當(dāng)前進(jìn)入的函數(shù):只有進(jìn)入子函數(shù)內(nèi)部該按鈕才被激活。
程序直接運(yùn)行至當(dāng)前光標(biāo)所在行。
顯示/隱藏編譯窗口:可以查看每句C語言編譯后所對應(yīng)的匯編代碼。
顯示/隱藏變量觀察窗口:可以查看各個變量值的變化狀態(tài)
大家不妨把這些按鈕一個個都單擊試試看,只有親自操作過了記憶才會深刻。
1使用快捷鍵F11可以單步執(zhí)行程序,每按一次 F11,即執(zhí)行該箭頭所指程序行,然后箭頭指向下一行,逐行調(diào)試。
(
注意1:使用F11 可以單步執(zhí)行程序,使用F10 可以以過程單步形式執(zhí)行命令,所謂過程單步,是指將高級語言中的函數(shù)作為一個語句來全速執(zhí)行。
注意2:單步執(zhí)行與全速運(yùn)行。
全速執(zhí)行:指一行程序執(zhí)行完以后緊接著執(zhí)行下一行程序,中間不停止,這樣程序執(zhí)行的速度很快,并可以看到該段程序執(zhí)行的總體效果,即最終結(jié)果正確還是錯誤,但如果程序有錯,則難以確認(rèn)錯誤出現(xiàn)在哪些程序行。
單步執(zhí)行:每次執(zhí)行一行程序,執(zhí)行完該行程序以后即停止,等待命令執(zhí)行下一行程序,此時可以觀察該行程序執(zhí)行完以后得到的結(jié)果,是否與我們寫該行程序所想要得到的結(jié)果相同,借此可以找到程序中問題所在。程序調(diào)試中,這兩種運(yùn)行方式都要用到。
)
觀察端口情況:
單擊Peripherals ----I/O-Ports---Port1菜單,在打開的小框里通過調(diào)試觀察端口變化情況。
2單擊Debug----Reset CPU可以復(fù)位。
3停止調(diào)試:
再次單擊Debug->Start/Stop Debug Session,即可終止調(diào)試。
三、工程詳細(xì)設(shè)置(可以不看)
工程建立好以后,還要對工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。
首先點(diǎn)擊左上邊的 Project窗口的 Target 1,然后使用菜單“Project->Option for target‘target1’”,如下圖所示,也可以按快捷鍵“Alt+F7”來完成。
在進(jìn)行上面的操作后就會出現(xiàn)對工程設(shè)置的對話框,這個對話框可謂非常復(fù)雜,共有 8 個頁面,要全部搞清可不容易,好在絕大部份設(shè)置項取默認(rèn)值就行了,如圖所示。
1、Target選項:
1)Xta:后面的數(shù)值是晶振頻率值,默認(rèn)值是所選目標(biāo) CPU的最高可用頻率值,對于我們所選的AT89C51 而言是 24M,該數(shù)值與最終產(chǎn)生的目標(biāo)代碼無關(guān),僅用于軟件模擬調(diào)試時顯示程序執(zhí)行時間。正確設(shè)置該數(shù)值可使顯示時間與實際所用時間一致,一般將其設(shè)置成與你的硬件所用晶振頻率相同,如果沒必要了解程序執(zhí)行的時間,也可以不設(shè)。
2)Memory Mode:用于設(shè)置 RAM 使用情況,有三個選擇項,Smal l:variables in DATA 是所有變量都在單片機(jī)的內(nèi)部 RAM 中;Compact:variables in PDATA 是可以使用一頁外部擴(kuò)展 RAM,而 Larget:variables in XDATA則是可以使用全部外部的擴(kuò)展 RAM,如圖所示。一般都是采用默認(rèn)方式,也就是Smal l:variables in DATA方式。
3)Code Rom Size: 用于設(shè)置 ROM 空間的使用,同樣也有三個選擇項,即 Small:program 2kor less模式,只用低于2K 的程序空間;Compact:2k functions,64k program 模式,單個函數(shù)的代碼量不能超過2K,整個程序可以使用 64K 程序空間;Larget:64k program 模式,可用全部 64K 空間,如圖所示。一般都是采用默認(rèn)方式,也就是Larget:64k program 模式。
4)Operating system: 項是操作系統(tǒng)選擇,Keil提供了兩種操作系統(tǒng):RTX-51 Tiny 和 RTR-51 Full,關(guān)于操作系統(tǒng)是另外一個很大的話題了,通常我們不使用任何操作系統(tǒng),即使用該項的默認(rèn)值:None(不使用任何操作系統(tǒng)),如圖所示。
5)Use on-chip ROM 選擇項,確認(rèn)是否僅使用片內(nèi) ROM(注意:選中該項并不會影響最終生成的目標(biāo)代碼量); Off-Chip Code memory 用以確定系統(tǒng)擴(kuò)展 ROM 的地址范圍,Off-Chip Xdata memory 組用于確定系統(tǒng)擴(kuò)展 RAM 的地址范圍,這些選擇項必須根據(jù)所用硬件來決定,由于該例是單片應(yīng)用,未進(jìn)行任何擴(kuò)展,所以均不重新選擇,按默認(rèn)值設(shè)置,如圖所示。
2、Output選項:
OutPut頁面設(shè)置對話框,如圖所示,這里面也有多個選擇項,
1) Creat Hex file用于生成可執(zhí)行代碼文件(可以用編程器寫入單片機(jī)芯片的 HEX 格式文件,文件的擴(kuò)展名為.HEX),默認(rèn)情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項,這一點(diǎn)是初學(xué)者易疏忽的,在此特別提醒注意。
2) Debug Information 將會產(chǎn)生調(diào)試信息,這些信息用于調(diào)試,如果需要對程序進(jìn)行調(diào)試,應(yīng)當(dāng)選中該項。
3) Browse Information 是產(chǎn)生瀏覽信息,該信息可以用菜單 view->Browse 來查看,這里取默認(rèn)值。
4) 按鈕“Select Folder for Objects…”是用來選擇最終的目標(biāo)文件所在的文件夾,默認(rèn)是與工程文件在同一個文件夾中。
5) Name of Executable:用于指定最終生成的目標(biāo)文件的名字,默認(rèn)與工程的名字相同,這兩項一般不需要更改。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |