官术网_书友最值得收藏!

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語言已成為目前最流行的單片機開發語言。

主站蜘蛛池模板: 丹巴县| 延庆县| 义马市| 资兴市| 苏尼特右旗| 星子县| 江川县| 砚山县| 屏南县| 紫阳县| 宣城市| 清河县| 鄂伦春自治旗| 郁南县| 凯里市| 隆化县| 通州市| 长泰县| 独山县| 女性| 故城县| 兴国县| 宁远县| 长海县| 宜丰县| 全南县| 连州市| 双柏县| 河南省| 合川市| 泸州市| 邢台市| 丹东市| 上思县| 嘉定区| 安化县| 景宁| 庆云县| 湖州市| 任丘市| 融水|