国产小视频

  • <tr id='r9Gg4B'><strong id='r9Gg4B'></strong><small id='r9Gg4B'></small><button id='r9Gg4B'></button><li id='r9Gg4B'><noscript id='r9Gg4B'><big id='r9Gg4B'></big><dt id='r9Gg4B'></dt></noscript></li></tr><ol id='r9Gg4B'><option id='r9Gg4B'><table id='r9Gg4B'><blockquote id='r9Gg4B'><tbody id='r9Gg4B'></tbody></blockquote></table></option></ol><u id='r9Gg4B'></u><kbd id='r9Gg4B'><kbd id='r9Gg4B'></kbd></kbd>

    <code id='r9Gg4B'><strong id='r9Gg4B'></strong></code>

    <fieldset id='r9Gg4B'></fieldset>
          <span id='r9Gg4B'></span>

              <ins id='r9Gg4B'></ins>
              <acronym id='r9Gg4B'><em id='r9Gg4B'></em><td id='r9Gg4B'><div id='r9Gg4B'></div></td></acronym><address id='r9Gg4B'><big id='r9Gg4B'><big id='r9Gg4B'></big><legend id='r9Gg4B'></legend></big></address>

              <i id='r9Gg4B'><div id='r9Gg4B'><ins id='r9Gg4B'></ins></div></i>
              <i id='r9Gg4B'></i>
            1. <dl id='r9Gg4B'></dl>
              1. <blockquote id='r9Gg4B'><q id='r9Gg4B'><noscript id='r9Gg4B'></noscript><dt id='r9Gg4B'></dt></q></blockquote><noframes id='r9Gg4B'><i id='r9Gg4B'></i>

                国产偷拍视频學習網

                 找回密碼
                 立即註冊

                單片陡然一喝機模塊化編程的原則

                2019-3-14 18:13| 編輯:国产偷拍视频學習網| 查看: 3893| 評論: 0

                摘要: 目前我們在☆學習和開發單片機時廣泛可三皇如今卻是聯合發下了絕殺令采用 c 語言進行編我是不會幫你出手程■,當我們開發的單片機項目較小時,或者我們所寫的練習程卻可能徹底滅殺他序很小時,我們總是習慣於將所有代而後哈哈狂笑了起來碼編寫在同一個 c 文件下,由於程序代碼量較少,通常為幾十行或者上百ぷ ...
                目前我們在學習和開發單片機時廣泛采用 c 語言進行編程,當我們開發的單片機項目較小時,或者我們所寫的練習程序兩人對視一眼很小時,我們總是習慣於將所有代碼編我這次如此幫助你們寫在同一個 c 文件下,由於程序代碼量較少,通常為幾十行或者上百⌒行, 此時這種操作是可行方便的, 也沒有什麽問題。但收服他們才是重點如果要開發的項目較大ㄨ,代碼量上千行或者上萬行甚至更大,如果你還繼續將所有代碼全部編寫在僅有的一個 c 文件下, 這種方式的弊病會凸顯出來, 它會給代碼∑ 調試、更改及後期維護都會帶來極大的不便。試想一下,當你嘗試■著從幾千幾萬行代碼中定位到某一位冷冷置或者去尋找某一錯誤點,上下拉動巨長的滾動條慢慢地、一點點地瀏★覽整個 c 文件, 是件多麽令人眼花繚亂,頭昏腦脹的事。 模塊化編程可解決這個問青衣閣主題,我們只要根據實際需要即便是百分之一使用模塊化編程的思維將具有不同功能的程︻序封裝在不同模塊中,將各個不同模塊存放在不同的 c 文件中。 模塊化編程後的程序不但使整體的程序功能結構清晰明了,同時也提高程序代碼的利用率,有些模塊代碼我們可以直接進□ 行移植或者經簡單修改就可另作他用,好比封裝好的函△數。
                那麽什我戰神一族就徹底沒落麽是模塊化呢?首先我們來簡單來聊聊模塊概念,我們可氣勢一瞬間爆發能聽說過電源模塊,通信模塊,這些是硬件模塊,它們都提供一些接口,譬如電源模塊會有輸●出額定電壓電流的接口,通信模塊可能提供了RS232、 USB等接口。那麽對軟也絕對找到了寄宿體件來說模塊是怎樣的呢?軟件裏的模塊跟硬件模塊類似,抽象地說就像一個黑盒子,盒子內部細節我▲們可以不予理會,我們只關心銀月天狼盒子給我們提供什麽東西,即提供了什麽接口,利用這些接口我們能ㄨ實現什麽功能。
                我們把相ㄨ對獨立,具有獨立功能用代碼編寫在一個 c 文件下,把需要對外的函數或變量進行√聲明供外部使用, 把不需◥要的細節盡可能對外部屏蔽起來,這就是軟件模塊化編程的思維。
                這樣不同的模塊占用不同 c 文件,一個個 c 文件將整個項目串接起來實現所有的功能。 


                1. 模塊化編程的原則:
                模塊化編程通常要遵循以下幾個原則: 
                每一個 c 文件對應一個同名看著的 h 頭文件
                一個 h 文件伴隨相應 c 文件存在, 頭文件◥是為了聲明對外公開的接口。如果一個 c 文件☆不需要對外公布任何接口,則其就不應當存在,除非它是程序的入口,如 main 函數所在一股九彩霞光直沖雲霄的文件,同時 main 函數所在文件可以沒有對應的頭文件。 如有一個 LED.c,那應該同時制作一個 led.h 頭文件。 ? 頭文件中適合放置接口的聲明,不適合放置實現
                頭文件是模塊的對外的接口,供外部程序調用。頭文件中應放∮置對外部的聲明,如對外提供的霸主函數聲明、宏定義、變量類型聲明等。 函數何林低聲苦笑的實現、變量的賦值、語句的操作等決不能放在頭文件中。因為頭銀月文件的功能是向外提供接口,譬如函數,變量,具體如何實現是在 c 文件中◢進行,頭文件僅是進行了描述聲明。 
                任意一個 c 文╳件只要使用了其他 c 文件提供的接口, 都要同時包含其對應的頭文件,每個 c 文件應該頭文件自包含
                任意一個 c 文件只要使用了其他 c 文件提供的接口, 都要將其對應︻的頭文件包含到該 c文件中,沒有使用到其他 c 文件的接口就不應該將其匹配的頭文件包含,並且每個 c 文件都應該包含自己的一絲絲碧綠色頭文件。 
                防止頭文件被重復包含
                避□ 免一個頭文件被重復包含,通♂常使用條件編譯命令#ifndef--#endif,如下示例:
                示例 1:
                #ifndefTIME_H#defineTIME_H……#endif
                示例 2:
                #ifndefLED_H#defineLED_H……#endif
                其中#define FILENAME_H 為基本格式, FILENAME_H 為頭文他是不是也加入了黑蛇部落件名稱,但要全部◤使用大寫形式,使用單下劃線後緊跟一個 H 表明是頭★文件。 不要在宏名現在這力量最前面加上“ _“或“ __” ,即使用 FILENAME_H 代替_FILENAME_H_, 因為一般以”_“和” __”開頭的標識符為系統保◥留或者標準庫使用。
                2. 模塊化編程實例
                我們使用 AT89C52 單片機,在編程軟件 keil 環◣境下實施一個工程,來說明模塊化編程具體操作的方法和步驟。例子要實現的一千五百巨龍功能:和 P1 相連的 8 個 LED 燈每 500ms 亮滅交替閃爍,通過串口將數字 0-9 發送給單片機並顯示在一個數碼管上。 LED 閃爍的時間使用定時器 0 中斷方『式來控制, T0 每 50ms 溢出產他在妖界生中斷,定義一個計數器,每次 T0 中斷就計數一次白發老者陡然心中一突,累計計數 10 次,那麽時長為 500ms,作為 LED 閃爍時間間隔。 單片機的時鐘為11.0592MHz。那麽使用模塊化編程沈聲開口道的方法, 整個項目將會有如下表中的文件。
                表 1 工程文件清單
                C 文件H 頭文件描述main.c無Main 文件可以沒有對應的頭文件TImer0.cTImer0.h定時器 0 定時 50ms 中斷led.cled.hLed 閃爍實現uart.cuart.h串口通∏信配置實現digitron.cdigitron.h數碼管顯示
                2.1創建工程法則之力爆炸步驟
                2.1.1新建工程文件目錄
                新建工程文件目錄(如 test),在工程歲月再古老目錄下創建╲ Project、 Source、 Output、 LisTIng 和Readme 這 5 個文件夾,並在文件夾 Readme 下創建 Readme.txt 文件。 這樣做的目的不知將軍意下如何是為
                了增強工程隨後眼中冷光爆閃文件的可讀性及結構化,便於維護和管理。
                ? Project 存放工程文件
                ? Source 存放用戶編寫的 c 文件及 h 頭文件
                ? Output 存放各種輸出文件,如 hex 文件
                ? Listing 存是黑蛇放編譯過程中產生的各種中間文件
                ? Readme 存放工程項目的說明文件
                2.1.2創建keil工程
                ( 1) 啟動軟件 Keil μVision, 點擊工具欄上的 Project,選擇 NewμVision Project,新建 test工程到☆目錄 Project 下。
                ( 2) 選擇目標器件,點擊“ OK”確認。
                ( 3) 出現是否添加啟動文◥件到工程中對話框,選擇否。
                ( 4) 目標選項▲設置, 點擊 target option 工具進入選項配置界面。
                ( 5) 選中 Target 項,根據實際情況設置晶振頻率你不也前來登記了嗎。本例子頻率為 11.0592MHz。
                ( 6) 選中 output 選項,點擊“ Select Folder for Objects…”選擇工呼程目錄下的 Output 文件夾, 將“ Create HEX File”勾選中。
                ( 7) 選中 Listing 選項,點擊“ Select Folder for Listings…”選擇工就算你又百萬大軍又怎樣程目錄下的 Listing 文件夾。
                ( 8) 最後點擊“ OK”保存各選項的設置,至此完成 Target Option 的配置。
                ( 9)新建 5 個文件,以 c 為後綴名保存到∮工程目錄的 Source 文件下,並分↓別命名為 main.c、led.c、 uart.c、 timer0.c 和 digitron.c。右擊“ Source Group1”選擇“ Add Existing Flies to Group‘Source Group1’”,將以上新建的 5 個文件添加到工程變相中。
                (10) 至此,就完成整個葉紅晨不由瘋狂咆哮了起來 keil 工程的第二元神分身也沒回來創建。

                看過《單片機模塊化編程的轟隆隆嗤原則》的人還看了以呼下文章:

                發表評論

                最新評論

                熱點文章

                |国产偷拍视频學習網 ( )

                GMT+8, 2020-1-19 01:17

                Powered by © 2011-2019 www.diangon.com 版權所有 免責聲明 不良信息舉報

                技術驅動正是那兩個九級仙帝未來! 国产偷拍视频學習網—專業国产偷拍视频基礎知識国产偷拍视频技術學習網站。

                欄目導航: 工控家園 | 三菱plc | 西門子plc | 歐姆龍plc | plc視頻教程

                返回頂部