專用型單片機有哪些 有哪些單片機( 三 )


對于指令系統來說,雖然看起來形式不同,但實際上只是符號不同而已 。它們的含義、要完成的功能和尋址方式基本相似 。
要了解一個MCU,首先需要知道它的ROM空室、RAM空室、IO口數量、定時器數量和定時方式、提供的外圍電路、中斷源、工作電壓和功耗等 。
了解了這些MCU的特性之后,接下來就是將所選MCU的功能與實際項目開發所需要的功能進行對比,明確目前需要哪些資源,哪些資源在本項目中沒有用到 。
對于項目中需要用到但所選MCU沒有提供的功能,需要仔細了解MCU的相關信息,以便用間接的方法實現 。例如,如果開發的項目需要與PC的COM口通信,而選用的MCU沒有提供UART口,可以通過外部中斷來實現 。
對于項目開發所需的資源,需要仔細理解和閱讀其手冊,不必要的功能模塊可以忽略或瀏覽 。對于單片機學習來說,應用是關鍵,也是主要目的 。
定義好MCU的相關功能后,就可以開始編程了 。
對于初學者或者第一次使用這款單片機的設計師來說,可能會有很多對單片機功能的模糊描述 。對于這樣的問題,有兩種方法可以解決 。一種是編寫專門的驗證程序,理解數據中描述的功能;另一個可以暫時忽略,單片機程序設計按其目前的理解寫,留待調試時修改完善 。前一種方法適合時間比較寬松的項目和初學者,后一種方法適合有一定單片機開發經驗的人或者項目進度比較緊迫的時候 。
千萬不要花特別的時間去理解說明書 。指令系統只是一個邏輯描述的符號 。編程時只能根據自己的邏輯和程序的邏輯要求去查相關指令 。而且隨著編程的進展,你會對指令系統越來越熟練,甚至不自覺的背下來 。
單片機編程
單片機的編程和PC機的編程有很大的不同 。雖然基于C的單片機開發工具越來越流行,但是對于一個高效的程序代碼和喜歡用匯編的設計人員來說,匯編語言仍然是最簡潔有效的編程語言 。
對于單片機的編程,其基本框架可以說是大體一致的,一般分為三個部分:初始化部分(這是單片機編程與PC最大的區別)、主程序循環體和中斷處理程序,解釋如下:
初始化:對于所有單片機程序的設計來說,外化是最基本也是最重要的一步,一般包括以下內容:
屏蔽所有中斷,初始化堆棧指針:初始化部分一般不希望有任何中斷 。
清空系統的RAM區域和顯示內存:雖然有時候可能不完全需要,但是從可靠性和一致性的角度,特別是為了防止意外錯誤,建議養成良好的編程習慣 。
IO口初始化:根據項目的應用需求,設置相關IO口的輸入輸出模式,設置輸入口的上拉或下拉電阻;對于輸出端口,需要設置其原始電平輸出,以防止不必要的錯誤 。
中斷設置:打開項目需要的所有中斷源,設置中斷的觸發條件,不使用的不必要中斷必須關閉 。
其他功能模塊的初始化:所有需要使用的MCU外圍功能模塊都必須根據項目的應用需求進行設置,如UART通信、波特率、數據長度、校驗模式、停止位長度等 。,而對于編程器定時器,必須設置其時鐘源、分頻數和重載數據 。
參數外化:MCU的硬件和資源外化后,下一步就是初始化程序中用到的一些變量和數據 。這部分的初始化需要根據具體項目和程序的整體安排來設計 。對于一些使用EEPROM保存預設項目數的應用,建議在初始化時將相關數據復制到MCU的RAM中,以提高程序對數據的訪問速度,降低系統功耗(原則上訪問外部EEPROM會增加電源功耗) 。
主程序循環:大多數單片機都是長時間連續運行的,所以它的主程序基本上是以循環的方式設計的 。對于有多種工作模式的應用,可能會有多個循環體,通過狀態標志進行轉換 。對于主程序體,通常主要安排以下模塊:

推薦閱讀