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

3.1 C51程序的基本結(jié)構(gòu)

單片機(jī)C51語(yǔ)言繼承了C語(yǔ)言的特點(diǎn),其程序結(jié)構(gòu)與一般C語(yǔ)言的程序結(jié)構(gòu)沒(méi)有差別。C51源程序文件的擴(kuò)展名為“.c”,如Test.c、Function.c等。每個(gè)C51源程序中包含一個(gè)名為“main()”的主函數(shù),C51程序的執(zhí)行總是從main()函數(shù)開(kāi)始的。當(dāng)主函數(shù)中所有語(yǔ)句執(zhí)行完畢,則程序執(zhí)行結(jié)束。下面是一個(gè)典型的C51源程序的例子。

        #include <reg52.h>                                   //預(yù)處理命令,reg52.h是一個(gè)頭文件

        void Function1(void);                                //自定義函數(shù)Function1聲明

        void main(void)                                      //主函數(shù)
        {
        Function1();                                         //調(diào)用自定義函數(shù)Function1
        unsigned char ch;                                    //主函數(shù)中變量聲明
        while(1)
        {
              printf("ch=%c\n",ch);                          //程序語(yǔ)句
              ch++;                                          //程序語(yǔ)句
        }
        }

        void Function1(void)                                 //自定義函數(shù)Function1
        {
              unsighed char ps;                              //自定義函數(shù)內(nèi)部變量聲明
          ps=12;                                             //程序語(yǔ)句
          printf("ps=%d\n",ps);                              //程序語(yǔ)句
    }

從上面的例子可以看出,一個(gè)典型的C51源程序包含預(yù)處理命令、自定義函數(shù)聲明、main主函數(shù)和自定義函數(shù)。這幾部分完全類似于C語(yǔ)言的程序結(jié)構(gòu),各個(gè)部分的功能如下。

?預(yù)處理命令部分常用#include命令來(lái)包含一些程序中用到的頭文件。這些頭文件中包含了一些庫(kù)函數(shù)以及其他函數(shù)的聲明及定義。

?自定義函數(shù)聲明部分用來(lái)聲明源程序中自定義的函數(shù)。

?main主函數(shù)是整個(gè)C51程序的入口。不論main()函數(shù)位于程序代碼中的哪個(gè)位置,C51程序總是從首先main()函數(shù)開(kāi)始執(zhí)行的。

?自定義函數(shù)部分是C51源程序中用到的自定義函數(shù)的函數(shù)體,其中實(shí)現(xiàn)了用戶自定義的功能。

除了擴(kuò)展名為“.c”的源程序文件外,C51程序還支持?jǐn)U展名為“.h”的頭文件以及擴(kuò)展名為“.lib”的庫(kù)文件等。在一般的編譯系統(tǒng)中,通常以項(xiàng)目結(jié)構(gòu)來(lái)管理復(fù)雜的C51程序文件。例如在Keil μ Vision3編譯環(huán)境中,整個(gè)項(xiàng)目結(jié)構(gòu)如圖3.1所示。

圖3.1 Keil μ Vision3項(xiàng)目結(jié)構(gòu)示意圖

在這里,整個(gè)項(xiàng)目由項(xiàng)目文件來(lái)管理,項(xiàng)目文件的擴(kuò)展名為“.Uv2”。整個(gè)工程項(xiàng)目中可以包含如下幾類文件。

?頭文件用來(lái)包含一些庫(kù)函數(shù)、系統(tǒng)變量聲明以及將不同的C文件連接起來(lái)。

?C源文件是C51程序的主要部分,用來(lái)實(shí)現(xiàn)特定的功能。C源文件可以有一個(gè),也可以按照不同的功能分成多個(gè),但所有這些C源文件中有且僅有一個(gè)可以包含一個(gè)main()主函數(shù)。

?庫(kù)文件是實(shí)現(xiàn)特定功能的函數(shù)庫(kù),供C源文件中進(jìn)行調(diào)用。

?編譯中間文件是源程序在編譯鏈接過(guò)程中生成的中間文件,其中包含了文件編譯調(diào)試的信息。

?可燒錄文件是編譯系統(tǒng)生成的可以燒錄到單片機(jī)內(nèi)部供執(zhí)行的文件,類似于“.exe”可執(zhí)行文件。在C51語(yǔ)言中,一般擴(kuò)展名為“.hex”或者“.bin”等。

在這些文件中,C源文件是必須的,其他的可以根據(jù)用戶實(shí)際的需要而使用。

主站蜘蛛池模板: 丹寨县| 响水县| 灵台县| 桐柏县| 平利县| 海城市| 柏乡县| 伊春市| 攀枝花市| 万全县| 灵川县| 通州市| 遂溪县| 获嘉县| 延长县| 福清市| 临武县| 江都市| 阳西县| 乌兰察布市| 裕民县| 合江县| 永年县| 威海市| 富顺县| 伽师县| 棋牌| 海盐县| 柳州市| 香格里拉县| 滦平县| 林口县| 密山市| 赤城县| 德清县| 太原市| 林西县| 山阴县| 马龙县| 安顺市| 和平县|