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口的高低電平或者其他的器件了。
說明
本單片機運作過程是筆者查閱了資料后所得,並非一定正確。如若不正,請指正。