999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

模塊化設計在單片機編程中的應用

2023-02-19 12:25:08貴州電子信息職業技術學院張定祥
數字技術與應用 2023年1期
關鍵詞:模塊化單片機功能

貴州電子信息職業技術學院 張定祥

模塊化編程在嵌入式學習中是比較常用的方法。本文以單片機控制溫度傳感器為例,介紹模塊化設計在單片機學習中的應用,闡述了模塊化設計的概念、發展歷程以及模塊化設計在單片機學習中的編寫方法,為將來學習開發嵌入式項目打下良好的基礎。

學習單片機的同學都會遇到一個疑問。為什么我在課堂上學習單片機之后,卻不能做一個復雜的項目?這是因為在設計較復雜的程序時,一般采用自頂向下的方法,將問題劃分為幾個部分,各個部分再進行細化,直到分解為較好解決問題為止。這就是模塊化設計,其基本思想是自頂向下、逐步分解、分而治之,即將一個較大的程序按照功能分割成一些小模塊,各模塊相對獨立、功能單一、結構清晰、接口簡單。

模塊化設計,就是程序的編寫不是一開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結構和流程描述出來,并定義和調試好各個框架之間的輸入、輸出鏈接關系逐步求精的結果,得到一系列以功能塊為單位的算法描述。以功能塊為單位進行程序設計,實現其求解算法的方法稱為模塊化。

1 模塊化設計的發展歷史

模塊化程序設計與結構化程序設計和面向對象程序設計密切相關,它們的全部目標都是通過分解成較小的部分來促進大型軟件程序和系統的構建,并且都起源于1960 年代。1968 年7 月在信息和系統研究所由拉里·康斯坦丁組織的全國模塊化編程研討會上提出“模塊化編程”。1980 年代開始普及模塊化編程。最初的Pascal 語言不包含模塊,但后來的版本,尤其是UCSD Pascal 和Turbo Pascal,就像Pascal 一樣以“單元”的形式包含了它們。1990 年代,由于C++和Java 的流行,模塊化編程被面向對象的編程所遮蓋,并且常常與之混淆。例如,C 語言家族在C++中支持對象和類和Objective-C,僅支持30 年或更長時間的模塊。Java(1995)支持包形式的模塊,盡管代碼組織的主要單位是類。模塊化編程現已普及,并且幾乎可以使用1990 年代以來開發的所有主要語言。

2 模塊化編程

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

3 單片機編程中的模塊化設計

模塊化編程在編程當中十分重要,因為模塊化編程的代碼可以重復使用,可以減輕編程工作者的工作量,在單片機的編程設計中尤為重要。這里以AT89C51 單片機,在編程軟件Keil 環境下實施一個工程,來說明模塊化編程具體操作的方法和步驟。例子要實現的功能:采用液晶顯示溫度傳感器DS18B20 提取的溫度值,并通過串口將溫度值發送出去。

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

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

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

圖2 延時功能模塊的C 文件內容Fig.2 C file content of delay function module

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

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

3)編寫功能函數。

注意事項:

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

(3)編寫xxx.h 文件(或頭文件)內容(如圖3 所示):

圖3 延時頭文件Fig.3 Delayed header file

注意事項:

函數默認是extern 屬性,也就是我們聲明函數的時候前面的extern 可有可無。“.h”文件中不可以定義變量,在“.h”中只能聲明,不能定義。聲明變量不會占用內存,定義變量才會[2]。

(4)編寫main.c 文件(或主文件或運行文件)內容(如圖4 所示):

圖4 函數包含文件Fig.4 Main function contains files

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

4 結語

通過上述實例分析,可以了解模塊化編程的方法是將工程劃分為不同模塊。主函數只調用函數,而不定義函數。在各模塊文件中定義功能函數,并將要用到的函數利用同名頭文件申明外部函數供其他文件調用。使用模塊化編程可以使代碼更有序,可以便捷地編寫大型項目。模塊化將不需要的細節盡可能對外部隱藏,實現函數的封裝。便于重復利用代碼,實現某一功能代碼可以在多處調用,可以在別的項目使用。便于分工合作,團隊共同開發一個項目,也可以將程序分為多個模塊,每個人只完成一個模塊的內容。

引用

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

[2] 宋戈,黃鶴松,員玉良,等.51單片機應用開發范例大全[M].北京:人民郵電出版社,2010.

猜你喜歡
模塊化單片機功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
模塊化自主水下機器人開發與應用
模塊化住宅
現代裝飾(2020年5期)2020-05-30 13:01:56
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
ACP100模塊化小型堆研發進展
中國核電(2017年2期)2017-08-11 08:00:56
關于非首都功能疏解的幾點思考
模塊化VS大型工廠
流程工業(2017年4期)2017-06-21 06:29:50
Microchip推出兩個全新PIC單片機系列
主站蜘蛛池模板: 成人伊人色一区二区三区| 国产精品网址在线观看你懂的| 成人韩免费网站| 欧美亚洲一区二区三区导航| 亚洲狼网站狼狼鲁亚洲下载| 国产高清不卡| 久久亚洲日本不卡一区二区| 国产精品爽爽va在线无码观看 | 青青操国产视频| 免费国产小视频在线观看| 亚洲天堂成人在线观看| 中文字幕日韩丝袜一区| 99在线视频免费| 国产欧美日韩免费| 亚洲成人精品在线| 欧美午夜一区| 久久精品亚洲专区| 国产美女免费网站| 一区二区三区四区精品视频| 国产无码高清视频不卡| 久久狠狠色噜噜狠狠狠狠97视色| 怡红院美国分院一区二区| 成人韩免费网站| 日日拍夜夜嗷嗷叫国产| 伊人久久福利中文字幕| 97在线免费视频| 欧美精品高清| 免费一级α片在线观看| 亚洲天堂视频在线播放| 色一情一乱一伦一区二区三区小说| 一级毛片在线直接观看| 国产va欧美va在线观看| 国产日韩丝袜一二三区| 国产一级片网址| 久久久久久尹人网香蕉 | 好吊色妇女免费视频免费| 婷婷99视频精品全部在线观看| 国产另类视频| 99re精彩视频| 亚洲性视频网站| 色欲国产一区二区日韩欧美| 日韩色图区| 视频一区视频二区日韩专区| 日韩黄色大片免费看| 青青草原国产免费av观看| www.99精品视频在线播放| 日韩乱码免费一区二区三区| 亚洲精品天堂自在久久77| 伊伊人成亚洲综合人网7777| 在线精品自拍| 国产又粗又爽视频| 亚洲黄网在线| 日本免费福利视频| 亚洲色图另类| 孕妇高潮太爽了在线观看免费| 国内精品久久久久鸭| 中国一级特黄视频| 伊人久久大香线蕉aⅴ色| 一边摸一边做爽的视频17国产 | 国产高清在线精品一区二区三区| 老司国产精品视频91| 日韩专区第一页| 污视频日本| 国产欧美日韩va| 成人国产精品网站在线看| 国产精品护士| h网址在线观看| 欧美成人精品高清在线下载| 在线观看热码亚洲av每日更新| 免费高清毛片| 99ri精品视频在线观看播放| 免费日韩在线视频| 国产一级小视频| 欧美日韩午夜| 欧美成人手机在线观看网址| 国产精品无码久久久久久| 欧美激情首页| 国产精品欧美日本韩免费一区二区三区不卡| 韩日无码在线不卡| 在线免费无码视频| 国产在线观看一区精品| 国产菊爆视频在线观看|