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

1.3 單片機應(yīng)用系統(tǒng)的硬件與軟件開發(fā)特點

如圖1-2所示,單片機應(yīng)用系統(tǒng)包括硬件系統(tǒng)和軟件系統(tǒng),對應(yīng)地,單片機應(yīng)用系統(tǒng)的開發(fā),也主要包括硬件部分開發(fā)和軟件部分開發(fā)。實際工作中,當(dāng)軟件和硬件開發(fā)工作完成之后,還要將軟件開發(fā)生成的.hex文件下載(俗稱“燒片)到單片機的程序存儲器ROM中。由于下載燒片工作一般使用專門的設(shè)備(如編程器)來完成,因此操作比較簡單,使用者只要正確操作該設(shè)備及相關(guān)軟件,一般都能成功下載燒片,所以在單片機應(yīng)用系統(tǒng)的開發(fā)流程中,下載燒片這一開發(fā)環(huán)節(jié)往往被淡化或者忽略不提。本書沿襲慣例,對下載燒片環(huán)節(jié)不做過多說明,有興趣的讀者請參看本書附錄B或其他資料。此處專門提出這一環(huán)節(jié),只是希望能引起讀者的注意,不要忘記最后這一環(huán)節(jié)。

再說單片機開發(fā)中的軟件和硬件,可以說,硬件是整個應(yīng)用系統(tǒng)的基礎(chǔ),而軟件則依賴于系統(tǒng)的硬件。在硬件不再改變的條件下,軟件程序的改變,可以部分改變系統(tǒng)的功能。但從整體而言,單片機應(yīng)用系統(tǒng)的開發(fā),本是一個“軟硬兼施”的過程,軟件和硬件需要互相彌補,密切配合。部分用硬件不能實現(xiàn)或者不便實現(xiàn)的功能,可以考慮用軟件去補充或?qū)崿F(xiàn);同樣道理,選擇適當(dāng)?shù)挠布部梢詮浹a軟件功能上的缺憾或不足,二者相得益彰,互相配合,才能使任務(wù)最終實現(xiàn)。

就單片機應(yīng)用系統(tǒng)的開發(fā)流程而言,硬件和軟件在開發(fā)次序方面,原則上無先后之分,先開發(fā)哪一個都可以,有時二者還可以同步進行設(shè)計和開發(fā)。但考慮到硬件是基礎(chǔ),所以通常情況下是先開發(fā)硬件,再開發(fā)軟件。

對于硬件部分的開發(fā),簡言之就是設(shè)計和加工電子線路板,或者手動焊接電子線路板。具體而言,硬件部分的開發(fā)絕非易事。首先是硬件電路所用元器件種類繁多,特性各異,全部掌握或了解實屬不大可能;再次,硬件電路的設(shè)計開發(fā)需要很高的設(shè)計技巧,絕非一日之功可以成就。本書作為單片機初學(xué)者的入門教材,對后續(xù)各章節(jié)中列舉的各個實例,針對不同的任務(wù)要求,直接給出了硬件電路圖,并對部分主要和重要元器件的特性和功能,也做了詳細介紹,方便初學(xué)者參考學(xué)習(xí)并逐漸積累硬件設(shè)計的經(jīng)驗,以便日后能自行設(shè)計較復(fù)雜的硬件電路。

相對于硬件部分的開發(fā),軟件部分的開發(fā)則較為靈活。正如前面所述,開發(fā)語言可以選擇匯編語言,也可以選擇C語言,還可以選擇匯編語言和C語言混合編程。本書主要選用的是C語言,開發(fā)環(huán)境則選用Keil μVision3。需要特別說明的是,在軟件開發(fā)部分,開發(fā)流程幾乎是固定不變的,如圖1-4所示,主要包括工程建立、源程序編寫和編譯調(diào)試三個步驟;軟件開發(fā)的結(jié)果是生成擴展名為.hex的文件,該文件被用于下載或者燒片到單片機的程序存儲器ROM中,供單片機上電后再讀出來執(zhí)行,從而驅(qū)動或者控制外部設(shè)備按照預(yù)定的要求正常工作。從軟件開發(fā)的流程可見,針對不同的項目任務(wù),編寫的源程序不大相同,其余步驟則基本固定不變。與硬件開發(fā)的處理思路一樣,本書對于后續(xù)各章節(jié)中列舉的各個實例,針對不同的任務(wù)要求,直接給出源程序清單,對主要和重要的功能模塊,給予解釋和說明,供初學(xué)者參考學(xué)習(xí),而軟件開發(fā)過程中的其他步驟則一概簡化或略去,重點放在功能實現(xiàn)和源程序的編寫上,其他與Keil相關(guān)的軟件操作則被淡化,只因這些操作和步驟基本上是固定不變的。

鑒于以上概述,以下僅就軟件開發(fā)的具體流程做詳細說明。圖1-5 是在圖1-4的基礎(chǔ)上,細化其中的三個主要步驟所得單片機軟件開發(fā)流程圖。

主站蜘蛛池模板: 巴塘县| 衡阳县| 城市| 习水县| 梁山县| 定西市| 霸州市| 民权县| 开远市| 隆子县| 龙门县| 崇州市| 城口县| 正阳县| 渑池县| 乌恰县| 安宁市| 图木舒克市| 赣榆县| 扬州市| 启东市| 嘉义县| 门头沟区| 万州区| 盐城市| 平定县| 松潘县| 重庆市| 阿拉善右旗| 南阳市| 达孜县| 乡宁县| 闽清县| 屏山县| 克拉玛依市| 绍兴县| 英德市| 贵南县| 土默特右旗| 宝兴县| 琼海市|