亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        模塊化設(shè)計(jì)在單片機(jī)編程中的應(yīng)用

        2023-02-19 12:25:08貴州電子信息職業(yè)技術(shù)學(xué)院張定祥
        關(guān)鍵詞:模塊化代碼聲明

        貴州電子信息職業(yè)技術(shù)學(xué)院 張定祥

        模塊化編程在嵌入式學(xué)習(xí)中是比較常用的方法。本文以單片機(jī)控制溫度傳感器為例,介紹模塊化設(shè)計(jì)在單片機(jī)學(xué)習(xí)中的應(yīng)用,闡述了模塊化設(shè)計(jì)的概念、發(fā)展歷程以及模塊化設(shè)計(jì)在單片機(jī)學(xué)習(xí)中的編寫(xiě)方法,為將來(lái)學(xué)習(xí)開(kāi)發(fā)嵌入式項(xiàng)目打下良好的基礎(chǔ)。

        學(xué)習(xí)單片機(jī)的同學(xué)都會(huì)遇到一個(gè)疑問(wèn)。為什么我在課堂上學(xué)習(xí)單片機(jī)之后,卻不能做一個(gè)復(fù)雜的項(xiàng)目?這是因?yàn)樵谠O(shè)計(jì)較復(fù)雜的程序時(shí),一般采用自頂向下的方法,將問(wèn)題劃分為幾個(gè)部分,各個(gè)部分再進(jìn)行細(xì)化,直到分解為較好解決問(wèn)題為止。這就是模塊化設(shè)計(jì),其基本思想是自頂向下、逐步分解、分而治之,即將一個(gè)較大的程序按照功能分割成一些小模塊,各模塊相對(duì)獨(dú)立、功能單一、結(jié)構(gòu)清晰、接口簡(jiǎn)單。

        模塊化設(shè)計(jì),就是程序的編寫(xiě)不是一開(kāi)始就逐條錄入計(jì)算機(jī)語(yǔ)句和指令,而是首先用主程序、子程序、子過(guò)程等框架把軟件的主要結(jié)構(gòu)和流程描述出來(lái),并定義和調(diào)試好各個(gè)框架之間的輸入、輸出鏈接關(guān)系逐步求精的結(jié)果,得到一系列以功能塊為單位的算法描述。以功能塊為單位進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)其求解算法的方法稱(chēng)為模塊化。

        1 模塊化設(shè)計(jì)的發(fā)展歷史

        模塊化程序設(shè)計(jì)與結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)密切相關(guān),它們的全部目標(biāo)都是通過(guò)分解成較小的部分來(lái)促進(jìn)大型軟件程序和系統(tǒng)的構(gòu)建,并且都起源于1960 年代。1968 年7 月在信息和系統(tǒng)研究所由拉里·康斯坦丁組織的全國(guó)模塊化編程研討會(huì)上提出“模塊化編程”。1980 年代開(kāi)始普及模塊化編程。最初的Pascal 語(yǔ)言不包含模塊,但后來(lái)的版本,尤其是UCSD Pascal 和Turbo Pascal,就像Pascal 一樣以“單元”的形式包含了它們。1990 年代,由于C++和Java 的流行,模塊化編程被面向?qū)ο蟮木幊趟谏w,并且常常與之混淆。例如,C 語(yǔ)言家族在C++中支持對(duì)象和類(lèi)和Objective-C,僅支持30 年或更長(zhǎng)時(shí)間的模塊。Java(1995)支持包形式的模塊,盡管代碼組織的主要單位是類(lèi)。模塊化編程現(xiàn)已普及,并且?guī)缀蹩梢允褂?990 年代以來(lái)開(kāi)發(fā)的所有主要語(yǔ)言。

        2 模塊化編程

        模塊化編程是指將大型、笨拙的編程任務(wù)分解為單獨(dú)的、更小更易于管理的子任務(wù)或模塊的過(guò)程。然后像構(gòu)建塊一樣拼湊單個(gè)模塊以創(chuàng)建更大的應(yīng)用程序。在傳統(tǒng)方法編程方式中,所有的函數(shù)均放在主函數(shù)(main.c)里,若使用的模塊比較多,則一個(gè)文件內(nèi)會(huì)出現(xiàn)很多的代碼,不利于代碼的組織和管理,而且很影響編程者的思路。而模塊化編程方式中,把各個(gè)模塊的代碼放在不同的.c 文件里,在.h 文件里提供外部可調(diào)用函數(shù)聲明,其他.c 文件想使用其中的代碼時(shí),只需要#include“xxx.h”文件即可。模塊化編程強(qiáng)調(diào)將程序的功能分為獨(dú)立的,可互換的模塊,這使得模塊化設(shè)計(jì)的系統(tǒng)比傳統(tǒng)的整體式設(shè)計(jì)具有更高的可重用性,因?yàn)樗心K都可以在其他項(xiàng)目中重復(fù)使用。模塊化編程在嵌入式中是必須要掌握的技能。

        3 單片機(jī)編程中的模塊化設(shè)計(jì)

        模塊化編程在編程當(dāng)中十分重要,因?yàn)槟K化編程的代碼可以重復(fù)使用,可以減輕編程工作者的工作量,在單片機(jī)的編程設(shè)計(jì)中尤為重要。這里以AT89C51 單片機(jī),在編程軟件Keil 環(huán)境下實(shí)施一個(gè)工程,來(lái)說(shuō)明模塊化編程具體操作的方法和步驟。例子要實(shí)現(xiàn)的功能:采用液晶顯示溫度傳感器DS18B20 提取的溫度值,并通過(guò)串口將溫度值發(fā)送出去。

        (1)在同一文件夾下新建一個(gè)main.c 文件(或主文件或運(yùn)行文件)和xxx.c 文件(或功能文件)和xxx.h 文件(頭文件),其中xxx.c 文件(或功能文件)和xxx.h 文件(頭文件)的文件名“xxx”要有意義,最好可以體現(xiàn)該文件的功能。如圖1 所示。

        圖1 代碼(code)文件夾下文件Fig.1 Files in the code folder

        (2)編寫(xiě)xxx.c 文件(或功能文件)內(nèi)容(如圖2所示):

        圖2 延時(shí)功能模塊的C 文件內(nèi)容Fig.2 C file content of delay function module

        1)包含xxx.h 文件(或頭文件);

        2)聲明變量或定義變量;

        3)編寫(xiě)功能函數(shù)。

        注意事項(xiàng):

        模塊內(nèi)不想被外部引用的函數(shù)和全局變量需在“.c”文件頭冠以static 關(guān)鍵字聲明。函數(shù)的聲明有無(wú)extern都行,變量的聲明必須加上extern,否則編譯器無(wú)法識(shí)別聲明[1]。

        (3)編寫(xiě)xxx.h 文件(或頭文件)內(nèi)容(如圖3 所示):

        圖3 延時(shí)頭文件Fig.3 Delayed header file

        注意事項(xiàng):

        函數(shù)默認(rèn)是extern 屬性,也就是我們聲明函數(shù)的時(shí)候前面的extern 可有可無(wú)?!?h”文件中不可以定義變量,在“.h”中只能聲明,不能定義。聲明變量不會(huì)占用內(nèi)存,定義變量才會(huì)[2]。

        (4)編寫(xiě)main.c 文件(或主文件或運(yùn)行文件)內(nèi)容(如圖4 所示):

        圖4 函數(shù)包含文件Fig.4 Main function contains files

        圖5 讀取溫度傳感器DS18B20 液晶顯示并串口發(fā)送的仿真結(jié)果Fig.5 Reading the simulation results of temperature sensor DS18B20 LCD display and serial port transmission

        4 結(jié)語(yǔ)

        通過(guò)上述實(shí)例分析,可以了解模塊化編程的方法是將工程劃分為不同模塊。主函數(shù)只調(diào)用函數(shù),而不定義函數(shù)。在各模塊文件中定義功能函數(shù),并將要用到的函數(shù)利用同名頭文件申明外部函數(shù)供其他文件調(diào)用。使用模塊化編程可以使代碼更有序,可以便捷地編寫(xiě)大型項(xiàng)目。模塊化將不需要的細(xì)節(jié)盡可能對(duì)外部隱藏,實(shí)現(xiàn)函數(shù)的封裝。便于重復(fù)利用代碼,實(shí)現(xiàn)某一功能代碼可以在多處調(diào)用,可以在別的項(xiàng)目使用。便于分工合作,團(tuán)隊(duì)共同開(kāi)發(fā)一個(gè)項(xiàng)目,也可以將程序分為多個(gè)模塊,每個(gè)人只完成一個(gè)模塊的內(nèi)容。

        引用

        [1] 王靜霞.單片機(jī)基礎(chǔ)與應(yīng)用(C語(yǔ)言版)(第2版)[M].北京:高等教育出版社,2016.

        [2] 宋戈,黃鶴松,員玉良,等.51單片機(jī)應(yīng)用開(kāi)發(fā)范例大全[M].北京:人民郵電出版社,2010.

        猜你喜歡
        模塊化代碼聲明
        本刊聲明
        本刊聲明
        模塊化自主水下機(jī)器人開(kāi)發(fā)與應(yīng)用
        模塊化住宅
        本刊聲明
        本刊聲明
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        草逼短视频免费看m3u8| 日韩乱码视频| 少妇厨房愉情理伦片bd在线观看| 999精品免费视频观看| 丝袜美腿亚洲综合久久| 网站在线观看视频一区二区| 少妇裸体性生交| 国产特级毛片aaaaaa| 毛茸茸的中国女bbw| 巨乳av夹蜜桃站台蜜桃机成人| 粉嫩av一区二区在线观看| 中文字幕人妻互换av| 日本一本之道高清不卡免费| 国产一女三男3p免费视频| 精品久久综合亚洲伊人| 成人国产一区二区三区精品不卡| 午夜男女靠比视频免费| 国产精品泄火熟女| 亚洲精品国产第一区二区尤物 | 在线观看免费不卡网站| 亚洲人成精品久久久久| 18女下面流水不遮图| 亚洲国产美女在线观看| 日韩精品成人一区二区三区| 久久国产在线精品观看| 人妻aⅴ中文字幕| 久久中文精品无码中文字幕 | 免费做爰猛烈吃奶摸视频在线观看| 欧美人成在线播放网站免费| 国产av一区麻豆精品久久| 亚洲综合网国产精品一区| 国产办公室沙发系列高清| 欧美午夜精品久久久久久浪潮 | 日韩毛片在线看| 亚洲中文字幕高清乱码毛片| 插插射啊爱视频日a级| 被三个男人绑着躁我好爽视频| 免费观看又污又黄的网站 | 91精品亚洲一区二区三区| 国产免费人成视频网站在线18| 国产办公室沙发系列高清|