- 零基礎學單片機C語言程序設計
- 趙建領 薛園園等編著
- 1817字
- 2018-12-31 21:41:25
1.3 單片機開發語言概述
進行單片機程序開發時,首先需要選擇合適的開發語言。在單片機設計中,一般可以選擇單片機匯編語言和單片機C51語言兩種。這兩種語言各有優勢,目前以單片機C51語言使用的最多。
1.3.1 單片機匯編語言
單片機匯編語言是采用助記符標識的指令的程序設計語言,其中助記符標識是二進制指令的形象標記。單片機匯編語言程序是單片機匯編指令的集合。匯編語言程序設計與51系列單片機的匯編指令集和硬件結構等有密切聯系,在單片機上可以用來實現特定的功能和任務。匯編語言以其簡練的代碼、快速的操作硬件能力而最先獲得了廣泛使用。一個典型的匯編語言程序示例如下。
ORG 0200H ;匯編程序起始命令 MOV A,R4 ;低字節送入累加器A CPL A ;取反 ADD A,#01H ;加1 MOV 21H,A ;將結果送入地址21H MOV A,R3 ;高字節送入累加器A CPL A ;取反 ADDC A,#00H ;加進位位 MOV 20H,A ;將結果送入地址20H END ;程序結束
該程序實現了一個16位二進制數的求補。程序中,假定帶操作的這個雙字節數存放在R3R4中,程序將求補以后的結果存放于地址20H、21H中。首先低字節求補,即“求反加一”,然后進行高字節的求補。
從上面的程序可以看出,采用匯編語言編寫的程序,每條指令的含義一目了然,而且用匯編語言編寫的程序代碼少,執行速度快,每條指令的執行時間完全確定。因此,在最初的單片機應用系統中,主要是用匯編語言來編寫程序。總結起來,匯編語言與高級語言相比具有以下優點。
?匯編程序代碼簡短,執行速度快。
?占用比較少的內存單元和CPU資源。
?和硬件結構密切相關,可直接調用單片機的全部資源,從而有效地利用單片機的專有特性。
?指令的執行時間十分明確,適用于實時控制系統或者對時間有嚴格要求的場合。
單片機匯編語言仍然是一種面向機器的低級語言。使用匯編語言編寫程序時,必須熟悉單片機的指令系統、尋址方式、寄存器的設置和使用方法以及系統的硬件資源等。每個計算機系統都有它自己的匯編語言指令集,不同計算機或者單片機的匯編語言之間一般不能通用。因此,單片機匯編語言也有其明顯的缺點,羅列如下。
?一般只針對某種單片機,缺乏通用性,程序不易移植。
?匯編語言格式比較晦澀,代碼難懂,不便于閱讀和后期修改。
?匯編程序結構不清晰,給代碼閱讀和交流帶來很大的麻煩。
由于單片機匯編語言的諸多不方便,現在使用的已經比較少。程序開發者大都轉向單片機C51語言進行設計,只有在對執行速度有嚴格要求的場合,才在單片機C51語言中嵌入匯編代碼來實現。
1.3.2 單片機C51語言
對比現有的種種程序設計語言,C語言以其功能強大、結構清晰等優點得到廣泛應用。而在單片機程序設計中,同樣有應用于單片機的C語言,一般簡稱為C51語言。C51語言繼承了C語言的結構上的優點,便于用戶學習和使用,同時又具有匯編語言操作硬件的能力。因此,目前單片機C51被廣泛使用于單片機程序設計中,大有取代單片機匯編語言的趨勢。一個典型的單片機C51語言的程序示例如下。
#include <stdio.h> //頭文件 void main( ) //主函數 { floata; //定義a為單精度浮點型變量 double b; //定義b為雙精度浮點型變量 a=1134.5678; //賦值 b=5890.1; printf("a=%f\nb=%f\n",a,b); //打印輸出結果 }
本例中,首先初始化兩個變量,然后打印輸出變量的值。從中可以看出,單片機C51語言和C語言非常類似,這給用戶學習和使用帶來了方便。
與匯編語言相比,單片機C語言在結構上更易理解,可讀性強,且開發速度快,可靠性好,便于移植。因此,使用單片機C語言進行單片機系統的開發,可以縮短開發周期,降低開發成本。單片機的C51語言特點很多,總結起來主要有以下幾點。
?單片機C51語言兼備高級語言與低級語言的優點,語法結構和標準C語言基本一致。其規模適中,語言簡潔,便于學習。
?單片機C51語言提供了完備的數據類型、運算符以及函數供使用。
?C51語言是一種結構化程序設計語言,程序結構簡單明了。
?C51語言的可移植性好。對于兼容的8051系列單片機,只要將一個硬件型號下的程序稍加修改,甚至不加改變就可移植到另一個不同的硬件型號開發環境中使用。
?C51語言生成的代碼執行效率高,且比匯編語言的程序便于理解和代碼交流。
?單片機C51語言開發速度快,可以明顯縮短開發周期。
和單片機匯編語言相比,單片機C51語言的代碼體積要大,執行效率不夠高。但是隨著技術的發展,C51語言在代碼執行的效率方面越來越接近匯編語言。另外,單片機的程序存儲器容量越來越大,硬件的工作頻率也越來越快,這些都使得單片機C51語言的應用越來越廣泛。隨著單片機硬件系統的發展和產品更新速度的提升,單片機的開發越來越著重于程序本身的開發效率,以便快速占領市場。因此,單片機C51語言已成為目前最流行的單片機開發語言。
- Java語言程序設計
- ServiceNow Application Development
- Mobile Application Development:JavaScript Frameworks
- Java范例大全
- Yocto for Raspberry Pi
- Mastering JavaScript Design Patterns(Second Edition)
- WordPress 4.0 Site Blueprints(Second Edition)
- Bootstrap 4 Cookbook
- Scala Reactive Programming
- Test-Driven Machine Learning
- Building Wireless Sensor Networks Using Arduino
- 深入淺出Go語言編程
- Elasticsearch Essentials
- Python大規模機器學習
- C++17 By Example