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

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

2022-05-15 20:36:14楊傳燕張俊蓮史媛
快樂學習報·教師周刊 2022年11期
關鍵詞:模塊化定義程序

楊傳燕 張俊蓮 史媛

摘要:為了提高51單片機程序的可讀性與可移植性,縮短程序開發設計時間,本文詳細介紹了模塊化編程的優勢與具體操作步驟,并舉例。

隨著對單片機學習的深入,程序設計越來越復雜,要實現的功能也越來越多,此時采用傳統編程方式,將所有的函數都放在main.c里,則一個文件內會有很多的代碼,不利于代碼的組織和管理,影響編程者的思路,造成程序的可讀性變差。同時在很多的應用中,有很多功能的重復,如果每次都重新編寫程序,會造成大量的時間浪費,提高程序的可移植性也刻不容緩。在單片機的實際應用開發中,一個程序由很多個模塊組成,這些模塊的編寫任務將會被分配到不同的人。實現在整個設計過程中的分工合作,減少開發時間。

一、模塊化編程的優勢

模塊化編程則能很好的解決以上問題,模塊化編程是把各個模塊的代碼放在不同的.c文件里,在.h文件里提供外部可調用函數的聲明,其它.c文件想使用其中的代碼時,只需要#include "xxxx.h"文件,然后在程序中進行調用即可。使用模塊化編程后,我們只需要關心這個模塊實現了什么樣的功能,如何調用,至于模塊內部是如何組織的則無需過多關注,此時更多的是追求接口的單一性,把不需要的細節盡可能的對外部屏蔽起來。使用模塊化編程可極大的提高代碼的可閱讀性、可維護性、可移植性等。

二、模塊化編程設計步驟

在模塊化編程中,往往會有多個C文件,每個C文件的作用不相同,在C文件中,由于需要對外提供接口,因此還必須有一些函數或變量提供給外部其它文件進行調用。因此,對于每一個模塊都有相應的.c文件和.h文件,為了閱讀調試方便,原則上.c和.h文件同名。比如,對延時函數進行模塊化編程時,我們則可以將其命名為Delay.c和Delay.h。

1、創建頭文件

以上創建的.h文件則是頭文件,它里面存放的是可被外部調用的函數、變量的聲明,不包括任務實質性的函數代碼。我們可以把這個頭文件理解成一份說明書,說明的內容是模塊對外提供的接口函數或者接口變量,以及一些很重要的宏定義與結構體信息,離了這些信息,很可能無法正常使用接口函數或者接口變量。以剛建立的Delay.h為例進行闡述頭文件的內容及作用。

#ifndef __DELAY_H__

#define __DELAY_H__

void Delay(unsigned int xms);

#endif

這個幾條條件編譯(ifndef和endif)和宏定義(define)是為了防止重復包含。假如有兩個不同源文件需要調用Delay(unsigned int xms)這個函數,他們分別都通過#include “Delay.h”把這個頭文件包含了進去。在第一個源文件進行編譯時候,由于沒有定義過__DELAY_H__,因此#ifndef __DELAY_H__條件成立,于是用宏定義定義#define__DELAY_H__定義一個__DELAY_H__,并將下面的聲明包含進去。在第二個文件編譯時候,由于第一個文件包含時候,已經將__DELAY_H__定義過了。因此#ifndef __DELAY_H__不成立,整個頭文件內容就沒有被包含。假設沒有這樣的條件編譯語句,那么兩個文件都包含了void Delay(unsigned int xms);就會引起重復包含的錯誤。因此,在.h文件中,為了防止出現錯誤都進行了防重復包含。

2、模塊功能編程

以上講了頭文件的作用及定義方法,對于c文件,則是對函數、變量的定義,實現模塊的功能。比如Delay.c函數程序如下:

void Delay(unsigned int xms)

{

unsigned char i, j;

for(i=0;i<xms;i++)

for(j=0;j<120;j++);

}

此段程序和原來的main.c里的延時函數一樣,只不過單獨獨立出來放要給文件里,實現程序的模塊化。

3、模塊調用

要實現模塊的調用,則需要先將模塊的頭文件添加進來,比如在主程序中,如果想要調用延時函數,則需要通過#include “Delay.h”將頭文件包含進來。

三、模塊化編程舉例

通過以上步驟,我們完成了模塊化編程的基本步驟,我們將以流水燈為例,對程序進行模塊化,圖1是我們常規的編程方法,將延時函數和主函數寫在同一個C文件里,如果函數功能復雜的話,程序的可讀性不好。圖3是將延時函數獨立成一個模塊,圖2在主函數里進行調用,使程序簡潔明了,提高程序的可讀性。如果在其它工程里需要用到延時函數時,只需要將延時函數的.c文件和.h文件加載到對應的工程里即可,提高了程序的可移植性。同時對于復雜的工程的開發,則可以按模塊進行分工,然后再進行調用整合,縮短程序開發設計過程。

猜你喜歡
模塊化定義程序
模塊化自主水下機器人開發與應用
模塊化住宅
現代裝飾(2020年5期)2020-05-30 13:01:56
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
ACP100模塊化小型堆研發進展
中國核電(2017年2期)2017-08-11 08:00:56
模塊化VS大型工廠
流程工業(2017年4期)2017-06-21 06:29:50
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 欧美成a人片在线观看| 一区二区自拍| 欧美a在线| 国产精品视频观看裸模| 婷婷在线网站| 国产成人三级| 免费a级毛片18以上观看精品| 亚洲区欧美区| 又黄又湿又爽的视频| 亚洲色图欧美激情| 暴力调教一区二区三区| 小说区 亚洲 自拍 另类| 国产制服丝袜无码视频| 鲁鲁鲁爽爽爽在线视频观看| 国产乱肥老妇精品视频| 免费观看国产小粉嫩喷水| 国产成人1024精品下载| 国产成人久视频免费| 欧美日韩第二页| 国产丝袜一区二区三区视频免下载| 综合色婷婷| 国产午夜看片| 欧美亚洲中文精品三区| 亚洲中文字幕精品| 国产理论一区| 99热最新网址| 久久国产av麻豆| 亚洲Av激情网五月天| 国产一区在线观看无码| 三级国产在线观看| 中文字幕天无码久久精品视频免费 | 国产精品视频猛进猛出| 就去吻亚洲精品国产欧美| 亚洲一区二区三区国产精华液| www.亚洲一区二区三区| 日韩在线欧美在线| 97在线观看视频免费| 怡春院欧美一区二区三区免费| 亚洲欧洲自拍拍偷午夜色无码| 黄色污网站在线观看| 精品国产一二三区| 国产v欧美v日韩v综合精品| 欧洲日本亚洲中文字幕| 亚洲第一视频网| 凹凸国产熟女精品视频| 最新无码专区超级碰碰碰| 国产精品美女自慰喷水| 老司机aⅴ在线精品导航| 色悠久久综合| 免费毛片全部不收费的| 午夜无码一区二区三区在线app| 97国产精品视频自在拍| 99精品视频播放| 欧美日韩午夜| 国产成人一区| 99久久性生片| 欧美高清国产| 国产美女视频黄a视频全免费网站| 91小视频在线观看免费版高清 | 亚洲国产在一区二区三区| 成人午夜亚洲影视在线观看| 国产AV无码专区亚洲精品网站| 亚洲日韩图片专区第1页| 亚洲视频在线网| 日韩av电影一区二区三区四区 | 亚洲黄色高清| 色噜噜狠狠色综合网图区| 色综合日本| 国产免费看久久久| 三级欧美在线| 香蕉久久永久视频| 四虎精品国产AV二区| 粗大猛烈进出高潮视频无码| 国产成人亚洲综合a∨婷婷| 中国一级毛片免费观看| 亚洲视频四区| 国产乱子伦视频三区| 99热这里只有精品久久免费| 亚洲an第二区国产精品| 日韩 欧美 小说 综合网 另类 | 韩日午夜在线资源一区二区| 精品无码国产一区二区三区AV|