51單片機運行過程


51單片機的簡要圖示

注:
1.ROM:只讀存儲器,單片機的只讀存儲區大多用於存儲程序固又稱程序存儲器。

  • 51單片機是EPROM,所謂的EPROM是可擦除的只讀存儲器。可以把原來的程序擦除了,再寫一個新的進去。
  • 斷電后是可以保存的,數據存儲器(RAM)是不能保存的。
  • RAM只能在程序執行的時候不斷地重新存儲定義的變量。如int x,int y
  • 可以通過code這個指令來將定義的變量放在ROM,而不是RAM中,節省RAM資源

2.RAM:隨機存取存儲器,用於存儲定義的變量等,速度快

  • 51單片機的RAM存儲容量遠小於ROM,但是速度非常之快

內部詳細圖示

內部的結構看似十分復雜,但是大致上可以分為兩個部分:運算器(紅色框)和控制器(藍色框)。

  • 運算器:主要作用是進行加減乘除和邏輯運算
    內部的結構可以上網查詢
  • 控制器:控制單片機的各種操作

程序執行過程

1.程序地址
程序開始的時候,要先知道第一條程序的地址,這個通過PC(程序計數器)知道。
比如剛開始的時候地址是0000H,這個是16進制的。
當這個地址送給地址寄存器后,即取出第一條指令后,PC自動加1,准備取出下一條指令。

2.程度讀取
地址寄存器知道指令的地址后,就從ROM(只讀存儲器)里面取出地址所指向的一條指令。
並把取出來的指令放到指令寄存器中,經過指令編碼器編譯

3.數據處理
指令有可能要用到加減乘除和賦值語句的判斷。經過指令編碼器,就知道要取出那些定義的數據或者哪些賦值語句。
通過總線來調取我們要用到的數據。並通過運算器來運算。

比如說我們定義了int x和int y,這兩個數據放在RAM中。
當我們取出了一個a = x + y 的指令后,需要x和y的值來計算。
那么通過上一張圖的取數據的過程后取出了x和y的數據
通過運算器來運算。

如圖,取出x和y進入黑色框(運算器)中來的到最終結果
最終的結果還會通過a這個變量存儲在數據存儲器(RAM)中
4.操作器件
當然,除了計算這種步驟外,還有一種情況就是來直接控制IO口的高低電平或者其他的器件了。

說明

本單片機運作過程是筆者查閱了資料后所得,並非一定正確。如若不正,請指正。

我的新浪博客:NeyzoterSong
我的微博:Neyzoter


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM