當前位置:編程學習大全網 - 編程語言 - 匯編編程經驗

匯編編程經驗

單片機是壹門應用性很強的綜合性學科,它融合了電子技術中模擬電路和數字電路的知識,尤其是數字電路,因為數字電路在其中的應用非常廣泛。學習單片機最好從匯編語言開始。匯編語言雖然是低級語言,編程效率不高,但它比C語言有內存占用更小,執行速度更快的優點,而且剛接觸單片機更容易學。因為單片機涉及的知識很多,所以只能循序漸進的學習。

逐步積累沒有捷徑。剛開始學習的時候,對單片機壹竅不通。我不知道什麽是單片機,也不知道它的功能是什麽。通過學習,我大致了解了壹些單片機的知識。

單片機是將CPU、RAM、ROM、I/O接口、定時器/計數器和串行通信接口集成在壹個芯片上而形成的。

它有著廣泛的應用,包括工業自動化中的數據采集和測控技術。在智能儀器中的應用

有數字示波器、數字信號源、數字萬用表、感應電流表、自動櫃員機等。在消費電子產品中,有洗衣機、冰箱、空調、電視、微波爐、手機、ic卡、汽車電子設備等等。在通信方面,有調制解調器、程控交換技術、手機、小靈通等。武器裝備方面,有飛機、軍艦、坦克、導彈、航天飛機、魚雷制導、智能武器等等。學習單片機要花很多時間,如果只是想快壹點幾乎不可能。由於單片機涉及的知識範圍很廣,不可能壹蹴而就,只能壹點壹點的積累。沒有每壹小步的積累,壹個人不可能走完壹千英裏。只有壹步壹步的學習和積累,妳的單片機水平才會提高。

提高。

在學習的過程中,要註重理解,逐步形成自己的編程思路,在編程的過程中要註意細節。

如果妳因為粗心而把程序寫錯了,無形中就會給妳帶來更多的工作量。隨著學習的深入,我們寫的程序會越來越長。如果錯誤很多,改正起來會很麻煩。犯的錯誤越多,改正的時間越長,無形中給妳帶來的麻煩也就越多。

微控制器是壹臺集成了CPU、RAM、ROM、I/O、中斷、定時/計數等功能的完整計算機。只需增加壹個主頻振蕩器和電源,註入壹個應用程序,就可以實現壹定的功能。單片機的應用特點是“面向測控”。因此,它必須具有強大的信息處理、檢測和控制功能。學習使用單片機是了解單片機的硬件結構和內部資源的應用,學習匯編指令系統或C語言中各種函數的初始化設置,實現各種函數的編程。

1.總線:眾所周知,電路總是由電線連接的元件組成。在模擬電路中,連線不是問題,因為器件壹般都是串聯關系,器件之間的連線不多,但是計算機電路就不壹樣了。它以壹個微處理器為核心,所有的設備都必須連接到微處理器上,所以設備之間的工作必須相互協調?因此,需要大量的電線。如果像模擬電路壹樣,在微處理器和設備之間分別連接導線,導線的數量將是驚人的。因此,總線的概念被引入到微處理器中,所有設備共享導線。所有器件的8根數據線全部連接到8根公共線上,相當於把所有器件並聯起來,但僅此還不夠。如果有兩個呢?設備同時發送數據,壹個是0,壹個是1。那麽,接收者收到了什麽?這種情況是不允許的,需要通過控制線進行控制,使設備分時工作,任何時候只能有壹臺設備發送數據(多臺設備可以同時接收)。設備的數據線也叫數據總線,設備的所有控制線都叫控制總線。

單片機的內部或外部存儲器等設備中都有存儲單元,這些存儲單元只有分配了地址才能使用。也是以電信號的形式?假定有許多存儲單元,也有許多用於地址劃分的線,這些線被稱為地址總線。

二、數據、地址、指令:之所以把這三者放在壹起,是因為它們的本質是壹樣的——數字,還是都是?由字符串“0”和“1”組成的序列。換句話說,地址和指令也是數據。指令是單片機的設計者指定的壹個數字,它與我們常用的指令助記符有著嚴格的壹壹對應關系,是單片機的開發者無法更改的。

第三,P0港、P2港和P3港的第二功能用法

初學者經常對P0口、P2口、P3口的第二功能用法感到困惑,認為第二功能與原功能不同。

應該有壹個切換過程,或者說壹個指令。其實每個端口的第二個功能都是完全自動的,轉換不需要指令。例如,P3.6和P3.7分別是WR和RD信號。當微處理器外部連接到RAM或具有外部I/O端口時,它們發揮第二種功能,不能用作通用I/O端口。只要壹個微處理器執行MOVX指令,就會從P3.7或P3.7發出相應的信號,而不需要事先指令。其實“不能作為通用I/O口”不是“不能”而是“不會”把它作為通用I/O口。妳可以在說明書中安排壹個ETB P3.7。

指令,而當單片機執行這個指令時,也會使P3.7變為高電平,但用戶不會這樣做。

因為這通常會導致系統崩潰(也就是死機)。

四、方案的實施過程

8051中程序計數器(PC)中的值是' 0000 ',所以程序總是從' 0000 '單位開始,也就是說系統的rom中必須有' 0000 '單位,壹條指令必須存儲在' 0000 '單位中。

5.堆棧堆棧是存儲數據的區域。這個區域本身沒什麽特別的,不過是內部RAM的壹個拷貝。特別的是它存儲和訪問數據的方式,也就是所謂的‘先進後出,後進先出’。此外,堆棧有專門的數據傳輸指令,即‘push’和‘jun op’,有壹個專門用於它的特殊單元,即堆棧指針SP。

每當執行PUSH指令時,SP會自動加1(基於原始值),每當執行POP指令時,SP

減去1就行了(以原值為準)。由於SP中的值可以通過指令改變,所以只要在程序開始時改變SP的值,就可以在指定的內存單元中設置堆棧,比如在程序開始時?對於MOV SP,#5FH指令,立即在從存儲單元60H開始的單元中設置堆棧。壹般程序開頭總有這樣壹條設置堆棧指針的指令,因為SP的初始值在引導時是07H,使得堆棧從08H開始單位。

8小時到1FH的區域是8031的第二、第三、第四工作寄存器區,經常使用,會造成數據混亂。

中斷當單片機應用於測控系統時,實時性尤為重要。中斷技術就是處理這種實時性要求高的情況。單片機的特點是重復執行壹個程序,程序中每條指令的執行都需要壹定的執行時間。如果程序不執行指令,指令的動作就不會發生,會耽誤很多快速的事情,比如按鈕按下時的下降沿。為了使單片機在程序正常運行時響應快速動作,需要使用單片機的中斷功能,即在快速動作發生後,單片機中斷程序的正常運行,處理快速動作,處理完畢後返回執行正常程序。中斷功能需要合理控制。使用中的難點是要準確知道什麽時候不允許中斷(屏蔽中斷),什麽時候允許中斷(打開中斷),需要設置哪些寄存器才能使某些中斷工作,中斷開始時程序應該做什麽,中斷完成後程序應該做什麽等等。

學習中斷後,可以編譯壹個結構更復雜的程序,這樣的程序可以做壹件事。

監控壹件事情,壹旦被監控的事情發生,就中斷自己正在做的事情,處理被監控的事情。

這就是中斷功能的強大之處。

七:匯編語言和C語言

匯編指令有自己復雜的指令系統,不容易熟練掌握,所以我們在編寫程序時不得不註意硬件細節。與C語言相比,匯編語言也有不可忽視的優勢,那就是在壹些特殊的場合需要很高的效率和占用很小的存儲空間。但是隨著技術的發展,硬件的限制越來越小,C語言通俗易懂,通用可移植。我不必記住壹套特殊的指令,所以我更喜歡用c寫程序。

接觸單片機已經有壹段時間了。感覺可以自己學習寫程序,調試然後在開發板上快速學習。看到自己看到的結果,覺得很成功。

有時候單片機的學習比較單調,有些知識比較抽象,不好理解,只能慢慢適應。在學習理論知識的同時,可以編寫程序,刷入單片機進行調試。只有這樣才能更快的學習單片機。同時,我也會從學習中體會到成功的喜悅。

  • 上一篇:聲控燈怎麽改成常亮燈
  • 下一篇:2018年壹級消防工程師《綜合能力》考點精講:雨淋閥的分類及設置
  • copyright 2024編程學習大全網