單片機C語言開發詳解 Keil C單片機開發環境_第1頁
單片機C語言開發詳解 Keil C單片機開發環境_第2頁
單片機C語言開發詳解 Keil C單片機開發環境_第3頁
單片機C語言開發詳解 Keil C單片機開發環境_第4頁
單片機C語言開發詳解 Keil C單片機開發環境_第5頁
已閱讀5頁,還剩56頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會計學1單片機C語言開發詳解KeilC單片機開發環境4.1C語言編程基礎KeilC51的開發方法其實和大家學習的C語言基本相同,本節介紹C51的開發,內容和C語言的基礎知識差不多,由于篇幅有限,如需要深入了解的讀者可以參考一些C語言的教程。第1頁/共61頁4.1.1C51程序的基本結構C51源程序結構與一般C語言基本一致,C51源程序文件的擴展名為".c",如Add.c、Max.c等。一個C51源程序大體上是一個函數定義的集合,在這個集合中有且僅有一個名為main()的函數,也稱為該程序的主函數。主函數是程序的入口,它是一個特殊的函數,程序的執行都是從main()函數開始的。主函數中的所有語句執行完畢,則程序執行結束。第2頁/共61頁4.1.2標識符與關鍵字標識符是用來標識源程序中某個對象的名字的,這些對象可以是語句、數據類型、函數、變量、數組等等。C語言是區分大小寫的一種高級語言,如果要定義一個定時器1,可以寫做“Timer1”,如果程序中有"TIMER1",那么這兩個是完全不同定義的標識符。標識符由字符串、數字和下劃線等組成,需要注意的是,第一個字符必須是字母或下劃線,類似“1Timer”的定義是錯誤的,編譯時便會有錯誤提示。有些編譯系統專用的標識符以下劃線開頭,所以除了在定義專業標識符以外,一般不要以下劃線開頭命名標識符。第3頁/共61頁4.1.3數據類型數據在計算機內存中的存放情況由數據結構決定。C語言的數據結構是以數據類型決定的,數據類型可分為基本數據類型和復雜數據類型,復雜數據類型是由基本數據類型構造而成的。在標準C語言中基本的數據類型為char、int、short、long、float和double,而在C51編譯器中int和short相同,float和double相同。第4頁/共61頁4.1.4常量與變量在程序運行過程中不能改變值的量稱為常量,在程序運行過程中不斷變化的量稱為變量。可以使用所有C51編譯器支持的數據類型定義一個變量,而常量的數據類型只限于整型、浮點型、字符型、字符串型和位標量。第5頁/共61頁4.1.5函數一個好的C語言程序應該把一個大問題劃分成若干子問題,解決一個子問題對應編制一個函數,C程序一般是由大量的小函數而不是由少量大函數構成的。使用函數帶來的好處是程序各部分相互充分獨立,任務單一。函數提供了編制程序的手段,使之容易讀、寫、理解、排除錯誤、修改和維護。這些獨立的小模塊也可以作為一種固定規格的程序,用來組成新的大程序,使得程序的可移植性和可重用性能大大提高。一些較常用的函數時,只要將其保存在函數庫里,在以后的編程中可被方便地調用而不需要再去編譯它們,連接時將會自動從相應的庫中裝配成所需程序。第6頁/共61頁4.1.6數組與指針數組是指具有相同數據類型的變量集合,擁有共同的名字。數組中的每個特定元素都使用下標來訪問。數組存放在一段連續的存儲地址中,第一個數組元素存放于最低的地址,最高的地址對應最后一個數組元素。數組有一維的和多維的,下面分別介紹。(1)一維數組一維數組的聲明格式是:類型變量名[長度]類型是指數據類型,即每一個數組元素的數據類型,包括整數型、浮點型、字符型、指針型以及結構和聯合。第7頁/共61頁4.1.6結構體與聯合體結構體是一種由基本數據類型構成、并用一個標識符來命名的各種變量的組合。結構體中可以使用不同的數據類型。在KeilC51中,結構體也是一種數據類型,可以使用結構體變量,因此,與其他類型的變量一樣,在使用結構體變量時要先對其定義。定義結構體變量的一般格式如下:struct結構體名{類型變量名;類型變量名;……}結構體變量;第8頁/共61頁4.1.7類型定義與C語言編程一樣,KeilC51允許由用戶自己定義類型說明符,也就是說允許由用戶為數據類型使用自定義的名字,該功能可以使用類型定義符typedef完成。例如,有整型量a、b,其說明如下:inta,b;其中int是整型變量的類型說明符,int的長度為16位,為了增加程序的可讀性,可把整型說明符用typedef定義為“typedefintINT16”,這以后就可用INT16來代替int作整型變量的類型說明了,例如:INT16a,b; //等效于inta,b第9頁/共61頁4.1.8宏定義與條件編譯在編寫程序時,使用的是用戶能夠看懂的ASCII碼。但是計算機必須將這些ASCII碼經過翻譯后變成機器語言。這個翻譯過程分兩步,叫做編譯、鏈接過程。第一步的編譯過程是將源程序中除了函數調用以外的語句翻譯成機器語言,此時要生成一個中間目標文件,后綴名為obj。鏈接過程是將庫函數的執行代碼加入到剛才生成的obj文件中,生成可執行文件。用戶編寫的源程序只能控制程序執行的流程。但有些時候,需要對編譯程序的工作進行一些干預,這時就要用到編譯預處理命令。第10頁/共61頁4.2KeilC51開發工具MCS-51內核系列單片機作為工業使用的微處理器,從1985年開始,就有對應的C語言編譯器,簡稱C51。并非所有的C51編譯器都產生和發揮MCS-51單片機特點的有效代碼,下面就各公司的編譯器做簡要介紹。(1)AMERICANAUTOMATION該編譯器通過#asm和endasm預處理選擇支持匯編語言。此編譯器編譯速度慢,要求匯編的中間環節支持。(2)ARCHIMEDES它的鼻祖是瑞典的JAR,是支持分組開關(Bank)的編譯器。它和ANSIC兼容,只是需要一個較復雜的連接程序控制文件支持,程序才能運行。(3)AVOCET該軟件包包括編譯器、匯編器、連接器、庫MAKE工具和編輯器,集成環境類似BorlandC和TurboCOC編譯器產生一個匯編語言文件,然后再用匯編器,其編譯速度較快。第11頁/共61頁4.2KeilC51開發工具(4)DUNFIELDSHAREWARE它是非專業的軟件包,不支持float、long或結構等數據結構。它不生成重定位代碼。(5)FRANKLIN它的鼻祖是Keil,在代碼生成方面領先,可產生最少的代碼。它支持浮點和長整數、重入和遞歸,不提供庫源代碼,不能生成能匯編的匯編代碼,僅產生混合代碼,只能修改后匯編。若使用匯編語言,必須分開匯編程序,然后手工連接。若使用單片模式,它是最好的選擇。(6)KeilC51KeilC51的V8.xx是目前世界上最好的51單片機的匯編和C語言的開發工具。它支持匯編、C語言以及混合編程,同時具備強大的軟件仿真和硬件仿真功能。在本節中主要介紹采用KeilC51的開發方法。第12頁/共61頁4.2.1μVision3集成開發環境結構當使用KeilC51的開發工具進行項目開發時,項目的開發流程和其他軟件開發項目的流程極其相似,一般遵循下面幾步:創建一個項目,從器件庫中選擇目標器件,配置工具設置;用C語言或匯編語言創建源程序;用項目管理器生成應用;修改源程序中的錯誤;測試、連接應用。第13頁/共61頁4.2.2KeilC51的C編譯器C語言是一種通用編程語言,它提供高效的代碼、結構化的編程元素及豐富的運算符。C語言不是一個大型的語言,不是為特定領域內的應用而設計的。其普遍性使其可以為各種不同的軟件任務提供便利有效的編程方案。許多應用設計使用C語言比其他專門語言更有效。Keil的C51優化交叉編譯器是完全符合ANSI美國國家標準協會標準的針對8051系列MCU的C編譯器,生成的可執行代碼快速、緊湊,在運行效率和速度上可以和匯編程序得到的代碼相媲美。第14頁/共61頁4.2.3KeilC51的A51宏匯編器A51是一個8051系列MCU的宏匯編器,它把匯編語言翻譯成機器代碼。A51匯編器允許定義程序中的每一個指令,在需要極快的運行速度、很小的代碼空間和精確的硬件控制時使用。其宏特性讓公共代碼只需要開發一次,從而節約了開發和維護的時間。A51匯編器宏處理的另一個有用的特性是根據命令行參數或匯編符號進行條件匯編。代碼段的條件匯編能幫助用戶實現最緊湊的代碼,也可以從一個匯編源代碼文件產生不同的應用:第15頁/共61頁4.2.3KeilC51的A51宏匯編器A51匯編器產生一個列表文件,包括行號、匯編時的時間和日期。關于匯編器運行和目標文件產生的信息被記錄下來。通常情況下,程序從EXTERN、PUBLIC和SEGMENT指示器開始。列表文件包含了每個源代碼的行號及每行產生的代碼。列表文件包含了錯誤和告警信息,錯誤和告警的位置被明顯地標識出來。存儲器組的占用信息和程序中的錯誤和告警總數包括在文件的結尾處。第16頁/共61頁4.2.4KeilC51的BL51代碼鏈接器/定位器BL51是具有代碼分段功能的連接器/重定位器,它組合一個或多個目標模塊成一個8051的執行程序。此連接器處理外部和全局數據,并將可重定位的段分配到固定的地址上。BL51連接器處理由KeilC51編譯器、A51匯編器和IntelPL/M-51編譯器、ASM-51匯編器產生的目標模塊。連接器自動選擇適當的運行庫并連接用到的模塊。BL51主要有以下的功能:(1)數據地址管理BL51連接器通過覆蓋那些不會同時使用的函數變量的技術來管理8051有限的內部存儲器資源,這極大地降低了大多數應用對存儲器的需求。BL51連接器分析函數間的引用以決定存儲的覆蓋策略。可以用OVERLAY指示器來人為控制函數間的引用,這些引用被連接器用來確定哪些存儲器單元是獨占的。NOOVERLAY指示器讓BL51不進行覆蓋連接,這在使用間接調用的函數或為了調試而禁止覆蓋時比較有用。第17頁/共61頁4.2.4KeilC51的BL51代碼鏈接器/定位器(2)代碼段BL51連接器支持創建程序空間大于64KB的應用。8051不能直接操作大于64KB的代碼地址空間,必須由外部硬件來交換代碼段。完成此功能的硬件必須要8051中運行的程序的控制中,這就是段(塊)切換。BL51連接器管理一個公共的區域和32個最大64KB空間的塊,從而達到總共2MB的分段程序空間。支持外部硬件塊切換的軟件包括的一個可編輯的匯編程序,以適應應用中的特定硬件平臺。BL51連接器可以定義哪個段裝載哪個特定的程序模塊。通過仔細考慮,把各個函數分配到不同的段中來創建一個非常大而有效的應用。第18頁/共61頁4.2.4KeilC51的BL51代碼鏈接器/定位器(3)公共段段切換程序中的公共段是一塊在任何時候、在所有的段中都可以訪問的存儲器。此公共段在物理上就不能切換出局或變換地址空間。在公共段中的代碼可以復制到每個段中(如果切換整個程序空間)或駐留在一個獨立的地址空間或器件中(公共段不用切換)。第19頁/共61頁4.2.4KeilC51的BL51代碼鏈接器/定位器(4)執行其他段中的程序分段代碼空間是通過附加的由軟件控制的地址線控制的,這些地址線可以由8051的I/O口或位于存儲器空間的鎖存器來模擬。HL51連接器為位于其他段中的函數生成一個跳轉表,當用C語言調用一個位于不同段中的函數時,要先切換段,再跳到目標程序運行,完成后再回到調用的那個段中去,并繼續往下執行。這種段切換處理需要附加的50個CPU指令周期和占用2字節堆棧空間。如果把相關的函數分配在相同的段中,將顯著地提高系統的性能。需要從多個段中經常調用的函數應該位于公共段中。第20頁/共61頁4.2.5KeilC51的OC51目標文件轉換器OC51目標文件轉換器為在目標模塊中的每個代碼區創建絕對目標模塊。當用戶創建一個存儲區切換應用時,BL51產生存儲目標模塊。符號調試信息復制到絕對目標文件中,并供仿真器使用。用戶可使用OC51目標文件轉換器創建絕對目標模塊,然后可使用OH51目標-hex轉換器創建Intelhex文件。OH51目標-hex轉換器從絕對目標模塊中創建Intelhex文件,而絕對目標模塊可由BL51或OC51創建。Intelhex文件是ASCII文件包含了應用程序的十六進制表達式,將它們裝人器件編程器就可寫人EPROM可以在DOS命令行中,用OC51將分段目標模塊中的每一個代碼段創建絕對目標模塊。然后,用OH51(目標代碼到hex文件的轉換器)為每一個絕對目標模塊產生相應的Intelhex格式的文件。第21頁/共61頁4.2.6KeilC51的OH目標HEX文件轉換器OH51目標hex轉換器為絕對目標模塊創建Intelhex格式的文件。絕對目標模塊可以由BL51或OC51產生。Intelhex文件是ASCII文件,用十六進制的數表示應用系統的目標模塊。它們可以很容易的下載到編程器,以便于寫入EPROMS器件。第22頁/共61頁4.2.7KeilC51的LIB51庫文件管理器LIB5l庫管理器可使用戶創建和保存庫文件,一個庫文件是一個或多個目標文件的格式化集合。庫文件提供簡便的方法,可組合和引用大量的目標文件。BL5l可有效地使用庫文件,庫管理器可使用戶創建一個庫文件、將目標模塊加入庫文件、從庫文件中移去目標模塊和列出庫文件的內容。使用庫有一系列優點。安全、高速和減少磁盤空間僅是使用庫的一小部分原因。另外,庫提供了一個很好的分發大量函數而不用分發大量函數源代碼的手段。例如,ANSIC的庫是作為庫文件提供的。第23頁/共61頁4.3μVision3集成開發環境Keil公司于1996年推出了基于Windows的C51應用程序集成開發環境,如今KeilC51的IDE(集成開發環境)的最新版本已經發展到了μVision3。μVision3是一個集成的軟件開發平臺,包括全功能編輯器、項目管理器、程序生成工具和環境控制等,其仿真調試的環境又叫DScope5。Keil公司推出的新的32位最新的編譯器版本已經達到KeilC51V8.xx,可以運行在Windows9x、WindowsNT、WindowsMe、Windows2000和WindowsXP等操作系統,功能更加強大,支持的芯片更多。C51V8.xx版本是目前最高效、靈活的8051開發平臺,它可以支持所有MCS-51的兼容內核,也可以支持所有兼容的仿真器,同時支持其他第三方開發工具。第24頁/共61頁4.3.1μVision3IDEμVision3IDE是一個基于Windows的開發平臺,包含一個高效的編輯器、一個項目管理器和一個MAKE工具。第25頁/共61頁4.3.2μVision3C51編譯器與測試程序C51編譯器在遵循ANSI標準的同時,為MCS-51兼容微控制器系列進行特別設計。語言上的擴展能讓用戶使用應用所有資源,有如下一些特點:(1)存儲器和特殊功能寄存器的存取C51編譯器可以實現對8051系列所有資源的操作。(2)中斷功能(3)靈活的指針第26頁/共61頁4.3.3μVision3的安裝μVision3安裝的最低的硬件和軟件配置必須滿足:具有Pentium、PentiumII或兼容的處理器的個人計算機;操作系統為Windows98、Windos2000、WindowsXP或更高;RAM大于128MB;60MB的硬盤空余空間。第27頁/共61頁4.4集成開發環境的使用直接雙擊程序圖標就可以啟動μVision3,要新建一個項目文件,μVision3菜單中單擊【Project】|【NewProject】命令即可。μVision3的整個界面如圖4.15所示。第28頁/共61頁4.4.1μVision3的項目管理窗口在μVision3中,可以為一個應用創建幾個不同的程序。用戶也許需要一個目標用來測試,另一個目標作為應用系統的發行版本。在同一個項目文件中,允許每個目標進行獨立的工具設置。在Build工具欄上,可以快速改變當前的目標,如圖4.16所示,該項目有3個目標文件,即Simulator、RamDebug和Flash三種模式下的目標文件,當前目標文件是Simulator。第29頁/共61頁4.4.2μVision3的菜單欄μVision3的菜單欄提供各種操作菜單,例如:編輯操作、項目維護、開發工具選項設置、調試程序、窗口選擇和處理以及在線幫助等等,第30頁/共61頁4.4.3μVision3的工具欄μVision3提供了文件操作、源文件編輯、視圖切換、工程項目和調試命令等工具條按鈕,允許用戶快速地執行命令,各種工具欄圖標都對應一種μVision3的下拉菜單命令,下面分別進行介紹。第31頁/共61頁4.4.4μVision3的快捷鍵使用μVision3的鍵盤快捷鍵,用戶可以高效地執行μVision3的各種命令,熟練地掌握各種快捷鍵的使用,將取得事半功倍的效果。(1)文件操作快捷鍵Ctrl+O:打開已經存在的文件;Ctrl+N:創建新文件;Ctrl+S:保存當前文件;Ctrl+P:打印當前文件;第32頁/共61頁4.4.4μVision3的快捷鍵(2)源代碼編輯快捷鍵Ctrl+Z:取消上次操作;Ctrl+Shift+Z:重復上次操作;Ctrl+X:剪切所選文本;Ctrl+Y:剪切當前行的所有文本;Ctrl+C:復制所選文本;Ctrl+V:粘貼;Ctrl+F2:設置/取消當前行的標簽;F2:移動光標到下一個標簽處;Shift+F2:移動光標到上一個標簽處;Ctrl+F:在當前文件中查找文本;F3:向前重復查找;Shift+F3:向后重復查找;Ctrl+F3:查找光標處的單詞;Ctrl+H:替換特定的字符;第33頁/共61頁4.4.4μVision3的快捷鍵(3)頂目操作快捷鍵Alt+F7:設置對象、組或文件的工具選項;F7:編譯修改過的文件并生成應用;Ctrl+F7:編譯當前文件;第34頁/共61頁4.4.4μVision3的快捷鍵(4)調試快捷鍵Ctrl+F5:開始/停止調試模式;F5:運行程序,直到遇到一個中斷;Fll:單步執行程序,遇到子程序則進入;FlO:單步執行程序,跳過子程序;Ctrl+Fll:執行到當前函數的結束;ESC:停止程序運行;第35頁/共61頁4.4.5μVision3的功能窗口在介紹μVision3集成開發環境中的各種窗口之前,先介紹一下下窗口的屬性設置,執行【Edit】菜單下的【Configuration…】命令。這時將打開Configuration對話框,單擊Editor標簽,在這里可以設置源代碼編輯窗口的各種設置,比如若選中CreateBackupfiles(*.BAK)復選框,則在源文件編輯過程中將產生備份文件;若選中AutoIndent復選框,則在編輯源代碼文件時,將自動以TAB鍵的距離縮進。第36頁/共61頁4.4.6源代碼編輯窗口源代碼編輯窗口,源代碼編輯窗口提供以下功能:關鍵詞、注釋和字符串的高亮度顯示;自動縮進,自定義Tab鍵的跳格數;圓括號和花括號對C語言代碼塊做標記,并可方便地查到與之配對的右括號;多次Undo和Redo;隨時獲得相關的在線幫助;快速查找,在一個或多個文件中查找或替換。第37頁/共61頁4.4.7Watch&CallStack窗口該窗口用來檢查和編輯C語言表達式或變量的值,可以用不同的格式顯示數值,可以顯示數組、結構或指針等包含多個元素的變量,也可以顯示當前函數的嵌套調用情況。在程序運行或調試狀態下,用戶可以執行菜單【View】|【Watch&.CallStackWindow】命令來顯示Watch&CallStack窗口。Watch&CallStack窗口的內容會在程序執行過程中遇到斷點或者停止運行后顯示,在程序執行過程中,可以執行【View】|【PeriodicWindowUpdate】菜單命令,以使Watch&CallStack窗口的內容隨程序的執行而周期性的顯示。第38頁/共61頁4.4.8Memory窗口在程序運行或調試狀態下,用戶可以執行菜單【View】|【MemoryWindow】命令來顯示Memory窗口。Memory窗口能顯示各種存儲區域的內容,μVision3的Memory窗口總共提供了4個不同的存儲區域顯示頁,用戶可以用不同的顯示頁分別顯示不同的存儲器區域,例如一個顯示頁用于顯示代碼存儲區域,一個顯示頁用于顯示外部數據區域,一個顯示頁用于顯示內部數據區域,根據用戶的存儲區域劃分情況而定。第39頁/共61頁4.4.9CPU寄存器窗口在程序運行或調試狀態下,用戶可以單擊項目管理窗口下面的Regs標簽頁來顯示CPU寄存器窗口。CPU寄存器窗口顯示了CPU寄存器中的值,CPU寄存器窗口位于項目管理窗口的Regs標簽頁,該窗口可以任意移動,第40頁/共61頁4.4.10串行窗口在程序運行或調試狀態下,用戶可以執行【View】|【SerialWindow】|【UART#1】命令來顯示串行窗口1,執行【View】|【SerialWindow】|【UART#2】命令來顯示串行窗口2。μVision3提供了3個串行窗口,用于PC機與模擬的51單片機窗口通信。從模擬的51單片機的CPU串口輸出的數據,將在這個串口窗口中顯示,而在串口中輸入的字符,將被輸入到模擬的51單片機的CPU串口中,利用這一點,可以在沒有外部硬件的情況下模擬51CPU的UART端口,第41頁/共61頁4.4.11性能分析窗口μVision3的性能分析窗口可以顯示指定的函數或者程序段的執行情況,包括執行指定的函數或者程序段的最大時間、最小時間、平均時間、總時間以及執行次數等。在程序運行或調試狀態下,用戶執行【View】|【PerformanceAnalyzerWindow】命令,將打開性能分析窗口,。第42頁/共61頁4.4.12代碼覆蓋窗口μVision3具備代碼覆蓋功能,可以將已經執行的代碼段用特殊的顏色標記出來,在源代碼編輯窗口和反匯編窗口,已經執行過的代碼段的左邊,有淡綠色標記,淡綠色是μVision3設置的默認顏色,用戶可以根據需要自定義一種喜歡的顏色。第43頁/共61頁4.4.13符號觀察窗口執行菜單命令【View】|【SymbolWindow】將打開符號顯示窗口,μVision3的符號顯示窗口中,顯示了所有函數和模塊的公共的符號、當前模塊或函數的局部符號、代碼行號和當前所載入應用所定義的CPU的特定的SFR(特殊功能寄存器)。如圖所示是KeilC51自帶例子HELLO.c應用中的符號窗口所顯示的公共符號的內容。第44頁/共61頁4.5項目的開發與管理本節描述了使用μVision3進行項目管理,介紹了如何創建一個簡單的程序以及生成和維護項目的一些選項,包括文件輸出選項、C51編譯器的關于代碼優化的配置和μVision3項目管理器的特性等等。第45頁/共61頁4.5.1創建項目執行【Project】|【NewμVisionProject】菜單命令,將新創建一個項目。為項目建一個單獨的文件夾,然后選擇子文件夾并鍵入項目的名稱。μVision3將創建一個文件名為“Projectl.uv3”的新項目文件,新的項目文件包含了一個以默認的文件名命名的目標和文件組,可以在項目管理窗口的Files標簽頁看到這些名字。在項目創建之前,需要為新建的項目選擇一個CPU。在命名項目名稱后,彈出的對話框,其中顯示的是器件數據庫,用戶只要選擇所需要的MCU就可以了。由于本書是以ATMEL公司生產的AT89S51單片機為實例,因此在相應的目錄下選擇AT89S51。Kei1C51幾乎支持所有的MCS-51內核單片機,選擇AT89S51之后,右邊一欄是對這個單片機的基本的說明,然后單擊【確定】按鈕。該選擇就為AT89S51器件設置了工具選項,這種方式簡化了工具的配置,為用戶減少了不少工作量。第46頁/共61頁4.5.2添加配置啟動代碼啟動文件STARTUP.A51中包含了目標啟動代碼,可在每個project中加入這個文件,只要復位,則該文件立即執行,其包括以下一些功能。定義內部RAM大小、外部RAM大小、可重入堆棧位置;清除內部、外部或者以此頁為單元的外部存儲器;按存儲模式初始化重入堆棧及堆棧指針;初始化硬件堆棧指針;開始執行main()函數。第47頁/共61頁4.5.3項目設置μVision3允許用戶為目標硬件設置選項,可以通過工具條圖標打開,也可以用鼠標右擊項目窗口中的Files標簽頁中的Target1,在右鍵菜單中選擇【OptionsforTarge1】命令,Target:定義CPU;Output:定義Keil工具的輸出文件,并定義生成處理后的執行用戶程序;Listing:定義Keil工具輸出的所有列表文件;C51:設置C51編譯器的特別工具選項;A51:設置匯編器的特殊工具選項;BL51Locate:定義不同類型的存儲器和存儲器的不同段位置;BL51Misc:其他的與連接器相關的設置,如警告或存儲器指示;Debug:μVision3的Debugger設置;Utilities:文件及其Group的特別選項。第48頁/共61頁4.5.4Target標簽單擊Target標簽,其中各參數設置如下:(1)Xtal(MHz):是設置單片機的工作的頻率,默認值是24.0MHz。如果項目中所使用的單片機的晶振用的是33MHz,例如本例中的89S51單片機,那么在框里輸入實際的晶振頻率。(2)UseOn-chipROM(0x0~0x1FFF):這個選項是使用片上的FlashROM。AT89S51有4KB的FlashROM。是否使用片上FlashROM取決于應用系統,如果用戶的單片機的EA引腳接高電平,則一定需要選中這個選項;如果用戶的單片機的EA接低電平,表示使用外部ROM,那么不要選中該選項。(3)MemoryModel:變量存儲空間。用鼠標單擊MemoryModel的下拉箭頭,會有3個選項,第49頁/共61頁4.5.5Output標簽Output標簽的設置說明如下。(1)SelectFolderforObjects:單擊這個按鈕可以選擇編譯之后的目標文件存儲在哪個目錄,如果不設置,編譯之后的目標文件就存儲在工程文件的目錄里。(2)NameofExecutable:設置生成的目標文件的名字,默認是跟工程的名字一樣,目標文件可以生成庫或者obj和hex的格式。(3)CreateExecutable:生成omf以及hex文件。一般選中DebugInformation和BrowseInformation,這樣才有詳細的調試所需要的信息。比如進行C語言程序的調試時,如果不選DebugInformatio和BrowseInformation兩項,調試時將無法看到C語言的代碼而只有匯編代碼或者機器代碼。第50頁/共61頁4.5.5Output標簽(4)CreateHexFile:生成hex文件。這個選項一般是要選中的,很多用戶發現編譯之后沒有生成hex文件,這是因為這個選項沒有被選中的原因。要生成hex文件一定要選中該選項。(5)CreateLibrary:生成庫文件,選中該選項時將生成lib庫文件,根據用戶的需要是否要生成庫文件,一般的應用是不生成庫文件的。設置完成的Output標簽如圖第51頁/共61頁4.5.6Listing標簽KeilC51在編譯之后除了聲

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論