新聞中心

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

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

作者:zhuzhaokun1987 時間:2015-02-02 來源:電子產(chǎn)品世界 收藏

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

本文引用地址:http://2s4d.com/article/269323.htm

 

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

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

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

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

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

  (二)模塊化編程的好處

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

 

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

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

單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理




關(guān)鍵詞: 12864 DS18B20

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉