精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機的程序編寫

WSTm_UCAS2004 ? 來源:YXQ ? 2019-08-12 09:57 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6023

    文章

    44378

    瀏覽量

    628588
  • 編程
    +關注

    關注

    88

    文章

    3523

    瀏覽量

    93278
  • 匯編語言
    +關注

    關注

    14

    文章

    406

    瀏覽量

    35577

原文標題:美國為什么圍堵不了中國?66年前,毛主席一句話點出了原因!

文章出處:【微信號:UCAS2004,微信公眾號:國科環宇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    單片機原理與應用:Proteus環境下單片機程序編寫及仿真#單片機

    單片機PROTPro仿真技術單片機原理
    學習硬聲知識
    發布于 :2022年11月09日 14:31:20

    單片機程序編寫優化

    (3,2) 可以改為N=3*3說明:在有內置硬件乘法器的單片機中(如51 系列),乘法運算比求平方運算快得多, 因為浮點數的求平方是通過調用子程序來實現的,乘法運算的子程序比平方運算的子程序
    發表于 12-05 13:53

    單片機入門:單片機程序編寫、仿真、調試常用的軟件有...

    不同的型號的單片機需要不同的開發軟件。我們以80C51系列、PIC系列和AVR系列為例分別說明。單片機程序編寫不需要任何特殊的軟件,只要是文本編緝軟件就可以了,如WINDOWS自帶的
    發表于 11-05 00:44

    單片機程序編寫有點小問題 還望各位大神出手相助!

    單片機程序編寫有點小問題還望各位大神出手相助謝謝
    發表于 10-28 01:29

    怎樣在阿里云物聯網平臺上進行單片機程序編寫

    阿里云物聯網平臺是怎樣設置的?怎樣在阿里云物聯網平臺上進行單片機程序編寫呢?
    發表于 02-22 06:04

    C51單片機程序編寫注意事項

    C51單片機頭文件的詳細介紹,是初學者必須了解的知識。
    發表于 03-17 08:00 ?8次下載

    單片機程序編寫步驟

    單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統集成到一個芯片上。相當于一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊芯片就成了一臺計算機。它的體積小、質量輕、價格便宜、為學
    發表于 11-14 14:29 ?1.9w次閱讀

    PIC單片機程序編寫和空間分配時應注意哪些問題

    控制部分采用PICl6F7X系列單片機,運用匯編語言編程,運行速度較快,能夠達到系統的要求。在這里使用的大多是數字信號的控制,電機的控制只有開和合兩種狀態。在動作的過程中需要兩只手臂、身體、頭部、腳部等的協調動作。
    發表于 11-20 15:10 ?1061次閱讀

    51單片機與迪文DGUS屏通信例程之三: 單片機程序編寫

    相信接觸過STC15系列單片機的小伙伴們,應該會對其編程風格比較熟悉,沒錯,STC15系列單片機可以采用庫函數編程,官方提供了標準的函數庫,我們只需要利用好庫函數,便可大大簡化配置流程,從而提高編程效率。
    發表于 04-22 13:59 ?1.1w次閱讀
    51<b class='flag-5'>單片機</b>與迪文DGUS屏通信例程之三: <b class='flag-5'>單片機</b><b class='flag-5'>程序</b><b class='flag-5'>編寫</b>

    ARM處理器與51單片機程序編寫到底有什么區別

    (1)int變量在51單片機中占2個字節;在ARM處理器中占4個字節。 (2)結構體對齊在51單片機中按照一個字節對齊;在ARM中按照結構體默認對齊規則對齊。 (3)字節在內存的排列順序在51
    發表于 06-25 17:43 ?1次下載
    ARM處理器與51<b class='flag-5'>單片機</b><b class='flag-5'>程序</b><b class='flag-5'>編寫</b>到底有什么區別

    PIC單片機程序編寫和動作標志位的使用方法解析

    在這里使用的大多是數字信號的控制,電機的控制只有開和合兩種狀態。在動作的過程中需要兩只手臂、身體、頭部、腳部等的協調動作。整個控制系統比較復雜,因而在PIC程序編寫和空間分配方面需要注意一些問題。
    發表于 01-25 17:04 ?2893次閱讀
    PIC<b class='flag-5'>單片機</b><b class='flag-5'>程序</b><b class='flag-5'>編寫</b>和動作標志位的使用方法解析

    單片機程序如何編寫

    設計編寫單片機程序是一個漸進的過程不可一蹴而就,畢竟單片機程序是與硬件有密切關系的,我們一般稱為單片機
    的頭像 發表于 02-12 14:38 ?3.7w次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>程序</b>如何<b class='flag-5'>編寫</b>

    單片機程序編寫方法

    學習單片機最主要的是學習寫程序的方法,程序的功能千變萬化,是學不完的,只有掌握了一定方法,才能用這種方法去寫新的程序
    發表于 09-22 17:17 ?4109次閱讀

    單片機程序編寫以及單片機的開發技巧

    單片機的學習竅門 任何一款MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數量、指令系統等。 對于指令系統,雖然形式上看似千差萬別,但實際上只是符號的不同,其所代表的含義
    發表于 10-30 15:02 ?2587次閱讀

    STC15系列單片機與迪文DGUS屏應用(六):單片機程序編寫

    STC15系列單片機可以采用庫函數編程,官方提供了標準的函數庫,我們只需要利用好庫函數,便可大大簡化配置流程,從而提高編程效率。
    的頭像 發表于 12-24 17:34 ?1297次閱讀