色欧美4477福利网在线观看,亚洲国产AV一区二区污污污,精品欧美一区二区三区,免费人成在线观看欧美精品

    天津樂博樂博

    天津樂博樂博

    • 專注于3-16歲青少年機器人編程教育
    • 完善的課程體系、可帶回家的進口教具、開放的教學方式
    • 獲得學生家長的認可與青睞

    400-666-4820

    全國學習專線 8:00-22:00

    單片機模塊化編程的原則有哪些

    少兒編程 93已閱讀 2020-07-22 10:49:24
    導讀 目前我們在學習和開發(fā)單片機時廣泛采用 c 語言進行編程,今天小編為大家匯總整理了有關單片機模塊化編程的原則供大家參考學習,下面和小編一起來學習下吧!

    單片機模塊化編程的原則有哪些

     一、需要模塊化編程的背景
      2019/4/1
      目前我們在學習和開發(fā)單片機時廣泛采用c語言進行編程,當我們開發(fā)的單片機項目較小時,或者我們所寫的練習程序很小時,我們總是習慣于將所有代碼編寫在同一個c文件下,由于程序代碼量較少,通常為幾十行或者上百行,此時這種操作是可行方便的,也沒有什么問題。
      但如果要開發(fā)的項目較大,代碼量上千行或者上萬行甚至更大,如果你還繼續(xù)將所有代碼全部編寫在僅有的一個c文件下,這種方式的弊病會凸顯出來,它會給代碼調試、更改及后期維護都會帶來極大的不便。
      試想一下,當你嘗試著從幾千幾萬行代碼中定位到某一位置或者去尋找某一錯誤點,上下拉動巨長的滾動條慢慢地、一點點地瀏覽整個c文件,是件多么令人眼花繚亂,頭昏腦脹的事。
      模塊化編程可解決這個問題,我們只要根據(jù)實際需要使用模塊化編程的思維將具有不同功能的程序封裝在不同模塊中,將各個不同模塊存放在不同的c文件中。
      模塊化編程后的程序不但使整體的程序功能結構清晰明了,同時也提高程序代碼的利用率,有些模塊代碼我們可以直接進行移植或者經(jīng)簡單修改就可另作他用,好比封裝好的函數(shù)。
     二、那么什么是模塊化呢?
      首先我們來簡單來聊聊模塊概念,我們可能聽說過電源模塊,通信模塊,這些是硬件模塊,它們都提供一些接口,譬如電源模塊會有輸出額定電壓電流的接口,通信模塊可能提供了RS232、USB等接口。那么對軟件來說模塊是怎樣的呢?
      軟件里的模塊跟硬件模塊類似,抽象地說就像一個黑盒子,盒子內部細節(jié)我們可以不予理會,我們只關心盒子給我們提供什么東西,即提供了什么接口,利用這些接口我們能實現(xiàn)什么功能。
      我們把相對獨立,具有獨立功能用代碼編寫在一個c文件下,把需要對外的函數(shù)或變量進行聲明供外部使用,把不需要的細節(jié)盡可能對外部屏蔽起來,這就是軟件模塊化編程的思維。
      這樣不同的模塊占用不同c文件,一個個c文件將整個項目串接起來實現(xiàn)所有的功能。
     三、模塊化編程的原則
      每一個c文件對應一個同名的h頭文件
      一個h文件伴隨相應c文件存在,頭文件是為了聲明對外公開的接口。如果一個c文件不需要對外公布任何接口,則其就不應當存在,除非它是程序的入口,如main函數(shù)所在的文件,同時main函數(shù)所在文件可以沒有對應的頭文件。如有一個led.c,那應該同時制作一個led.h頭文件。
      頭文件中適合放置接口的聲明,不適合放置實現(xiàn)
      頭文件是模塊的對外的接口,供外部程序調用。頭文件中應放置對外部的聲明,如對外提供的函數(shù)聲明、宏定義、變量類型聲明等。函數(shù)的實現(xiàn)、變量的賦值、語句的操作等決不能放在頭文件中。因為頭文件的功能是向外提供接口,譬如函數(shù),變量,具體如何實現(xiàn)是在c文件中進行,頭文件僅是進行了描述聲明。
      任意一個c文件只要使用了其他c文件提供的接口,都要同時包含其對應的頭文件,每個c文件應該頭文件自包含
      任意一個c文件只要使用了其他c文件提供的接口,都要將其對應的頭文件包含到該c文件中,沒有使用到其他c文件的接口就不應該將其匹配的頭文件包含,并且每個c文件都應該包含自己的頭文件。
      防止頭文件被重復包含
      避免一個頭文件被重復包含,通常使用條件編譯命令#ifndef--#endif,如下示例:
      示例1:
      #ifndefTIME_H#defineTIME_H……#endif
      示例2:
      #ifndefLED_H#defineLED_H……#endif
      其中#define FILENAME_H為基本格式,F(xiàn)ILENAME_H為頭文件名稱,但要全部使用大寫形式,使用單下劃線后緊跟一個H表明是頭文件。不要在宏名最前面加上“_“或“__”,即使用FILENAME_H代替_FILENAME_H_,因為一般以”_“和”__”開頭的標識符為系統(tǒng)保留或者標準庫使用。
     四、創(chuàng)建工程步驟
      新建工程文件目錄
      新建工程文件目錄(如test),在工程目錄下創(chuàng)建Project、Source、Output、LisTIng和Readme這5個文件夾,并在文件夾Readme下創(chuàng)建Readme.txt文件。這樣做的目的是為了增強工程文件的可讀性及結構化,便于維護和管理。
      Project存放工程文件
      Source存放用戶編寫的c文件及h頭文件
      Output存放各種輸出文件,如hex文件
      Listing存放編譯過程中產(chǎn)生的各種中間文件
      Readme存放工程項目的說明文件
      創(chuàng)建keil工程
      啟動軟件KeilμVision,點擊工具欄上的Project,選擇NewμVision Project,新建test工程到目錄Project下。
      選擇目標器件,點擊“OK”確認。
      出現(xiàn)是否添加啟動文件到工程中對話框,選擇否。
      目標選項設置,點擊target option工具進入選項配置界面。
      選中Target項,根據(jù)實際情況設置晶振頻率。本例子頻率為11.0592MHz。
      選中output選項,點擊“Select Folder for Objects…”選擇工程目錄下的Output文件夾,將“Create HEX File”勾選中。
      選中Listing選項,點擊“Select Folder for Listings…”選擇工程目錄下的Listing文件夾。
      最后點擊“OK”保存各選項的設置,至此完成Target Option的配置。
      新建5個文件,以c為后綴名保存到工程目錄的Source文件下,并分別命名為main.c、led.c、uart.c、timer0.c和digitron.c。右擊“Source Group1”選擇“Add Existing Flies to Group‘Source Group1’”,將以上新建的5個文件添加到工程中。
      至此,就完成整個keil工程的創(chuàng)建。


    相關文章
    少兒編程入門Scratch編程基本知識匯總

    少兒編程入門Scratch編程基本知識匯總

    人工智能時代到來,家長們漸漸感知編程對孩子們學習的重要性。很多家長都在為孩子們規(guī)劃編程學習,在種類繁多的編程語言面前,大人和孩子都犯了難,應該從何起步?對于沒有任何編程基礎的孩子來說,還是從Scratch開始學比較好,特別是機器人Scratch編程方式,帶著濃厚的興趣,打好基礎,學習效果才更好。... [詳情]

    163人閱讀
    單片機模塊化編程的原則有哪些

    單片機模塊化編程的原則有哪些

    目前我們在學習和開發(fā)單片機時廣泛采用 c 語言進行編程,今天小編為大家匯總整理了有關單片機模塊化編程的原則供大家參考學習,下面和小編一起來學習下吧!... [詳情]

    93人閱讀
    學少兒編程有哪些好處呢?

    學少兒編程有哪些好處呢?

    內外對少兒編程的推動舉措是絡繹不絕,也就說明的少兒編程的重要性。少兒編程有望成為繼數(shù)學和英語后的第三大剛需。學習編程對孩子的幫助很大,今天就和小編一起來學習下關于學少兒編程有哪些好處呢?... [詳情]

    92人閱讀
    如何進行少兒編程教學?

    如何進行少兒編程教學?

    少兒編程這門課程誕生的目的,并不是為了讓孩子們踏上程序員這條職業(yè)道路。編程是通過項目制的方式,培養(yǎng)孩子分析問題,解決問題的能力,進而提升邏輯思維。但是如何進行教學才能真真切切的將這些理念貫徹到底呢?... [詳情]

    94人閱讀
    少兒編程學的是什么?

    少兒編程學的是什么?

    近年來,越來越多的機構涉足少兒編程和機器人培訓領域。在美國, STEAM教育已成為其素質教育的核心,編程、3D打印、機器人等新技術教育已走進了美國的中小學校。同時國內外對少兒編程的推動舉措更是絡繹不絕,也就說明的少兒編程的重要性。那么少兒編程到底學什么呢?... [詳情]

    86人閱讀
    少兒編程有必要學嗎?

    少兒編程有必要學嗎?

    這幾年,人工智能正以不可思議的速度向前發(fā)展:AlphaGo贏了柯潔;百度無人巴士量產(chǎn);京東開始啟用機器人送快遞;谷歌的AI都了自行freestyle。隨之引發(fā)教育風向大變革。除了語數(shù)外“老三樣”的基礎教學外,一門新興學科正以燎原之勢席卷中華大地——它就是“少兒編程”。在國家政策的推動下,越來越多家長意識到編程的重要性。... [詳情]

    85人閱讀