<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          單片機(jī)模塊化編程(二)再探

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

            又有幾天沒有跟大家見面啦,真真是有點(diǎn)極為想念呢。在上一帖中,我向大家簡(jiǎn)單的講解了使用單片機(jī)模塊化編程給我們帶來(lái)的好處。而在現(xiàn)實(shí)工作場(chǎng)合,不論是“攻城獅”們還是“程序猿”們,也不論是軟件設(shè)計(jì)還是硬件設(shè)計(jì),模塊化的概念也是大家經(jīng)?;蛘哒f(shuō)是必須使用的思維了。下面針對(duì)大家的51單片機(jī)課程的學(xué)習(xí),詳細(xì)給大家講講如何將模塊化編程這一概念運(yùn)用到單片機(jī)實(shí)戰(zhàn)當(dāng)中去。還是以大家非常之熟悉的流水燈為例進(jìn)行講解吧。(版主下文中開啟嚴(yán)肅教學(xué)模式,上課大家不要講話,上廁所和有問題的請(qǐng)先舉手示意。)

          本文引用地址:http://www.ex-cimer.com/article/269322.htm

            (一)怎樣使用模塊化編程建立工程

            下面以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的流水燈作為實(shí)例進(jìn)行詳細(xì)講解。我們都知道,要想實(shí)現(xiàn)簡(jiǎn)單的流水燈(這里使用,而不使用定時(shí)器中斷法),我們必須要有以下函數(shù):初始化函數(shù)、和LED流水燈實(shí)現(xiàn)函數(shù),這三大類函數(shù)。那么,我們?cè)鯓右阅K的形式來(lái)使用這些函數(shù)呢。下文中作者采用了圖文并茂的形式進(jìn)行分析,這真真是極好的~

            (二)LED流水燈例程

            1、首先使用Keil uVision新建工程,這里我采用的是Keil uVision4

          。(這個(gè)軟件相信大家一定不會(huì)陌生)

           

            

           

            2、保存創(chuàng)建的工程

            

           

            3、選擇所使用的芯片

            

           

            4、點(diǎn)擊ok后,在彈出的對(duì)話框中選擇“否”

            

           

            5、新建文件,用以編輯函數(shù)和頭文件

            

           

            6、將新建的這些文件分別重命名并保存

            

           

            7、將xxx.C的文件添加到工作組中。

            

           

            8、當(dāng)完成以上步奏之后,我們就可以進(jìn)行具體的函數(shù)編寫了。對(duì)于如何編寫一個(gè).C的C語(yǔ)言文件和一個(gè).h的頭文件,下面我來(lái)具體說(shuō)明。首先以主函數(shù)main.c為例。如下圖:

            

           

            我們可以看到,這個(gè)流水燈的主函數(shù)main.c如果用模塊化編程的方法來(lái)實(shí)現(xiàn)的話,干凈整潔了很多。少了我們常見的相關(guān)的delay();以及對(duì)uint和uchar的宏定義。且在主函數(shù)中,直接使用了LED_init();和LED_display();這兩個(gè)函數(shù)。而我們知道,要想在主函數(shù)中使用一個(gè)子函數(shù),必須得在主函數(shù)的前面對(duì)這幾個(gè)子函數(shù)進(jìn)行聲明,可是本段代碼中并沒有出現(xiàn)相關(guān)的語(yǔ)句。取而代之的是,在程序段第二行,多了一句#include “LED.h”,這一句話又有什么樣的特殊功能呢?下面讓我們來(lái)研究一下LED.c和LED.h的廬山真面目。

            9、LED.c和LED.h的編寫

            

           

            

           

            從LED.c這個(gè)C文件中,我們可以看出具體對(duì)LED_init();和LED_display();函數(shù)如何實(shí)現(xiàn),在這個(gè)文件中有著具體的描述。那么問題來(lái)了~~LED.c和main.c之間是怎樣產(chǎn)生聯(lián)系的呢?換句話說(shuō),當(dāng)我們?cè)诹硗庖粋€(gè)文件中需要調(diào)用其他文件當(dāng)中的某個(gè)函數(shù)的時(shí)候,那么我們?cè)撊绾巫瞿?要想搞清楚這個(gè)問題,是時(shí)候請(qǐng)出LED.h這位大神了。一般來(lái)講xxx.h格式的文件為頭文件,頭文件提供了程序內(nèi)函數(shù)被其他函數(shù)所調(diào)用的接口。我們也可以把他稱為一份“接口描述文件”。

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


          c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


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


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


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



          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: LED 延時(shí)函數(shù)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();