新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 單片機模塊化編程(一)初探

        單片機模塊化編程(一)初探

        作者:zhuzhaokun1987 時間:2015-02-02 來源:電子產品世界 收藏

          哈嘍艾威玩,還記得上課時給大家講到的單片機模塊化編程的思想么?有些同學沒有練習,有些同學一定也都忘卻了。在這里我重新整理一下,作為我們進階學習的第一彈內容給大家熱熱身咯~

        本文引用地址:http://www.104case.com/article/269323.htm

         

          俗話說,不會模塊化編程的廚師不是好司機。那么如何進行單片機的模塊化編程呢?且聽我給大家慢慢說來。

          (一)What is單片機的模塊化編程?

          模塊化編程是指將一個龐大的程序劃分為若干個功能獨立的模塊,對各個模塊進行獨立開發,然后再將這些模塊統一合并為一個完整的程序。舉個栗子,大家都玩過七巧板,我們都知道,七巧板巧在七塊板子隨意組合,可以組成很多種形狀。我讓大家拼出一個小房子,大家能很輕易的做到,下次我又讓大家用這些拼出來一個小鐘樓,大家還是能夠毫無鴨梨的完成任務。七塊板還是這七塊板,只不過進行了不同的排序罷了,但卻收到了兩種不同的產品。這就是模塊化編程的優勢,只要我“七塊板”到手,任你魔高一尺,我則道高一丈。

          在單片機程序里,程序比較小或者功能比較簡單的時候,我們不需要采用模塊化編程,但是,當程序功能復雜、涉及的資源較多的時候,模塊化編程就能體現它的優越性了。如前面我們寫過的的驅動程序、獨立按鍵掃描程序和程序,每一個程序都是只用一個源文件編寫就能完成,但是,當您制作一個液晶日歷的時候,需要用到驅動程序、獨立按鍵掃描程序和顯示程序,如果把這三個程序全部集中在一個源文件里,將導致主體程序臃腫且雜亂,這樣做并非不可取,只是降低了程序可讀性、可維護性和代碼的重用率。如果把這三個程序當做三個獨立的模塊放到你的主體工程進行模塊化編程,效果就不一樣了。

          實際上,模塊化編程就是模塊合并的過程,就是建立每個模塊的頭文件和源文件并將其加入到主體程序的過程。主體程序調用模塊的函數是通過包含模塊的頭文件來實現,模塊的頭文件和源文件是模塊密不可分的兩個部分,缺一不可。所以,模塊化編程必須提供每個模塊的頭文件和源文件。

          (二)模塊化編程的好處

          想當年,我還是一枚單片機清新小菜的時候,記得大學的時候參加一個電子設計大賽,用單片機做了個點陣+數碼管顯示環境信息和萬年歷的程序,調試了幾個星期,所有程序加起來小1000行,瘦長且雜亂的一個程序,編程的規范性也很差,從上瀏覽下來都要好半天。出了錯誤去問老師,見我這亂七八糟的程序,老師看都懶得看。于是自己調試,出了一些簡單的語法錯誤還好定位,其它一些錯誤,找半天才能找的到。那個時候被自己挖的大坑折騰的夠嗆,那段歲月也不堪回首,每每回想起來(我先去吐會兒血),仍然會覺得腦袋里一團亂麻。

         

          生活就是這樣,總是在你覺得“山窮水復疑無路”的時候讓你“柳暗花明”“又一村”。一個偶然的機會,我接觸到了模塊化編程。于是開始了解,覺得這個是解決困擾我N久的問題的絕好機會。于是果斷開始“模塊化”。每天我都會寫一些函數并調試,比如us級的延時函數,ms級的延時函數,I2C協議函數,串口通信函數,1602和12864液晶驅動函數,還有例如等各種常用的傳感器驅動函數等等。由于長期的積累,我收獲了一大堆非常給力的函數,編程也漸漸變的規范起來,不再像以前那么難以閱讀了。當然這都不是重點,重點是,我做單片機設計的速度和效率快了好幾個數量級。

          那么具體是怎么實現的呢,敬請關注《第一彈---單片機模塊化編程(二)》且聽我慢慢道來。

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理




        關鍵詞: 12864 DS18B20

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 额济纳旗| 徐水县| 潞西市| 德州市| 额济纳旗| 扬中市| 喜德县| 土默特右旗| 黑河市| 咸宁市| 沿河| 博乐市| 镇雄县| 成都市| 吴川市| 洛隆县| 奉节县| 枞阳县| 松江区| 天津市| 富顺县| 望江县| 时尚| 电白县| 阿坝| 屯昌县| 搜索| 许昌市| 周至县| 昆山市| 五指山市| 论坛| 龙南县| 社旗县| 松潘县| 开江县| 江川县| 防城港市| 哈密市| 青龙| 师宗县|