古詩詞大全網 - 經典古詩 - 學期末了老師讓寫壹篇單片機學習心得,哪位大神可以幫幫我?

學期末了老師讓寫壹篇單片機學習心得,哪位大神可以幫幫我?

單片機是壹門應用性和綜合性很強的學科,它綜合了電子技術中的模擬電路和數字電路方面的知識,特別是數字電路,因為數字電路在裏面的應用很多。學習單片機最好先從匯編語言入手,雖然匯編語言是低級語言,編程效率低,但它比C語言占用內存小,執行速度快等優點,在剛接觸單片機時更容易學習。由於單片機涉及的知識很多,所以我們只能循序漸進的學習,

逐步的積累,沒有什麽捷徑可循。剛開始學習的時候,對單片機沒有什麽認識,不知道什麽是單片機,更不知道它有什麽作用。通過學習才大體知道了單片機的壹些知識。

由中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O接口、定時器/計數器以及串行通信接口等集成在壹塊芯片上,構成了壹個單片微型計算機,簡稱為單片機。

它的應用範圍很廣,在工業自動化中應用有數據采集、測控技術。在智能儀器儀表中應用

有數字示波器、數字信號源、數字萬用表、感應電流表,自動取款機等。在消費類電子產品中應用有洗衣機、電冰箱、空調機、電視機、微波爐、手機、IC卡、汽車電子設備等。在通訊方面應用有調制解調器、程控交換技術、手機、小靈通等。在武器裝備方面應用有飛機、軍艦、坦克、導彈、航天飛機、魚雷制導、智能武器等。學習單片機要投入大量的時間,如果只想速成,幾乎是不可能的。由於單片機涉及的知識面很廣,不可能在朝夕間就學會,只能壹點點的積累。不積跬步,無以至千裏。只有當妳壹步步去學習、去積累之後,妳的單片機水平才會

提高。

學習過程中還要註重理解,要逐漸養成自己的編程思路,在編程過程中還要註意細節問題,

如果因為粗心大意將程序寫錯,將會無形間給自己帶來更大的工作量,隨著學習的深入,我們編寫的程序將越來越長,如果出現很多錯誤,在改錯時將會很麻煩,出錯越多妳改的時間將會越長,就會無形間給自己帶來更多麻煩 。

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

壹、總線:我們知道,壹個電路總是由元器件通過電線連接而成的,在模擬電路中 ,連連線並不成為壹個問題,因為各器件間壹般是串行關系,各器件之間的連線並不很多,但計算機電路卻不壹樣,它是以微處理器為核心,各器件都要與微處理器相連,各 器件之間的工作必須相互協調?所以就需要的連線就很多了,如果仍如同模擬電路壹樣 ,在各微處理器和各器件間單獨連線線,則線的數量將多得驚人,所以在微處理機中引 入了總線的概念,各個器件***同享用連線,所有器件的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. 或P3.7送出,不需要事先用指令說明。事實上‘不能作為通用I/O口使用’也並不是‘不能而是(使用者)‘不會’將其作為通用I/O口使用。妳完全可以在指令中按排壹條S ETB P3.7

的指令,並且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會這麽做,

因為這通常這會導致系統當潰(即死機)。

四、程序的執行過程

單片機在通電復位後8051內的程序計數器(PC)中的值為‘0000,所以程序總是從‘0000’單元開始執行,也就是說:在系統的ROM中壹定要存在‘0000’個單元,並且在‘0000’單元中存放的壹定是壹條指令。

五、堆棧 堆棧是壹個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的壹份,特殊的是它存放和取用數據的方式,即所謂的‘先進後出,後進先出’,並且堆棧有特的數據傳輸指令,即‘PUSH’和甈OP,有壹個特殊的專為其服務的單元,即堆棧指針SP

每當執壹次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行壹次POP指令,SP

就(在原來值基礎上)動減1。由於SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP值,就可以把堆棧設置在規定的內存單元中,如在程序開始時?用壹條MOV SP,#5FH指令,就時把堆棧設置在從內存單元60H開始的單元中。壹般程序的開頭總有這麽條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元

開始往後8H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的渾亂

:中斷當單片機應用於測控系統時,實時性就顯得特別重要了。而中斷技術就是處理這種實時性要求高的場合。單片機的特點是壹段程序反復執行,程序中每個指令的執行都需要壹定的執行時間,如果程序沒有執行到某指令,則該指令的動作就不會發生,這樣就會耽誤很多快速發生的事情,例如,按鈕按下時的下降沿。要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在快速動作發生後,單片機中斷正常運行的程序,處理快速發生的動作,處理完成後,在返回執行正常的程序。中斷功能是需要合理控制的,在使用中的困難是需要精確地知道什麽時候不允許中斷發生(屏蔽中斷)、什麽時候允許中斷發生(開中斷),需要設置哪些寄存器才能使某種中斷起作用,中斷開始時,程序應該幹什麽,中斷完成後,程序應該幹什麽等等。

中斷學會後,就可以編制更復雜結構的程序,這樣的程序可以幹著壹件事,

監視著壹件事,壹旦監視的事情發生,就中斷正在幹的事情,處理監視的事情。

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

七:匯編語言與C語言

匯編指令有自己的壹套繁瑣的指令系統,不容易熟練掌握,編寫程序不得不註意硬件細節。相對於C語言,匯編語言也有不可忽略的優勢,就是在某些特殊場合需要高效的,占用存儲空間小的地方。但隨著技術的發展硬件的限制越來越小,C語言比較好理解,通用性和可移植性都很不錯。也不用記專門的指令集合來,所以我還是比較傾向於用C編寫程序的

接觸單片機已經有壹段時間了,我感覺自己動手學習編寫程序,調試然後在開發板上做學習的很快,看到自己看到的結果通過自己親手做出來的感覺很有成功感。

有時候單片機的學習很單調,有些知識學起來很抽象,不容易理解,只能慢慢適應,壹邊學習理論知識,壹邊編寫程序,將程序刷入單片機進行調試,通過這種方式才能更快速的學習單片機。同時也會從學習中體會成功的喜悅。