tft每日頭條

 > 科技

 > 手把手教你學單片機的代碼

手把手教你學單片機的代碼

科技 更新时间:2025-03-29 18:58:29

  手把手教你學單片機的代碼(從一個詳細的實例來知道單片機編程)(1)

  我們要想使單片機工作,就需要編寫程序,再将程序寫入單片機,單片機在程序的控制下工作以完成指定的任務。沒有程序的控制,單片機就無法工作。那麼如何編寫單片機程序呢?

  1.從一個實例初步了解編程

  手把手教你學單片機的代碼(從一個詳細的實例來知道單片機編程)(2)

  上面這張圖所示是一個邊長為100m的正方形跑道,有一個人(稱作甲)處于A點,如果要讓甲到達B點,可以執行如下的程序:

  起點 前進 50m

  左轉

  前進 100m

  左轉

  前進 50m

  結束

  甲逐條執行程序中的命令:先前進 50m,左轉,然後前進100m,左轉,再前進50m,結束,就可以到達B點。如果将上述程序改成:

  起點 前進 50m

  左轉

  前進 100m

  左轉

  前進 50m

  返回到 起點

  結束

  甲執行上述程序中的命令時會怎樣呢?當他執行到第5行命令時,會到達B點,接着執行第6行命令,該命令使他又返回到起點(标号),甲于是又會執行第1行指令……由于執行到第6行的指令時又會返回執行第1行的命令,永遠執行不到結束命令,所以,如果甲執行上述程序,就會不斷在A、B點之間反複運動,不會停止。如果隻要求甲在A、B點之間往返3次,上述程序應如何編寫呢?讀者可以思考一下,在後面的章節将會講到這個問題。

  2.分析一個單片機彙編語言程序

  手把手教你學單片機的代碼(從一個詳細的實例來知道單片機編程)(3)

  從前面的介紹初步了解了編程思想後,再來分析用到的彙編語言程序,程序如下:

  MAIN: MOV P3,#0FFH

  LOOP: MOV P1,P3

  LJMP LOOP

  END

  為了更好地理解上面的程序,下面對照圖所示的單片機應用電路來進行講解。

  手把手教你學單片機的代碼(從一個詳細的實例來知道單片機編程)(4)

  第1 行指令“MAIN:MOV P3,#0FFH”的含義是将數據11111111(0FFH)送到P3 端口的8個寄存器,讓P3端口的P3.0~P3.7這8個引腳全部為高電平。

  “MAIN:”為标号,表示該行為主程序開始,這裡也可省略,并不影響程序的運行;“MOV”為數據傳送指令;“P3”表示單片機P3端口内部的8個寄存器;“#0FFH”中的“#”号表示它後面的“0FFH”是一個數據,而不是地址編号,“0FFH”是一個十六進制數,轉換成二進制數就是11111111。

  該行指令運行後,圖中的單片機P3.0~P3.7這8個引腳内部的寄存器全部為高電平,相應的這8個引腳也為高電平。

  第2行指令“LOOP:MOV P1,P3”的含義是将P3端口8個寄存器中的數據送到P1端口的8個寄存器中。

  “LOOP:”為标号,用來标識指令“MOV P1,P3”,由于該标号後面的指令會被調用,所以不能省略。

  由于第1行指令已經讓P3端口8個寄存器内的數據全部為“1”,執行“MOV P1,P3 ”指令後,P1端口8個寄存器内的數據也全部為“1”,單片機的P1.0~P1.7這8個引腳全部為高電平,故發光二極管VD1~VD4全部不亮。

  第 3 行指令“LJMP LOOP”的含義是返回執行标号LOOP所在行的指令。也就是說,當執行到該行指令後,又會返回去執行第2行指令“MOV P1,P3”,即不斷将 P3 端口 8 個寄存器中的數據送到P1端口的8個寄存器中。

  第4行指令“END”的含義是程序結束。由于執行到第 3 行指令時會自動返回執行第 2行指令,所以無法執行到第4行指令,即程序無法結束。

  将上面的彙編語言程序彙編成機器語言程序并寫入單片機後,在程序的控制下,單片機内部電路不斷将P3端口8個寄存器中的數據送給P1端口的8個寄存器。

  圖示的單片機應用電路的工作過程分析如下。

  在沒有按下任何按鍵時,P3端口8個寄存器的數據都為“1”,所以P1端口8個寄存器的數據也為“1”,P1.0~P1.7這8個引腳都為高電平,發光二極管VD1~VD4全部不亮。

  若按下S1按鍵,P3.2引腳變為低電平,P3.2端口内部寄存器的數據變為“0”,P3.7~P3.0端口的數據分别為11111011,在第2條指令的控制下,這些數據被送到P1端口,P1.7~P1.0端口的數據分别為11111011,其中P1.2端口的數據為“0”,P1.2引腳為低電平,于是它外接的發光二極管VD1有電流通過而發光。

  如果松開S1按鍵,P3.2引腳變為高電平,P3.2端口的“1”送到P1.2端口,P1.2引腳為高電平,其外接的發光二極管VD1截止而不亮。

  ,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved