二、操作步驟:
1、首先我們要養成一個習慣:最好先建立一個空文件夾,把您的工程文件放到里面,以避免和其他文件混合。比如:E:\code\exam
2、 單擊桌面上的
,打開keil。

3、建立項目(工程):
(1)新建立工程(Project -> New uVision Project),如圖示:

(2)選擇工程要保存的路徑,輸入并保存工程文件名。

Keil的一個工程里通常含有很多小文件。為了方便管理,通常我們將一個工程放在一個獨立文件夾下,比如保存到exam1文件夾,工程文件的名字為exam1,如圖所示,然后單擊【保存】按鈕。工程建立后,此工程名變為 exam1.uv2。
(3)選擇芯片型號
保存之后出現如下對話框,在這個對話框要求選擇目標CPU (即你所用單片機芯片的型號)。

Keil C51幾乎支持所有的51內核的單片機,我們選擇 Atmel 公司的 AT89C52 (根據具體設計選)芯片。點擊 ATMEL 前面的“+”號,展開該層,點擊其中的 AT89C52,如下圖所示,然后再點擊“OK”按鈕,完成選擇 MCU 型號。

在完成選擇MCU 型號后,軟件會提示我們是否要復制一個源文件到這個工程中,這里我們選擇“否”,因為我要自己添加一個C語言或者匯編語言源文件,如下圖所示。

在執行上一步后,就能在如下圖工程窗口的文件頁中,出現了“Target 1”,如下圖,前面有“+”號,點擊“+”號展開,可以看到下一層的“Source Group1”,這時的工程還是一個空的工程,里面什么文件也沒有,到這里一個基礎的工程就完成了,但需要使用還不夠,還需要下面的步驟。

4、源文件的建立:
(1)新建:使用菜單“File->New”,或者點擊工具欄的新建文件快捷按鈕,就可以在項目窗口的右側打開一個新的文本編緝窗口。
此時,在編輯窗口中光標閃爍,等待你輸入。

(2)輸入:在下面空白區別寫入或復制一個完整的C程序::

(3)保存:使用菜單“File->save”,或者點擊工具欄的快捷按鈕。
注意:
1)一定要選擇保存在建立工程時建立的文件夾下,這樣有利于設計者查找該文件,也有利于管理。
2)為了好管理文件一般源文件名和工程名一致(也可以不一樣),文件后綴名為“.asm 或.c”,其中“.asm”代表建立的是匯編語言源文件,“.c”代表建立的是C語言源文件。

5、將源文件添加到工程中:
建立好的工程和建立好的程序源文件其實是兩個相互獨立,一個單片機工程是要將源文件和工程聯系到一起的。
(1)點擊軟件界面工程窗口左上角的“Source Group1”使其反白顯示,然后,點擊鼠標右鍵,出現一個下拉菜單,選中其中的“Add file to Group Source Group1”,如圖所示。

在執行上面的步驟后會出現一個對話框,如下圖所示,要求尋找源文件,選中文件,單擊“Add“。

注意:
1)該對話框下面的“文件類型”默認為 C source file(*.c),也就是以 C 為擴展名的文件。
2)注意,在文件加入項目后,該對話框并不消失,等待繼續加入其它文件,但初學時常會誤認為操作沒有成功而再次雙擊同一文件,這時會出現如下圖所示的對話框,提示你所選文件已在列表中(有的沒有這個窗口,不用管,直接單擊“close”即可)。
然后點擊“Close”即可返回主界面,返回后,點擊“SourceGroup 1”前的加號,會發現 exam1.c 文件已在其中。雙擊文件名exam1.c,即打開該源程序。

6、配置工程
配置工程對于初學者來說,大部分內容只需要默認即可,這里只講述幾個常見的配置,能滿足基本的功能。
之前工程建立好,之后還要對工程進行進一步的設置,以滿足要求。
(1)點擊左上邊的Project窗口的 Target 1,然后使用菜單“Project->Option for target‘target1’”(工程目標選項),如下圖所示,也可以按快捷鍵“Alt+F7”來完成。

在進行上面的操作后就會出現對工程設置的對話框,這個對話框可謂非常復雜,共有8 個頁面,要全部搞清可不容易,好在絕大部份設置項取默認值就行了,如圖所示。
1)Target選項: 設置晶振:12MHZ

2)Output選項:
勾選上【Project -> Options for Target -> Output】“Create HEX File”即可。

7、編譯、連接:
1)選擇菜單 Project->Build target,對當前工程進行連接,如果當前文件已修改,軟件會先對該文件進行編譯,然后再連接以產生目標代碼;如果選擇 Rebuild All target files 將會對當前工程中的所有文件重新進行編譯然后再連接,確保最終生產的目標代碼是最新的,而“Translate”? .項則僅對該文件進行編譯,不進行連接,

2)以上操作也可以通過工具欄按鈕直接進行。下圖是有關編譯、設置的工具欄按鈕,從左到右分別是:編譯、編譯連接、全部重建、停止編譯和對工程進行設置。
![]()
編譯當前文件(單個) Ctrl + F7
編譯目標文件(修改過的) 并生成應用程序供單片機直接下載 F7
編譯所有目標文件(重新編譯) 并生成應用程序供單片機直接下載 無
3)編譯過程中的信息將出現在如下的輸出窗口中的Build頁中,如果源程序中有語法錯誤,會有錯誤文檔出現,雙擊該行,可以定位到出錯的位置,對源程序反復修改之后,最終會得到如下圖所示的結果(提示獲得了名為exam1.hex 的文件),該文件即可被編程器讀入并寫到芯片中,同時還產生了一些其它相關的文件,可被用于 Keil 的仿真與調試,這時可以進入下一步調試的工作。

8、調試
1)對工程成功地進行匯編、連接以后,按 Ctrl+F5 或者使用菜單Debug->Start/Stop Debug Session”, 進入調試狀態。


進入調試狀態后,界面與編緝狀態相比有明顯的變化,Debug 菜單項中原來不能用的命令現在已可以使用了,工具欄會多出一個用于運行和調試的工具條,如下圖所示, Debug 菜上的大部份命令可以在此找到對應的快捷按鈕,從左到右依次是復位、運行、暫停、單步、過程單步、執行完當前子程序、運行到當前行、下一狀態、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、1#串行窗口、內存窗口、性能分析、工具按鈕等命令。
![]()
復位:將程序復位到主函數的最開始處,準備重新運行程序;
全速運行:運行程序時中間不停止。
停止全速運行:全速運行程序時激活該按鈕,用來停止正全速運行的程序。
進入子函數內部。
單步執行代碼:它不會進入子函數內部,可直接跳過函數。
跳出當前進入的函數:只有進入子函數內部該按鈕才被激活。
程序直接運行至當前光標所在行。
顯示/隱藏編譯窗口:可以查看每句C語言編譯后所對應的匯編代碼。
顯示/隱藏變量觀察窗口:可以查看各個變量值的變化狀態
大家不妨把這些按鈕一個個都單擊試試看,只有親自操作過了記憶才會深刻。
1使用快捷鍵F11可以單步執行程序,每按一次 F11,即執行該箭頭所指程序行,然后箭頭指向下一行,逐行調試。
(
注意1:使用F11 可以單步執行程序,使用F10 可以以過程單步形式執行命令,所謂過程單步,是指將高級語言中的函數作為一個語句來全速執行。
注意2:單步執行與全速運行。
全速執行:指一行程序執行完以后緊接著執行下一行程序,中間不停止,這樣程序執行的速度很快,并可以看到該段程序執行的總體效果,即最終結果正確還是錯誤,但如果程序有錯,則難以確認錯誤出現在哪些程序行。
單步執行:每次執行一行程序,執行完該行程序以后即停止,等待命令執行下一行程序,此時可以觀察該行程序執行完以后得到的結果,是否與我們寫該行程序所想要得到的結果相同,借此可以找到程序中問題所在。程序調試中,這兩種運行方式都要用到。
)

觀察端口情況:
單擊Peripherals ----I/O-Ports---Port1菜單,在打開的小框里通過調試觀察端口變化情況。

2單擊Debug----Reset CPU可以復位。

3停止調試:
再次單擊Debug->Start/Stop Debug Session,即可終止調試。

三、工程詳細設置(可以不看)
工程建立好以后,還要對工程進行進一步的設置,以滿足要求。
首先點擊左上邊的 Project窗口的 Target 1,然后使用菜單“Project->Option for target‘target1’”,如下圖所示,也可以按快捷鍵“Alt+F7”來完成。

在進行上面的操作后就會出現對工程設置的對話框,這個對話框可謂非常復雜,共有 8 個頁面,要全部搞清可不容易,好在絕大部份設置項取默認值就行了,如圖所示。

1、Target選項:
1)Xta:后面的數值是晶振頻率值,默認值是所選目標 CPU的最高可用頻率值,對于我們所選的AT89C51 而言是 24M,該數值與最終產生的目標代碼無關,僅用于軟件模擬調試時顯示程序執行時間。正確設置該數值可使顯示時間與實際所用時間一致,一般將其設置成與你的硬件所用晶振頻率相同,如果沒必要了解程序執行的時間,也可以不設。
2)Memory Mode:用于設置 RAM 使用情況,有三個選擇項,Smal l:variables in DATA 是所有變量都在單片機的內部 RAM 中;Compact:variables in PDATA 是可以使用一頁外部擴展 RAM,而 Larget:variables in XDATA則是可以使用全部外部的擴展 RAM,如圖所示。一般都是采用默認方式,也就是Smal l:variables in DATA方式。
3)Code Rom Size: 用于設置 ROM 空間的使用,同樣也有三個選擇項,即 Small:program 2kor less模式,只用低于2K 的程序空間;Compact:2k functions,64k program 模式,單個函數的代碼量不能超過2K,整個程序可以使用 64K 程序空間;Larget:64k program 模式,可用全部 64K 空間,如圖所示。一般都是采用默認方式,也就是Larget:64k program 模式。
4)Operating system: 項是操作系統選擇,Keil提供了兩種操作系統:RTX-51 Tiny 和 RTR-51 Full,關于操作系統是另外一個很大的話題了,通常我們不使用任何操作系統,即使用該項的默認值:None(不使用任何操作系統),如圖所示。
5)Use on-chip ROM 選擇項,確認是否僅使用片內 ROM(注意:選中該項并不會影響最終生成的目標代碼量); Off-Chip Code memory 用以確定系統擴展 ROM 的地址范圍,Off-Chip Xdata memory 組用于確定系統擴展 RAM 的地址范圍,這些選擇項必須根據所用硬件來決定,由于該例是單片應用,未進行任何擴展,所以均不重新選擇,按默認值設置,如圖所示。
2、Output選項:
OutPut頁面設置對話框,如圖所示,這里面也有多個選擇項,
1) Creat Hex file用于生成可執行代碼文件(可以用編程器寫入單片機芯片的 HEX 格式文件,文件的擴展名為.HEX),默認情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項,這一點是初學者易疏忽的,在此特別提醒注意。
2) Debug Information 將會產生調試信息,這些信息用于調試,如果需要對程序進行調試,應當選中該項。
3) Browse Information 是產生瀏覽信息,該信息可以用菜單 view->Browse 來查看,這里取默認值。
4) 按鈕“Select Folder for Objects…”是用來選擇最終的目標文件所在的文件夾,默認是與工程文件在同一個文件夾中。
5) Name of Executable:用于指定最終生成的目標文件的名字,默認與工程的名字相同,這兩項一般不需要更改。

單片機實驗1---keil步驟.docx
(1.95 MB, 下載次數: 69)
LED流水燈.docx
(13 KB, 下載次數: 33)
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |