• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      電控冰箱軟件模塊化設(shè)計

      2019-02-26 01:53:06左秋杰汪良樹
      日用電器 2019年12期
      關(guān)鍵詞:主程序功能模塊中斷

      左秋杰 汪良樹 任 猛

      (長虹美菱股份有限公司 合肥 230601)

      引言

      隨著科技發(fā)展、社會進步、人們生活水平的提高,電冰箱幾乎成為每個家庭必備的家用電器[1],電冰箱的發(fā)展也從最基本的低溫保鮮功能,發(fā)展到如今的多種功能俱全更智能化的現(xiàn)狀,導致電冰箱產(chǎn)品開發(fā)過程中軟件實現(xiàn)起來越發(fā)復雜。

      把一個復雜問題分解為若干個基本問題,再分別求解這些容易解決的基本問題,就是使復雜問題簡單化。

      軟件開發(fā)過程中,面對一個復雜的程序設(shè)計,通常做法是根據(jù)系統(tǒng)功能需求,一個功能需求整合成一個模塊,整個程序由多個模塊組成,每個模塊再細分為更小的模塊,直到每個小的模塊單獨完成一個特定的功能,實現(xiàn)模塊化程序設(shè)計。

      軟件開發(fā)過程中,采用模塊化的方法,可以使每個模塊實現(xiàn)功能與結(jié)構(gòu)的獨立,同時每個模塊的工作量更小,可以將工作過程細分化,提高工作效率。

      1 程序模塊化設(shè)計

      1.1 模塊化程序設(shè)計結(jié)構(gòu)

      一個完整的程序通常包括主程序和子程序,主程序負責調(diào)用職能,子程序負責實現(xiàn)具體的功能模塊,主程序調(diào)用子程序,這是程序模塊化的要求。在主程序運行完一個循環(huán)的過程中完成了對各功能模塊的順序調(diào)用,如圖1所示。

      采用這種結(jié)構(gòu),各個模塊之間相互獨立、結(jié)構(gòu)清晰、接口簡單,我們可以象搭積木一樣,根據(jù)系統(tǒng)功能需求,來實現(xiàn)功能模塊的增減。

      1.2 模塊的事件驅(qū)動機制

      主程序按順序依次調(diào)用各個功能模塊,若每個模塊都執(zhí)行一遍,勢必會增加系統(tǒng)的運行時間,而有些模塊不需要執(zhí)行或不具備執(zhí)行的條件,就可以避免執(zhí)行這些模塊。采取事件驅(qū)動機制,避免執(zhí)行這些模塊,可以優(yōu)化主程序結(jié)構(gòu),提升程序的執(zhí)行速度。

      事件驅(qū)動機制,就是設(shè)置若干使能標志,一一對應(yīng)各功能模塊,通過此標志置一或清零觸發(fā)/不觸發(fā)該模塊代表的事件。即,在每次執(zhí)行某些功能時,先判斷該功能所在模塊是否滿足執(zhí)行條件,如果滿足則執(zhí)行[3]。

      1.3 時間片與分時調(diào)度機制

      當系統(tǒng)較復雜、功能需求較多時,為了保證每個功能都有充足的時間分配,需要采用分時調(diào)度機制。將系統(tǒng)時間分成若干份時間片,當滿足某一個時間片條件時,執(zhí)行一個或者多個功能模塊。

      如果分時調(diào)度的執(zhí)行者是主程序,我們可以將應(yīng)用程序的所有功能都按照分時調(diào)度機制調(diào)用(見圖3)。

      1.4 中斷與前/后臺的程序結(jié)構(gòu)

      如果采用依次調(diào)用各功能模塊外加分時調(diào)度機制,完全可以完成一般的程序設(shè)計工作。但是遇到突發(fā)事件時,不能實時響應(yīng),這時需要引入中斷。

      中斷是獨立于主程序之外且優(yōu)先級高于主程序的程序流程,每次中斷產(chǎn)生均可暫停主程序正在處理的流程,待處理完中斷程序后,主程序再回到原來中斷的地方,繼續(xù)執(zhí)行原來被中斷的程序(見圖4)。

      對于中斷程序來講,通常以越短越精簡為佳,盡量避免在中斷程序中進行大量的邏輯關(guān)系運算。原則上中斷函數(shù)的執(zhí)行時間需要遠遠小于中斷間隔時間。 避免出現(xiàn)因執(zhí)行時間過長導致主程序大部分時間處于等待狀態(tài)不能實時處理功能函數(shù)等問題。

      圖1 程序結(jié)構(gòu)圖

      圖2 功能模塊的程序結(jié)構(gòu)

      2 控制軟件架構(gòu)

      根據(jù)冰箱電控系統(tǒng)的工作原理制定模塊化控制策略,將控制軟件劃分為3大部分,系統(tǒng)初始化程序、主程序循環(huán)體、中斷程序。

      2.1 系統(tǒng)初始化程序

      單片機控制系統(tǒng)在上電之后,首先進行系統(tǒng)復位,然后跳轉(zhuǎn)到主程序運行。在系統(tǒng)實現(xiàn)主程序功能之前,首先對系統(tǒng)進行初始化,需要設(shè)定與對系統(tǒng)時鐘、中斷、串口相關(guān)的寄存器,設(shè)定各通用IO口的初始狀態(tài)、設(shè)置各功能模塊所涉及變量的定義與初始值等。初始化操作只需要執(zhí)行一次。

      圖3 主程序采取分時調(diào)度結(jié)構(gòu)

      圖4 前/后臺的程序結(jié)構(gòu)模型

      2.2 主程序循環(huán)體

      系統(tǒng)初始化之后,所需的工作環(huán)境就設(shè)置好了,下一步是進入主程序。主程序一般是個循環(huán)體,負責執(zhí)行系統(tǒng)需求各項功能任務(wù),如輸入檢測(AD采集、按鍵等)、負載輸出控制等。這些功能語句通常寫成子程序形式,由主程序進行調(diào)用。

      根據(jù)目前電控冰箱的控制需求,需要執(zhí)行的任務(wù)主要有:通信數(shù)據(jù)的準備與讀取、顯示數(shù)據(jù)準備、按鍵讀取與處理、制冷邏輯計算、化霜邏輯計算、各負載的控制邏輯及控制數(shù)據(jù)準備。

      如圖5所示,為主程序流程圖。

      2.3 中斷程序

      我們把實時性要求很高的功能函數(shù)模塊如通信數(shù)據(jù)的收發(fā)、LED顯示掃描、風門的單步驅(qū)動、PWM輸出,放在中斷中執(zhí)行;把實時性要求低的任務(wù)如制冷邏輯計算、負載輸出控制等交給主程序區(qū)調(diào)度。

      圖5 主程序流程圖

      圖6 定時器中斷程序流程圖

      定時器中斷處理程序為系統(tǒng)提供一個基準時間,軟件各功能模塊中各類時間:如化霜時間、制冷時間、開門時間等計時均以此為基準。

      3 結(jié)論

      在電控冰箱軟件開發(fā)過程中,模塊化設(shè)計使模塊與模塊之間的相互影響降到最低,降低了產(chǎn)品設(shè)計的風險,同時也可以提高產(chǎn)品的可靠性和設(shè)計質(zhì)量,使程序設(shè)計、調(diào)試和后續(xù)維護等操作更加簡單化,可縮短控制軟件開發(fā)周期,降低研發(fā)成本。

      猜你喜歡
      主程序功能模塊中斷
      自動升級程序在船舶監(jiān)測系統(tǒng)中的應(yīng)用
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      跟蹤導練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      時光倒流 換回PotPlayer老圖標
      基于ASP.NET標準的采購管理系統(tǒng)研究
      軟件導刊(2016年9期)2016-11-07 21:35:42
      輸電線路附著物測算系統(tǒng)測算功能模塊的研究
      M市石油裝備公服平臺網(wǎng)站主要功能模塊設(shè)計與實現(xiàn)
      石油知識(2016年2期)2016-02-28 16:20:16
      功能模塊的設(shè)計與應(yīng)用研究
      AT89C51與中斷有關(guān)的寄存器功能表解
      鄄城县| 乌兰县| 梁平县| 澄迈县| 竹山县| 盐城市| 武山县| 库车县| 沙坪坝区| 龙南县| 连江县| 宕昌县| 玉田县| 金门县| 米泉市| 宿迁市| 周宁县| 阆中市| 张掖市| 安远县| 呼伦贝尔市| 金溪县| 渝北区| 藁城市| 杭州市| 中西区| 北京市| 河津市| 册亨县| 读书| 孟连| 兴安盟| 根河市| 武陟县| 大冶市| 四川省| 繁峙县| 武安市| 益阳市| 图片| 读书|