久久毛片绝黄免费观看-色哟哟免费专区国产精品-图片区自拍区欧美日韩-免费中文字幕视频在线-精品丝袜美腿诱惑福利在线观看-欧美亚洲制服在线一区-午夜精品人妻久久久-免费国语一级a在线观看-中文字幕亚洲综合久久久

專注MCU智能產(chǎn)品開發(fā)及設計方案

24小時熱線

18267879466

聯(lián)系郵件

3535157142@qq.com

MCU程序的編寫方式,以及各型號單片機的區(qū)別和用途

MCU程序的編寫方式,以及各型號單片機的區(qū)別和用途

MCU程序的編寫方式,以及各型號單片機的區(qū)別和用途

單片機的程序編寫--宇芯微電子

MCU的程序的編寫與PC下的程序的編寫存在很大的區(qū)別,雖然現(xiàn)在基于C的MCU開發(fā)工具越來越流行,但對于一個高效的程序代碼和喜歡使用匯編的設計者來講,匯編語言仍然是最簡潔、最有效的編程語言。

0c0241c805614b40a6b3ec3bf42548b4.jpg

對于MCU的程序編寫,其基本的框架可以說是大體一致的,一般分為初始化部分(這是MCU程序設計與PC最大的不同),主程序循環(huán)體和中斷處理程序三大部分,其分別說明如下:

初始化:對于所有的MCU程序的設計來講,出世化是最基本也是最重要的一步,一般包括如下內(nèi)容:

屏蔽所有中斷并初始化堆棧指針:初始化部分一般不希望有任何中斷發(fā)生。

清除系統(tǒng)的RAM區(qū)域和顯示Memory:雖然有時可能沒有完全的必要,但從可靠性及一致性的角度出發(fā),特別是對于防止意外的錯誤,還是建議養(yǎng)成良好的編程習慣。

IO口的初始化:根據(jù)項目的應用的要求,設定相關IO口的輸入輸出方式,對與輸入口,需要設定其上拉或下拉電阻;對于輸出口,則必須設定其出世的電平輸出,以防出現(xiàn)不必要的錯誤。

中斷的設置:對于所有項目需要用到的中斷源,應該給予開啟并設定中斷的觸發(fā)條件,而對于不使用的多余的中斷,則必須給予關閉。

其他功能模塊的初始化:對于所有需要用到的MCU的外圍功能模塊,必須按項目的應用的要求進行相應的設置,如UART的通訊,需要設定Baud Rate,數(shù)據(jù)長度,校驗方式和Stop Bit的長度等,而對于Programmer Timer,則必須設置其時鐘源,分頻數(shù)及Reload Data等。

參數(shù)的出世化:完成了MCU的硬件和資源的出世化后,接下來就是對程序中使用到的一些變量和數(shù)據(jù)的初始化設置,這一部分的初始化需要根據(jù)具體的項目及程序的總體安排來設計。對于一些用EEPROM來保存項目預制數(shù)的應用來講,建議在初始化時將相關的數(shù)據(jù)拷貝到MCU的RAM,以提高程序對數(shù)據(jù)的訪問速度,同時降低系統(tǒng)的功耗(原則上,訪問外部EEPROM都會增加電源的功耗)。

主程序循環(huán)體:大多數(shù)MCU是屬于長時間不間斷運行的,因此其主程序體基本上都是以循環(huán)的方式來設計,對于存在多種工作模式的應用來講,則可能存在多個循環(huán)體,相互之間通過狀態(tài)標志來進行轉換。對于主程序體,一般情況下主要安排如下的模塊:

計算程序:計算程序一般比較耗時,因此堅決反對放在任何中斷中處理,特別是乘除法運算。

顯示傳輸程序:主要針對存在外部LED、LCD Driver的應用。

中斷處理程序:中斷程序主要用于處理實時性要求較高的任務和事件,如,外部突發(fā)性信號的檢測,按鍵的檢測和處理,定時計數(shù),LED顯示掃描等。

一般情況下,中斷程序應盡可能保證代碼的簡潔和短小,對于不需要實時去處理的功能,可以在中斷中設置觸發(fā)的標志,然后由主程序來執(zhí)行具體的事務――這一點非常重要,特別是對于低功耗、低速的MCU來講,必須保證所有中斷的及時響應。

對于不同任務體的安排,不同的MCU其處理的方法也有所不同。