操操操网-操操操综合-操操操综合网-操操干-操操干干

語言中文

新聞中心

熱搜關鍵詞:

單片機的程序編寫說明

來源:宇凡微 | 發布日期:2022-10-08

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

單片機的程序編寫說明

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

1、初始化:

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

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

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

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

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

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

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

2、主程序循環體:

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

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

實時性要求不高或沒有實時性要求的處理程序;顯示傳輸程序:主要針對存在外部LED、LCD Driver的應用。

3、中斷處理程序:

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

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

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

例如,對于低速、低功耗的MCU(Fosc=32768Hz)應用,考慮到此類項目均為手持式設備和采用普通的LCD顯示,對按鍵的反應和顯示的反應要求實時性較高,因此一般采用定時中斷的方式來處理按鍵的動作和數據的顯示;而對于高速的MCU,如Fosc》1MHz的應用,由于此時MCU有足夠的時間來執行主程序循環體,因此可以只在相應的中斷中設置各種觸發標志,并將所有的任務放在主程序體中來執行。

5、在MCU的程序設計中,還需要特別注意的一點就是:

要防止在中斷和主程序體中同時訪問或設置同一個變量或數據的情況。有效的預防方法是,將此類數據的處理安排在一個模塊中,通過判斷觸發標志來決定是否執行該數據的相關操作;而在其他的程序體中(主要是中斷),對需要進行該數據的處理的地方只設置觸發的標志。這可以保證數據的執行是可預知和唯一的。

以上就是宇凡微單片機工程師整理的單片機的程序編寫說明全部內容分享,宇凡微提供ic晶元生產及封裝定制,作為九齊一級代理商,擁有十多年的單片機芯片應用方案設計經驗,為廣大電子產品生產商提供 MCU應用功能定制開發服務。

【本文標簽】 單片機 單片機程序編寫

【責任編輯】單片機工程師

客戶案例

聯系我們
0755-82225097
深圳市羅湖區筍崗街道寶安北路4004號藝方創啟5樓
yufanweixiaoan@yfwdz.cn
微信二維碼微信二維碼

ALL RIGHT RESERVED 2022. 粵ICP備17095549號 技術支持: 牛商股份 百度統計 粵公網安備 44030402004503號

主站蜘蛛池模板: 久久美女精品国产精品亚洲| 91免费视频观看| 亚洲国产系列久久精品99人人| 生活一级毛片| 欧美一级毛片免费大片| 国产精品久久久久免费a∨ | 免费一级大毛片a一观看不卡| 黄色福利片| 国产精品成人不卡在线观看| 欧美色爱综合网| 亚洲二区在线播放| 91综合国产| 人人澡人人澡碰人人看软件| 中文黄色| 在线观看免费av网| 青青青青青免精品视频| 国产在线精品一区二区高清不卡| 麻豆福利影院| 刺激花蒂抽搐视频在线看| 久久性生活片| 欧美亚洲综合一区| 亚洲精品国产福利在线观看| zzji国产精品视频| 天堂色网站| 中文字幕欧美亚洲| 亚洲国产日韩在线观频| 男女爱爱视频在线观看| 欧美黑粗大| 国产一区二区视频免费| 国产精品拍拍拍福利在线观看| 91精品国产色综合久久不卡蜜| 精品免费在线视频| 欧美日韩国产亚洲一区二区三区| 亚洲欧美一区二区三区二厂 | 99久久中文字幕| 久久在线国产| 尤物网站永久在线观看| 中文字幕亚洲视频| 亚洲毛片免费视频| 亚洲国产精品一区二区久久| 成人性爱视频在线观看|