版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章KEILC51軟件的使用2.1概述2.2Keil軟件界面2.3創(chuàng)建μVision3工程2.4利用μVision3調(diào)試器調(diào)試程序2.551單片機的燒錄2.6實踐訓(xùn)練—KEILC51軟件的使用2.7思考與練習(xí)本章要點仿真軟件是一種完全依靠軟件手段進(jìn)行開發(fā)的系統(tǒng),系統(tǒng)由計算機加模擬開發(fā)軟件構(gòu)成。其系統(tǒng)基本的工作原理事利用模擬開發(fā)軟件在計算機上實現(xiàn)對單片機的硬件模擬、指令模擬和運行模擬,不需要任何在線的仿真器和用戶機就可以完成軟件的開發(fā)全部過程。軟件的模擬調(diào)試功能很強,基本上包括了在線仿真器的單步、跟蹤、檢查和修改功能,并且還能模擬產(chǎn)生各種中斷和I/O應(yīng)答過程。因此開發(fā)者可以脫離硬件進(jìn)行軟件仿真,在完成全軟件的仿真調(diào)試以后,將程序燒錄到芯片以后,再將芯片插入硬件系統(tǒng),就完成了全部的開發(fā)工作。本章要點:μVision3開發(fā)環(huán)境μVision3的使用μVision3的調(diào)試單片機燒錄CONTNTS2.1概述
2.1概述01KeilμVision3IDE是一個窗口化的軟件開發(fā)平臺,它集可視化編程、編譯、調(diào)試、仿真于一體,支持51匯編、PLM和C語言的混合編程,界面友好、易學(xué)易用、功能強大。它具有功能強大的編輯器、工程管理器以及各種編譯工具(包括C編譯器、宏匯編器、鏈接/裝載器和十六進(jìn)制文件轉(zhuǎn)換器)。uVision3包含以下功能組件,能加速嵌入式應(yīng)用程序開發(fā)過程:(1)功能強大的源代碼編輯器。(2)可根據(jù)開發(fā)工具配置的設(shè)備數(shù)據(jù)庫。(3)用于創(chuàng)建和維護工程的工程管理器。(4)集匯編、編譯和鏈接過程于一體的編譯工具。(5)用于設(shè)置開發(fā)工具配置的對話框。(6)真正集成高速CPU及片上外設(shè)模擬器的源碼級調(diào)試器。(7)高級GDI接口,可用于目標(biāo)硬件的軟件調(diào)試和仿真器的連接。(8)用于下載應(yīng)用程序到FlashROM中的Flash編程器。(9)完善的的開發(fā)工具手冊、設(shè)備數(shù)據(jù)手冊和用戶向?qū)?。CONTNTS2.2Keil軟件界面2.2Keil軟件界面
022.2Keil軟件界面uVision3IDE提供了BuildMode(編譯)和DebugMode(調(diào)試)兩種工作模式。編譯模式BuildMode用于維護工程文件和生成應(yīng)用程序;調(diào)試模式DebugMode下,既可以用功能強大的CUP和外設(shè)仿真器測試程序,也可以使用調(diào)試器經(jīng)KeilULINKUSB-JTAG適配器(或其他AGDI驅(qū)動器)連接目標(biāo)系統(tǒng)來測試程序。ULINK仿真器能用于下載應(yīng)用程序到目標(biāo)系統(tǒng)的FlashROM中。2.2Keil軟件界面
022.2.1KeilμVision3IDE的工作界面KeilμVision3IDE軟件的安裝屬于標(biāo)準(zhǔn)Windows軟件安裝。安裝之后在桌面或者開始菜單中運行KeilμVision3IDE,啟動后的工作界面如圖2-1所示。工作區(qū)域主要分為:菜單工具欄、項目工作區(qū)、源碼編輯區(qū)和輸出提示區(qū)。圖2-1KeilμVision3IDE的工作界面2.2Keil軟件界面
022.2.2KeilμVision3IDE的菜單KeilμVision3IDE為用戶提供了可以快速選擇命令的工具欄和菜單條以及源代碼窗口、對話框窗口。菜單條提供各種操作命令菜單,用于編輯操作、項目維護、工具選項、程序調(diào)試、窗口選擇以及幫助。工具條按鈕和鍵盤快捷鍵允許快速執(zhí)行命令。在此一并列出菜單命令、工具按鈕、快捷鍵及其功能描述。2.2Keil軟件界面
021.File(文件)菜單和命令File(文件)菜單的命令和功能如表2-1所示。2.2Keil軟件界面
022.Edit(編輯)菜單和命令Edit(編輯)菜單的命令和功能如表2-2所示。2.2Keil軟件界面
022.2Keil軟件界面
023.Outlining菜單Outlining菜單在Edit→Outlining下,它可以對源文件進(jìn)行分組并隱藏分組。其菜單項條目如表2-3所示。2.2Keil軟件界面
024.Advanced(高級)菜單Advanced(高級)菜單在Edit→Advanced下,它擴展了編輯器的特性。其菜單項條目如表2-4所示。2.2Keil軟件界面
025.選擇文本命令在μVision3中,可以通過按住SHIFT并按住相應(yīng)的光標(biāo)鍵選擇文本。例如Ctrl+RightArrow可以將光標(biāo)移動到下一個單詞,Shift+Ctrl+RightArrow可以選擇從光標(biāo)的當(dāng)前位置到下一個單詞的開始。同樣可以使用鼠標(biāo)選擇文本,如表2-5所示。2.2Keil軟件界面
026.View(顯示)菜單和命令View(顯示)菜單命令和功能如不熬2-6所示。2.2Keil軟件界面
026.View(顯示)菜單和命令View(顯示)菜單命令和功能如不熬2-6所示。2.2Keil軟件界面
027.Project(工程)菜單和命令Project(工程)菜單命令和功能如表2-7所示。2.2Keil軟件界面
028.Debug(調(diào)試)菜單和命令Debug(調(diào)試)菜單命令和功能如表2-8所示。2.2Keil軟件界面
028.Debug(調(diào)試)菜單和命令Debug(調(diào)試)菜單命令和功能如表2-8所示。2.2Keil軟件界面
028.Debug(調(diào)試)菜單和命令Debug(調(diào)試)菜單命令和功能如表2-8所示。2.2Keil軟件界面
029.Flash(閃存)菜單Flash菜單可以配置和運行Flash編程設(shè)備。通過ConfigureFlashTools?/b>,可選擇并被配置編程工具。Flash菜單下的條目如表2-9所示。2.2Keil軟件界面
0210.Peripherals(外圍器件)菜單Peripherals(外圍器件)菜單如表2-10所示。2.2Keil軟件界面
0211.Tool(工具)菜單Tool菜單能夠配置和運行GimpelPC-Lint及自定義程序。通過Tools→CustomizeToolsMenu…,用戶程序可以添加到此菜單下。Tool菜單下的條目如表2-11所示。2.2Keil軟件界面
0212.SVCS(軟件版本控制系統(tǒng))菜單SVCS(軟件版本控制系統(tǒng))菜單的ConfigureVersionControl...命令,實現(xiàn)配置SVCS命令。13.Window(視窗)菜單Window(視窗)菜單和命令如表2-12所示。2.2Keil軟件界面
0213.Help(幫助)菜單Help(幫助)菜單和命令如表2-13所示。CONTNTS2.3創(chuàng)建μVision3工程2.3創(chuàng)建μVision3工程03μVision3集成的工程管理器使得開發(fā)的應(yīng)用程序更加容易。完整的創(chuàng)建應(yīng)用程序需要執(zhí)行以下步驟:選擇工具集(對基于ARM的工程);創(chuàng)建新的工程和選擇CPU;添加工作手冊;創(chuàng)建新的源文件;在工程里加入源文件;創(chuàng)建文件組;設(shè)置目標(biāo)硬件的工具選項;配置CPU啟動代碼;編譯工程和創(chuàng)建應(yīng)用程序代碼;為PROM編程創(chuàng)建HEX文件。2.3創(chuàng)建μVision3工程031.創(chuàng)建工程和選擇CPU單擊Project→NewμVisionProject….菜單項,μVision3將打開對話框,推薦對每個新建工程使用獨立的文件夾,在輸入工程名稱后即可創(chuàng)建一個新的工程。在ProjectWorkspace區(qū)域的Files選項卡里可以查閱項目結(jié)構(gòu),如圖2-2所示。圖2-2工作空間項目結(jié)構(gòu)2.3創(chuàng)建μVision3工程03此時μVision3會自動彈出對話框要求為目標(biāo)工程選擇CPU。對話框包含了μVision3的設(shè)備數(shù)據(jù)庫。在左側(cè)一欄選定公司和機型以后在右側(cè)一欄顯示對此單片機的基本說明。選擇將會為目標(biāo)設(shè)備設(shè)置必要的工具選項,通過這種方法可簡化工具配置。如圖圖2-3所示。由于使用的是8051系列單片機故選擇Atmel的AT89C51。對于某些設(shè)備,μVision3可能需要手動輸入一些附加的參數(shù)。圖2-3選擇目標(biāo)工程的CPU2.3創(chuàng)建μVision3工程03
2.加入啟動代碼嵌入式程序需要通過CPU的初始化代碼來配置目標(biāo)硬件。啟動代碼負(fù)責(zé)配置設(shè)備微處理器和初始化編譯器運行時系統(tǒng)。對于大部分設(shè)備來說,μVision3會提示復(fù)制CPU指定的啟動代碼到工程中去。由于這些文件可能需要作適當(dāng)?shù)男薷囊云ヅ淠繕?biāo)硬件,因此,應(yīng)當(dāng)將文件拷貝到工程文件夾中,如圖2-4所示。工程中需要使用這些啟動代碼,當(dāng)然選擇“是(Y)”,如果不使用Keil編寫啟動代碼可以選擇“否(N)”。圖2-4是否加入啟動代碼的對話框2.3創(chuàng)建μVision3工程033.添加工作手冊以上工作完成以后,可以在ProjectWorkspace中Books頁面里打開相應(yīng)的工具集以及設(shè)備的用戶手冊,如圖2-5所示。當(dāng)需要對手冊進(jìn)行添加,刪除,或者重新組織的時候,打開Project菜單下的Components,Environment,Books...進(jìn)入Books選項卡進(jìn)行修改。圖2-5用戶手冊2.3創(chuàng)建μVision3工程034.創(chuàng)建新的源文件選擇File菜單New或者點擊
圖標(biāo)以創(chuàng)建一個新的源文件,選項會打開一個空的編輯窗口,用戶可以在此窗口里輸入源代碼。然后點擊File菜單Save命令,以擴展名*.C保存文件,如圖2-6所示。圖2-6創(chuàng)建新文件2.3創(chuàng)建μVision3工程035.在工程里加入源文件源文件創(chuàng)建完后,需要在工程里加入這個文件。在工程工作區(qū)中,移動鼠標(biāo)選擇“SourceGroup1”然后點擊鼠標(biāo)右鍵,將彈出一個下拉窗口,如圖2-7所示。選擇AddFiles選項會打開一個標(biāo)準(zhǔn)的文件對話框,在對話框里選擇前面所創(chuàng)建的C源文件,然后點擊“Add”。這時文件已被添加到工程,再點擊“Close”關(guān)閉該對話框即可。文件被添加到工程后即可以開始編寫程序代碼了。除了添加程序代碼文件到工程外還可以添加頭文件(*.h)和庫文件(*.lib)。等。圖2-3-7添加文件到工作組中2.3創(chuàng)建μVision3工程03在ProjectWorkspace中Files頁面會列出用戶工程的文件組織結(jié)構(gòu),如圖2-8所示。用戶可以通過用鼠標(biāo)拖拉的方式來重新組織工程的源文件。雙擊工程工作空間的文件名,可以在編輯窗口打開相應(yīng)的源文件進(jìn)行編輯。圖2-8文件組織結(jié)構(gòu)2.3創(chuàng)建μVision3工程03此時輸入程序,這里以一個LED閃爍為例。2.3創(chuàng)建μVision3工程036.設(shè)置目標(biāo)工具選項在開始其它工作以前需要根據(jù)目標(biāo)硬件的實際情況對工程進(jìn)行配置。通過點擊目標(biāo)工具欄圖標(biāo)
或Project菜單下的OptionsforTarget,在彈出的Target頁面可指定目標(biāo)硬件和所選擇設(shè)備片內(nèi)組件的相關(guān)參數(shù),如圖2-9所示。圖2-9目標(biāo)設(shè)置對話框2.3創(chuàng)建μVision3工程03Target頁面選項說明如表2-14所示。2.3創(chuàng)建μVision3工程037.編譯工程單擊工具欄中BuildTarget圖標(biāo)可編譯鏈接工程文件。如果源程序中存在語法錯誤,μVision則會在OutputWindow→Build窗口中顯示出錯誤和警告信息。雙擊提示信息所在行,就會在μVision3編輯窗口里打開并顯示相應(yīng)的出錯源文件,光標(biāo)會定位在該文件的出錯行上,以方便用戶快速定位出錯位置。如圖2-10所示。單擊工具欄中BuildTarget按鈕只編譯修改過的源文件或者是新的源文件,并且會產(chǎn)生可執(zhí)行文件。使用RebuildTarget命令,則不管是否修改過,所有的源文件都會被編譯。圖2-10Build的提示信息2.3創(chuàng)建μVision3工程038.創(chuàng)建HEX文件應(yīng)用程序在調(diào)試通過后,在使用Flash編程工具時,用戶通常需要創(chuàng)建HEX文件,用于下載到EPROM編程器中或仿真器中。在OptionsforTarget→Output中選擇CreateHEXfile選項,μVision
3會在編譯過程中同時產(chǎn)生HEX文件,如圖2-11所示。圖2-11建立HEX文件對話框CONTNTS2.4利用μVision3調(diào)試器
調(diào)試程序2.4利用μVision3調(diào)試器調(diào)試程序04μVision3調(diào)試器可用于調(diào)試應(yīng)用程序。調(diào)試器提供了兩種操作模式:在PC機上調(diào)試所開發(fā)應(yīng)用程序的仿真模式;或者使用評估板/硬件平臺進(jìn)行的目標(biāo)調(diào)試。工作模式的選擇在圖2-12,OptionsforTarget的Debug對話框內(nèi)進(jìn)行。在沒有目標(biāo)硬件情況下,可以使用仿真器(Simulator)將μVision3調(diào)試器配置為軟件仿真器。它可以仿真微控器的許多特性,還可以仿真許多外圍設(shè)備包括串口、外部I/O口及時鐘等。所能仿真的外圍設(shè)備在為目標(biāo)程序選擇CPU時就被選定了。在目標(biāo)硬件準(zhǔn)備好之前,可用這種方式測試和調(diào)試嵌入式應(yīng)用程序。圖2-12Debug對話框2.4利用μVision3調(diào)試器調(diào)試程序04在沒有目標(biāo)硬件情況下,可以使用仿真器(Simulator)將μVision3調(diào)試器配置為軟件仿真器。它可以仿真微控器的許多特性,還可以仿真許多外圍設(shè)備包括串口、外部I/O口及時鐘等。所能仿真的外圍設(shè)備在為目標(biāo)程序選擇CPU時就被選定了。在目標(biāo)硬件準(zhǔn)備好之前,可用這種方式測試和調(diào)試嵌入式應(yīng)用程序。使用高級GDI驅(qū)動設(shè)備。μVision3已經(jīng)內(nèi)置了多種,如果使用其它的仿真器則需要首先安裝驅(qū)動程序,然后在此列表里面選取。在此也可配置與軟件Proteus的接口,使兩個軟件聯(lián)合工作。通過菜單命令Debug→Start/StopDebugSession或者工具欄
圖標(biāo),可以啟動/關(guān)閉μVision3的調(diào)試模式,如圖2-13所示。2.4利用μVision3調(diào)試器調(diào)試程序04圖2-13Debug工作界面2.4利用μVision3調(diào)試器調(diào)試程序04在調(diào)試過程中,若程序執(zhí)行停止,μVision3會打開一個顯示源文件的編輯窗口或顯示CPU指令的反匯編窗口,下一條要執(zhí)行的語句以黃色箭頭指示。在調(diào)試時,編輯模式下的許多特性仍然可用。如可以使用查找命令、修改程序中的錯誤,應(yīng)用程序中的源代碼也在同一個窗口中顯示。但調(diào)試模式與編輯模式有所不同:調(diào)試菜單與調(diào)試命令是可用的,其它的調(diào)試窗口和對話框,工程結(jié)構(gòu)或工具參數(shù)不能被修改,所有的編譯命令均不可用。調(diào)試時候Debug菜單下常用命令:Run、鍵盤F5:全速運行,直到運行到斷點時停止,等待調(diào)試指令。Stepinto、鍵盤F11:單步運行程序。每執(zhí)行一次,程序運行一條語句。對于一個函數(shù),程序指針將進(jìn)入到函數(shù)內(nèi)部。StartOver、鍵盤F10:單步跨越運行程序。與單步運行程序很相似,不同點使跨越當(dāng)前函數(shù),運行到函數(shù)的下一條語句。StepOutofcurrentFunction、鍵盤Ctrl+F11:跳出當(dāng)前函數(shù)。程序運行到當(dāng)前函數(shù)返回的下一條語句。RuntoCursorline、鍵盤Ctrl+F10:運行到當(dāng)前指針。程序?qū)龠\行,運行到光柵所在語句時將停止。StopRunning:停止全速運行。停止當(dāng)前程序的運行。2.4利用μVision3調(diào)試器調(diào)試程序04keil的調(diào)試工具按鈕如圖2-14,從左到右為:復(fù)位、全速運行、暫停、單步執(zhí)行、過程單步執(zhí)行、執(zhí)行完當(dāng)前子程序、運行到當(dāng)前行、下一狀態(tài)、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、1#串行窗口、內(nèi)存窗口、性能分析、工具按鈕。設(shè)置斷點的作用是當(dāng)程序全速運行時,需要在程序在不同的地方停止運行然后進(jìn)行單步調(diào)試,可以通過設(shè)置斷點來實現(xiàn)。斷點的設(shè)置只能在有效代碼處設(shè)置,如圖2-15所示則欄中的有效代碼深灰色處。圖2-14keil的調(diào)試工具按鈕圖2-15斷點的設(shè)置2.4利用μVision3調(diào)試器調(diào)試程序04將鼠標(biāo)移到有效代碼處,然后雙擊鼠標(biāo)左鍵就會出現(xiàn)一個紅色標(biāo)記,表示斷點已成功設(shè)置;鼠標(biāo)在紅色標(biāo)記處又雙擊鼠標(biāo)左鍵,紅色標(biāo)記消失,表示斷點已成功刪除。當(dāng)程序運行到設(shè)置的斷點的位置就停止運行。此時,可以打開View→Watch&CallStackWindow窗口,對程序中的數(shù)值進(jìn)行監(jiān)視,例如對i的值進(jìn)行監(jiān)視,如圖2-16所示。每按下一次Stepinto按鈕,i的數(shù)值增加一次。數(shù)值Value可以在十六進(jìn)制和十進(jìn)制之間選擇。同時也可以在ProjectWorkspace的regs內(nèi)看到運行時間,此例中此時的時間為0.0326秒,如圖2-17所示。如果要調(diào)整閃爍的時間間隔就可以調(diào)整x的數(shù)值,以達(dá)到調(diào)整閃爍時間的目的。圖2-16對數(shù)值i的監(jiān)視圖2-17仿真運行時間CONTNTS2.551單片機的燒錄2.551單片機的燒錄05在使用Keil編寫了單片機程序以后,使用Keil就可以進(jìn)行計算機仿真,在計算機仿真結(jié)束以后就需要進(jìn)行實際的燒錄工作。并且在擁有單片機實驗硬件的條件下,也可以將程序燒錄到單片機內(nèi)實際觀察運行結(jié)果。對初學(xué)者一般采用“程序完成后軟件仿真+單片機燒錄程序+試驗板通電實驗”的方法(現(xiàn)在的快閃型單片機其程序可燒寫
1000次以上),進(jìn)行學(xué)習(xí)。在這里對STC系列的單片機燒錄軟件STC-ISPV3.9的使用方法進(jìn)行進(jìn)行介紹。1.硬件系統(tǒng)的安裝首先將單片機電路板的串口使用串口連接線和計算機的串口連接起來,然后將單片機芯片安裝在40針緊固插座上。單片機電路板的電源可以使用電源適配器連接到220V市電上,產(chǎn)生+5V電源。也可以使用USB連接線連接到計算機的USB接口上,使用計算機USB的5V電源。2.551單片機的燒錄052.軟件系統(tǒng)的安裝運行STC-ISPV3.9安裝目錄里的Setup文件,按照提示進(jìn)行安裝。默認(rèn)安裝路徑在的位置。也可以使用STC_ISP_V3.9免安裝版本。把其解壓縮到任意目錄中,這里也解壓縮到C:\ProgramFiles\STC_ISP_V3.9\目錄。在開始菜單的程序中運行STC_ISP_V3.9,或者到STC_ISP_V3.9安裝目錄里面運行STC-ISPV391.exe,即出現(xiàn)如圖2-18所示的界面。程序的界面主要分為兩個部分:左面部分為軟件的燒錄部分。右面提供了一些常用的工具、以及軟件的設(shè)置。2.551單片機的燒錄05圖2-18STC-ISPV391界面2.551單片機的燒錄05在進(jìn)行燒錄以前需要首先連接硬件設(shè)備,把單片機電路板的USB和串口都連接到電腦上。暫時不用打開電源。然后進(jìn)行軟件的操作?!?】首先選擇電路板上單片機的信號,在MCUType中有5個系列單片機的型號,分別為89Cx51RC/RD+系列、12C2052系列、12C5410系列、89C16RD系列和89LE516AD系列。如圖2-19所示。在左側(cè)的“+”展開后選擇目標(biāo)機器上使用的MCU的具體型號。APMemory中顯示所選用型號的內(nèi)存范圍。圖2-19選擇燒錄單片機的型號2.551單片機的燒錄05【2】打開需要寫入的文件。點擊“OpenFile/打開文件”,此軟件支持后綴為.hex十六進(jìn)制的文件和后綴為.bin的二進(jìn)制文件。在對話框中找到需要寫入的文件,點擊“確定”,如圖2-20所示。圖2-20打開將要燒錄的文件2.551單片機的燒錄05【3】選擇串行口,設(shè)置波特率。COM的下拉菜單中有16個COM口。旁邊的綠色燈指示串口開關(guān)情況。當(dāng)端口打開時候綠燈點亮。選擇與單片機連接的COM口。如果對使用的串口號碼不清楚,可以在打開計算機的“設(shè)備管理器”查看“端口”一項,防止端口沖突。如圖2-21、2-22所示。圖2-21設(shè)置燒錄端口圖2-22檢查設(shè)備管理器內(nèi)的端口號碼2.551單片機的燒錄05最高波特率通過查詢所連接串口的速率確定。查看的方法是,雙擊單片機連接的串口,打開“通訊端口(COM1)屬性”對話框,選取“端口設(shè)置”選項卡。如圖2-23所示。這里最高波特率選擇“9600”,最低波特率不用設(shè)置。圖2-23檢查設(shè)備管理器內(nèi)的端口傳輸速率2.551單片機的燒錄05【4】倍速設(shè)置。這里可以選擇單倍速或者雙倍速、放大器的增益等項目。對于“下次冷啟動P1.0,P1.1”下部的狀態(tài)框有明確的說明,不再累述。一般使用默認(rèn)值“與下載無關(guān)”。如圖2-24所示。圖2-24倍速設(shè)置2.551單片機的燒錄05【5】下載。下載區(qū)域如圖2-25所示,此時需要注意的是先打開“下載”按鈕以后,再打開單片機電源,進(jìn)行冷啟動。一般情況下,每次需要寫入的時候都需要遵守先“下載”后“上電”的順序操作。操作時候在信息框反映出來工作情況,如圖2-25所示。下面的單選“當(dāng)目標(biāo)代碼發(fā)生變化后自動調(diào)入文件,并立即發(fā)送下載命令”含義為,對第二步中所選定的文件進(jìn)行檢測,當(dāng)發(fā)現(xiàn)文件被重新生成就開始下載,此時需要做的就是重新冷啟動單片機,新的程序就被燒錄入單片機,如圖2-26所示。圖2-25倍速設(shè)置圖2-26下載設(shè)置2.551單片機的燒錄05在主界面的右上部提供了幾個常用的工具“文件緩沖區(qū)”、“串口調(diào)試助手”、“工程文件”等實用工具。如圖2-27所示。右下部分是軟件設(shè)置以及高級應(yīng)用。圖2-27實用工具CONTNTS2.6實踐訓(xùn)練—KEILC51軟件的使用2.6實踐訓(xùn)練—KEILC51軟件的使用062.6.1訓(xùn)練概述學(xué)習(xí)一種編程語言,最重要的是建立一個練習(xí)環(huán)境,邊學(xué)邊練才能學(xué)好。Keil軟件是目前最流行開發(fā)8051系列單片機的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部份組合在一起。下面通過使P1口所接LED以流水燈狀態(tài)顯示的例子完成KEILC51軟件的使用。2.6.2應(yīng)用環(huán)境程序調(diào)試和仿真。2.6實踐訓(xùn)練—KEILC51軟件的使用062.6.3實現(xiàn)過程1.Keil工程的建立要使用Keil軟件,首先要正確安裝Keil軟件,該軟件的Eval版本可以直接去下載,安裝時選擇EvalVision,其它步驟與一般Windows程序安裝類似,這里就不再贅述了。安裝完成后,將Ledkey.dll文件復(fù)制到Keil安裝目錄下的C51\BIN文件夾下,這是作者提供的鍵盤與LED實驗仿真板,可與Keil軟件配合,在計算機上模擬LED和按鍵的功能。啟動μVison,點擊“File→New…”在工程管理器的右側(cè)打開一個新的文件輸入窗口,在這個窗口里輸入源程序,注意大小寫及每行后的分號,不要錯輸及漏輸。輸入完畢之后,選擇“File?Save”,給這個文件取名保存,取名字的時候必須要加上擴展名,一般C語言程序均以“.C”為擴展名,這里將其命名為exam2.c,保存完畢后可以將該文件關(guān)閉。Keil不能直接對單個的C語言源程序進(jìn)行處理,還必須選擇單片機型號;確定編譯、匯編、連接的參數(shù);指定調(diào)試的方式;而且一些項目中往往有多個文件,為管理和使用方便,Keil使用工程(Project)這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個工程中,只能對工程而不能對單一的源程序進(jìn)行編譯和連接等操作。2.6實踐訓(xùn)練—KEILC51軟件的使用06點擊“Project→NewProject…”菜單,出現(xiàn)對話框,要求給將要建立的工程起一個名字,這里起名為exam2,不需要輸入擴展名。點擊“保存”按鈕,出現(xiàn)第二個對話框,如圖2-28所示,這個對話框要求選擇目標(biāo)CPU(即你所用芯片的型號),Keil支持的CPU很多,這里選擇Atmel公司的89S52芯片。點擊ATMEL前面的“+”號,展開該層,點擊其中的89S52,然后再點擊“確定”按鈕,回到主窗口,此時,在工程窗口的文件頁中,出現(xiàn)了“Target1”,前面有“+”號,點擊“+”號展開,可以看到下一層的“SourceGroup1”,這時的工程還是一個空的工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入,點擊“SourceGroup1”使其反白顯示,然后,點擊鼠標(biāo)右鍵,出現(xiàn)一個下拉菜單,如圖2-29所示,選中其中的“AddfiletoGroup”SourceGroup1”,出現(xiàn)一個對話框,要求尋找源文件。2.6實踐訓(xùn)練—KEILC51軟件的使用06圖2-28選擇單片機型號圖2-29加入文件2.6實踐訓(xùn)練—KEILC51軟件的使用06雙擊exam2.c文件,將文件加入項目,注意,在文件加入項目后,該對話框并不消失,等待繼續(xù)加入其它文件,但初學(xué)時常會誤認(rèn)為操作沒有成功而再次雙擊同一文件,這時會出現(xiàn)如圖2-30所示的對話框,提示你所選文件已在列表中,此時應(yīng)點擊“確定”,返回前一對話框,然后點擊“Close”即可返回主接口,返回后,點擊“SourceGroup1”前的加號,exam3.c文件已在其中。雙擊文件名,即打開該源程序。圖2-30重復(fù)加入源程序得到的提示2.6實踐訓(xùn)練—KEILC51軟件的使用062.工程的詳細(xì)設(shè)置工程建立好以后,還要對工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。首先點擊左邊Project窗口的Target1,然后使用菜單“Project->Optionfortarget‘target1’”即出現(xiàn)對工程設(shè)置的對話框,這個對話框共有8個頁面,大部份設(shè)置項取默認(rèn)值就行了。(1)Target頁如圖2-31所示,Xtal后面的數(shù)值是晶振頻率值,默認(rèn)值是所選目標(biāo)CPU的最高可用頻率值,該值與最終產(chǎn)生的目標(biāo)代碼無關(guān),僅用于軟件模擬調(diào)試時顯示程序執(zhí)行時間。正確設(shè)置該數(shù)值可使顯示時間與實際所用時間一致,一般將其設(shè)置成與你的硬件所用晶振頻率相同,如果沒必要了解程序執(zhí)行的時間,也可以不設(shè)。2.6實踐訓(xùn)練—KEILC51軟件的使用06圖2-31設(shè)置目標(biāo)2.6實踐訓(xùn)練—KEILC51軟件的使用06MemoryModel用于設(shè)置RAM使用情況,有三個選擇項:Small:
所有變量都在單片機的內(nèi)部RAM中;Compact:可以使用一頁(256字節(jié))外部擴展RAM;Larget:
可以使用全部外部的擴展RAM。CodeModel用于設(shè)置ROM空間的使用,同樣也有三個選擇項:Small:只用低于2K的程序空間;Compact:單個函數(shù)的代碼量不能超過2K,整個程序可以使用64K程序空間;Larget:可用全部64K空間;這些選擇項必須根據(jù)所用硬件來決定,由于本例是單片應(yīng)用,所以均不重新選擇,按默認(rèn)值設(shè)置。Operating:選擇是否使用操作系統(tǒng),可以選擇Keil提供了兩種操作系統(tǒng):Rtxtiny和Rtxfull,也可以不用操作系統(tǒng)(None),這里使用默認(rèn)項None,即不用操作系統(tǒng)。2.6實踐訓(xùn)練—KEILC51軟件的使用06(2)OutPut頁如圖2-32所示,這里面也有多個選擇項,其中CreatHexfile用于生成可執(zhí)行代碼文件,該文件可以用編程器寫入單片機芯片,其格式為intelHEX格式,文件的擴展名為.HEX,默認(rèn)情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項。工程設(shè)置對話框中的其它各頁面與C51編譯選項、A51的匯編選項、BL51連接器的連接選項等用法有關(guān),這里均取默認(rèn)值,不作任何修改圖2-32設(shè)置輸出文2.6實踐訓(xùn)練—KEILC51軟件的使用06(3)Listing頁該頁用于調(diào)整生成的列表文件選項。在匯編或編譯完成后將產(chǎn)生(*.lst)的列表文件,在連接完成后也將產(chǎn)生(*.m51)的列表文件,該頁用于對列表文件的內(nèi)容和形式進(jìn)行細(xì)致的調(diào)節(jié),其中比較常用的選項是“CCompileListing”下的“AssambleCode”項,選中該項可以在列表文件中生成C語言源程序所對應(yīng)的匯編代碼,建議會使用匯編語言的C初學(xué)者選中該項,在編譯完成后多觀察相應(yīng)的List文件,查看C源代碼與對應(yīng)匯編代碼,對于提高C語言編程能力大有好處。2.6實踐訓(xùn)練—KEILC51軟件的使用06(4)C51頁該頁用于對Keil的C51編譯器的編譯過程進(jìn)行控制,其中比較常用的是“CodeOptimization”組,如圖2-33所示,該組中Level是優(yōu)化等級,C51在對源程序進(jìn)行編譯時,可以對代碼多至9級優(yōu)化,默認(rèn)使用第8級,一般不必修改,如果在編譯中出現(xiàn)一些問題,可以降低優(yōu)化級別試一試。Emphasis是選擇編譯優(yōu)先方式,第一項是代碼量優(yōu)化(最終生成的代碼量?。?;第二項是速度優(yōu)先(最終生成的代碼速度快);第三項是缺省。默認(rèn)采用速度優(yōu)先,可根據(jù)需要更改。圖2-33C51編譯器選項2.6實踐訓(xùn)練—KEILC51軟件的使用06(5)Debug頁該頁用于設(shè)置調(diào)試器,Keil提供了仿真器和一些硬件調(diào)試方法,如果沒有相應(yīng)的硬件調(diào)試器,應(yīng)選擇UseSimulator,其余設(shè)置一般不必更改,有關(guān)該頁的詳細(xì)情況將在程序調(diào)試部分再詳細(xì)介紹。至此,設(shè)置完成,下面介紹如何編譯、連接程序以獲得目標(biāo)代碼,以及如何進(jìn)行程序的調(diào)試工作。2.6實踐訓(xùn)練—KEILC51軟件的使用063.編譯、連接下面我們通過使P1口所接LED以流水燈狀態(tài)顯示例子來介紹C程序編譯、連接的過程。這個例子使P1口所接LED以流水燈狀態(tài)顯示。將下面的源程序輸入,命名為exam3.c,并建立名為exam3的工程文件,將exam3.c文件加入該工程中,設(shè)置工程,在Target頁將Xtal后的值由24.0改為12.0,以便后面調(diào)試時觀察延時時間是否正確,本項目中還要用到實驗仿真板,為此需在Debug頁對DialogDLL對話框作一個設(shè)置,在進(jìn)行項目設(shè)置時點擊Debug,打開Debug頁,可以看到DialogDLL對話框后的Parmeter:輸入框中已有默認(rèn)值-pAT52,在其后鍵入空格后再輸入-dledkey,如圖2-34所示。2.6實踐訓(xùn)練—KEILC51軟件的使用06圖2-34Debug選項設(shè)置2.6實踐訓(xùn)練—KEILC51軟件的使用06/**************************************************;流水燈程序**************************************************/#include"reg51.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedint
/*延時程序
由Delay參數(shù)確定延遲時間*/voidmDelay(unsignedintDelay){unsignedinti;for(;Delay>0;Delay--){for(i=0;i<124;i++){;}}}
voidmain(){unsignedcharOutData=0xfe;for(;;){P1=OutData;OutData=_crol_(OutData,1);//循環(huán)左移mDelay(1000);/*延時1000毫秒*/}}2.6實踐訓(xùn)練—KEILC51軟件的使用06設(shè)置好工程后,即可進(jìn)行編譯、連接。選擇菜單Project->Buildtarget,對當(dāng)前工程進(jìn)行連接,如果當(dāng)前文件已修改,將先對該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼;如果選擇RebuildAlltargetfiles將會對當(dāng)前工程中的所有文件重新進(jìn)行編譯然后再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的,而Translate….項則僅對當(dāng)前文件進(jìn)行編譯,不進(jìn)行連接。以上操作也可以通過工具欄按鈕直接進(jìn)行。圖2-35是有關(guān)編譯、設(shè)置的工具欄按鈕,從左到右分別是:編譯、編譯連接、全部重建、停止編譯和對工程進(jìn)行設(shè)置。圖2-35有關(guān)編譯、連接、項目設(shè)置的工具條2.6實踐訓(xùn)練—KEILC51軟件的使用06編譯過程中的信息將出現(xiàn)在輸出窗口中的Build頁中,如果源程序中有語法錯誤,會有錯誤報告出現(xiàn),雙擊該行,可以定位到出錯的位置,對源程序修改之后再次編譯,最終要得到如圖2-36所示的結(jié)果,提示獲得了名為exam3.hex的文件,該文件即可被編程器讀入并寫到芯片中,同時還可看到,該程序的代碼量(code=63),內(nèi)部RAM的使用量(data=9),外部RAM的使用量(xdata=0)等一些信息。除此之外,編譯、連接還產(chǎn)生了一些其它相關(guān)的文件,可被用于Keil的仿真與調(diào)試,到了這一步后即進(jìn)行調(diào)試。圖2-36編譯、連接后得到目標(biāo)代碼2.6實踐訓(xùn)練—KEILC51軟件的使用064.程序的調(diào)試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025四川成都市武侯區(qū)望江路社區(qū)衛(wèi)生服務(wù)中心招聘醫(yī)學(xué)影像學(xué)醫(yī)師、護士2人備考題庫及答案詳解參考
- 2025西北工業(yè)大學(xué)國際合作處招聘備考題庫及答案詳解(奪冠系列)
- 2026天津天女化工集團股份有限公司校園招聘5人備考題庫及答案詳解1套
- 2026廣西梧州市衛(wèi)生幼兒園招聘1人備考題庫及1套參考答案詳解
- 2026廣西國土規(guī)劃集團團隊帶頭人招聘5人備考題庫及1套完整答案詳解
- 2026吉林白城市通榆縣旅游服務(wù)中心選調(diào)事業(yè)編制人員3人備考題庫參考答案詳解
- 2025福建泉州市惠安縣宏福殯儀服務(wù)有限公司招聘5人備考題庫及完整答案詳解一套
- 2026江蘇連云港東海高新區(qū)產(chǎn)業(yè)投資集團有限公司及子公司招聘專業(yè)技術(shù)人員4人備考題庫及完整答案詳解
- 2026河南濮陽市市直機關(guān)遴選公務(wù)員15人備考題庫含答案詳解
- 未來五年綜合型廣告?zhèn)髅狡髽I(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 大數(shù)據(jù)安全技術(shù)與管理
- 2026年中小學(xué)校長校園安全管理培訓(xùn)考試題及答案
- 2025年山東建筑大學(xué)思想道德修養(yǎng)與法律基礎(chǔ)期末考試模擬題必考題
- 江西省贛州地區(qū)2023-2024學(xué)年七年級上學(xué)期期末英語試(含答案)
- 2025年香港滬江維多利亞筆試及答案
- 述職報告中醫(yī)
- 患者身份識別管理標(biāo)準(zhǔn)
- 松下Feeder維護保養(yǎng)教材
- 汽車融資貸款合同范本
- 碼頭租賃意向協(xié)議書
- 初一語文2025年上學(xué)期現(xiàn)代文閱讀真題(附答案)
評論
0/150
提交評論