注:
1.ROM:只讀存儲器,單片機的只讀存儲區(qū)大多用于存儲程序固又稱程序存儲器。
51單片機是EPROM,所謂的EPROM是可擦除的只讀存儲器??梢园言瓉淼某绦虿脸耍賹懸粋€新的進去。
斷電后是可以保存的,數(shù)據(jù)存儲器(RAM)是不能保存的。
RAM只能在程序執(zhí)行的時候不斷地重新存儲定義的變量。如int x,int y
可以通過code這個指令來將定義的變量放在ROM,而不是RAM中,節(jié)省RAM資源
2.RAM:隨機存取存儲器,用于存儲定義的變量等,速度快
51單片機的RAM存儲容量遠小于ROM,但是速度非常之快
內(nèi)部詳細圖示內(nèi)部的結(jié)構(gòu)看似十分復雜,但是大致上可以分為兩個部分:運算器(紅色框)和控制器(藍色框)。
運算器:主要作用是進行加減乘除和邏輯運算
內(nèi)部的結(jié)構(gòu)可以上網(wǎng)查詢
控制器:控制單片機的各種操作
程序執(zhí)行過程1.程序地址
程序開始的時候,要先知道第一條程序的地址,這個通過PC(程序計數(shù)器)知道。
比如剛開始的時候地址是0000H,這個是16進制的。
當這個地址送給地址寄存器后,即取出第一條指令后,PC自動加1,準備取出下一條指令。
2.程度讀取
地址寄存器知道指令的地址后,就從ROM(只讀存儲器)里面取出地址所指向的一條指令。
并把取出來的指令放到指令寄存器中,經(jīng)過指令編碼器編譯
3.數(shù)據(jù)處理
指令有可能要用到加減乘除和賦值語句的判斷。經(jīng)過指令編碼器,就知道要取出那些定義的數(shù)據(jù)或者哪些賦值語句。
通過總線來調(diào)取我們要用到的數(shù)據(jù)。并通過運算器來運算。
比如說我們定義了int x和int y,這兩個數(shù)據(jù)放在RAM中。
當我們?nèi)〕隽艘粋€a = x + y 的指令后,需要x和y的值來計算。
那么通過上一張圖的取數(shù)據(jù)的過程后取出了x和y的數(shù)據(jù)
通過運算器來運算。
如圖,取出x和y進入黑色框(運算器)中來的到最終結(jié)果
最終的結(jié)果還會通過a這個變量存儲在數(shù)據(jù)存儲器(RAM)中
4.操作器件
當然,除了計算這種步驟外,還有一種情況就是來直接控制IO口的高低電平或者其他的器件了。
說明
本單片機運作過程是筆者查閱了資料后所得,并非一定正確。如若不正,請指正。