- 基于Proteus和Keil C51的單片機設計與仿真
- 杜樹春編著
- 15字
- 2018-12-27 10:36:20
第1章 單片機開發軟件Keil C51的使用
1.1 Keil C51簡介
常用的單片機及嵌入式系統編程語言有兩種,即匯編語言和C語言。匯編語言的機器代碼生成效率很高,但其可讀性卻并不強,復雜一點的程序就更是很難讀懂。C語言在大多數情況下,其機器代碼生成效率和匯編語言相當,但可讀性和可移植性卻遠遠超過匯編語言,而且C語言還可以嵌入匯編語言來解決高時效性的代碼編寫問題。就開發周期來說,用C語言編寫中大型軟件的開發周期通常要比用匯編語言編寫的短很多。與匯編語言相比, C語言在功能性、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。由此可見,使用C語言編寫程序是一種非常好的選擇。
使用C語言肯定要用到C編譯器,以便把寫好的C程序編譯為機器碼,這樣單片機才能執行編寫好的程序。用過匯編語言后再使用C語言來開發,體會更加深刻。Keil μVision3是眾多單片機應用開發軟件中最優秀的軟件之一,它支持眾多不同公司的MCS51架構的芯片,它集編輯、編譯、仿真等功能于一體,同時還支持PLM、匯編和C語言的程序設計,它的界面與常用的微軟VC++的界面相似,界面友好,易學易用。
Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統。Keil C51軟件提供了豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。
另外,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成目標代碼的效率非常高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時,更能體現采用高級語言的優勢。
Keil C51標準C編譯器為8051微控制器的軟件開發提供了C語言環境,同時保留了匯編代碼高效、快速的特點。C51編譯器的功能不斷增強,使用戶可以更加“貼近”CPU本身及其他的衍生產品。C51已被完全集成到μVision3的集成開發環境中,這個集成開發環境包括編譯器、匯編器、實時操作系統、項目管理器和調試器,μVision3 IDE可以為它們提供單一而靈活的開發環境。C51V808A版本是目前版本較高的8051開發平臺,它可以支持所有8051的衍生產品,也可以支持所有兼容的仿真器,同時也支持其他第三方開發工具。
C51是一種專門為8051單片機設計的高級語言C編譯器,支持符合ANSI標準的C語言程序設計,同時針對8051單片機的自身特點做了一些特殊擴展。
C51默認值不支持函數遞歸調用,需要進行遞歸調用的函數必須聲明為再入函數。再入函數的局部數據和參數被放入再入棧中,從而允許進行遞歸調用。
μVision3支持所有的Keil 80C51的工具軟件,包括C51編譯器、宏匯編器、鏈接器/定位器和目標文件至Hex格式轉換器,μVision3可以自動完成編譯、匯編、鏈接程序等操作。μVision3的特點如下。
1)C51編譯器和A51匯編器 由 μVision3 IDE創建的源文件可以被C51編譯器或A51匯編器處理,生成可重定位的object文件。Keil C51編譯器支持ANSIC語言標準,也支持C語言的所有標準特性。另外,還增加了幾個可以直接支持80C51結構的特性。Keil A51宏匯編器支持80C51及其派生系列的所有指令集。
2)LIB51庫管理器 LIB51庫管理器可以把由匯編器和編譯器創建的目標文件建立目標庫。這些庫是按規定格式排列的目標模塊,可被鏈接器使用。當鏈接器處理一個庫時,僅使用庫中程序使用的目標模塊,而不是全部加以引用。
3)BL51鏈接器/定位器 BL51鏈接器/定位器使用從庫中提取出來的目標模塊,以及由編譯器、匯編器生成的目標模塊,創建一個絕對地址目標模塊。絕對地址目標文件或模塊包括不可重定位的代碼和數據。所有的代碼和數據都被固定在具體的存儲器單元中。
4)μVision3軟件調試器 μVision3軟件調試器能十分理想地進行快速、可靠的程序調試。調試器包括一個高速模擬器,用戶可以使用它來模擬整個80C51系統,包括片上外圍器件和外部硬件。當用戶從器件數據庫選擇器件時,這個器件的屬性會被自動配置。
5)μVision3硬件調試器 μVision3硬件調試器向用戶提供了幾種在實際目標硬件上測試程序的方法。
6)RTX51實時操作系統 RTX51實時操作系統是針對80C51微控制器系列的一個多任務內核。RTX51實時內核簡化了需要對實時事件進行反應的復雜應用的系統設計、編程和調試。這個內核完全集成在C51編譯器中,使用非常簡單。任務描述表和操作系統的一致性由BL51鏈接器/定位器自動進行控制。
此外,μVision3還具有極其強大的軟件環境、友好的操作界面和簡單快捷的操作方法,主要表現在以下幾點:
豐富的菜單欄。
可以快速選擇命令按鈕的工具條。
一些源代碼文件窗口。
對話框窗口。
直觀明了的信息顯示窗口。